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

char * __regparm3 internal_cplus_demangle(work_stuff *work,char *mangled)

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  int iVar7;
  size_t sVar8;
  char *pcVar9;
  work_stuff *pwVar10;
  char cVar11;
  work_stuff *__s;
  work_stuff *pwVar12;
  byte *pbVar13;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  char **ppcVar18;
  string *in_stack_ffffffac;
  char *in_stack_ffffffb0;
  work_stuff *local_3c;
  work_stuff *local_30;
  char *scan;
  string decl;
  
  bVar17 = 0;
  iVar2 = work->constructor;
  iVar3 = work->type_quals;
  work->constructor = 0;
  iVar4 = work->static_type;
  iVar5 = work->destructor;
  work->destructor = 0;
  work->type_quals = 0;
  work->dllimported = 0;
  if ((mangled != (char *)0x0) && (*mangled != '\0')) {
    decl.e = (char *)0x0;
    decl.p = (char *)0x0;
    decl.b = (char *)0x0;
    local_30 = (work_stuff *)mangled;
    if ((work->options & 0x300U) == 0) {
LAB_00199538:
      __s = local_30;
      sVar8 = strlen((char *)local_30);
      bVar14 = sVar8 < 6;
      bVar16 = sVar8 == 6;
      pwVar10 = __s;
      if (sVar8 < 7) goto LAB_00199670;
      iVar7 = 6;
      pwVar12 = __s;
      pbVar13 = (byte *)"_imp__";
      do {
        if (iVar7 == 0) break;
        iVar7 = iVar7 + -1;
        bVar1 = (byte)pwVar12->options;
        bVar14 = bVar1 < *pbVar13;
        bVar16 = bVar1 == *pbVar13;
        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);
        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
      } while (bVar16);
      bVar15 = false;
      bVar14 = (!bVar14 && !bVar16) == bVar14;
      if (!bVar14) {
        iVar7 = 6;
        pwVar12 = __s;
        pbVar13 = (byte *)"__imp_";
        do {
          if (iVar7 == 0) break;
          iVar7 = iVar7 + -1;
          bVar1 = (byte)pwVar12->options;
          bVar15 = bVar1 < *pbVar13;
          bVar14 = bVar1 == *pbVar13;
          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);
          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
        } while (bVar14);
        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;
        bVar14 = sVar8 < 10;
        bVar16 = sVar8 == 10;
        if (sVar8 < 0xb) {
LAB_00199670:
          bVar14 = false;
          bVar16 = (work->options & 0x3800U) == 0;
          if (!bVar16) {
            iVar7 = 7;
            pwVar12 = __s;
            pbVar13 = (byte *)"__std__";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar1 = (byte)pwVar12->options;
              bVar14 = bVar1 < *pbVar13;
              bVar16 = bVar1 == *pbVar13;
              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);
              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
            } while (bVar16);
            bVar15 = false;
            bVar14 = (!bVar14 && !bVar16) == bVar14;
            if (bVar14) {
              local_30 = (work_stuff *)((int)&__s->typevec + 3);
              work->destructor = 2;
              __s = local_30;
              pwVar10 = local_30;
            }
            else {
              iVar7 = 7;
              pwVar12 = __s;
              pbVar13 = (byte *)"__sti__";
              do {
                if (iVar7 == 0) break;
                iVar7 = iVar7 + -1;
                bVar1 = (byte)pwVar12->options;
                bVar15 = bVar1 < *pbVar13;
                bVar14 = bVar1 == *pbVar13;
                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);
                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
              } while (bVar14);
              if ((!bVar15 && !bVar14) == bVar15) {
                local_30 = (work_stuff *)((int)&__s->typevec + 3);
                work->constructor = 2;
                __s = local_30;
                pwVar10 = local_30;
              }
            }
          }
          goto LAB_00199631;
        }
        iVar7 = 8;
        pwVar12 = __s;
        pbVar13 = (byte *)"_GLOBAL_";
        do {
          if (iVar7 == 0) break;
          iVar7 = iVar7 + -1;
          bVar1 = (byte)pwVar12->options;
          bVar14 = bVar1 < *pbVar13;
          bVar16 = bVar1 == *pbVar13;
          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);
          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
        } while (bVar16);
        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;
        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);
        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))
        goto LAB_00199631;
        cVar11 = *(char *)((int)&__s->ktypevec + 1);
        if (cVar11 == 'D') {
          work->destructor = 2;
        }
        else {
          if (cVar11 != 'I') goto LAB_00199631;
          work->constructor = 2;
        }
        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);
        in_stack_ffffffb0 = (char *)0x19960c;
        iVar7 = gnu_special(work,(char **)&local_30,&decl);
        pwVar10 = local_30;
        __s = local_30;
        if (iVar7 == 0) goto LAB_00199631;
LAB_00199710:
        iVar7 = 1;
        goto LAB_0019947b;
      }
LAB_00199770:
      local_30 = (work_stuff *)((int)&__s->typevec + 2);
      work->dllimported = 1;
      __s = local_30;
      pwVar10 = local_30;
LAB_00199631:
      do {
        local_3c = (work_stuff *)strchr((char *)__s,0x5f);
        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;
        __s = (work_stuff *)((int)&local_3c->options + 1);
      } while (*(char *)((int)&local_3c->options + 1) != '_');
      if (__s != (work_stuff *)0x0) {
        ppcVar18 = (char **)0x24b428;
        sVar8 = strspn((char *)local_3c,"_");
        if ((2 < (int)sVar8) &&
           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))
        goto LAB_00199643;
        if (work->static_type != 0) {
          bVar17 = (byte)local_3c->options;
          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;
          goto LAB_00199643;
        }
        uVar6 = work->options;
        bVar1 = *(byte *)((int)&local_3c->options + 2);
        if (pwVar10 == local_3c) {
          if ((_sch_istable[bVar1] & 4) == 0) {
            bVar14 = bVar1 == 0x74;
            if ((byte)(bVar1 + 0xb8) < 10) {
              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);
            }
            if (bVar14 != false) {
              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);
              goto LAB_001999dc;
            }
            goto LAB_00199733;
          }
          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);
          if ((uVar6 & 0x1c00) == 0) {
LAB_001999dc:
            local_30 = pwVar10;
            if ((uVar6 & 0x3c00) == 0) {
              work->constructor = work->constructor + 1;
            }
            goto LAB_00199710;
          }
          local_30 = pwVar10;
          consume_count((char **)&local_30);
          goto joined_r0x00199a26;
        }
LAB_00199733:
        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {
          if ((uVar6 & 0x2000) != 0) {
            if (bVar1 == 0x74) {
              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;
              goto LAB_001998ba;
            }
            if (bVar1 == 0x70) {
              cVar11 = *(char *)((int)&local_3c->options + 3);
              goto LAB_001998a8;
            }
          }
          if (pwVar10 != local_3c) {
LAB_00199759:
            if (bVar1 == 0) goto LAB_00199643;
            goto LAB_001998ba;
          }
LAB_00199907:
          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;
          bVar14 = false;
          bVar16 = (uVar6 & 0x3c00) == 0;
          if (!bVar16) {
            iVar7 = 8;
            pwVar10 = local_3c;
            pbVar13 = (byte *)"__vtbl__";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar1 = (byte)pwVar10->options;
              bVar14 = bVar1 < *pbVar13;
              bVar16 = bVar1 == *pbVar13;
              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);
              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
            } while (bVar16);
            if ((!bVar14 && !bVar16) == bVar14) {
              cVar11 = *(char *)&local_3c->ktypevec;
              scan = (char *)&local_3c->ktypevec;
LAB_00199ac0:
              if (cVar11 != '\0') {
                do {
                  in_stack_ffffffb0 = (char *)0x199acb;
                  iVar7 = consume_count(&scan);
                  if (iVar7 == -1) goto LAB_0019992e;
                  pcVar9 = scan + iVar7;
                  cVar11 = *pcVar9;
                  scan = pcVar9;
                  if (cVar11 != '_') goto LAB_00199ac0;
                } while (pcVar9[1] != '_');
                scan = pcVar9 + 2;
                cVar11 = pcVar9[2];
                goto LAB_00199ac0;
              }
              cVar11 = *(char *)&local_30->ktypevec;
              local_30 = (work_stuff *)&local_30->ktypevec;
LAB_00199b12:
              if (cVar11 != '\0') {
                do {
                  in_stack_ffffffb0 = (char *)0x199b21;
                  iVar7 = consume_count((char **)&local_30);
                  pwVar10 = local_30;
                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))
                  goto LAB_0019992e;
                  if (iVar7 != 0) {
                    string_prependn(&decl,(char *)pwVar10,iVar7);
                    pwVar10 = local_30;
                  }
                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);
                  cVar11 = *(char *)&local_30->options;
                  if (cVar11 != '_') goto LAB_00199b12;
                } while (*(char *)((int)&local_30->options + 1) != '_');
                string_prepend(&decl,"::");
                cVar11 = *(char *)((int)&local_30->options + 2);
                local_30 = (work_stuff *)((int)&local_30->options + 2);
                goto LAB_00199b12;
              }
              iVar7 = 1;
              string_append(&decl," virtual table");
              pwVar10 = local_30;
              goto LAB_0019947b;
            }
          }
LAB_0019992e:
          cVar11 = (char)local_3c->options;
          while (cVar11 == '_') {
            local_3c = (work_stuff *)((int)&local_3c->options + 1);
            cVar11 = (char)local_3c->options;
          }
          ppcVar18 = (char **)0x269580;
          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");
          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))
          goto LAB_00199643;
          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);
        }
        else {
          cVar11 = *(char *)((int)&local_3c->options + 3);
          if (cVar11 == 't') {
LAB_00199a46:
            iVar7 = 1;
            sVar8 = strlen((char *)pwVar10);
            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);
            pwVar10 = local_30;
            goto LAB_0019947b;
          }
          if ((uVar6 & 0x2000) != 0) {
LAB_001998a8:
            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;
          }
          if (pwVar10 == local_3c) goto LAB_00199907;
LAB_001998ba:
          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);
        }
        pwVar10 = local_30;
        if (iVar7 != 0) goto LAB_0019947b;
        goto LAB_00199484;
      }
LAB_00199643:
      if ((work->constructor == 2) || (work->destructor == 2)) {
joined_r0x00199a26:
        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {
          string_append(&decl,(char *)local_30);
        }
        pwVar10 = local_30;
        sVar8 = strlen((char *)local_30);
        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);
        local_30 = pwVar10;
        goto LAB_00199710;
      }
      if (work->dllimported == 1) {
        iVar7 = 0;
        goto LAB_00199872;
      }
      delete_non_B_K_work_stuff(work);
    }
    else {
      iVar7 = gnu_special(work,(char **)&local_30,&decl);
      pwVar10 = local_30;
      if (iVar7 == 0) {
        delete_non_B_K_work_stuff(work);
        in_stack_ffffffb0 = (char *)0x1994fe;
        squangle_mop_up(work);
        if (decl.b != (char *)0x0) {
          free(decl.b);
          decl.p = (char *)0x0;
          decl.e = (char *)0x0;
          decl.b = (char *)0x0;
        }
        goto LAB_00199538;
      }
LAB_0019947b:
      if ((char)pwVar10->options != '\0') {
        iVar7 = demangle_signature(work,(char **)&local_30,&decl);
      }
LAB_00199484:
      if (work->constructor == 2) {
        string_prepend(&decl,"global constructors keyed to ");
        work->constructor = 0;
      }
      else if (work->destructor == 2) {
        string_prepend(&decl,"global destructors keyed to ");
        work->destructor = 0;
      }
      else if (work->dllimported == 1) {
LAB_00199872:
        string_prepend(&decl,"import stub for ");
        work->dllimported = 0;
      }
      delete_non_B_K_work_stuff(work);
      if (iVar7 != 0) {
        string_appendn(&decl,"",1);
        goto LAB_001994c7;
      }
    }
    if (decl.b != (char *)0x0) {
      free(decl.b);
    }
  }
  decl.b = (char *)0x0;
LAB_001994c7:
  work->constructor = iVar2;
  work->destructor = iVar5;
  work->static_type = iVar4;
  work->type_quals = iVar3;
  return decl.b;
}



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

void * __regparm3 FUN_001993e0(uint *param_1,byte *param_2)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  size_t sVar8;
  byte *pbVar9;
  char *pcVar10;
  byte bVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  bool bVar15;
  byte bVar16;
  byte *local_3c;
  byte *local_30;
  byte *local_2c;
  void *local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar16 = 0;
  uStack_14 = 0x1993eb;
  uVar2 = param_1[10];
  uVar3 = param_1[0xe];
  param_1[10] = 0;
  uVar4 = param_1[0xc];
  uVar5 = param_1[0xb];
  param_1[0xb] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {
    local_20 = 0;
    local_24 = 0;
    local_28 = (void *)0x0;
    local_30 = param_2;
    if ((*param_1 & 0x300) == 0) {
LAB_00199538:
      sVar8 = strlen((char *)param_2);
      bVar13 = sVar8 < 6;
      bVar15 = sVar8 == 6;
      if (sVar8 < 7) goto LAB_00199670;
      iVar7 = 6;
      pbVar9 = param_2;
      pbVar12 = (byte *)"_imp__";
      do {
        if (iVar7 == 0) break;
        iVar7 = iVar7 + -1;
        bVar13 = *pbVar9 < *pbVar12;
        bVar15 = *pbVar9 == *pbVar12;
        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
      } while (bVar15);
      bVar14 = false;
      bVar13 = (!bVar13 && !bVar15) == bVar13;
      if (!bVar13) {
        iVar7 = 6;
        pbVar9 = param_2;
        pbVar12 = (byte *)"__imp_";
        do {
          if (iVar7 == 0) break;
          iVar7 = iVar7 + -1;
          bVar14 = *pbVar9 < *pbVar12;
          bVar13 = *pbVar9 == *pbVar12;
          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
        } while (bVar13);
        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;
        bVar13 = sVar8 < 10;
        bVar15 = sVar8 == 10;
        if (sVar8 < 0xb) {
LAB_00199670:
          bVar13 = false;
          bVar15 = (*param_1 & 0x3800) == 0;
          if (!bVar15) {
            iVar7 = 7;
            pbVar9 = param_2;
            pbVar12 = (byte *)"__std__";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar13 = *pbVar9 < *pbVar12;
              bVar15 = *pbVar9 == *pbVar12;
              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
            } while (bVar15);
            bVar14 = false;
            bVar13 = (!bVar13 && !bVar15) == bVar13;
            if (bVar13) {
              param_2 = param_2 + 7;
              param_1[0xb] = 2;
              local_30 = param_2;
            }
            else {
              iVar7 = 7;
              pbVar9 = param_2;
              pbVar12 = (byte *)"__sti__";
              do {
                if (iVar7 == 0) break;
                iVar7 = iVar7 + -1;
                bVar14 = *pbVar9 < *pbVar12;
                bVar13 = *pbVar9 == *pbVar12;
                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
              } while (bVar13);
              if ((!bVar14 && !bVar13) == bVar14) {
                param_2 = param_2 + 7;
                param_1[10] = 2;
                local_30 = param_2;
              }
            }
          }
          goto LAB_00199631;
        }
        iVar7 = 8;
        pbVar9 = param_2;
        pbVar12 = (byte *)"_GLOBAL_";
        do {
          if (iVar7 == 0) break;
          iVar7 = iVar7 + -1;
          bVar13 = *pbVar9 < *pbVar12;
          bVar15 = *pbVar9 == *pbVar12;
          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
        } while (bVar15);
        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;
        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);
        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;
        if (param_2[9] == 0x44) {
          param_1[0xb] = 2;
        }
        else {
          if (param_2[9] != 0x49) goto LAB_00199631;
          param_1[10] = 2;
        }
        local_30 = param_2 + 0xb;
        iVar7 = FUN_00198d60();
        param_2 = local_30;
        if (iVar7 == 0) goto LAB_00199631;
LAB_00199710:
        iVar7 = 1;
        goto LAB_0019947b;
      }
LAB_00199770:
      param_2 = param_2 + 6;
      param_1[0xf] = 1;
      local_30 = param_2;
LAB_00199631:
      do {
        local_3c = (byte *)strchr((char *)param_2,0x5f);
        if (local_3c == (byte *)0x0) goto LAB_00199643;
        param_2 = local_3c + 1;
      } while (local_3c[1] != 0x5f);
      if ((param_2 != (byte *)0x0) &&
         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||
          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {
        if (param_1[0xc] != 0) {
          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))
          goto LAB_00199710;
          goto LAB_00199643;
        }
        uVar6 = *param_1;
        bVar1 = local_3c[2];
        if (local_30 == local_3c) {
          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {
            bVar13 = bVar1 == 0x74;
            if ((byte)(bVar1 + 0xb8) < 10) {
              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);
            }
            if (bVar13 != false) {
              local_30 = local_3c + 2;
              goto LAB_001999dc;
            }
            goto LAB_00199733;
          }
          local_30 = local_30 + 2;
          if ((uVar6 & 0x1c00) == 0) {
LAB_001999dc:
            if ((uVar6 & 0x3c00) == 0) {
              param_1[10] = param_1[10] + 1;
            }
            goto LAB_00199710;
          }
          FUN_001934a0();
          goto joined_r0x00199a26;
        }
LAB_00199733:
        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {
          if ((uVar6 & 0x2000) != 0) {
            if (bVar1 == 0x74) {
              if (local_3c[3] == 0x6d) goto LAB_00199a46;
              goto LAB_001998ba;
            }
            if (bVar1 == 0x70) {
              bVar11 = local_3c[3];
              goto LAB_001998a8;
            }
          }
          if (local_30 != local_3c) {
LAB_00199759:
            if (bVar1 == 0) goto LAB_00199643;
            goto LAB_001998ba;
          }
LAB_00199907:
          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;
          bVar13 = false;
          bVar15 = (uVar6 & 0x3c00) == 0;
          if (!bVar15) {
            iVar7 = 8;
            pbVar9 = local_3c;
            pbVar12 = (byte *)"__vtbl__";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar13 = *pbVar9 < *pbVar12;
              bVar15 = *pbVar9 == *pbVar12;
              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
            } while (bVar15);
            if ((!bVar13 && !bVar15) == bVar13) {
              bVar16 = local_3c[8];
              local_2c = local_3c + 8;
LAB_00199ac0:
              if (bVar16 != 0) {
                do {
                  iVar7 = FUN_001934a0();
                  if (iVar7 == -1) goto LAB_0019992e;
                  pbVar9 = local_2c + iVar7;
                  bVar16 = *pbVar9;
                  local_2c = pbVar9;
                  if (bVar16 != 0x5f) goto LAB_00199ac0;
                } while (pbVar9[1] != 0x5f);
                local_2c = pbVar9 + 2;
                bVar16 = pbVar9[2];
                goto LAB_00199ac0;
              }
              bVar16 = local_30[8];
              local_30 = local_30 + 8;
LAB_00199b12:
              if (bVar16 != 0) {
                do {
                  iVar7 = FUN_001934a0();
                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))
                  goto LAB_0019992e;
                  if (iVar7 != 0) {
                    FUN_00193850();
                  }
                  pbVar9 = local_30 + iVar7;
                  bVar16 = *pbVar9;
                  local_30 = pbVar9;
                  if (bVar16 != 0x5f) goto LAB_00199b12;
                } while (pbVar9[1] != 0x5f);
                FUN_001938b0();
                local_30 = pbVar9 + 2;
                bVar16 = pbVar9[2];
                goto LAB_00199b12;
              }
              iVar7 = 1;
              FUN_001938f0();
              goto LAB_0019947b;
            }
          }
LAB_0019992e:
          bVar16 = *local_3c;
          while (bVar16 == 0x5f) {
            local_3c = local_3c + 1;
            bVar16 = *local_3c;
          }
          pcVar10 = strstr((char *)local_3c,"__");
          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;
          iVar7 = FUN_00198b60(pcVar10);
        }
        else {
          bVar11 = local_3c[3];
          if (bVar11 == 0x74) {
LAB_00199a46:
            iVar7 = 1;
            strlen((char *)local_30);
            FUN_00195c60(&local_28);
            goto LAB_0019947b;
          }
          if ((uVar6 & 0x2000) != 0) {
LAB_001998a8:
            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;
          }
          if (local_30 == local_3c) goto LAB_00199907;
LAB_001998ba:
          iVar7 = FUN_00198b60(local_3c);
        }
        if (iVar7 != 0) goto LAB_0019947b;
        goto LAB_00199484;
      }
LAB_00199643:
      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {
joined_r0x00199a26:
        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {
          FUN_001938f0();
        }
        sVar8 = strlen((char *)local_30);
        local_30 = local_30 + sVar8;
        goto LAB_00199710;
      }
      if (param_1[0xf] == 1) {
        iVar7 = 0;
        goto LAB_00199872;
      }
      FUN_00193630();
    }
    else {
      iVar7 = FUN_00198d60();
      if (iVar7 == 0) {
        FUN_00193630();
        FUN_001930a0();
        if (local_28 != (void *)0x0) {
          free(local_28);
          local_24 = 0;
          local_20 = 0;
          local_28 = (void *)0x0;
        }
        goto LAB_00199538;
      }
LAB_0019947b:
      if (*local_30 != 0) {
        iVar7 = FUN_00198180();
      }
LAB_00199484:
      if (param_1[10] == 2) {
        FUN_001938b0();
        param_1[10] = 0;
      }
      else if (param_1[0xb] == 2) {
        FUN_001938b0();
        param_1[0xb] = 0;
      }
      else if (param_1[0xf] == 1) {
LAB_00199872:
        FUN_001938b0();
        param_1[0xf] = 0;
      }
      FUN_00193630();
      if (iVar7 != 0) {
        FUN_00193810();
        goto LAB_001994c7;
      }
    }
    if (local_28 != (void *)0x0) {
      free(local_28);
    }
  }
  local_28 = (void *)0x0;
LAB_001994c7:
  param_1[10] = uVar2;
  param_1[0xb] = uVar5;
  param_1[0xc] = uVar4;
  param_1[0xe] = uVar3;
  return local_28;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x1a5c15
SUB ESP,0x3c
MOV EDI,dword ptr [EAX + 0x28]
MOV ESI,dword ptr [EAX + 0x38]
MOV dword ptr [EAX + 0x28],0x0
MOV ECX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x1c],EDX
MOV dword ptr [ESP],EDI
MOV EDI,dword ptr [EAX + 0x2c]
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESP + 0x4],EDI
MOV dword ptr [ESP + 0xc],ESI
MOV dword ptr [EAX + 0x2c],0x0
MOV dword ptr [EAX + 0x38],0x0
MOV dword ptr [EAX + 0x3c],0x0
TEST EDX,EDX
JZ 0x001994c5
CMP byte ptr [EDX],0x0
JZ 0x001994c5
MOV dword ptr [ESP + 0x2c],0x0
MOV dword ptr [ESP + 0x28],0x0
MOV dword ptr [ESP + 0x24],0x0
TEST dword ptr [EAX],0x300
JZ 0x00199538
LEA ECX,[ESP + 0x24]
LEA EDX,[ESP + 0x1c]
CALL 0x00198d60
MOV ESI,EAX
TEST EAX,EAX
JZ 0x001994f0
MOV EDX,dword ptr [ESP + 0x1c]
CMP byte ptr [EDX],0x0
JNZ 0x00199800
CMP dword ptr [EBP + 0x28],0x2
JZ 0x001997e0
CMP dword ptr [EBP + 0x2c],0x2
JZ 0x00199820
CMP dword ptr [EBP + 0x3c],0x1
JZ 0x00199872
MOV EAX,EBP
CALL 0x00193630
TEST ESI,ESI
JNZ 0x001997c0
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x001994c5
SUB ESP,0xc
PUSH EAX
CALL 0x00028420
ADD ESP,0x10
XOR EAX,EAX
MOV EDI,dword ptr [ESP]
MOV ESI,dword ptr [ESP + 0x8]
MOV EBX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [EBP + 0x28],EDI
MOV dword ptr [EBP + 0x2c],ECX
MOV dword ptr [EBP + 0x30],ESI
MOV dword ptr [EBP + 0x38],EBX
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,EBP
CALL 0x00193630
MOV EAX,EBP
CALL 0x001930a0
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x001999f8
SUB ESP,0xc
PUSH EAX
CALL 0x00028420
MOV dword ptr [ESP + 0x38],0x0
MOV EDX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x34],0x0
ADD ESP,0x10
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x20],EDX
CALL 0x000285f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
CMP EAX,0x6
JBE 0x00199670
MOV ECX,0x6
LEA EDI,[EBX + 0xfff2a56d]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x00199770
MOV ECX,0x6
LEA EDI,[EBX + 0xfff2a574]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x00199770
CMP EAX,0xa
JBE 0x00199670
MOV ECX,0x8
LEA EDI,[EBX + 0xfff2a4c2]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00199670
MOVSX EAX,byte ptr [EDX + 0x8]
SUB ESP,0x8
MOV dword ptr [ESP + 0x18],EDX
PUSH EAX
LEA EAX,[EBX + 0x2f4]
PUSH EAX
CALL 0x000281e0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x00199620
MOVZX ECX,byte ptr [EDX + 0xa]
CMP byte ptr [EAX],CL
JNZ 0x00199620
MOVZX EAX,byte ptr [EDX + 0x9]
CMP AL,0x44
JZ 0x00199a78
CMP AL,0x49
JNZ 0x00199620
ADD EDX,0xb
MOV dword ptr [EBP + 0x28],0x2
MOV dword ptr [ESP + 0x1c],EDX
LEA EDX,[ESP + 0x1c]
LEA ECX,[ESP + 0x24]
MOV EAX,EBP
CALL 0x00198d60
MOV EDX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JNZ 0x00199710
LEA ESI,[ESI]
NOP
MOV ESI,EDX
JMP 0x00199631
CMP byte ptr [EAX + 0x1],0x5f
LEA EDX,[EAX + 0x1]
JZ 0x001996b0
SUB ESP,0x8
PUSH 0x5f
PUSH EDX
CALL 0x000281e0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00199628
CMP dword ptr [EBP + 0x28],0x2
JZ 0x00199788
CMP dword ptr [EBP + 0x2c],0x2
JZ 0x00199788
CMP dword ptr [EBP + 0x3c],0x1
JZ 0x00199870
MOV EAX,EBP
CALL 0x00193630
JMP 0x001994b1
TEST dword ptr [EBP],0x3800
JZ 0x00199620
MOV ECX,0x7
LEA EDI,[EBX + 0xfff2a57b]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00199840
ADD EDX,0x7
MOV dword ptr [EBP + 0x2c],0x2
MOV dword ptr [ESP + 0x1c],EDX
JMP 0x00199620
MOV EDI,EAX
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,EDX
MOV dword ptr [ESP + 0x14],ESI
TEST EAX,EAX
JZ 0x00199643
SUB ESP,0x8
LEA EAX,[EBX + 0xfff0c428]
PUSH EAX
PUSH EDI
CALL 0x00028930
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x14]
CMP EAX,0x2
JLE 0x001996ec
LEA EAX,[EDI + EAX*0x1 + -0x2]
MOV dword ptr [ESP + 0x10],EAX
TEST EAX,EAX
JZ 0x00199643
MOV EAX,dword ptr [EBP + 0x30]
TEST EAX,EAX
JZ 0x00199720
MOV EAX,dword ptr [ESP + 0x10]
LEA ECX,[EBX + 0xfff2cf40]
MOVZX ESI,byte ptr [EAX]
MOV EAX,ESI
TEST byte ptr [ECX + ESI*0x2],0x4
JNZ 0x00199710
CMP AL,0x74
JNZ 0x00199643
MOV ESI,0x1
JMP 0x0019947b
MOV ECX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [EBP]
MOVZX EAX,byte ptr [ECX + 0x2]
CMP EDX,ECX
JZ 0x00199998
TEST EDI,0x800
JZ 0x00199743
CMP AL,0x70
JZ 0x001998e8
TEST EDI,0x2000
JNZ 0x00199890
CMP EDX,dword ptr [ESP + 0x10]
JZ 0x00199907
TEST AL,AL
JZ 0x00199643
JMP 0x001998ba
ADD EDX,0x6
MOV dword ptr [EBP + 0x3c],0x1
MOV dword ptr [ESP + 0x1c],EDX
JMP 0x00199620
MOV ESI,dword ptr [ESP + 0x1c]
TEST ESI,ESI
JZ 0x001997a4
CMP byte ptr [ESI],0x0
JZ 0x001997a4
MOV EDX,ESI
LEA EAX,[ESP + 0x24]
CALL 0x001938f0
MOV ESI,dword ptr [ESP + 0x1c]
SUB ESP,0xc
PUSH ESI
CALL 0x000285f0
ADD ESP,0x10
LEA EDX,[ESI + EAX*0x1]
MOV dword ptr [ESP + 0x1c],EDX
JMP 0x00199710
LEA EAX,[ESP + 0x24]
MOV ECX,0x1
LEA EDX,[EBX + 0xfff27cb6]
CALL 0x00193810
MOV EAX,dword ptr [ESP + 0x24]
JMP 0x001994c7
LEA EAX,[ESP + 0x24]
LEA EDX,[EBX + 0xfff2a594]
CALL 0x001938b0
MOV dword ptr [EBP + 0x28],0x0
JMP 0x001994a2
LEA ECX,[ESP + 0x24]
LEA EDX,[ESP + 0x1c]
MOV EAX,EBP
CALL 0x00198180
MOV ESI,EAX
JMP 0x00199484
LEA EAX,[ESP + 0x24]
LEA EDX,[EBX + 0xfff2a5b2]
CALL 0x001938b0
MOV dword ptr [EBP + 0x2c],0x0
JMP 0x001994a2
MOV ECX,0x7
LEA EDI,[EBX + 0xfff2a583]
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00199620
ADD EDX,0x7
MOV dword ptr [EBP + 0x28],0x2
MOV dword ptr [ESP + 0x1c],EDX
JMP 0x00199620
XOR ESI,ESI
LEA EAX,[ESP + 0x24]
LEA EDX,[EBX + 0xfff2a5cf]
CALL 0x001938b0
MOV dword ptr [EBP + 0x3c],0x0
JMP 0x001994a2
CMP AL,0x74
JZ 0x00199a38
CMP AL,0x70
JNZ 0x0019974f
MOV ESI,dword ptr [ESP + 0x10]
MOVZX ECX,byte ptr [ESI + 0x3]
SUB ECX,0x73
CMP CL,0x1
JBE 0x00199a46
CMP EDX,dword ptr [ESP + 0x10]
JZ 0x00199907
LEA ECX,[ESP + 0x24]
LEA EDX,[ESP + 0x1c]
SUB ESP,0xc
MOV EAX,EBP
PUSH dword ptr [ESP + 0x1c]
CALL 0x00198b60
ADD ESP,0x10
MOV ESI,EAX
TEST ESI,ESI
JZ 0x00199484
JMP 0x00199477
MOV ESI,dword ptr [ESP + 0x10]
MOVZX ECX,byte ptr [ESI + 0x3]
CMP CL,0x74
JZ 0x00199a46
TEST EDI,0x2000
JNZ 0x001998a8
CMP EDX,dword ptr [ESP + 0x10]
JNZ 0x001998ba
LEA ECX,[EBX + 0xfff2cf40]
MOVZX EDX,AL
TEST byte ptr [ECX + EDX*0x2],0x4
JNZ 0x00199759
CMP AL,0x74
JZ 0x00199759
AND EDI,0x3c00
JNZ 0x00199a8b
MOV EAX,dword ptr [ESP + 0x10]
CMP byte ptr [EAX],0x5f
JNZ 0x0019994c
MOV EAX,dword ptr [ESP + 0x10]
LEA ESI,[ESI]
NOP
ADD EAX,0x1
CMP byte ptr [EAX],0x5f
JZ 0x00199940
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0x8
LEA EAX,[EBX + 0xfff2a580]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00028760
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00199643
CMP byte ptr [EAX + 0x2],0x0
JZ 0x00199643
LEA ECX,[ESP + 0x24]
LEA EDX,[ESP + 0x1c]
SUB ESP,0xc
PUSH EAX
MOV EAX,EBP
CALL 0x00198b60
ADD ESP,0x10
MOV ESI,EAX
JMP 0x001998d5
LEA ESI,[EBX + 0xfff2cf40]
MOVZX ECX,AL
TEST byte ptr [ESI + ECX*0x2],0x4
JNZ 0x00199a08
CMP AL,0x74
SETZ CL
MOV byte ptr [ESP + 0x14],CL
LEA ECX,[EAX + -0x48]
CMP CL,0x9
JA 0x001999c8
MOV ESI,0x209
SHR ESI,CL
MOV ECX,ESI
AND ECX,0x1
OR byte ptr [ESP + 0x14],CL
MOVZX ECX,byte ptr [ESP + 0x14]
TEST CL,CL
JZ 0x00199733
MOV EDX,dword ptr [ESP + 0x10]
ADD EDX,0x2
AND EDI,0x3c00
JNZ 0x001997b3
ADD dword ptr [EBP + 0x28],0x1
JMP 0x001997b3
MOV EDX,dword ptr [ESP + 0x1c]
JMP 0x00199538
ADD EDX,0x2
TEST EDI,0x1c00
JZ 0x001999dc
LEA EAX,[ESP + 0x1c]
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x001934a0
MOV ESI,dword ptr [ESP + 0x1c]
TEST ESI,ESI
JNZ 0x00199790
JMP 0x001997a4
MOV EAX,dword ptr [ESP + 0x10]
CMP byte ptr [EAX + 0x3],0x6d
JNZ 0x001998ba
SUB ESP,0xc
MOV ESI,0x1
PUSH EDX
CALL 0x000285f0
ADD ESP,0x10
LEA EDX,[ESP + 0x1c]
SUB ESP,0xc
LEA ECX,[ESP + 0x30]
PUSH ECX
MOV ECX,EAX
MOV EAX,EBP
CALL 0x00195c60
MOV EDX,dword ptr [ESP + 0x2c]
ADD ESP,0x10
JMP 0x0019947b
ADD EDX,0xb
MOV dword ptr [EBP + 0x2c],0x2
MOV dword ptr [ESP + 0x1c],EDX
JMP 0x001995fd
MOV ESI,dword ptr [ESP + 0x10]
MOV ECX,0x8
LEA EDI,[EBX + 0xfff2a58b]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0019992e
MOV ESI,dword ptr [ESP + 0x10]
LEA EAX,[ESI + 0x8]
MOVZX EDX,byte ptr [ESI + 0x8]
LEA ESI,[ESP + 0x20]
MOV dword ptr [ESP + 0x20],EAX
LEA ESI,[ESI]
TEST DL,DL
JZ 0x00199af7
MOV EAX,ESI
CALL 0x001934a0
CMP EAX,-0x1
JZ 0x0019992e
ADD EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x20],EAX
MOVZX EDX,byte ptr [EAX]
CMP DL,0x5f
JNZ 0x00199ac0
CMP byte ptr [EAX + 0x1],0x5f
JNZ 0x00199ac4
LEA EDX,[EAX + 0x2]
MOV dword ptr [ESP + 0x20],EDX
MOVZX EDX,byte ptr [EAX + 0x2]
JMP 0x00199ac0
MOV EAX,dword ptr [ESP + 0x1c]
LEA ESI,[ESP + 0x24]
MOV dword ptr [ESP + 0x18],EBP
MOV dword ptr [ESP + 0x14],ESI
LEA EDX,[EAX + 0x8]
MOVZX EAX,byte ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x1c],EDX
TEST AL,AL
JZ 0x00199b86
LEA EDI,[ESP + 0x1c]
MOV EAX,EDI
CALL 0x001934a0
MOV EBP,EAX
CMP EAX,-0x1
JZ 0x00199ba7
MOV ESI,dword ptr [ESP + 0x1c]
SUB ESP,0xc
PUSH ESI
CALL 0x000285f0
ADD ESP,0x10
CMP EBP,EAX
JG 0x00199ba7
TEST EBP,EBP
JNZ 0x00199b73
ADD ESI,EBP
MOV dword ptr [ESP + 0x1c],ESI
MOVZX EAX,byte ptr [ESI]
CMP AL,0x5f
JNZ 0x00199b12
CMP byte ptr [ESI + 0x1],0x5f
JNZ 0x00199b1a
MOV EAX,dword ptr [ESP + 0x14]
LEA EDX,[EBX + 0xfff2b8e1]
CALL 0x001938b0
MOV EAX,dword ptr [ESP + 0x1c]
LEA EDX,[EAX + 0x2]
MOV dword ptr [ESP + 0x1c],EDX
MOVZX EAX,byte ptr [EAX + 0x2]
JMP 0x00199b12
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,ESI
MOV ECX,EBP
CALL 0x00193850
MOV ESI,dword ptr [ESP + 0x1c]
JMP 0x00199b40
LEA EDX,[EBX + 0xfff2a55e]
LEA EAX,[ESP + 0x24]
MOV EBP,dword ptr [ESP + 0x18]
MOV ESI,0x1
CALL 0x001938f0
MOV EDX,dword ptr [ESP + 0x1c]
JMP 0x0019947b
MOV EBP,dword ptr [ESP + 0x18]
JMP 0x0019992e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid * __regparm3 FUN_001993e0(uint *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}\n\n" comment (function_definition "void * __regparm3 FUN_001993e0(uint *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_001993e0(uint *param_1,byte *param_2)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_001993e0(uint *param_1,byte *param_2)" identifier (parameter_list "(uint *param_1,byte *param_2)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "byte *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "byte *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "void *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1993eb;" (assignment_expression "uStack_14 = 0x1993eb" identifier = number_literal) ;) (expression_statement "uVar2 = param_1[10];" (assignment_expression "uVar2 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[0xe];" (assignment_expression "uVar3 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = param_1[0xc];" (assignment_expression "uVar4 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_1[0xb];" (assignment_expression "uVar5 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }" if (parenthesized_expression "((param_2 != (byte *)0x0) && (*param_2 != 0))" ( (binary_expression "(param_2 != (byte *)0x0) && (*param_2 != 0)" (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*param_2 != 0)" ( (binary_expression "*param_2 != 0" (pointer_expression "*param_2" * identifier) != number_literal) ))) )) (compound_statement "{\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }" { (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) (if_statement "if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" if (parenthesized_expression "((*param_1 & 0x300) == 0)" ( (binary_expression "(*param_1 & 0x300) == 0" (parenthesized_expression "(*param_1 & 0x300)" ( (binary_expression "*param_1 & 0x300" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }" { (labeled_statement "LAB_00199538:\n      sVar8 = strlen((char *)param_2);" statement_identifier : (expression_statement "sVar8 = strlen((char *)param_2);" (assignment_expression "sVar8 = strlen((char *)param_2)" identifier = (call_expression "strlen((char *)param_2)" identifier (argument_list "((char *)param_2)" ( (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "bVar13 = sVar8 < 6;" (assignment_expression "bVar13 = sVar8 < 6" identifier = (binary_expression "sVar8 < 6" identifier < number_literal)) ;) (expression_statement "bVar15 = sVar8 == 6;" (assignment_expression "bVar15 = sVar8 == 6" identifier = (binary_expression "sVar8 == 6" identifier == number_literal)) ;) (if_statement "if (sVar8 < 7) goto LAB_00199670;" if (parenthesized_expression "(sVar8 < 7)" ( (binary_expression "sVar8 < 7" identifier < number_literal) )) (goto_statement "goto LAB_00199670;" goto statement_identifier ;)) (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"_imp__";" (assignment_expression "pbVar12 = (byte *)"_imp__"" identifier = (cast_expression "(byte *)"_imp__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_imp__"" " string_content "))) ;) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" { (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__imp_";" (assignment_expression "pbVar12 = (byte *)"__imp_"" identifier = (cast_expression "(byte *)"__imp_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__imp_"" " string_content "))) ;) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);" do (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar9 < *pbVar12;" (assignment_expression "bVar14 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == *pbVar12;" (assignment_expression "bVar13 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00199770;" goto statement_identifier ;)) (expression_statement "bVar13 = sVar8 < 10;" (assignment_expression "bVar13 = sVar8 < 10" identifier = (binary_expression "sVar8 < 10" identifier < number_literal)) ;) (expression_statement "bVar15 = sVar8 == 10;" (assignment_expression "bVar15 = sVar8 == 10" identifier = (binary_expression "sVar8 == 10" identifier == number_literal)) ;) (if_statement "if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" if (parenthesized_expression "(sVar8 < 0xb)" ( (binary_expression "sVar8 < 0xb" identifier < number_literal) )) (compound_statement "{\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" { (labeled_statement "LAB_00199670:\n          bVar13 = false;" statement_identifier : (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;)) (expression_statement "bVar15 = (*param_1 & 0x3800) == 0;" (assignment_expression "bVar15 = (*param_1 & 0x3800) == 0" identifier = (binary_expression "(*param_1 & 0x3800) == 0" (parenthesized_expression "(*param_1 & 0x3800)" ( (binary_expression "*param_1 & 0x3800" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }" { (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__std__";" (assignment_expression "pbVar12 = (byte *)"__std__"" identifier = (cast_expression "(byte *)"__std__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__std__"" " string_content "))) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }" { (expression_statement "param_2 = param_2 + 7;" (assignment_expression "param_2 = param_2 + 7" identifier = (binary_expression "param_2 + 7" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = 2;" (assignment_expression "param_1[0xb] = 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) }) (else_clause "else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" else (compound_statement "{\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" { (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__sti__";" (assignment_expression "pbVar12 = (byte *)"__sti__"" identifier = (cast_expression "(byte *)"__sti__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__sti__"" " string_content "))) ;) (do_statement "do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);" do (compound_statement "{\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar9 < *pbVar12;" (assignment_expression "bVar14 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == *pbVar12;" (assignment_expression "bVar13 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }" { (expression_statement "param_2 = param_2 + 7;" (assignment_expression "param_2 = param_2 + 7" identifier = (binary_expression "param_2 + 7" identifier + number_literal)) ;) (expression_statement "param_1[10] = 2;" (assignment_expression "param_1[10] = 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) })) }))) })) (goto_statement "goto LAB_00199631;" goto statement_identifier ;) })) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"_GLOBAL_";" (assignment_expression "pbVar12 = (byte *)"_GLOBAL_"" identifier = (cast_expression "(byte *)"_GLOBAL_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_"" " string_content "))) ;) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);" do (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;" if (parenthesized_expression "((!bVar13 && !bVar15) != bVar13)" ( (binary_expression "(!bVar13 && !bVar15) != bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00199670;" goto statement_identifier ;)) (expression_statement "pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);" (assignment_expression "pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8])" identifier = (cast_expression "(byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr(&DAT_0033f2f4,(int)(char)param_2[8])" identifier (argument_list "(&DAT_0033f2f4,(int)(char)param_2[8])" ( (pointer_expression "&DAT_0033f2f4" & identifier) , (cast_expression "(int)(char)param_2[8]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_2[8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[8]" identifier [ number_literal ]))) ))))) ;) (if_statement "if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;" if (parenthesized_expression "((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10]))" ( (binary_expression "(pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])" (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pbVar9 != param_2[10])" ( (binary_expression "*pbVar9 != param_2[10]" (pointer_expression "*pbVar9" * identifier) != (subscript_expression "param_2[10]" identifier [ number_literal ])) ))) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (if_statement "if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" if (parenthesized_expression "(param_2[9] == 0x44)" ( (binary_expression "param_2[9] == 0x44" (subscript_expression "param_2[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_1[0xb] = 2;\n        }" { (expression_statement "param_1[0xb] = 2;" (assignment_expression "param_1[0xb] = 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" else (compound_statement "{\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" { (if_statement "if (param_2[9] != 0x49) goto LAB_00199631;" if (parenthesized_expression "(param_2[9] != 0x49)" ( (binary_expression "param_2[9] != 0x49" (subscript_expression "param_2[9]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (expression_statement "param_1[10] = 2;" (assignment_expression "param_1[10] = 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "local_30 = param_2 + 0xb;" (assignment_expression "local_30 = param_2 + 0xb" identifier = (binary_expression "param_2 + 0xb" identifier + number_literal)) ;) (expression_statement "iVar7 = FUN_00198d60();" (assignment_expression "iVar7 = FUN_00198d60()" identifier = (call_expression "FUN_00198d60()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_2 = local_30;" (assignment_expression "param_2 = local_30" identifier = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_00199631;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (labeled_statement "LAB_00199710:\n        iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) (labeled_statement "LAB_00199770:\n      param_2 = param_2 + 6;" statement_identifier : (expression_statement "param_2 = param_2 + 6;" (assignment_expression "param_2 = param_2 + 6" identifier = (binary_expression "param_2 + 6" identifier + number_literal)) ;)) (expression_statement "param_1[0xf] = 1;" (assignment_expression "param_1[0xf] = 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) (labeled_statement "LAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);" statement_identifier : (do_statement "do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);" do (compound_statement "{\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      }" { (expression_statement "local_3c = (byte *)strchr((char *)param_2,0x5f);" (assignment_expression "local_3c = (byte *)strchr((char *)param_2,0x5f)" identifier = (cast_expression "(byte *)strchr((char *)param_2,0x5f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)param_2,0x5f)" identifier (argument_list "((char *)param_2,0x5f)" ( (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (local_3c == (byte *)0x0) goto LAB_00199643;" if (parenthesized_expression "(local_3c == (byte *)0x0)" ( (binary_expression "local_3c == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;)) (expression_statement "param_2 = local_3c + 1;" (assignment_expression "param_2 = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c[1] != 0x5f)" ( (binary_expression "local_3c[1] != 0x5f" (subscript_expression "local_3c[1]" identifier [ number_literal ]) != number_literal) )) ;)) (if_statement "if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" if (parenthesized_expression "((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0))))" ( (binary_expression "(param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))" (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))" ( (parenthesized_expression "(sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0))" ( (comma_expression "sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" (assignment_expression "sVar8 = strspn((char *)local_3c,"_")" identifier = (call_expression "strspn((char *)local_3c,"_")" identifier (argument_list "((char *)local_3c,"_")" ( (cast_expression "(char *)local_3c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_"" " string_content ") )))) , (binary_expression "(int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" (binary_expression "(int)sVar8 < 3" (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) || (parenthesized_expression "(local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" ( (comma_expression "local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0" (assignment_expression "local_3c = local_3c + (sVar8 - 2)" identifier = (binary_expression "local_3c + (sVar8 - 2)" identifier + (parenthesized_expression "(sVar8 - 2)" ( (binary_expression "sVar8 - 2" identifier - number_literal) )))) , (binary_expression "local_3c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (compound_statement "{\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" { (if_statement "if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }" if (parenthesized_expression "(param_1[0xc] != 0)" ( (binary_expression "param_1[0xc] != 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }" { (if_statement "if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;" if (parenthesized_expression "((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))" ( (binary_expression "(((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74)" (parenthesized_expression "(((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0)" ( (binary_expression "((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)*local_3c * 2] & 4)" ( (binary_expression "(&DAT_0026bf40)[(uint)*local_3c * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)*local_3c * 2]" (parenthesized_expression "(&DAT_0026bf40)" ( (pointer_expression "&DAT_0026bf40" & identifier) )) [ (binary_expression "(uint)*local_3c * 2" (binary_expression "(uint)*local_3c" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*local_3c == 0x74)" ( (binary_expression "*local_3c == 0x74" (pointer_expression "*local_3c" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_00199710;" goto statement_identifier ;)) (goto_statement "goto LAB_00199643;" goto statement_identifier ;) })) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = local_3c[2];" (assignment_expression "bVar1 = local_3c[2]" identifier = (subscript_expression "local_3c[2]" identifier [ number_literal ])) ;) (if_statement "if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }" if (parenthesized_expression "(local_30 == local_3c)" ( (binary_expression "local_30 == local_3c" identifier == identifier) )) (compound_statement "{\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }" { (if_statement "if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" if (parenthesized_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0)" ( (binary_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4)" ( (binary_expression "(&DAT_0026bf40)[(uint)bVar1 * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)bVar1 * 2]" (parenthesized_expression "(&DAT_0026bf40)" ( (pointer_expression "&DAT_0026bf40" & identifier) )) [ (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" { (expression_statement "bVar13 = bVar1 == 0x74;" (assignment_expression "bVar13 = bVar1 == 0x74" identifier = (binary_expression "bVar1 == 0x74" identifier == number_literal)) ;) (if_statement "if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" if (parenthesized_expression "((byte)(bVar1 + 0xb8) < 10)" ( (binary_expression "(byte)(bVar1 + 0xb8) < 10" (call_expression "(byte)(bVar1 + 0xb8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + 0xb8)" ( (binary_expression "bVar1 + 0xb8" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" { (expression_statement "bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);" (assignment_expression "bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" identifier = (cast_expression "(bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" ( (binary_expression "bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" identifier | (binary_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" (call_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(0x209 >> (bVar1 + 0xb8 & 0x1f))" ( (binary_expression "0x209 >> (bVar1 + 0xb8 & 0x1f)" number_literal >> (parenthesized_expression "(bVar1 + 0xb8 & 0x1f)" ( (binary_expression "bVar1 + 0xb8 & 0x1f" (binary_expression "bVar1 + 0xb8" identifier + number_literal) & number_literal) ))) ))) & number_literal)) )))) ;) })) (if_statement "if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }" if (parenthesized_expression "(bVar13 != false)" ( (binary_expression "bVar13 != false" identifier != false) )) (compound_statement "{\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }" { (expression_statement "local_30 = local_3c + 2;" (assignment_expression "local_30 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_001999dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00199733;" goto statement_identifier ;) })) (expression_statement "local_30 = local_30 + 2;" (assignment_expression "local_30 = local_30 + 2" identifier = (binary_expression "local_30 + 2" identifier + number_literal)) ;) (if_statement "if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }" if (parenthesized_expression "((uVar6 & 0x1c00) == 0)" ( (binary_expression "(uVar6 & 0x1c00) == 0" (parenthesized_expression "(uVar6 & 0x1c00)" ( (binary_expression "uVar6 & 0x1c00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }" { (labeled_statement "LAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }" statement_identifier : (if_statement "if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }" if (parenthesized_expression "((uVar6 & 0x3c00) == 0)" ( (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" ( (binary_expression "uVar6 & 0x3c00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              param_1[10] = param_1[10] + 1;\n            }" { (expression_statement "param_1[10] = param_1[10] + 1;" (assignment_expression "param_1[10] = param_1[10] + 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (binary_expression "param_1[10] + 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) + number_literal)) ;) }))) (goto_statement "goto LAB_00199710;" goto statement_identifier ;) })) (expression_statement "FUN_001934a0();" (call_expression "FUN_001934a0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto joined_r0x00199a26;" goto statement_identifier ;) })) (labeled_statement "LAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" statement_identifier : (if_statement "if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" if (parenthesized_expression "(((uVar6 & 0x800) == 0) || (bVar1 != 0x70))" ( (binary_expression "((uVar6 & 0x800) == 0) || (bVar1 != 0x70)" (parenthesized_expression "((uVar6 & 0x800) == 0)" ( (binary_expression "(uVar6 & 0x800) == 0" (parenthesized_expression "(uVar6 & 0x800)" ( (binary_expression "uVar6 & 0x800" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar1 != 0x70)" ( (binary_expression "bVar1 != 0x70" identifier != number_literal) ))) )) (compound_statement "{\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }" { (if_statement "if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }" if (parenthesized_expression "((uVar6 & 0x2000) != 0)" ( (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" ( (binary_expression "uVar6 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }" { (if_statement "if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" if (parenthesized_expression "(bVar1 == 0x74)" ( (binary_expression "bVar1 == 0x74" identifier == number_literal) )) (compound_statement "{\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" { (if_statement "if (local_3c[3] == 0x6d) goto LAB_00199a46;" if (parenthesized_expression "(local_3c[3] == 0x6d)" ( (binary_expression "local_3c[3] == 0x6d" (subscript_expression "local_3c[3]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00199a46;" goto statement_identifier ;)) (goto_statement "goto LAB_001998ba;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }" if (parenthesized_expression "(bVar1 == 0x70)" ( (binary_expression "bVar1 == 0x70" identifier == number_literal) )) (compound_statement "{\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }" { (expression_statement "bVar11 = local_3c[3];" (assignment_expression "bVar11 = local_3c[3]" identifier = (subscript_expression "local_3c[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_001998a8;" goto statement_identifier ;) })) })) (if_statement "if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" if (parenthesized_expression "(local_30 != local_3c)" ( (binary_expression "local_30 != local_3c" identifier != identifier) )) (compound_statement "{\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" { (labeled_statement "LAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;" statement_identifier : (if_statement "if (bVar1 == 0) goto LAB_00199643;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;))) (goto_statement "goto LAB_001998ba;" goto statement_identifier ;) })) (labeled_statement "LAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" statement_identifier : (if_statement "if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" if (parenthesized_expression "((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74))" ( (binary_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)" (parenthesized_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0)" ( (binary_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4)" ( (binary_expression "(&DAT_0026bf40)[(uint)bVar1 * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)bVar1 * 2]" (parenthesized_expression "(&DAT_0026bf40)" ( (pointer_expression "&DAT_0026bf40" & identifier) )) [ (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar1 == 0x74)" ( (binary_expression "bVar1 == 0x74" identifier == number_literal) ))) )) (goto_statement "goto LAB_00199759;" goto statement_identifier ;))) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar15 = (uVar6 & 0x3c00) == 0;" (assignment_expression "bVar15 = (uVar6 & 0x3c00) == 0" identifier = (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" ( (binary_expression "uVar6 & 0x3c00" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }" { (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = local_3c;" (assignment_expression "pbVar9 = local_3c" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__vtbl__";" (assignment_expression "pbVar12 = (byte *)"__vtbl__"" identifier = (cast_expression "(byte *)"__vtbl__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__vtbl__"" " string_content "))) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }" if (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" ( (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }" { (expression_statement "bVar16 = local_3c[8];" (assignment_expression "bVar16 = local_3c[8]" identifier = (subscript_expression "local_3c[8]" identifier [ number_literal ])) ;) (expression_statement "local_2c = local_3c + 8;" (assignment_expression "local_2c = local_3c + 8" identifier = (binary_expression "local_3c + 8" identifier + number_literal)) ;) (labeled_statement "LAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" statement_identifier : (if_statement "if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" { (do_statement "do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);" do (compound_statement "{\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                }" { (expression_statement "iVar7 = FUN_001934a0();" (assignment_expression "iVar7 = FUN_001934a0()" identifier = (call_expression "FUN_001934a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == -1) goto LAB_0019992e;" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0019992e;" goto statement_identifier ;)) (expression_statement "pbVar9 = local_2c + iVar7;" (assignment_expression "pbVar9 = local_2c + iVar7" identifier = (binary_expression "local_2c + iVar7" identifier + identifier)) ;) (expression_statement "bVar16 = *pbVar9;" (assignment_expression "bVar16 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "local_2c = pbVar9;" (assignment_expression "local_2c = pbVar9" identifier = identifier) ;) (if_statement "if (bVar16 != 0x5f) goto LAB_00199ac0;" if (parenthesized_expression "(bVar16 != 0x5f)" ( (binary_expression "bVar16 != 0x5f" identifier != number_literal) )) (goto_statement "goto LAB_00199ac0;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar9[1] != 0x5f)" ( (binary_expression "pbVar9[1] != 0x5f" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) != number_literal) )) ;) (expression_statement "local_2c = pbVar9 + 2;" (assignment_expression "local_2c = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "bVar16 = pbVar9[2];" (assignment_expression "bVar16 = pbVar9[2]" identifier = (subscript_expression "pbVar9[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00199ac0;" goto statement_identifier ;) }))) (expression_statement "bVar16 = local_30[8];" (assignment_expression "bVar16 = local_30[8]" identifier = (subscript_expression "local_30[8]" identifier [ number_literal ])) ;) (expression_statement "local_30 = local_30 + 8;" (assignment_expression "local_30 = local_30 + 8" identifier = (binary_expression "local_30 + 8" identifier + number_literal)) ;) (labeled_statement "LAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" statement_identifier : (if_statement "if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" { (do_statement "do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);" do (compound_statement "{\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                }" { (expression_statement "iVar7 = FUN_001934a0();" (assignment_expression "iVar7 = FUN_001934a0()" identifier = (call_expression "FUN_001934a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;" if (parenthesized_expression "((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))" ( (binary_expression "(iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) || (parenthesized_expression "(sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" ( (comma_expression "sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7" (assignment_expression "sVar8 = strlen((char *)local_30)" identifier = (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "(int)sVar8 < iVar7" (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) ))) )) (goto_statement "goto LAB_0019992e;" goto statement_identifier ;)) (if_statement "if (iVar7 != 0) {\n                    FUN_00193850();\n                  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                    FUN_00193850();\n                  }" { (expression_statement "FUN_00193850();" (call_expression "FUN_00193850()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pbVar9 = local_30 + iVar7;" (assignment_expression "pbVar9 = local_30 + iVar7" identifier = (binary_expression "local_30 + iVar7" identifier + identifier)) ;) (expression_statement "bVar16 = *pbVar9;" (assignment_expression "bVar16 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "local_30 = pbVar9;" (assignment_expression "local_30 = pbVar9" identifier = identifier) ;) (if_statement "if (bVar16 != 0x5f) goto LAB_00199b12;" if (parenthesized_expression "(bVar16 != 0x5f)" ( (binary_expression "bVar16 != 0x5f" identifier != number_literal) )) (goto_statement "goto LAB_00199b12;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar9[1] != 0x5f)" ( (binary_expression "pbVar9[1] != 0x5f" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) != number_literal) )) ;) (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = pbVar9 + 2;" (assignment_expression "local_30 = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "bVar16 = pbVar9[2];" (assignment_expression "bVar16 = pbVar9[2]" identifier = (subscript_expression "pbVar9[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00199b12;" goto statement_identifier ;) }))) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "FUN_001938f0();" (call_expression "FUN_001938f0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0019992e:\n          bVar16 = *local_3c;" statement_identifier : (expression_statement "bVar16 = *local_3c;" (assignment_expression "bVar16 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;)) (while_statement "while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }" while (parenthesized_expression "(bVar16 == 0x5f)" ( (binary_expression "bVar16 == 0x5f" identifier == number_literal) )) (compound_statement "{\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }" { (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "bVar16 = *local_3c;" (assignment_expression "bVar16 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) })) (expression_statement "pcVar10 = strstr((char *)local_3c,"__");" (assignment_expression "pcVar10 = strstr((char *)local_3c,"__")" identifier = (call_expression "strstr((char *)local_3c,"__")" identifier (argument_list "((char *)local_3c,"__")" ( (cast_expression "(char *)local_3c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__"" " string_content ") )))) ;) (if_statement "if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;" if (parenthesized_expression "((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0'))" ( (binary_expression "(pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')" (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar10[2] == '\0')" ( (binary_expression "pcVar10[2] == '\0'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;)) (expression_statement "iVar7 = FUN_00198b60(pcVar10);" (assignment_expression "iVar7 = FUN_00198b60(pcVar10)" identifier = (call_expression "FUN_00198b60(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) }) (else_clause "else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" else (compound_statement "{\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" { (expression_statement "bVar11 = local_3c[3];" (assignment_expression "bVar11 = local_3c[3]" identifier = (subscript_expression "local_3c[3]" identifier [ number_literal ])) ;) (if_statement "if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }" if (parenthesized_expression "(bVar11 == 0x74)" ( (binary_expression "bVar11 == 0x74" identifier == number_literal) )) (compound_statement "{\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }" { (labeled_statement "LAB_00199a46:\n            iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (expression_statement "strlen((char *)local_30);" (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "FUN_00195c60(&local_28);" (call_expression "FUN_00195c60(&local_28)" identifier (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) ))) ;) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) (if_statement "if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }" if (parenthesized_expression "((uVar6 & 0x2000) != 0)" ( (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" ( (binary_expression "uVar6 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }" { (labeled_statement "LAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;" statement_identifier : (if_statement "if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;" if (parenthesized_expression "((byte)(bVar11 + 0x8d) < 2)" ( (binary_expression "(byte)(bVar11 + 0x8d) < 2" (call_expression "(byte)(bVar11 + 0x8d)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar11 + 0x8d)" ( (binary_expression "bVar11 + 0x8d" identifier + number_literal) ))) < number_literal) )) (goto_statement "goto LAB_00199a46;" goto statement_identifier ;))) })) (if_statement "if (local_30 == local_3c) goto LAB_00199907;" if (parenthesized_expression "(local_30 == local_3c)" ( (binary_expression "local_30 == local_3c" identifier == identifier) )) (goto_statement "goto LAB_00199907;" goto statement_identifier ;)) (labeled_statement "LAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);" statement_identifier : (expression_statement "iVar7 = FUN_00198b60(local_3c);" (assignment_expression "iVar7 = FUN_00198b60(local_3c)" identifier = (call_expression "FUN_00198b60(local_3c)" identifier (argument_list "(local_3c)" ( identifier )))) ;)) })))) (if_statement "if (iVar7 != 0) goto LAB_0019947b;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;)) (goto_statement "goto LAB_00199484;" goto statement_identifier ;) })) (labeled_statement "LAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" statement_identifier : (if_statement "if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" if (parenthesized_expression "((param_1[10] == 2) || (param_1[0xb] == 2))" ( (binary_expression "(param_1[10] == 2) || (param_1[0xb] == 2)" (parenthesized_expression "(param_1[10] == 2)" ( (binary_expression "param_1[10] == 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(param_1[0xb] == 2)" ( (binary_expression "param_1[0xb] == 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" { (labeled_statement "joined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }" statement_identifier : (if_statement "if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }" if (parenthesized_expression "((local_30 != (byte *)0x0) && (*local_30 != 0))" ( (binary_expression "(local_30 != (byte *)0x0) && (*local_30 != 0)" (parenthesized_expression "(local_30 != (byte *)0x0)" ( (binary_expression "local_30 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_30 != 0)" ( (binary_expression "*local_30 != 0" (pointer_expression "*local_30" * identifier) != number_literal) ))) )) (compound_statement "{\n          FUN_001938f0();\n        }" { (expression_statement "FUN_001938f0();" (call_expression "FUN_001938f0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "sVar8 = strlen((char *)local_30);" (assignment_expression "sVar8 = strlen((char *)local_30)" identifier = (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_30 = local_30 + sVar8;" (assignment_expression "local_30 = local_30 + sVar8" identifier = (binary_expression "local_30 + sVar8" identifier + identifier)) ;) (goto_statement "goto LAB_00199710;" goto statement_identifier ;) }))) (if_statement "if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" if (parenthesized_expression "(param_1[0xf] == 1)" ( (binary_expression "param_1[0xf] == 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00199872;" goto statement_identifier ;) })) (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" else (compound_statement "{\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" { (expression_statement "iVar7 = FUN_00198d60();" (assignment_expression "iVar7 = FUN_00198d60()" identifier = (call_expression "FUN_00198d60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }" { (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001930a0();" (call_expression "FUN_001930a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }" if (parenthesized_expression "(local_28 != (void *)0x0)" ( (binary_expression "local_28 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }" { (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_00199538;" goto statement_identifier ;) })) (labeled_statement "LAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }" statement_identifier : (if_statement "if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }" if (parenthesized_expression "(*local_30 != 0)" ( (binary_expression "*local_30 != 0" (pointer_expression "*local_30" * identifier) != number_literal) )) (compound_statement "{\n        iVar7 = FUN_00198180();\n      }" { (expression_statement "iVar7 = FUN_00198180();" (assignment_expression "iVar7 = FUN_00198180()" identifier = (call_expression "FUN_00198180()" identifier (argument_list "()" ( )))) ;) }))) (labeled_statement "LAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" statement_identifier : (if_statement "if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" if (parenthesized_expression "(param_1[10] == 2)" ( (binary_expression "param_1[10] == 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_001938b0();\n        param_1[10] = 0;\n      }" { (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" else (if_statement "if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" if (parenthesized_expression "(param_1[0xb] == 2)" ( (binary_expression "param_1[0xb] == 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }" { (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" else (if_statement "if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" if (parenthesized_expression "(param_1[0xf] == 1)" ( (binary_expression "param_1[0xf] == 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" { (labeled_statement "LAB_00199872:\n        FUN_001938b0();" statement_identifier : (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) }))))))) (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00193810();\n        goto LAB_001994c7;\n      }" { (expression_statement "FUN_00193810();" (call_expression "FUN_00193810()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001994c7;" goto statement_identifier ;) })) }))) (if_statement "if (local_28 != (void *)0x0) {\n      free(local_28);\n    }" if (parenthesized_expression "(local_28 != (void *)0x0)" ( (binary_expression "local_28 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(local_28);\n    }" { (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) })) })) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001994c7:\n  param_1[10] = uVar2;" statement_identifier : (expression_statement "param_1[10] = uVar2;" (assignment_expression "param_1[10] = uVar2" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_1[0xb] = uVar5;" (assignment_expression "param_1[0xb] = uVar5" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = uVar4;" (assignment_expression "param_1[0xc] = uVar4" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = uVar3;" (assignment_expression "param_1[0xe] = uVar3" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (return_statement "return local_28;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nchar * __regparm3 internal_cplus_demangle(work_stuff *work,char *mangled)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  char *pcVar9;\n  work_stuff *pwVar10;\n  char cVar11;\n  work_stuff *__s;\n  work_stuff *pwVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  char **ppcVar18;\n  string *in_stack_ffffffac;\n  char *in_stack_ffffffb0;\n  work_stuff *local_3c;\n  work_stuff *local_30;\n  char *scan;\n  string decl;\n  \n  bVar17 = 0;\n  iVar2 = work->constructor;\n  iVar3 = work->type_quals;\n  work->constructor = 0;\n  iVar4 = work->static_type;\n  iVar5 = work->destructor;\n  work->destructor = 0;\n  work->type_quals = 0;\n  work->dllimported = 0;\n  if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    decl.e = (char *)0x0;\n    decl.p = (char *)0x0;\n    decl.b = (char *)0x0;\n    local_30 = (work_stuff *)mangled;\n    if ((work->options & 0x300U) == 0) {\nLAB_00199538:\n      __s = local_30;\n      sVar8 = strlen((char *)local_30);\n      bVar14 = sVar8 < 6;\n      bVar16 = sVar8 == 6;\n      pwVar10 = __s;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pwVar12 = __s;\n      pbVar13 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      bVar15 = false;\n      bVar14 = (!bVar14 && !bVar16) == bVar14;\n      if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);\n      work->dllimported = 1;\n      __s = local_30;\n      pwVar10 = local_30;\nLAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');\n      if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }\n      if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      delete_non_B_K_work_stuff(work);\n    }\n    else {\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }\n    if (decl.b != (char *)0x0) {\n      free(decl.b);\n    }\n  }\n  decl.b = (char *)0x0;\nLAB_001994c7:\n  work->constructor = iVar2;\n  work->destructor = iVar5;\n  work->static_type = iVar4;\n  work->type_quals = iVar3;\n  return decl.b;\n}\n\n" comment (function_definition "char * __regparm3 internal_cplus_demangle(work_stuff *work,char *mangled)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  char *pcVar9;\n  work_stuff *pwVar10;\n  char cVar11;\n  work_stuff *__s;\n  work_stuff *pwVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  char **ppcVar18;\n  string *in_stack_ffffffac;\n  char *in_stack_ffffffb0;\n  work_stuff *local_3c;\n  work_stuff *local_30;\n  char *scan;\n  string decl;\n  \n  bVar17 = 0;\n  iVar2 = work->constructor;\n  iVar3 = work->type_quals;\n  work->constructor = 0;\n  iVar4 = work->static_type;\n  iVar5 = work->destructor;\n  work->destructor = 0;\n  work->type_quals = 0;\n  work->dllimported = 0;\n  if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    decl.e = (char *)0x0;\n    decl.p = (char *)0x0;\n    decl.b = (char *)0x0;\n    local_30 = (work_stuff *)mangled;\n    if ((work->options & 0x300U) == 0) {\nLAB_00199538:\n      __s = local_30;\n      sVar8 = strlen((char *)local_30);\n      bVar14 = sVar8 < 6;\n      bVar16 = sVar8 == 6;\n      pwVar10 = __s;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pwVar12 = __s;\n      pbVar13 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      bVar15 = false;\n      bVar14 = (!bVar14 && !bVar16) == bVar14;\n      if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);\n      work->dllimported = 1;\n      __s = local_30;\n      pwVar10 = local_30;\nLAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');\n      if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }\n      if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      delete_non_B_K_work_stuff(work);\n    }\n    else {\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }\n    if (decl.b != (char *)0x0) {\n      free(decl.b);\n    }\n  }\n  decl.b = (char *)0x0;\nLAB_001994c7:\n  work->constructor = iVar2;\n  work->destructor = iVar5;\n  work->static_type = iVar4;\n  work->type_quals = iVar3;\n  return decl.b;\n}" primitive_type (pointer_declarator "* __regparm3 internal_cplus_demangle(work_stuff *work,char *mangled)" * (ERROR "__regparm3" identifier) (function_declarator "internal_cplus_demangle(work_stuff *work,char *mangled)" identifier (parameter_list "(work_stuff *work,char *mangled)" ( (parameter_declaration "work_stuff *work" type_identifier (pointer_declarator "*work" * identifier)) , (parameter_declaration "char *mangled" primitive_type (pointer_declarator "*mangled" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  char *pcVar9;\n  work_stuff *pwVar10;\n  char cVar11;\n  work_stuff *__s;\n  work_stuff *pwVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  char **ppcVar18;\n  string *in_stack_ffffffac;\n  char *in_stack_ffffffb0;\n  work_stuff *local_3c;\n  work_stuff *local_30;\n  char *scan;\n  string decl;\n  \n  bVar17 = 0;\n  iVar2 = work->constructor;\n  iVar3 = work->type_quals;\n  work->constructor = 0;\n  iVar4 = work->static_type;\n  iVar5 = work->destructor;\n  work->destructor = 0;\n  work->type_quals = 0;\n  work->dllimported = 0;\n  if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    decl.e = (char *)0x0;\n    decl.p = (char *)0x0;\n    decl.b = (char *)0x0;\n    local_30 = (work_stuff *)mangled;\n    if ((work->options & 0x300U) == 0) {\nLAB_00199538:\n      __s = local_30;\n      sVar8 = strlen((char *)local_30);\n      bVar14 = sVar8 < 6;\n      bVar16 = sVar8 == 6;\n      pwVar10 = __s;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pwVar12 = __s;\n      pbVar13 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      bVar15 = false;\n      bVar14 = (!bVar14 && !bVar16) == bVar14;\n      if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);\n      work->dllimported = 1;\n      __s = local_30;\n      pwVar10 = local_30;\nLAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');\n      if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }\n      if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      delete_non_B_K_work_stuff(work);\n    }\n    else {\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }\n    if (decl.b != (char *)0x0) {\n      free(decl.b);\n    }\n  }\n  decl.b = (char *)0x0;\nLAB_001994c7:\n  work->constructor = iVar2;\n  work->destructor = iVar5;\n  work->static_type = iVar4;\n  work->type_quals = iVar3;\n  return decl.b;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "work_stuff *pwVar10;" type_identifier (pointer_declarator "*pwVar10" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "work_stuff *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "work_stuff *pwVar12;" type_identifier (pointer_declarator "*pwVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "char **ppcVar18;" primitive_type (pointer_declarator "**ppcVar18" * (pointer_declarator "*ppcVar18" * identifier)) ;) (declaration "string *in_stack_ffffffac;" type_identifier (pointer_declarator "*in_stack_ffffffac" * identifier) ;) (declaration "char *in_stack_ffffffb0;" primitive_type (pointer_declarator "*in_stack_ffffffb0" * identifier) ;) (declaration "work_stuff *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "work_stuff *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "char *scan;" primitive_type (pointer_declarator "*scan" * identifier) ;) (declaration "string decl;" type_identifier identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = work->constructor;" (assignment_expression "iVar2 = work->constructor" identifier = (field_expression "work->constructor" identifier -> field_identifier)) ;) (expression_statement "iVar3 = work->type_quals;" (assignment_expression "iVar3 = work->type_quals" identifier = (field_expression "work->type_quals" identifier -> field_identifier)) ;) (expression_statement "work->constructor = 0;" (assignment_expression "work->constructor = 0" (field_expression "work->constructor" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = work->static_type;" (assignment_expression "iVar4 = work->static_type" identifier = (field_expression "work->static_type" identifier -> field_identifier)) ;) (expression_statement "iVar5 = work->destructor;" (assignment_expression "iVar5 = work->destructor" identifier = (field_expression "work->destructor" identifier -> field_identifier)) ;) (expression_statement "work->destructor = 0;" (assignment_expression "work->destructor = 0" (field_expression "work->destructor" identifier -> field_identifier) = number_literal) ;) (expression_statement "work->type_quals = 0;" (assignment_expression "work->type_quals = 0" (field_expression "work->type_quals" identifier -> field_identifier) = number_literal) ;) (expression_statement "work->dllimported = 0;" (assignment_expression "work->dllimported = 0" (field_expression "work->dllimported" identifier -> field_identifier) = number_literal) ;) (if_statement "if ((mangled != (char *)0x0) && (*mangled != '\0')) {\n    decl.e = (char *)0x0;\n    decl.p = (char *)0x0;\n    decl.b = (char *)0x0;\n    local_30 = (work_stuff *)mangled;\n    if ((work->options & 0x300U) == 0) {\nLAB_00199538:\n      __s = local_30;\n      sVar8 = strlen((char *)local_30);\n      bVar14 = sVar8 < 6;\n      bVar16 = sVar8 == 6;\n      pwVar10 = __s;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pwVar12 = __s;\n      pbVar13 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      bVar15 = false;\n      bVar14 = (!bVar14 && !bVar16) == bVar14;\n      if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);\n      work->dllimported = 1;\n      __s = local_30;\n      pwVar10 = local_30;\nLAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');\n      if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }\n      if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      delete_non_B_K_work_stuff(work);\n    }\n    else {\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }\n    if (decl.b != (char *)0x0) {\n      free(decl.b);\n    }\n  }" if (parenthesized_expression "((mangled != (char *)0x0) && (*mangled != '\0'))" ( (binary_expression "(mangled != (char *)0x0) && (*mangled != '\0')" (parenthesized_expression "(mangled != (char *)0x0)" ( (binary_expression "mangled != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*mangled != '\0')" ( (binary_expression "*mangled != '\0'" (pointer_expression "*mangled" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    decl.e = (char *)0x0;\n    decl.p = (char *)0x0;\n    decl.b = (char *)0x0;\n    local_30 = (work_stuff *)mangled;\n    if ((work->options & 0x300U) == 0) {\nLAB_00199538:\n      __s = local_30;\n      sVar8 = strlen((char *)local_30);\n      bVar14 = sVar8 < 6;\n      bVar16 = sVar8 == 6;\n      pwVar10 = __s;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pwVar12 = __s;\n      pbVar13 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      bVar15 = false;\n      bVar14 = (!bVar14 && !bVar16) == bVar14;\n      if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);\n      work->dllimported = 1;\n      __s = local_30;\n      pwVar10 = local_30;\nLAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');\n      if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }\n      if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      delete_non_B_K_work_stuff(work);\n    }\n    else {\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }\n    if (decl.b != (char *)0x0) {\n      free(decl.b);\n    }\n  }" { (expression_statement "decl.e = (char *)0x0;" (assignment_expression "decl.e = (char *)0x0" (field_expression "decl.e" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "decl.p = (char *)0x0;" (assignment_expression "decl.p = (char *)0x0" (field_expression "decl.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "decl.b = (char *)0x0;" (assignment_expression "decl.b = (char *)0x0" (field_expression "decl.b" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = (work_stuff *)mangled;" (assignment_expression "local_30 = (work_stuff *)mangled" identifier = (cast_expression "(work_stuff *)mangled" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((work->options & 0x300U) == 0) {\nLAB_00199538:\n      __s = local_30;\n      sVar8 = strlen((char *)local_30);\n      bVar14 = sVar8 < 6;\n      bVar16 = sVar8 == 6;\n      pwVar10 = __s;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pwVar12 = __s;\n      pbVar13 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      bVar15 = false;\n      bVar14 = (!bVar14 && !bVar16) == bVar14;\n      if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);\n      work->dllimported = 1;\n      __s = local_30;\n      pwVar10 = local_30;\nLAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');\n      if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }\n      if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      delete_non_B_K_work_stuff(work);\n    }\n    else {\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }" if (parenthesized_expression "((work->options & 0x300U) == 0)" ( (binary_expression "(work->options & 0x300U) == 0" (parenthesized_expression "(work->options & 0x300U)" ( (binary_expression "work->options & 0x300U" (field_expression "work->options" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00199538:\n      __s = local_30;\n      sVar8 = strlen((char *)local_30);\n      bVar14 = sVar8 < 6;\n      bVar16 = sVar8 == 6;\n      pwVar10 = __s;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pwVar12 = __s;\n      pbVar13 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      bVar15 = false;\n      bVar14 = (!bVar14 && !bVar16) == bVar14;\n      if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);\n      work->dllimported = 1;\n      __s = local_30;\n      pwVar10 = local_30;\nLAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');\n      if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }\n      if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      delete_non_B_K_work_stuff(work);\n    }" { (labeled_statement "LAB_00199538:\n      __s = local_30;" statement_identifier : (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" identifier = identifier) ;)) (expression_statement "sVar8 = strlen((char *)local_30);" (assignment_expression "sVar8 = strlen((char *)local_30)" identifier = (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "bVar14 = sVar8 < 6;" (assignment_expression "bVar14 = sVar8 < 6" identifier = (binary_expression "sVar8 < 6" identifier < number_literal)) ;) (expression_statement "bVar16 = sVar8 == 6;" (assignment_expression "bVar16 = sVar8 == 6" identifier = (binary_expression "sVar8 == 6" identifier == number_literal)) ;) (expression_statement "pwVar10 = __s;" (assignment_expression "pwVar10 = __s" identifier = identifier) ;) (if_statement "if (sVar8 < 7) goto LAB_00199670;" if (parenthesized_expression "(sVar8 < 7)" ( (binary_expression "sVar8 < 7" identifier < number_literal) )) (goto_statement "goto LAB_00199670;" goto statement_identifier ;)) (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "pwVar12 = __s;" (assignment_expression "pwVar12 = __s" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)"_imp__";" (assignment_expression "pbVar13 = (byte *)"_imp__"" identifier = (cast_expression "(byte *)"_imp__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_imp__"" " string_content "))) ;) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar1 = (byte)pwVar12->options;\n        bVar14 = bVar1 < *pbVar13;\n        bVar16 = bVar1 == *pbVar13;\n        pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar1 = (byte)pwVar12->options;" (assignment_expression "bVar1 = (byte)pwVar12->options" identifier = (cast_expression "(byte)pwVar12->options" ( (type_descriptor "byte" type_identifier) ) (field_expression "pwVar12->options" identifier -> field_identifier))) ;) (expression_statement "bVar14 = bVar1 < *pbVar13;" (assignment_expression "bVar14 = bVar1 < *pbVar13" identifier = (binary_expression "bVar1 < *pbVar13" identifier < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = bVar1 == *pbVar13;" (assignment_expression "bVar16 = bVar1 == *pbVar13" identifier = (binary_expression "bVar1 == *pbVar13" identifier == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);" (assignment_expression "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" identifier = (cast_expression "(work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (binary_expression "(int)pwVar12 + (uint)bVar17 * -2 + 1" (binary_expression "(int)pwVar12 + (uint)bVar17 * -2" (cast_expression "(int)pwVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar14 = (!bVar14 && !bVar16) == bVar14;" (assignment_expression "bVar14 = (!bVar14 && !bVar16) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar14) {\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (compound_statement "{\n        iVar7 = 6;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;\n        bVar14 = sVar8 < 10;\n        bVar16 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pwVar12 = __s;\n        pbVar13 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;\n        pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);\n        if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;\n        cVar11 = *(char *)((int)&__s->ktypevec + 1);\n        if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }\n        local_30 = (work_stuff *)((int)&__s->ktypevec + 3);\n        in_stack_ffffffb0 = (char *)0x19960c;\n        iVar7 = gnu_special(work,(char **)&local_30,&decl);\n        pwVar10 = local_30;\n        __s = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" { (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "pwVar12 = __s;" (assignment_expression "pwVar12 = __s" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)"__imp_";" (assignment_expression "pbVar13 = (byte *)"__imp_"" identifier = (cast_expression "(byte *)"__imp_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__imp_"" " string_content "))) ;) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);" do (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar15 = bVar1 < *pbVar13;\n          bVar14 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar1 = (byte)pwVar12->options;" (assignment_expression "bVar1 = (byte)pwVar12->options" identifier = (cast_expression "(byte)pwVar12->options" ( (type_descriptor "byte" type_identifier) ) (field_expression "pwVar12->options" identifier -> field_identifier))) ;) (expression_statement "bVar15 = bVar1 < *pbVar13;" (assignment_expression "bVar15 = bVar1 < *pbVar13" identifier = (binary_expression "bVar1 < *pbVar13" identifier < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar14 = bVar1 == *pbVar13;" (assignment_expression "bVar14 = bVar1 == *pbVar13" identifier = (binary_expression "bVar1 == *pbVar13" identifier == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);" (assignment_expression "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" identifier = (cast_expression "(work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (binary_expression "(int)pwVar12 + (uint)bVar17 * -2 + 1" (binary_expression "(int)pwVar12 + (uint)bVar17 * -2" (cast_expression "(int)pwVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar14) == bVar15) goto LAB_00199770;" if (parenthesized_expression "((!bVar15 && !bVar14) == bVar15)" ( (binary_expression "(!bVar15 && !bVar14) == bVar15" (parenthesized_expression "(!bVar15 && !bVar14)" ( (binary_expression "!bVar15 && !bVar14" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00199770;" goto statement_identifier ;)) (expression_statement "bVar14 = sVar8 < 10;" (assignment_expression "bVar14 = sVar8 < 10" identifier = (binary_expression "sVar8 < 10" identifier < number_literal)) ;) (expression_statement "bVar16 = sVar8 == 10;" (assignment_expression "bVar16 = sVar8 == 10" identifier = (binary_expression "sVar8 == 10" identifier == number_literal)) ;) (if_statement "if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" if (parenthesized_expression "(sVar8 < 0xb)" ( (binary_expression "sVar8 < 0xb" identifier < number_literal) )) (compound_statement "{\nLAB_00199670:\n          bVar14 = false;\n          bVar16 = (work->options & 0x3800U) == 0;\n          if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" { (labeled_statement "LAB_00199670:\n          bVar14 = false;" statement_identifier : (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;)) (expression_statement "bVar16 = (work->options & 0x3800U) == 0;" (assignment_expression "bVar16 = (work->options & 0x3800U) == 0" identifier = (binary_expression "(work->options & 0x3800U) == 0" (parenthesized_expression "(work->options & 0x3800U)" ( (binary_expression "work->options & 0x3800U" (field_expression "work->options" identifier -> field_identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar16) {\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n            iVar7 = 7;\n            pwVar12 = __s;\n            pbVar13 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            bVar15 = false;\n            bVar14 = (!bVar14 && !bVar16) == bVar14;\n            if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }\n          }" { (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pwVar12 = __s;" (assignment_expression "pwVar12 = __s" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)"__std__";" (assignment_expression "pbVar13 = (byte *)"__std__"" identifier = (cast_expression "(byte *)"__std__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__std__"" " string_content "))) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar12->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar1 = (byte)pwVar12->options;" (assignment_expression "bVar1 = (byte)pwVar12->options" identifier = (cast_expression "(byte)pwVar12->options" ( (type_descriptor "byte" type_identifier) ) (field_expression "pwVar12->options" identifier -> field_identifier))) ;) (expression_statement "bVar14 = bVar1 < *pbVar13;" (assignment_expression "bVar14 = bVar1 < *pbVar13" identifier = (binary_expression "bVar1 < *pbVar13" identifier < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = bVar1 == *pbVar13;" (assignment_expression "bVar16 = bVar1 == *pbVar13" identifier = (binary_expression "bVar1 == *pbVar13" identifier == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);" (assignment_expression "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" identifier = (cast_expression "(work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (binary_expression "(int)pwVar12 + (uint)bVar17 * -2 + 1" (binary_expression "(int)pwVar12 + (uint)bVar17 * -2" (cast_expression "(int)pwVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar14 = (!bVar14 && !bVar16) == bVar14;" (assignment_expression "bVar14 = (!bVar14 && !bVar16) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar14) {\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }\n            else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n              local_30 = (work_stuff *)((int)&__s->typevec + 3);\n              work->destructor = 2;\n              __s = local_30;\n              pwVar10 = local_30;\n            }" { (expression_statement "local_30 = (work_stuff *)((int)&__s->typevec + 3);" (assignment_expression "local_30 = (work_stuff *)((int)&__s->typevec + 3)" identifier = (cast_expression "(work_stuff *)((int)&__s->typevec + 3)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__s->typevec + 3)" ( (binary_expression "(int)&__s->typevec + 3" (cast_expression "(int)&__s->typevec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__s->typevec" & (field_expression "__s->typevec" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "work->destructor = 2;" (assignment_expression "work->destructor = 2" (field_expression "work->destructor" identifier -> field_identifier) = number_literal) ;) (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" identifier = identifier) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) }) (else_clause "else {\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }" else (compound_statement "{\n              iVar7 = 7;\n              pwVar12 = __s;\n              pbVar13 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);\n              if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }\n            }" { (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pwVar12 = __s;" (assignment_expression "pwVar12 = __s" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)"__sti__";" (assignment_expression "pbVar13 = (byte *)"__sti__"" identifier = (cast_expression "(byte *)"__sti__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__sti__"" " string_content "))) ;) (do_statement "do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              } while (bVar14);" do (compound_statement "{\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar1 = (byte)pwVar12->options;\n                bVar15 = bVar1 < *pbVar13;\n                bVar14 = bVar1 == *pbVar13;\n                pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n                pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n              }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar1 = (byte)pwVar12->options;" (assignment_expression "bVar1 = (byte)pwVar12->options" identifier = (cast_expression "(byte)pwVar12->options" ( (type_descriptor "byte" type_identifier) ) (field_expression "pwVar12->options" identifier -> field_identifier))) ;) (expression_statement "bVar15 = bVar1 < *pbVar13;" (assignment_expression "bVar15 = bVar1 < *pbVar13" identifier = (binary_expression "bVar1 < *pbVar13" identifier < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar14 = bVar1 == *pbVar13;" (assignment_expression "bVar14 = bVar1 == *pbVar13" identifier = (binary_expression "bVar1 == *pbVar13" identifier == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);" (assignment_expression "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" identifier = (cast_expression "(work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (binary_expression "(int)pwVar12 + (uint)bVar17 * -2 + 1" (binary_expression "(int)pwVar12 + (uint)bVar17 * -2" (cast_expression "(int)pwVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar14) == bVar15) {\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }" if (parenthesized_expression "((!bVar15 && !bVar14) == bVar15)" ( (binary_expression "(!bVar15 && !bVar14) == bVar15" (parenthesized_expression "(!bVar15 && !bVar14)" ( (binary_expression "!bVar15 && !bVar14" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (compound_statement "{\n                local_30 = (work_stuff *)((int)&__s->typevec + 3);\n                work->constructor = 2;\n                __s = local_30;\n                pwVar10 = local_30;\n              }" { (expression_statement "local_30 = (work_stuff *)((int)&__s->typevec + 3);" (assignment_expression "local_30 = (work_stuff *)((int)&__s->typevec + 3)" identifier = (cast_expression "(work_stuff *)((int)&__s->typevec + 3)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__s->typevec + 3)" ( (binary_expression "(int)&__s->typevec + 3" (cast_expression "(int)&__s->typevec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__s->typevec" & (field_expression "__s->typevec" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "work->constructor = 2;" (assignment_expression "work->constructor = 2" (field_expression "work->constructor" identifier -> field_identifier) = number_literal) ;) (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" identifier = identifier) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) })) }))) })) (goto_statement "goto LAB_00199631;" goto statement_identifier ;) })) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pwVar12 = __s;" (assignment_expression "pwVar12 = __s" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)"_GLOBAL_";" (assignment_expression "pbVar13 = (byte *)"_GLOBAL_"" identifier = (cast_expression "(byte *)"_GLOBAL_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_"" " string_content "))) ;) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar1 = (byte)pwVar12->options;\n          bVar14 = bVar1 < *pbVar13;\n          bVar16 = bVar1 == *pbVar13;\n          pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar1 = (byte)pwVar12->options;" (assignment_expression "bVar1 = (byte)pwVar12->options" identifier = (cast_expression "(byte)pwVar12->options" ( (type_descriptor "byte" type_identifier) ) (field_expression "pwVar12->options" identifier -> field_identifier))) ;) (expression_statement "bVar14 = bVar1 < *pbVar13;" (assignment_expression "bVar14 = bVar1 < *pbVar13" identifier = (binary_expression "bVar1 < *pbVar13" identifier < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = bVar1 == *pbVar13;" (assignment_expression "bVar16 = bVar1 == *pbVar13" identifier = (binary_expression "bVar1 == *pbVar13" identifier == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1);" (assignment_expression "pwVar12 = (work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" identifier = (cast_expression "(work_stuff *)((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar12 + (uint)bVar17 * -2 + 1)" ( (binary_expression "(int)pwVar12 + (uint)bVar17 * -2 + 1" (binary_expression "(int)pwVar12 + (uint)bVar17 * -2" (cast_expression "(int)pwVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar16) != bVar14) goto LAB_00199670;" if (parenthesized_expression "((!bVar14 && !bVar16) != bVar14)" ( (binary_expression "(!bVar14 && !bVar16) != bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00199670;" goto statement_identifier ;)) (expression_statement "pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec);" (assignment_expression "pcVar9 = strchr(cplus_markers,(int)*(char *)&__s->ktypevec)" identifier = (call_expression "strchr(cplus_markers,(int)*(char *)&__s->ktypevec)" identifier (argument_list "(cplus_markers,(int)*(char *)&__s->ktypevec)" ( identifier , (cast_expression "(int)*(char *)&__s->ktypevec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)&__s->ktypevec" * (cast_expression "(char *)&__s->ktypevec" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&__s->ktypevec" & (field_expression "__s->ktypevec" identifier -> field_identifier))))) )))) ;) (if_statement "if ((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))\n        goto LAB_00199631;" if (parenthesized_expression "((pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2)))" ( (binary_expression "(pcVar9 == (char *)0x0) || (*pcVar9 != *(char *)((int)&__s->ktypevec + 2))" (parenthesized_expression "(pcVar9 == (char *)0x0)" ( (binary_expression "pcVar9 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pcVar9 != *(char *)((int)&__s->ktypevec + 2))" ( (binary_expression "*pcVar9 != *(char *)((int)&__s->ktypevec + 2)" (pointer_expression "*pcVar9" * identifier) != (pointer_expression "*(char *)((int)&__s->ktypevec + 2)" * (cast_expression "(char *)((int)&__s->ktypevec + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__s->ktypevec + 2)" ( (binary_expression "(int)&__s->ktypevec + 2" (cast_expression "(int)&__s->ktypevec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__s->ktypevec" & (field_expression "__s->ktypevec" identifier -> field_identifier))) + number_literal) ))))) ))) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (expression_statement "cVar11 = *(char *)((int)&__s->ktypevec + 1);" (assignment_expression "cVar11 = *(char *)((int)&__s->ktypevec + 1)" identifier = (pointer_expression "*(char *)((int)&__s->ktypevec + 1)" * (cast_expression "(char *)((int)&__s->ktypevec + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__s->ktypevec + 1)" ( (binary_expression "(int)&__s->ktypevec + 1" (cast_expression "(int)&__s->ktypevec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__s->ktypevec" & (field_expression "__s->ktypevec" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (cVar11 == 'D') {\n          work->destructor = 2;\n        }\n        else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }" if (parenthesized_expression "(cVar11 == 'D')" ( (binary_expression "cVar11 == 'D'" identifier == (char_literal "'D'" ' character ')) )) (compound_statement "{\n          work->destructor = 2;\n        }" { (expression_statement "work->destructor = 2;" (assignment_expression "work->destructor = 2" (field_expression "work->destructor" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }" else (compound_statement "{\n          if (cVar11 != 'I') goto LAB_00199631;\n          work->constructor = 2;\n        }" { (if_statement "if (cVar11 != 'I') goto LAB_00199631;" if (parenthesized_expression "(cVar11 != 'I')" ( (binary_expression "cVar11 != 'I'" identifier != (char_literal "'I'" ' character ')) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (expression_statement "work->constructor = 2;" (assignment_expression "work->constructor = 2" (field_expression "work->constructor" identifier -> field_identifier) = number_literal) ;) }))) (expression_statement "local_30 = (work_stuff *)((int)&__s->ktypevec + 3);" (assignment_expression "local_30 = (work_stuff *)((int)&__s->ktypevec + 3)" identifier = (cast_expression "(work_stuff *)((int)&__s->ktypevec + 3)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__s->ktypevec + 3)" ( (binary_expression "(int)&__s->ktypevec + 3" (cast_expression "(int)&__s->ktypevec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__s->ktypevec" & (field_expression "__s->ktypevec" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "in_stack_ffffffb0 = (char *)0x19960c;" (assignment_expression "in_stack_ffffffb0 = (char *)0x19960c" identifier = (cast_expression "(char *)0x19960c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = gnu_special(work,(char **)&local_30,&decl);" (assignment_expression "iVar7 = gnu_special(work,(char **)&local_30,&decl)" identifier = (call_expression "gnu_special(work,(char **)&local_30,&decl)" identifier (argument_list "(work,(char **)&local_30,&decl)" ( identifier , (cast_expression "(char **)&local_30" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_30" & identifier)) , (pointer_expression "&decl" & identifier) )))) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" identifier = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_00199631;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (labeled_statement "LAB_00199710:\n        iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) (labeled_statement "LAB_00199770:\n      local_30 = (work_stuff *)((int)&__s->typevec + 2);" statement_identifier : (expression_statement "local_30 = (work_stuff *)((int)&__s->typevec + 2);" (assignment_expression "local_30 = (work_stuff *)((int)&__s->typevec + 2)" identifier = (cast_expression "(work_stuff *)((int)&__s->typevec + 2)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__s->typevec + 2)" ( (binary_expression "(int)&__s->typevec + 2" (cast_expression "(int)&__s->typevec" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__s->typevec" & (field_expression "__s->typevec" identifier -> field_identifier))) + number_literal) )))) ;)) (expression_statement "work->dllimported = 1;" (assignment_expression "work->dllimported = 1" (field_expression "work->dllimported" identifier -> field_identifier) = number_literal) ;) (expression_statement "__s = local_30;" (assignment_expression "__s = local_30" identifier = identifier) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (labeled_statement "LAB_00199631:\n      do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');" statement_identifier : (do_statement "do {\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      } while (*(char *)((int)&local_3c->options + 1) != '_');" do (compound_statement "{\n        local_3c = (work_stuff *)strchr((char *)__s,0x5f);\n        if (local_3c == (work_stuff *)0x0) goto LAB_00199643;\n        __s = (work_stuff *)((int)&local_3c->options + 1);\n      }" { (expression_statement "local_3c = (work_stuff *)strchr((char *)__s,0x5f);" (assignment_expression "local_3c = (work_stuff *)strchr((char *)__s,0x5f)" identifier = (cast_expression "(work_stuff *)strchr((char *)__s,0x5f)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)__s,0x5f)" identifier (argument_list "((char *)__s,0x5f)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (local_3c == (work_stuff *)0x0) goto LAB_00199643;" if (parenthesized_expression "(local_3c == (work_stuff *)0x0)" ( (binary_expression "local_3c == (work_stuff *)0x0" identifier == (cast_expression "(work_stuff *)0x0" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;)) (expression_statement "__s = (work_stuff *)((int)&local_3c->options + 1);" (assignment_expression "__s = (work_stuff *)((int)&local_3c->options + 1)" identifier = (cast_expression "(work_stuff *)((int)&local_3c->options + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 1)" ( (binary_expression "(int)&local_3c->options + 1" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(*(char *)((int)&local_3c->options + 1) != '_')" ( (binary_expression "*(char *)((int)&local_3c->options + 1) != '_'" (pointer_expression "*(char *)((int)&local_3c->options + 1)" * (cast_expression "(char *)((int)&local_3c->options + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 1)" ( (binary_expression "(int)&local_3c->options + 1" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) )))) != (char_literal "'_'" ' character ')) )) ;)) (if_statement "if (__s != (work_stuff *)0x0) {\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" if (parenthesized_expression "(__s != (work_stuff *)0x0)" ( (binary_expression "__s != (work_stuff *)0x0" identifier != (cast_expression "(work_stuff *)0x0" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppcVar18 = (char **)0x24b428;\n        sVar8 = strspn((char *)local_3c,"_");\n        if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;\n        if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = work->options;\n        bVar1 = *(byte *)((int)&local_3c->options + 2);\n        if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        pwVar10 = local_30;\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" { (expression_statement "ppcVar18 = (char **)0x24b428;" (assignment_expression "ppcVar18 = (char **)0x24b428" identifier = (cast_expression "(char **)0x24b428" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "sVar8 = strspn((char *)local_3c,"_");" (assignment_expression "sVar8 = strspn((char *)local_3c,"_")" identifier = (call_expression "strspn((char *)local_3c,"_")" identifier (argument_list "((char *)local_3c,"_")" ( (cast_expression "(char *)local_3c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_"" " string_content ") )))) ;) (if_statement "if ((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))\n        goto LAB_00199643;" if (parenthesized_expression "((2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0))" ( (binary_expression "(2 < (int)sVar8) &&\n           (local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0)" (parenthesized_expression "(2 < (int)sVar8)" ( (binary_expression "2 < (int)sVar8" number_literal < (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0)" ( (comma_expression "local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2)), local_3c == (work_stuff *)0x0" (assignment_expression "local_3c = (work_stuff *)((int)local_3c + (sVar8 - 2))" identifier = (cast_expression "(work_stuff *)((int)local_3c + (sVar8 - 2))" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + (sVar8 - 2))" ( (binary_expression "(int)local_3c + (sVar8 - 2)" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(sVar8 - 2)" ( (binary_expression "sVar8 - 2" identifier - number_literal) ))) )))) , (binary_expression "local_3c == (work_stuff *)0x0" identifier == (cast_expression "(work_stuff *)0x0" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;)) (if_statement "if (work->static_type != 0) {\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }" if (parenthesized_expression "(work->static_type != 0)" ( (binary_expression "work->static_type != 0" (field_expression "work->static_type" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          bVar17 = (byte)local_3c->options;\n          if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;\n          goto LAB_00199643;\n        }" { (expression_statement "bVar17 = (byte)local_3c->options;" (assignment_expression "bVar17 = (byte)local_3c->options" identifier = (cast_expression "(byte)local_3c->options" ( (type_descriptor "byte" type_identifier) ) (field_expression "local_3c->options" identifier -> field_identifier))) ;) (if_statement "if (((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)) goto LAB_00199710;" if (parenthesized_expression "(((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74))" ( (binary_expression "((_sch_istable[bVar17] & 4) != 0) || (bVar17 == 0x74)" (parenthesized_expression "((_sch_istable[bVar17] & 4) != 0)" ( (binary_expression "(_sch_istable[bVar17] & 4) != 0" (parenthesized_expression "(_sch_istable[bVar17] & 4)" ( (binary_expression "_sch_istable[bVar17] & 4" (subscript_expression "_sch_istable[bVar17]" identifier [ identifier ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar17 == 0x74)" ( (binary_expression "bVar17 == 0x74" identifier == number_literal) ))) )) (goto_statement "goto LAB_00199710;" goto statement_identifier ;)) (goto_statement "goto LAB_00199643;" goto statement_identifier ;) })) (expression_statement "uVar6 = work->options;" (assignment_expression "uVar6 = work->options" identifier = (field_expression "work->options" identifier -> field_identifier)) ;) (expression_statement "bVar1 = *(byte *)((int)&local_3c->options + 2);" (assignment_expression "bVar1 = *(byte *)((int)&local_3c->options + 2)" identifier = (pointer_expression "*(byte *)((int)&local_3c->options + 2)" * (cast_expression "(byte *)((int)&local_3c->options + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 2)" ( (binary_expression "(int)&local_3c->options + 2" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (pwVar10 == local_3c) {\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }" if (parenthesized_expression "(pwVar10 == local_3c)" ( (binary_expression "pwVar10 == local_3c" identifier == identifier) )) (compound_statement "{\n          if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }\n          local_30 = pwVar10;\n          consume_count((char **)&local_30);\n          goto joined_r0x00199a26;\n        }" { (if_statement "if ((_sch_istable[bVar1] & 4) == 0) {\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" if (parenthesized_expression "((_sch_istable[bVar1] & 4) == 0)" ( (binary_expression "(_sch_istable[bVar1] & 4) == 0" (parenthesized_expression "(_sch_istable[bVar1] & 4)" ( (binary_expression "_sch_istable[bVar1] & 4" (subscript_expression "_sch_istable[bVar1]" identifier [ identifier ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            bVar14 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" { (expression_statement "bVar14 = bVar1 == 0x74;" (assignment_expression "bVar14 = bVar1 == 0x74" identifier = (binary_expression "bVar1 == 0x74" identifier == number_literal)) ;) (if_statement "if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" if (parenthesized_expression "((byte)(bVar1 + 0xb8) < 10)" ( (binary_expression "(byte)(bVar1 + 0xb8) < 10" (call_expression "(byte)(bVar1 + 0xb8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + 0xb8)" ( (binary_expression "bVar1 + 0xb8" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n              bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" { (expression_statement "bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);" (assignment_expression "bVar14 = (bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" identifier = (cast_expression "(bool)(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" ( (binary_expression "bVar14 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" identifier | (binary_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" (call_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(0x209 >> (bVar1 + 0xb8 & 0x1f))" ( (binary_expression "0x209 >> (bVar1 + 0xb8 & 0x1f)" number_literal >> (parenthesized_expression "(bVar1 + 0xb8 & 0x1f)" ( (binary_expression "bVar1 + 0xb8 & 0x1f" (binary_expression "bVar1 + 0xb8" identifier + number_literal) & number_literal) ))) ))) & number_literal)) )))) ;) })) (if_statement "if (bVar14 != false) {\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }" if (parenthesized_expression "(bVar14 != false)" ( (binary_expression "bVar14 != false" identifier != false) )) (compound_statement "{\n              pwVar10 = (work_stuff *)((int)&local_3c->options + 2);\n              goto LAB_001999dc;\n            }" { (expression_statement "pwVar10 = (work_stuff *)((int)&local_3c->options + 2);" (assignment_expression "pwVar10 = (work_stuff *)((int)&local_3c->options + 2)" identifier = (cast_expression "(work_stuff *)((int)&local_3c->options + 2)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 2)" ( (binary_expression "(int)&local_3c->options + 2" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) )))) ;) (goto_statement "goto LAB_001999dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00199733;" goto statement_identifier ;) })) (expression_statement "pwVar10 = (work_stuff *)((int)&pwVar10->options + 2);" (assignment_expression "pwVar10 = (work_stuff *)((int)&pwVar10->options + 2)" identifier = (cast_expression "(work_stuff *)((int)&pwVar10->options + 2)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pwVar10->options + 2)" ( (binary_expression "(int)&pwVar10->options + 2" (cast_expression "(int)&pwVar10->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pwVar10->options" & (field_expression "pwVar10->options" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }" if (parenthesized_expression "((uVar6 & 0x1c00) == 0)" ( (binary_expression "(uVar6 & 0x1c00) == 0" (parenthesized_expression "(uVar6 & 0x1c00)" ( (binary_expression "uVar6 & 0x1c00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001999dc:\n            local_30 = pwVar10;\n            if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }\n            goto LAB_00199710;\n          }" { (labeled_statement "LAB_001999dc:\n            local_30 = pwVar10;" statement_identifier : (expression_statement "local_30 = pwVar10;" (assignment_expression "local_30 = pwVar10" identifier = identifier) ;)) (if_statement "if ((uVar6 & 0x3c00) == 0) {\n              work->constructor = work->constructor + 1;\n            }" if (parenthesized_expression "((uVar6 & 0x3c00) == 0)" ( (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" ( (binary_expression "uVar6 & 0x3c00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              work->constructor = work->constructor + 1;\n            }" { (expression_statement "work->constructor = work->constructor + 1;" (assignment_expression "work->constructor = work->constructor + 1" (field_expression "work->constructor" identifier -> field_identifier) = (binary_expression "work->constructor + 1" (field_expression "work->constructor" identifier -> field_identifier) + number_literal)) ;) })) (goto_statement "goto LAB_00199710;" goto statement_identifier ;) })) (expression_statement "local_30 = pwVar10;" (assignment_expression "local_30 = pwVar10" identifier = identifier) ;) (expression_statement "consume_count((char **)&local_30);" (call_expression "consume_count((char **)&local_30)" identifier (argument_list "((char **)&local_30)" ( (cast_expression "(char **)&local_30" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_30" & identifier)) ))) ;) (goto_statement "goto joined_r0x00199a26;" goto statement_identifier ;) })) (labeled_statement "LAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }" statement_identifier : (if_statement "if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }\n        else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }" if (parenthesized_expression "(((uVar6 & 0x800) == 0) || (bVar1 != 0x70))" ( (binary_expression "((uVar6 & 0x800) == 0) || (bVar1 != 0x70)" (parenthesized_expression "((uVar6 & 0x800) == 0)" ( (binary_expression "(uVar6 & 0x800) == 0" (parenthesized_expression "(uVar6 & 0x800)" ( (binary_expression "uVar6 & 0x800" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar1 != 0x70)" ( (binary_expression "bVar1 != 0x70" identifier != number_literal) ))) )) (compound_statement "{\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }\n          if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar14 = false;\n          bVar16 = (uVar6 & 0x3c00) == 0;\n          if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          cVar11 = (char)local_3c->options;\n          while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }\n          ppcVar18 = (char **)0x269580;\n          pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");\n          if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;\n          iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }" { (if_statement "if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }" if (parenthesized_expression "((uVar6 & 0x2000) != 0)" ( (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" ( (binary_expression "uVar6 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }\n          }" { (if_statement "if (bVar1 == 0x74) {\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" if (parenthesized_expression "(bVar1 == 0x74)" ( (binary_expression "bVar1 == 0x74" identifier == number_literal) )) (compound_statement "{\n              if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" { (if_statement "if (*(char *)((int)&local_3c->options + 3) == 'm') goto LAB_00199a46;" if (parenthesized_expression "(*(char *)((int)&local_3c->options + 3) == 'm')" ( (binary_expression "*(char *)((int)&local_3c->options + 3) == 'm'" (pointer_expression "*(char *)((int)&local_3c->options + 3)" * (cast_expression "(char *)((int)&local_3c->options + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 3)" ( (binary_expression "(int)&local_3c->options + 3" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) )))) == (char_literal "'m'" ' character ')) )) (goto_statement "goto LAB_00199a46;" goto statement_identifier ;)) (goto_statement "goto LAB_001998ba;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x70) {\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }" if (parenthesized_expression "(bVar1 == 0x70)" ( (binary_expression "bVar1 == 0x70" identifier == number_literal) )) (compound_statement "{\n              cVar11 = *(char *)((int)&local_3c->options + 3);\n              goto LAB_001998a8;\n            }" { (expression_statement "cVar11 = *(char *)((int)&local_3c->options + 3);" (assignment_expression "cVar11 = *(char *)((int)&local_3c->options + 3)" identifier = (pointer_expression "*(char *)((int)&local_3c->options + 3)" * (cast_expression "(char *)((int)&local_3c->options + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 3)" ( (binary_expression "(int)&local_3c->options + 3" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) ))))) ;) (goto_statement "goto LAB_001998a8;" goto statement_identifier ;) })) })) (if_statement "if (pwVar10 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" if (parenthesized_expression "(pwVar10 != local_3c)" ( (binary_expression "pwVar10 != local_3c" identifier != identifier) )) (compound_statement "{\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" { (labeled_statement "LAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;" statement_identifier : (if_statement "if (bVar1 == 0) goto LAB_00199643;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;))) (goto_statement "goto LAB_001998ba;" goto statement_identifier ;) })) (labeled_statement "LAB_00199907:\n          if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" statement_identifier : (if_statement "if (((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" if (parenthesized_expression "(((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74))" ( (binary_expression "((_sch_istable[bVar1] & 4) != 0) || (bVar1 == 0x74)" (parenthesized_expression "((_sch_istable[bVar1] & 4) != 0)" ( (binary_expression "(_sch_istable[bVar1] & 4) != 0" (parenthesized_expression "(_sch_istable[bVar1] & 4)" ( (binary_expression "_sch_istable[bVar1] & 4" (subscript_expression "_sch_istable[bVar1]" identifier [ identifier ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar1 == 0x74)" ( (binary_expression "bVar1 == 0x74" identifier == number_literal) ))) )) (goto_statement "goto LAB_00199759;" goto statement_identifier ;))) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar16 = (uVar6 & 0x3c00) == 0;" (assignment_expression "bVar16 = (uVar6 & 0x3c00) == 0" identifier = (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" ( (binary_expression "uVar6 & 0x3c00" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar16) {\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n            iVar7 = 8;\n            pwVar10 = local_3c;\n            pbVar13 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);\n            if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }\n          }" { (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pwVar10 = local_3c;" (assignment_expression "pwVar10 = local_3c" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)"__vtbl__";" (assignment_expression "pbVar13 = (byte *)"__vtbl__"" identifier = (cast_expression "(byte *)"__vtbl__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__vtbl__"" " string_content "))) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            } while (bVar16);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar1 = (byte)pwVar10->options;\n              bVar14 = bVar1 < *pbVar13;\n              bVar16 = bVar1 == *pbVar13;\n              pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);\n              pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar1 = (byte)pwVar10->options;" (assignment_expression "bVar1 = (byte)pwVar10->options" identifier = (cast_expression "(byte)pwVar10->options" ( (type_descriptor "byte" type_identifier) ) (field_expression "pwVar10->options" identifier -> field_identifier))) ;) (expression_statement "bVar14 = bVar1 < *pbVar13;" (assignment_expression "bVar14 = bVar1 < *pbVar13" identifier = (binary_expression "bVar1 < *pbVar13" identifier < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = bVar1 == *pbVar13;" (assignment_expression "bVar16 = bVar1 == *pbVar13" identifier = (binary_expression "bVar1 == *pbVar13" identifier == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1);" (assignment_expression "pwVar10 = (work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1)" identifier = (cast_expression "(work_stuff *)((int)pwVar10 + (uint)bVar17 * -2 + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pwVar10 + (uint)bVar17 * -2 + 1)" ( (binary_expression "(int)pwVar10 + (uint)bVar17 * -2 + 1" (binary_expression "(int)pwVar10 + (uint)bVar17 * -2" (cast_expression "(int)pwVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar16) == bVar14) {\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }" if (parenthesized_expression "((!bVar14 && !bVar16) == bVar14)" ( (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n              cVar11 = *(char *)&local_3c->ktypevec;\n              scan = (char *)&local_3c->ktypevec;\nLAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }\n              cVar11 = *(char *)&local_30->ktypevec;\n              local_30 = (work_stuff *)&local_30->ktypevec;\nLAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              string_append(&decl," virtual table");\n              pwVar10 = local_30;\n              goto LAB_0019947b;\n            }" { (expression_statement "cVar11 = *(char *)&local_3c->ktypevec;" (assignment_expression "cVar11 = *(char *)&local_3c->ktypevec" identifier = (pointer_expression "*(char *)&local_3c->ktypevec" * (cast_expression "(char *)&local_3c->ktypevec" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_3c->ktypevec" & (field_expression "local_3c->ktypevec" identifier -> field_identifier))))) ;) (expression_statement "scan = (char *)&local_3c->ktypevec;" (assignment_expression "scan = (char *)&local_3c->ktypevec" identifier = (cast_expression "(char *)&local_3c->ktypevec" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_3c->ktypevec" & (field_expression "local_3c->ktypevec" identifier -> field_identifier)))) ;) (labeled_statement "LAB_00199ac0:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }" statement_identifier : (if_statement "if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');\n                scan = pcVar9 + 2;\n                cVar11 = pcVar9[2];\n                goto LAB_00199ac0;\n              }" { (do_statement "do {\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                } while (pcVar9[1] != '_');" do (compound_statement "{\n                  in_stack_ffffffb0 = (char *)0x199acb;\n                  iVar7 = consume_count(&scan);\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pcVar9 = scan + iVar7;\n                  cVar11 = *pcVar9;\n                  scan = pcVar9;\n                  if (cVar11 != '_') goto LAB_00199ac0;\n                }" { (expression_statement "in_stack_ffffffb0 = (char *)0x199acb;" (assignment_expression "in_stack_ffffffb0 = (char *)0x199acb" identifier = (cast_expression "(char *)0x199acb" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = consume_count(&scan);" (assignment_expression "iVar7 = consume_count(&scan)" identifier = (call_expression "consume_count(&scan)" identifier (argument_list "(&scan)" ( (pointer_expression "&scan" & identifier) )))) ;) (if_statement "if (iVar7 == -1) goto LAB_0019992e;" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0019992e;" goto statement_identifier ;)) (expression_statement "pcVar9 = scan + iVar7;" (assignment_expression "pcVar9 = scan + iVar7" identifier = (binary_expression "scan + iVar7" identifier + identifier)) ;) (expression_statement "cVar11 = *pcVar9;" (assignment_expression "cVar11 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "scan = pcVar9;" (assignment_expression "scan = pcVar9" identifier = identifier) ;) (if_statement "if (cVar11 != '_') goto LAB_00199ac0;" if (parenthesized_expression "(cVar11 != '_')" ( (binary_expression "cVar11 != '_'" identifier != (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_00199ac0;" goto statement_identifier ;)) }) while (parenthesized_expression "(pcVar9[1] != '_')" ( (binary_expression "pcVar9[1] != '_'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) != (char_literal "'_'" ' character ')) )) ;) (expression_statement "scan = pcVar9 + 2;" (assignment_expression "scan = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) (expression_statement "cVar11 = pcVar9[2];" (assignment_expression "cVar11 = pcVar9[2]" identifier = (subscript_expression "pcVar9[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00199ac0;" goto statement_identifier ;) }))) (expression_statement "cVar11 = *(char *)&local_30->ktypevec;" (assignment_expression "cVar11 = *(char *)&local_30->ktypevec" identifier = (pointer_expression "*(char *)&local_30->ktypevec" * (cast_expression "(char *)&local_30->ktypevec" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30->ktypevec" & (field_expression "local_30->ktypevec" identifier -> field_identifier))))) ;) (expression_statement "local_30 = (work_stuff *)&local_30->ktypevec;" (assignment_expression "local_30 = (work_stuff *)&local_30->ktypevec" identifier = (cast_expression "(work_stuff *)&local_30->ktypevec" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30->ktypevec" & (field_expression "local_30->ktypevec" identifier -> field_identifier)))) ;) (labeled_statement "LAB_00199b12:\n              if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }" statement_identifier : (if_statement "if (cVar11 != '\0') {\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');\n                string_prepend(&decl,"::");\n                cVar11 = *(char *)((int)&local_30->options + 2);\n                local_30 = (work_stuff *)((int)&local_30->options + 2);\n                goto LAB_00199b12;\n              }" { (do_statement "do {\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                } while (*(char *)((int)&local_30->options + 1) != '_');" do (compound_statement "{\n                  in_stack_ffffffb0 = (char *)0x199b21;\n                  iVar7 = consume_count((char **)&local_30);\n                  pwVar10 = local_30;\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }\n                  local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);\n                  cVar11 = *(char *)&local_30->options;\n                  if (cVar11 != '_') goto LAB_00199b12;\n                }" { (expression_statement "in_stack_ffffffb0 = (char *)0x199b21;" (assignment_expression "in_stack_ffffffb0 = (char *)0x199b21" identifier = (cast_expression "(char *)0x199b21" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = consume_count((char **)&local_30);" (assignment_expression "iVar7 = consume_count((char **)&local_30)" identifier = (call_expression "consume_count((char **)&local_30)" identifier (argument_list "((char **)&local_30)" ( (cast_expression "(char **)&local_30" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_30" & identifier)) )))) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (if_statement "if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;" if (parenthesized_expression "((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))" ( (binary_expression "(iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) || (parenthesized_expression "(sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" ( (comma_expression "sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7" (assignment_expression "sVar8 = strlen((char *)local_30)" identifier = (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "(int)sVar8 < iVar7" (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) ))) )) (goto_statement "goto LAB_0019992e;" goto statement_identifier ;)) (if_statement "if (iVar7 != 0) {\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                    string_prependn(&decl,(char *)pwVar10,iVar7);\n                    pwVar10 = local_30;\n                  }" { (expression_statement "string_prependn(&decl,(char *)pwVar10,iVar7);" (call_expression "string_prependn(&decl,(char *)pwVar10,iVar7)" identifier (argument_list "(&decl,(char *)pwVar10,iVar7)" ( (pointer_expression "&decl" & identifier) , (cast_expression "(char *)pwVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) })) (expression_statement "local_30 = (work_stuff *)((int)&pwVar10->options + iVar7);" (assignment_expression "local_30 = (work_stuff *)((int)&pwVar10->options + iVar7)" identifier = (cast_expression "(work_stuff *)((int)&pwVar10->options + iVar7)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pwVar10->options + iVar7)" ( (binary_expression "(int)&pwVar10->options + iVar7" (cast_expression "(int)&pwVar10->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pwVar10->options" & (field_expression "pwVar10->options" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "cVar11 = *(char *)&local_30->options;" (assignment_expression "cVar11 = *(char *)&local_30->options" identifier = (pointer_expression "*(char *)&local_30->options" * (cast_expression "(char *)&local_30->options" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_30->options" & (field_expression "local_30->options" identifier -> field_identifier))))) ;) (if_statement "if (cVar11 != '_') goto LAB_00199b12;" if (parenthesized_expression "(cVar11 != '_')" ( (binary_expression "cVar11 != '_'" identifier != (char_literal "'_'" ' character ')) )) (goto_statement "goto LAB_00199b12;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(char *)((int)&local_30->options + 1) != '_')" ( (binary_expression "*(char *)((int)&local_30->options + 1) != '_'" (pointer_expression "*(char *)((int)&local_30->options + 1)" * (cast_expression "(char *)((int)&local_30->options + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30->options + 1)" ( (binary_expression "(int)&local_30->options + 1" (cast_expression "(int)&local_30->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30->options" & (field_expression "local_30->options" identifier -> field_identifier))) + number_literal) )))) != (char_literal "'_'" ' character ')) )) ;) (expression_statement "string_prepend(&decl,"::");" (call_expression "string_prepend(&decl,"::")" identifier (argument_list "(&decl,"::")" ( (pointer_expression "&decl" & identifier) , (string_literal ""::"" " string_content ") ))) ;) (expression_statement "cVar11 = *(char *)((int)&local_30->options + 2);" (assignment_expression "cVar11 = *(char *)((int)&local_30->options + 2)" identifier = (pointer_expression "*(char *)((int)&local_30->options + 2)" * (cast_expression "(char *)((int)&local_30->options + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30->options + 2)" ( (binary_expression "(int)&local_30->options + 2" (cast_expression "(int)&local_30->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30->options" & (field_expression "local_30->options" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "local_30 = (work_stuff *)((int)&local_30->options + 2);" (assignment_expression "local_30 = (work_stuff *)((int)&local_30->options + 2)" identifier = (cast_expression "(work_stuff *)((int)&local_30->options + 2)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_30->options + 2)" ( (binary_expression "(int)&local_30->options + 2" (cast_expression "(int)&local_30->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_30->options" & (field_expression "local_30->options" identifier -> field_identifier))) + number_literal) )))) ;) (goto_statement "goto LAB_00199b12;" goto statement_identifier ;) }))) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "string_append(&decl," virtual table");" (call_expression "string_append(&decl," virtual table")" identifier (argument_list "(&decl," virtual table")" ( (pointer_expression "&decl" & identifier) , (string_literal "" virtual table"" " string_content ") ))) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0019992e:\n          cVar11 = (char)local_3c->options;" statement_identifier : (expression_statement "cVar11 = (char)local_3c->options;" (assignment_expression "cVar11 = (char)local_3c->options" identifier = (cast_expression "(char)local_3c->options" ( (type_descriptor "char" primitive_type) ) (field_expression "local_3c->options" identifier -> field_identifier))) ;)) (while_statement "while (cVar11 == '_') {\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }" while (parenthesized_expression "(cVar11 == '_')" ( (binary_expression "cVar11 == '_'" identifier == (char_literal "'_'" ' character ')) )) (compound_statement "{\n            local_3c = (work_stuff *)((int)&local_3c->options + 1);\n            cVar11 = (char)local_3c->options;\n          }" { (expression_statement "local_3c = (work_stuff *)((int)&local_3c->options + 1);" (assignment_expression "local_3c = (work_stuff *)((int)&local_3c->options + 1)" identifier = (cast_expression "(work_stuff *)((int)&local_3c->options + 1)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 1)" ( (binary_expression "(int)&local_3c->options + 1" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "cVar11 = (char)local_3c->options;" (assignment_expression "cVar11 = (char)local_3c->options" identifier = (cast_expression "(char)local_3c->options" ( (type_descriptor "char" primitive_type) ) (field_expression "local_3c->options" identifier -> field_identifier))) ;) })) (expression_statement "ppcVar18 = (char **)0x269580;" (assignment_expression "ppcVar18 = (char **)0x269580" identifier = (cast_expression "(char **)0x269580" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pwVar10 = (work_stuff *)strstr((char *)local_3c,"__");" (assignment_expression "pwVar10 = (work_stuff *)strstr((char *)local_3c,"__")" identifier = (cast_expression "(work_stuff *)strstr((char *)local_3c,"__")" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strstr((char *)local_3c,"__")" identifier (argument_list "((char *)local_3c,"__")" ( (cast_expression "(char *)local_3c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__"" " string_content ") ))))) ;) (if_statement "if ((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))\n          goto LAB_00199643;" if (parenthesized_expression "((pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0'))" ( (binary_expression "(pwVar10 == (work_stuff *)0x0) || (*(char *)((int)&pwVar10->options + 2) == '\0')" (parenthesized_expression "(pwVar10 == (work_stuff *)0x0)" ( (binary_expression "pwVar10 == (work_stuff *)0x0" identifier == (cast_expression "(work_stuff *)0x0" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(char *)((int)&pwVar10->options + 2) == '\0')" ( (binary_expression "*(char *)((int)&pwVar10->options + 2) == '\0'" (pointer_expression "*(char *)((int)&pwVar10->options + 2)" * (cast_expression "(char *)((int)&pwVar10->options + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pwVar10->options + 2)" ( (binary_expression "(int)&pwVar10->options + 2" (cast_expression "(int)&pwVar10->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pwVar10->options" & (field_expression "pwVar10->options" identifier -> field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;)) (expression_statement "iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);" (assignment_expression "iVar7 = iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0)" identifier = (call_expression "iterate_demangle_function(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0)" identifier (argument_list "(pwVar10,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0)" ( identifier , identifier , identifier , identifier )))) ;) }) (else_clause "else {\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }" else (compound_statement "{\n          cVar11 = *(char *)((int)&local_3c->options + 3);\n          if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }\n          if (pwVar10 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);\n        }" { (expression_statement "cVar11 = *(char *)((int)&local_3c->options + 3);" (assignment_expression "cVar11 = *(char *)((int)&local_3c->options + 3)" identifier = (pointer_expression "*(char *)((int)&local_3c->options + 3)" * (cast_expression "(char *)((int)&local_3c->options + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_3c->options + 3)" ( (binary_expression "(int)&local_3c->options + 3" (cast_expression "(int)&local_3c->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_3c->options" & (field_expression "local_3c->options" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (cVar11 == 't') {\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }" if (parenthesized_expression "(cVar11 == 't')" ( (binary_expression "cVar11 == 't'" identifier == (char_literal "'t'" ' character ')) )) (compound_statement "{\nLAB_00199a46:\n            iVar7 = 1;\n            sVar8 = strlen((char *)pwVar10);\n            demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);\n            pwVar10 = local_30;\n            goto LAB_0019947b;\n          }" { (labeled_statement "LAB_00199a46:\n            iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (expression_statement "sVar8 = strlen((char *)pwVar10);" (assignment_expression "sVar8 = strlen((char *)pwVar10)" identifier = (call_expression "strlen((char *)pwVar10)" identifier (argument_list "((char *)pwVar10)" ( (cast_expression "(char *)pwVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl);" (call_expression "demangle_arm_hp_template(work,(char **)&local_30,sVar8,&decl)" identifier (argument_list "(work,(char **)&local_30,sVar8,&decl)" ( identifier , (cast_expression "(char **)&local_30" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_30" & identifier)) , identifier , (pointer_expression "&decl" & identifier) ))) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) (if_statement "if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }" if (parenthesized_expression "((uVar6 & 0x2000) != 0)" ( (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" ( (binary_expression "uVar6 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;\n          }" { (labeled_statement "LAB_001998a8:\n            if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;" statement_identifier : (if_statement "if ((byte)(cVar11 + 0x8dU) < 2) goto LAB_00199a46;" if (parenthesized_expression "((byte)(cVar11 + 0x8dU) < 2)" ( (binary_expression "(byte)(cVar11 + 0x8dU) < 2" (call_expression "(byte)(cVar11 + 0x8dU)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar11 + 0x8dU)" ( (binary_expression "cVar11 + 0x8dU" identifier + number_literal) ))) < number_literal) )) (goto_statement "goto LAB_00199a46;" goto statement_identifier ;))) })) (if_statement "if (pwVar10 == local_3c) goto LAB_00199907;" if (parenthesized_expression "(pwVar10 == local_3c)" ( (binary_expression "pwVar10 == local_3c" identifier == identifier) )) (goto_statement "goto LAB_00199907;" goto statement_identifier ;)) (labeled_statement "LAB_001998ba:\n          iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);" statement_identifier : (expression_statement "iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);" (assignment_expression "iVar7 = iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0)" identifier = (call_expression "iterate_demangle_function(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0)" identifier (argument_list "(local_3c,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0)" ( identifier , identifier , identifier , identifier )))) ;)) })))) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (if_statement "if (iVar7 != 0) goto LAB_0019947b;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;)) (goto_statement "goto LAB_00199484;" goto statement_identifier ;) })) (labeled_statement "LAB_00199643:\n      if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }" statement_identifier : (if_statement "if ((work->constructor == 2) || (work->destructor == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }" if (parenthesized_expression "((work->constructor == 2) || (work->destructor == 2))" ( (binary_expression "(work->constructor == 2) || (work->destructor == 2)" (parenthesized_expression "(work->constructor == 2)" ( (binary_expression "work->constructor == 2" (field_expression "work->constructor" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(work->destructor == 2)" ( (binary_expression "work->destructor == 2" (field_expression "work->destructor" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\njoined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }\n        pwVar10 = local_30;\n        sVar8 = strlen((char *)local_30);\n        pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);\n        local_30 = pwVar10;\n        goto LAB_00199710;\n      }" { (labeled_statement "joined_r0x00199a26:\n        if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }" statement_identifier : (if_statement "if ((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')) {\n          string_append(&decl,(char *)local_30);\n        }" if (parenthesized_expression "((local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0'))" ( (binary_expression "(local_30 != (work_stuff *)0x0) && ((char)local_30->options != '\0')" (parenthesized_expression "(local_30 != (work_stuff *)0x0)" ( (binary_expression "local_30 != (work_stuff *)0x0" identifier != (cast_expression "(work_stuff *)0x0" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((char)local_30->options != '\0')" ( (binary_expression "(char)local_30->options != '\0'" (cast_expression "(char)local_30->options" ( (type_descriptor "char" primitive_type) ) (field_expression "local_30->options" identifier -> field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          string_append(&decl,(char *)local_30);\n        }" { (expression_statement "string_append(&decl,(char *)local_30);" (call_expression "string_append(&decl,(char *)local_30)" identifier (argument_list "(&decl,(char *)local_30)" ( (pointer_expression "&decl" & identifier) , (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (expression_statement "sVar8 = strlen((char *)local_30);" (assignment_expression "sVar8 = strlen((char *)local_30)" identifier = (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8);" (assignment_expression "pwVar10 = (work_stuff *)((int)&pwVar10->options + sVar8)" identifier = (cast_expression "(work_stuff *)((int)&pwVar10->options + sVar8)" ( (type_descriptor "work_stuff *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pwVar10->options + sVar8)" ( (binary_expression "(int)&pwVar10->options + sVar8" (cast_expression "(int)&pwVar10->options" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pwVar10->options" & (field_expression "pwVar10->options" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "local_30 = pwVar10;" (assignment_expression "local_30 = pwVar10" identifier = identifier) ;) (goto_statement "goto LAB_00199710;" goto statement_identifier ;) }))) (if_statement "if (work->dllimported == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" if (parenthesized_expression "(work->dllimported == 1)" ( (binary_expression "work->dllimported == 1" (field_expression "work->dllimported" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00199872;" goto statement_identifier ;) })) (expression_statement "delete_non_B_K_work_stuff(work);" (call_expression "delete_non_B_K_work_stuff(work)" identifier (argument_list "(work)" ( identifier ))) ;) }) (else_clause "else {\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }" else (compound_statement "{\n      iVar7 = gnu_special(work,(char **)&local_30,&decl);\n      pwVar10 = local_30;\n      if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }\nLAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }\n      delete_non_B_K_work_stuff(work);\n      if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }\n    }" { (expression_statement "iVar7 = gnu_special(work,(char **)&local_30,&decl);" (assignment_expression "iVar7 = gnu_special(work,(char **)&local_30,&decl)" identifier = (call_expression "gnu_special(work,(char **)&local_30,&decl)" identifier (argument_list "(work,(char **)&local_30,&decl)" ( identifier , (cast_expression "(char **)&local_30" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_30" & identifier)) , (pointer_expression "&decl" & identifier) )))) ;) (expression_statement "pwVar10 = local_30;" (assignment_expression "pwVar10 = local_30" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        delete_non_B_K_work_stuff(work);\n        in_stack_ffffffb0 = (char *)0x1994fe;\n        squangle_mop_up(work);\n        if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }\n        goto LAB_00199538;\n      }" { (expression_statement "delete_non_B_K_work_stuff(work);" (call_expression "delete_non_B_K_work_stuff(work)" identifier (argument_list "(work)" ( identifier ))) ;) (expression_statement "in_stack_ffffffb0 = (char *)0x1994fe;" (assignment_expression "in_stack_ffffffb0 = (char *)0x1994fe" identifier = (cast_expression "(char *)0x1994fe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "squangle_mop_up(work);" (call_expression "squangle_mop_up(work)" identifier (argument_list "(work)" ( identifier ))) ;) (if_statement "if (decl.b != (char *)0x0) {\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }" if (parenthesized_expression "(decl.b != (char *)0x0)" ( (binary_expression "decl.b != (char *)0x0" (field_expression "decl.b" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(decl.b);\n          decl.p = (char *)0x0;\n          decl.e = (char *)0x0;\n          decl.b = (char *)0x0;\n        }" { (expression_statement "free(decl.b);" (call_expression "free(decl.b)" identifier (argument_list "(decl.b)" ( (field_expression "decl.b" identifier . field_identifier) ))) ;) (expression_statement "decl.p = (char *)0x0;" (assignment_expression "decl.p = (char *)0x0" (field_expression "decl.p" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "decl.e = (char *)0x0;" (assignment_expression "decl.e = (char *)0x0" (field_expression "decl.e" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "decl.b = (char *)0x0;" (assignment_expression "decl.b = (char *)0x0" (field_expression "decl.b" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_00199538;" goto statement_identifier ;) })) (labeled_statement "LAB_0019947b:\n      if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }" statement_identifier : (if_statement "if ((char)pwVar10->options != '\0') {\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }" if (parenthesized_expression "((char)pwVar10->options != '\0')" ( (binary_expression "(char)pwVar10->options != '\0'" (cast_expression "(char)pwVar10->options" ( (type_descriptor "char" primitive_type) ) (field_expression "pwVar10->options" identifier -> field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar7 = demangle_signature(work,(char **)&local_30,&decl);\n      }" { (expression_statement "iVar7 = demangle_signature(work,(char **)&local_30,&decl);" (assignment_expression "iVar7 = demangle_signature(work,(char **)&local_30,&decl)" identifier = (call_expression "demangle_signature(work,(char **)&local_30,&decl)" identifier (argument_list "(work,(char **)&local_30,&decl)" ( identifier , (cast_expression "(char **)&local_30" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_30" & identifier)) , (pointer_expression "&decl" & identifier) )))) ;) }))) (labeled_statement "LAB_00199484:\n      if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }" statement_identifier : (if_statement "if (work->constructor == 2) {\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }\n      else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }" if (parenthesized_expression "(work->constructor == 2)" ( (binary_expression "work->constructor == 2" (field_expression "work->constructor" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        string_prepend(&decl,"global constructors keyed to ");\n        work->constructor = 0;\n      }" { (expression_statement "string_prepend(&decl,"global constructors keyed to ");" (call_expression "string_prepend(&decl,"global constructors keyed to ")" identifier (argument_list "(&decl,"global constructors keyed to ")" ( (pointer_expression "&decl" & identifier) , (string_literal ""global constructors keyed to "" " string_content ") ))) ;) (expression_statement "work->constructor = 0;" (assignment_expression "work->constructor = 0" (field_expression "work->constructor" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }" else (if_statement "if (work->destructor == 2) {\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }\n      else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }" if (parenthesized_expression "(work->destructor == 2)" ( (binary_expression "work->destructor == 2" (field_expression "work->destructor" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        string_prepend(&decl,"global destructors keyed to ");\n        work->destructor = 0;\n      }" { (expression_statement "string_prepend(&decl,"global destructors keyed to ");" (call_expression "string_prepend(&decl,"global destructors keyed to ")" identifier (argument_list "(&decl,"global destructors keyed to ")" ( (pointer_expression "&decl" & identifier) , (string_literal ""global destructors keyed to "" " string_content ") ))) ;) (expression_statement "work->destructor = 0;" (assignment_expression "work->destructor = 0" (field_expression "work->destructor" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }" else (if_statement "if (work->dllimported == 1) {\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }" if (parenthesized_expression "(work->dllimported == 1)" ( (binary_expression "work->dllimported == 1" (field_expression "work->dllimported" identifier -> field_identifier) == number_literal) )) (compound_statement "{\nLAB_00199872:\n        string_prepend(&decl,"import stub for ");\n        work->dllimported = 0;\n      }" { (labeled_statement "LAB_00199872:\n        string_prepend(&decl,"import stub for ");" statement_identifier : (expression_statement "string_prepend(&decl,"import stub for ");" (call_expression "string_prepend(&decl,"import stub for ")" identifier (argument_list "(&decl,"import stub for ")" ( (pointer_expression "&decl" & identifier) , (string_literal ""import stub for "" " string_content ") ))) ;)) (expression_statement "work->dllimported = 0;" (assignment_expression "work->dllimported = 0" (field_expression "work->dllimported" identifier -> field_identifier) = number_literal) ;) }))))))) (expression_statement "delete_non_B_K_work_stuff(work);" (call_expression "delete_non_B_K_work_stuff(work)" identifier (argument_list "(work)" ( identifier ))) ;) (if_statement "if (iVar7 != 0) {\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        string_appendn(&decl,"",1);\n        goto LAB_001994c7;\n      }" { (expression_statement "string_appendn(&decl,"",1);" (call_expression "string_appendn(&decl,"",1)" identifier (argument_list "(&decl,"",1)" ( (pointer_expression "&decl" & identifier) , (string_literal """" " ") , number_literal ))) ;) (goto_statement "goto LAB_001994c7;" goto statement_identifier ;) })) }))) (if_statement "if (decl.b != (char *)0x0) {\n      free(decl.b);\n    }" if (parenthesized_expression "(decl.b != (char *)0x0)" ( (binary_expression "decl.b != (char *)0x0" (field_expression "decl.b" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(decl.b);\n    }" { (expression_statement "free(decl.b);" (call_expression "free(decl.b)" identifier (argument_list "(decl.b)" ( (field_expression "decl.b" identifier . field_identifier) ))) ;) })) })) (expression_statement "decl.b = (char *)0x0;" (assignment_expression "decl.b = (char *)0x0" (field_expression "decl.b" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001994c7:\n  work->constructor = iVar2;" statement_identifier : (expression_statement "work->constructor = iVar2;" (assignment_expression "work->constructor = iVar2" (field_expression "work->constructor" identifier -> field_identifier) = identifier) ;)) (expression_statement "work->destructor = iVar5;" (assignment_expression "work->destructor = iVar5" (field_expression "work->destructor" identifier -> field_identifier) = identifier) ;) (expression_statement "work->static_type = iVar4;" (assignment_expression "work->static_type = iVar4" (field_expression "work->static_type" identifier -> field_identifier) = identifier) ;) (expression_statement "work->type_quals = iVar3;" (assignment_expression "work->type_quals = iVar3" (field_expression "work->type_quals" identifier -> field_identifier) = identifier) ;) (return_statement "return decl.b;" return (field_expression "decl.b" identifier . field_identifier) ;) })))
(translation_unit "void * __regparm3 FUN_001993e0(uint *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}\n\n" (function_definition "void * __regparm3 FUN_001993e0(uint *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}" primitive_type (pointer_declarator "* __regparm3 FUN_001993e0(uint *param_1,byte *param_2)" * (ERROR "__regparm3" identifier) (function_declarator "FUN_001993e0(uint *param_1,byte *param_2)" identifier (parameter_list "(uint *param_1,byte *param_2)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "byte *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "byte *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "void *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x1993eb;" (assignment_expression "uStack_14 = 0x1993eb" identifier = number_literal) ;) (expression_statement "uVar2 = param_1[10];" (assignment_expression "uVar2 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = param_1[0xe];" (assignment_expression "uVar3 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar4 = param_1[0xc];" (assignment_expression "uVar4 = param_1[0xc]" identifier = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_1[0xb];" (assignment_expression "uVar5 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }" if (parenthesized_expression "((param_2 != (byte *)0x0) && (*param_2 != 0))" ( (binary_expression "(param_2 != (byte *)0x0) && (*param_2 != 0)" (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*param_2 != 0)" ( (binary_expression "*param_2 != 0" (pointer_expression "*param_2" * identifier) != number_literal) ))) )) (compound_statement "{\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }" { (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) (if_statement "if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" if (parenthesized_expression "((*param_1 & 0x300) == 0)" ( (binary_expression "(*param_1 & 0x300) == 0" (parenthesized_expression "(*param_1 & 0x300)" ( (binary_expression "*param_1 & 0x300" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }" { (labeled_statement "LAB_00199538:\n      sVar8 = strlen((char *)param_2);" statement_identifier : (expression_statement "sVar8 = strlen((char *)param_2);" (assignment_expression "sVar8 = strlen((char *)param_2)" identifier = (call_expression "strlen((char *)param_2)" identifier (argument_list "((char *)param_2)" ( (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "bVar13 = sVar8 < 6;" (assignment_expression "bVar13 = sVar8 < 6" identifier = (binary_expression "sVar8 < 6" identifier < number_literal)) ;) (expression_statement "bVar15 = sVar8 == 6;" (assignment_expression "bVar15 = sVar8 == 6" identifier = (binary_expression "sVar8 == 6" identifier == number_literal)) ;) (if_statement "if (sVar8 < 7) goto LAB_00199670;" if (parenthesized_expression "(sVar8 < 7)" ( (binary_expression "sVar8 < 7" identifier < number_literal) )) (goto_statement "goto LAB_00199670;" goto statement_identifier ;)) (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"_imp__";" (assignment_expression "pbVar12 = (byte *)"_imp__"" identifier = (cast_expression "(byte *)"_imp__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_imp__"" " string_content "))) ;) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" { (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__imp_";" (assignment_expression "pbVar12 = (byte *)"__imp_"" identifier = (cast_expression "(byte *)"__imp_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__imp_"" " string_content "))) ;) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);" do (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar9 < *pbVar12;" (assignment_expression "bVar14 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == *pbVar12;" (assignment_expression "bVar13 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00199770;" goto statement_identifier ;)) (expression_statement "bVar13 = sVar8 < 10;" (assignment_expression "bVar13 = sVar8 < 10" identifier = (binary_expression "sVar8 < 10" identifier < number_literal)) ;) (expression_statement "bVar15 = sVar8 == 10;" (assignment_expression "bVar15 = sVar8 == 10" identifier = (binary_expression "sVar8 == 10" identifier == number_literal)) ;) (if_statement "if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" if (parenthesized_expression "(sVar8 < 0xb)" ( (binary_expression "sVar8 < 0xb" identifier < number_literal) )) (compound_statement "{\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" { (labeled_statement "LAB_00199670:\n          bVar13 = false;" statement_identifier : (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;)) (expression_statement "bVar15 = (*param_1 & 0x3800) == 0;" (assignment_expression "bVar15 = (*param_1 & 0x3800) == 0" identifier = (binary_expression "(*param_1 & 0x3800) == 0" (parenthesized_expression "(*param_1 & 0x3800)" ( (binary_expression "*param_1 & 0x3800" (pointer_expression "*param_1" * identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }" { (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__std__";" (assignment_expression "pbVar12 = (byte *)"__std__"" identifier = (cast_expression "(byte *)"__std__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__std__"" " string_content "))) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }" { (expression_statement "param_2 = param_2 + 7;" (assignment_expression "param_2 = param_2 + 7" identifier = (binary_expression "param_2 + 7" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = 2;" (assignment_expression "param_1[0xb] = 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) }) (else_clause "else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" else (compound_statement "{\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" { (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__sti__";" (assignment_expression "pbVar12 = (byte *)"__sti__"" identifier = (cast_expression "(byte *)"__sti__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__sti__"" " string_content "))) ;) (do_statement "do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);" do (compound_statement "{\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar9 < *pbVar12;" (assignment_expression "bVar14 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar9 == *pbVar12;" (assignment_expression "bVar13 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }" { (expression_statement "param_2 = param_2 + 7;" (assignment_expression "param_2 = param_2 + 7" identifier = (binary_expression "param_2 + 7" identifier + number_literal)) ;) (expression_statement "param_1[10] = 2;" (assignment_expression "param_1[10] = 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) })) }))) })) (goto_statement "goto LAB_00199631;" goto statement_identifier ;) })) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"_GLOBAL_";" (assignment_expression "pbVar12 = (byte *)"_GLOBAL_"" identifier = (cast_expression "(byte *)"_GLOBAL_"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""_GLOBAL_"" " string_content "))) ;) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);" do (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;" if (parenthesized_expression "((!bVar13 && !bVar15) != bVar13)" ( (binary_expression "(!bVar13 && !bVar15) != bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00199670;" goto statement_identifier ;)) (expression_statement "pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);" (assignment_expression "pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8])" identifier = (cast_expression "(byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr(&DAT_0033f2f4,(int)(char)param_2[8])" identifier (argument_list "(&DAT_0033f2f4,(int)(char)param_2[8])" ( (pointer_expression "&DAT_0033f2f4" & identifier) , (cast_expression "(int)(char)param_2[8]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)param_2[8]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[8]" identifier [ number_literal ]))) ))))) ;) (if_statement "if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;" if (parenthesized_expression "((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10]))" ( (binary_expression "(pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])" (parenthesized_expression "(pbVar9 == (byte *)0x0)" ( (binary_expression "pbVar9 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*pbVar9 != param_2[10])" ( (binary_expression "*pbVar9 != param_2[10]" (pointer_expression "*pbVar9" * identifier) != (subscript_expression "param_2[10]" identifier [ number_literal ])) ))) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (if_statement "if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" if (parenthesized_expression "(param_2[9] == 0x44)" ( (binary_expression "param_2[9] == 0x44" (subscript_expression "param_2[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_1[0xb] = 2;\n        }" { (expression_statement "param_1[0xb] = 2;" (assignment_expression "param_1[0xb] = 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" else (compound_statement "{\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" { (if_statement "if (param_2[9] != 0x49) goto LAB_00199631;" if (parenthesized_expression "(param_2[9] != 0x49)" ( (binary_expression "param_2[9] != 0x49" (subscript_expression "param_2[9]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (expression_statement "param_1[10] = 2;" (assignment_expression "param_1[10] = 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "local_30 = param_2 + 0xb;" (assignment_expression "local_30 = param_2 + 0xb" identifier = (binary_expression "param_2 + 0xb" identifier + number_literal)) ;) (expression_statement "iVar7 = FUN_00198d60();" (assignment_expression "iVar7 = FUN_00198d60()" identifier = (call_expression "FUN_00198d60()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_2 = local_30;" (assignment_expression "param_2 = local_30" identifier = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_00199631;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00199631;" goto statement_identifier ;)) (labeled_statement "LAB_00199710:\n        iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) (labeled_statement "LAB_00199770:\n      param_2 = param_2 + 6;" statement_identifier : (expression_statement "param_2 = param_2 + 6;" (assignment_expression "param_2 = param_2 + 6" identifier = (binary_expression "param_2 + 6" identifier + number_literal)) ;)) (expression_statement "param_1[0xf] = 1;" (assignment_expression "param_1[0xf] = 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) (labeled_statement "LAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);" statement_identifier : (do_statement "do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);" do (compound_statement "{\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      }" { (expression_statement "local_3c = (byte *)strchr((char *)param_2,0x5f);" (assignment_expression "local_3c = (byte *)strchr((char *)param_2,0x5f)" identifier = (cast_expression "(byte *)strchr((char *)param_2,0x5f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)param_2,0x5f)" identifier (argument_list "((char *)param_2,0x5f)" ( (cast_expression "(char *)param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (local_3c == (byte *)0x0) goto LAB_00199643;" if (parenthesized_expression "(local_3c == (byte *)0x0)" ( (binary_expression "local_3c == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;)) (expression_statement "param_2 = local_3c + 1;" (assignment_expression "param_2 = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_3c[1] != 0x5f)" ( (binary_expression "local_3c[1] != 0x5f" (subscript_expression "local_3c[1]" identifier [ number_literal ]) != number_literal) )) ;)) (if_statement "if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" if (parenthesized_expression "((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0))))" ( (binary_expression "(param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))" (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))" ( (parenthesized_expression "(sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0))" ( (comma_expression "sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" (assignment_expression "sVar8 = strspn((char *)local_3c,"_")" identifier = (call_expression "strspn((char *)local_3c,"_")" identifier (argument_list "((char *)local_3c,"_")" ( (cast_expression "(char *)local_3c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_"" " string_content ") )))) , (binary_expression "(int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" (binary_expression "(int)sVar8 < 3" (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) || (parenthesized_expression "(local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" ( (comma_expression "local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0" (assignment_expression "local_3c = local_3c + (sVar8 - 2)" identifier = (binary_expression "local_3c + (sVar8 - 2)" identifier + (parenthesized_expression "(sVar8 - 2)" ( (binary_expression "sVar8 - 2" identifier - number_literal) )))) , (binary_expression "local_3c != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) ))) )) (compound_statement "{\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" { (if_statement "if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }" if (parenthesized_expression "(param_1[0xc] != 0)" ( (binary_expression "param_1[0xc] != 0" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }" { (if_statement "if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;" if (parenthesized_expression "((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))" ( (binary_expression "(((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74)" (parenthesized_expression "(((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0)" ( (binary_expression "((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)*local_3c * 2] & 4)" ( (binary_expression "(&DAT_0026bf40)[(uint)*local_3c * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)*local_3c * 2]" (parenthesized_expression "(&DAT_0026bf40)" ( (pointer_expression "&DAT_0026bf40" & identifier) )) [ (binary_expression "(uint)*local_3c * 2" (binary_expression "(uint)*local_3c" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(*local_3c == 0x74)" ( (binary_expression "*local_3c == 0x74" (pointer_expression "*local_3c" * identifier) == number_literal) ))) )) (goto_statement "goto LAB_00199710;" goto statement_identifier ;)) (goto_statement "goto LAB_00199643;" goto statement_identifier ;) })) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "bVar1 = local_3c[2];" (assignment_expression "bVar1 = local_3c[2]" identifier = (subscript_expression "local_3c[2]" identifier [ number_literal ])) ;) (if_statement "if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }" if (parenthesized_expression "(local_30 == local_3c)" ( (binary_expression "local_30 == local_3c" identifier == identifier) )) (compound_statement "{\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }" { (if_statement "if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" if (parenthesized_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0)" ( (binary_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4)" ( (binary_expression "(&DAT_0026bf40)[(uint)bVar1 * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)bVar1 * 2]" (parenthesized_expression "(&DAT_0026bf40)" ( (pointer_expression "&DAT_0026bf40" & identifier) )) [ (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" { (expression_statement "bVar13 = bVar1 == 0x74;" (assignment_expression "bVar13 = bVar1 == 0x74" identifier = (binary_expression "bVar1 == 0x74" identifier == number_literal)) ;) (if_statement "if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" if (parenthesized_expression "((byte)(bVar1 + 0xb8) < 10)" ( (binary_expression "(byte)(bVar1 + 0xb8) < 10" (call_expression "(byte)(bVar1 + 0xb8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar1 + 0xb8)" ( (binary_expression "bVar1 + 0xb8" identifier + number_literal) ))) < number_literal) )) (compound_statement "{\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" { (expression_statement "bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);" (assignment_expression "bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" identifier = (cast_expression "(bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" ( (binary_expression "bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" identifier | (binary_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" (call_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(0x209 >> (bVar1 + 0xb8 & 0x1f))" ( (binary_expression "0x209 >> (bVar1 + 0xb8 & 0x1f)" number_literal >> (parenthesized_expression "(bVar1 + 0xb8 & 0x1f)" ( (binary_expression "bVar1 + 0xb8 & 0x1f" (binary_expression "bVar1 + 0xb8" identifier + number_literal) & number_literal) ))) ))) & number_literal)) )))) ;) })) (if_statement "if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }" if (parenthesized_expression "(bVar13 != false)" ( (binary_expression "bVar13 != false" identifier != false) )) (compound_statement "{\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }" { (expression_statement "local_30 = local_3c + 2;" (assignment_expression "local_30 = local_3c + 2" identifier = (binary_expression "local_3c + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_001999dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00199733;" goto statement_identifier ;) })) (expression_statement "local_30 = local_30 + 2;" (assignment_expression "local_30 = local_30 + 2" identifier = (binary_expression "local_30 + 2" identifier + number_literal)) ;) (if_statement "if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }" if (parenthesized_expression "((uVar6 & 0x1c00) == 0)" ( (binary_expression "(uVar6 & 0x1c00) == 0" (parenthesized_expression "(uVar6 & 0x1c00)" ( (binary_expression "uVar6 & 0x1c00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }" { (labeled_statement "LAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }" statement_identifier : (if_statement "if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }" if (parenthesized_expression "((uVar6 & 0x3c00) == 0)" ( (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" ( (binary_expression "uVar6 & 0x3c00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              param_1[10] = param_1[10] + 1;\n            }" { (expression_statement "param_1[10] = param_1[10] + 1;" (assignment_expression "param_1[10] = param_1[10] + 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (binary_expression "param_1[10] + 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) + number_literal)) ;) }))) (goto_statement "goto LAB_00199710;" goto statement_identifier ;) })) (expression_statement "FUN_001934a0();" (call_expression "FUN_001934a0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto joined_r0x00199a26;" goto statement_identifier ;) })) (labeled_statement "LAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" statement_identifier : (if_statement "if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" if (parenthesized_expression "(((uVar6 & 0x800) == 0) || (bVar1 != 0x70))" ( (binary_expression "((uVar6 & 0x800) == 0) || (bVar1 != 0x70)" (parenthesized_expression "((uVar6 & 0x800) == 0)" ( (binary_expression "(uVar6 & 0x800) == 0" (parenthesized_expression "(uVar6 & 0x800)" ( (binary_expression "uVar6 & 0x800" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(bVar1 != 0x70)" ( (binary_expression "bVar1 != 0x70" identifier != number_literal) ))) )) (compound_statement "{\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }" { (if_statement "if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }" if (parenthesized_expression "((uVar6 & 0x2000) != 0)" ( (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" ( (binary_expression "uVar6 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }" { (if_statement "if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" if (parenthesized_expression "(bVar1 == 0x74)" ( (binary_expression "bVar1 == 0x74" identifier == number_literal) )) (compound_statement "{\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" { (if_statement "if (local_3c[3] == 0x6d) goto LAB_00199a46;" if (parenthesized_expression "(local_3c[3] == 0x6d)" ( (binary_expression "local_3c[3] == 0x6d" (subscript_expression "local_3c[3]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00199a46;" goto statement_identifier ;)) (goto_statement "goto LAB_001998ba;" goto statement_identifier ;) })) (if_statement "if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }" if (parenthesized_expression "(bVar1 == 0x70)" ( (binary_expression "bVar1 == 0x70" identifier == number_literal) )) (compound_statement "{\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }" { (expression_statement "bVar11 = local_3c[3];" (assignment_expression "bVar11 = local_3c[3]" identifier = (subscript_expression "local_3c[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_001998a8;" goto statement_identifier ;) })) })) (if_statement "if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" if (parenthesized_expression "(local_30 != local_3c)" ( (binary_expression "local_30 != local_3c" identifier != identifier) )) (compound_statement "{\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" { (labeled_statement "LAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;" statement_identifier : (if_statement "if (bVar1 == 0) goto LAB_00199643;" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;))) (goto_statement "goto LAB_001998ba;" goto statement_identifier ;) })) (labeled_statement "LAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" statement_identifier : (if_statement "if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" if (parenthesized_expression "((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74))" ( (binary_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)" (parenthesized_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0)" ( (binary_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4)" ( (binary_expression "(&DAT_0026bf40)[(uint)bVar1 * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)bVar1 * 2]" (parenthesized_expression "(&DAT_0026bf40)" ( (pointer_expression "&DAT_0026bf40" & identifier) )) [ (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar1 == 0x74)" ( (binary_expression "bVar1 == 0x74" identifier == number_literal) ))) )) (goto_statement "goto LAB_00199759;" goto statement_identifier ;))) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar15 = (uVar6 & 0x3c00) == 0;" (assignment_expression "bVar15 = (uVar6 & 0x3c00) == 0" identifier = (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" ( (binary_expression "uVar6 & 0x3c00" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }" { (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pbVar9 = local_3c;" (assignment_expression "pbVar9 = local_3c" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)"__vtbl__";" (assignment_expression "pbVar12 = (byte *)"__vtbl__"" identifier = (cast_expression "(byte *)"__vtbl__"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__vtbl__"" " string_content "))) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" identifier = (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" identifier = (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }" if (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" ( (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }" { (expression_statement "bVar16 = local_3c[8];" (assignment_expression "bVar16 = local_3c[8]" identifier = (subscript_expression "local_3c[8]" identifier [ number_literal ])) ;) (expression_statement "local_2c = local_3c + 8;" (assignment_expression "local_2c = local_3c + 8" identifier = (binary_expression "local_3c + 8" identifier + number_literal)) ;) (labeled_statement "LAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" statement_identifier : (if_statement "if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" { (do_statement "do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);" do (compound_statement "{\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                }" { (expression_statement "iVar7 = FUN_001934a0();" (assignment_expression "iVar7 = FUN_001934a0()" identifier = (call_expression "FUN_001934a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == -1) goto LAB_0019992e;" if (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0019992e;" goto statement_identifier ;)) (expression_statement "pbVar9 = local_2c + iVar7;" (assignment_expression "pbVar9 = local_2c + iVar7" identifier = (binary_expression "local_2c + iVar7" identifier + identifier)) ;) (expression_statement "bVar16 = *pbVar9;" (assignment_expression "bVar16 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "local_2c = pbVar9;" (assignment_expression "local_2c = pbVar9" identifier = identifier) ;) (if_statement "if (bVar16 != 0x5f) goto LAB_00199ac0;" if (parenthesized_expression "(bVar16 != 0x5f)" ( (binary_expression "bVar16 != 0x5f" identifier != number_literal) )) (goto_statement "goto LAB_00199ac0;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar9[1] != 0x5f)" ( (binary_expression "pbVar9[1] != 0x5f" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) != number_literal) )) ;) (expression_statement "local_2c = pbVar9 + 2;" (assignment_expression "local_2c = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "bVar16 = pbVar9[2];" (assignment_expression "bVar16 = pbVar9[2]" identifier = (subscript_expression "pbVar9[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00199ac0;" goto statement_identifier ;) }))) (expression_statement "bVar16 = local_30[8];" (assignment_expression "bVar16 = local_30[8]" identifier = (subscript_expression "local_30[8]" identifier [ number_literal ])) ;) (expression_statement "local_30 = local_30 + 8;" (assignment_expression "local_30 = local_30 + 8" identifier = (binary_expression "local_30 + 8" identifier + number_literal)) ;) (labeled_statement "LAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" statement_identifier : (if_statement "if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" if (parenthesized_expression "(bVar16 != 0)" ( (binary_expression "bVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" { (do_statement "do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);" do (compound_statement "{\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                }" { (expression_statement "iVar7 = FUN_001934a0();" (assignment_expression "iVar7 = FUN_001934a0()" identifier = (call_expression "FUN_001934a0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;" if (parenthesized_expression "((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))" ( (binary_expression "(iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) || (parenthesized_expression "(sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" ( (comma_expression "sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7" (assignment_expression "sVar8 = strlen((char *)local_30)" identifier = (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "(int)sVar8 < iVar7" (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) ))) )) (goto_statement "goto LAB_0019992e;" goto statement_identifier ;)) (if_statement "if (iVar7 != 0) {\n                    FUN_00193850();\n                  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                    FUN_00193850();\n                  }" { (expression_statement "FUN_00193850();" (call_expression "FUN_00193850()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pbVar9 = local_30 + iVar7;" (assignment_expression "pbVar9 = local_30 + iVar7" identifier = (binary_expression "local_30 + iVar7" identifier + identifier)) ;) (expression_statement "bVar16 = *pbVar9;" (assignment_expression "bVar16 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (expression_statement "local_30 = pbVar9;" (assignment_expression "local_30 = pbVar9" identifier = identifier) ;) (if_statement "if (bVar16 != 0x5f) goto LAB_00199b12;" if (parenthesized_expression "(bVar16 != 0x5f)" ( (binary_expression "bVar16 != 0x5f" identifier != number_literal) )) (goto_statement "goto LAB_00199b12;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar9[1] != 0x5f)" ( (binary_expression "pbVar9[1] != 0x5f" (subscript_expression "pbVar9[1]" identifier [ number_literal ]) != number_literal) )) ;) (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_30 = pbVar9 + 2;" (assignment_expression "local_30 = pbVar9 + 2" identifier = (binary_expression "pbVar9 + 2" identifier + number_literal)) ;) (expression_statement "bVar16 = pbVar9[2];" (assignment_expression "bVar16 = pbVar9[2]" identifier = (subscript_expression "pbVar9[2]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00199b12;" goto statement_identifier ;) }))) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "FUN_001938f0();" (call_expression "FUN_001938f0()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0019992e:\n          bVar16 = *local_3c;" statement_identifier : (expression_statement "bVar16 = *local_3c;" (assignment_expression "bVar16 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;)) (while_statement "while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }" while (parenthesized_expression "(bVar16 == 0x5f)" ( (binary_expression "bVar16 == 0x5f" identifier == number_literal) )) (compound_statement "{\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }" { (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "bVar16 = *local_3c;" (assignment_expression "bVar16 = *local_3c" identifier = (pointer_expression "*local_3c" * identifier)) ;) })) (expression_statement "pcVar10 = strstr((char *)local_3c,"__");" (assignment_expression "pcVar10 = strstr((char *)local_3c,"__")" identifier = (call_expression "strstr((char *)local_3c,"__")" identifier (argument_list "((char *)local_3c,"__")" ( (cast_expression "(char *)local_3c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__"" " string_content ") )))) ;) (if_statement "if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;" if (parenthesized_expression "((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0'))" ( (binary_expression "(pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')" (parenthesized_expression "(pcVar10 == (char *)0x0)" ( (binary_expression "pcVar10 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar10[2] == '\0')" ( (binary_expression "pcVar10[2] == '\0'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00199643;" goto statement_identifier ;)) (expression_statement "iVar7 = FUN_00198b60(pcVar10);" (assignment_expression "iVar7 = FUN_00198b60(pcVar10)" identifier = (call_expression "FUN_00198b60(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) }) (else_clause "else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" else (compound_statement "{\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" { (expression_statement "bVar11 = local_3c[3];" (assignment_expression "bVar11 = local_3c[3]" identifier = (subscript_expression "local_3c[3]" identifier [ number_literal ])) ;) (if_statement "if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }" if (parenthesized_expression "(bVar11 == 0x74)" ( (binary_expression "bVar11 == 0x74" identifier == number_literal) )) (compound_statement "{\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }" { (labeled_statement "LAB_00199a46:\n            iVar7 = 1;" statement_identifier : (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;)) (expression_statement "strlen((char *)local_30);" (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "FUN_00195c60(&local_28);" (call_expression "FUN_00195c60(&local_28)" identifier (argument_list "(&local_28)" ( (pointer_expression "&local_28" & identifier) ))) ;) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;) })) (if_statement "if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }" if (parenthesized_expression "((uVar6 & 0x2000) != 0)" ( (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" ( (binary_expression "uVar6 & 0x2000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }" { (labeled_statement "LAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;" statement_identifier : (if_statement "if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;" if (parenthesized_expression "((byte)(bVar11 + 0x8d) < 2)" ( (binary_expression "(byte)(bVar11 + 0x8d) < 2" (call_expression "(byte)(bVar11 + 0x8d)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(bVar11 + 0x8d)" ( (binary_expression "bVar11 + 0x8d" identifier + number_literal) ))) < number_literal) )) (goto_statement "goto LAB_00199a46;" goto statement_identifier ;))) })) (if_statement "if (local_30 == local_3c) goto LAB_00199907;" if (parenthesized_expression "(local_30 == local_3c)" ( (binary_expression "local_30 == local_3c" identifier == identifier) )) (goto_statement "goto LAB_00199907;" goto statement_identifier ;)) (labeled_statement "LAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);" statement_identifier : (expression_statement "iVar7 = FUN_00198b60(local_3c);" (assignment_expression "iVar7 = FUN_00198b60(local_3c)" identifier = (call_expression "FUN_00198b60(local_3c)" identifier (argument_list "(local_3c)" ( identifier )))) ;)) })))) (if_statement "if (iVar7 != 0) goto LAB_0019947b;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0019947b;" goto statement_identifier ;)) (goto_statement "goto LAB_00199484;" goto statement_identifier ;) })) (labeled_statement "LAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" statement_identifier : (if_statement "if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" if (parenthesized_expression "((param_1[10] == 2) || (param_1[0xb] == 2))" ( (binary_expression "(param_1[10] == 2) || (param_1[0xb] == 2)" (parenthesized_expression "(param_1[10] == 2)" ( (binary_expression "param_1[10] == 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(param_1[0xb] == 2)" ( (binary_expression "param_1[0xb] == 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" { (labeled_statement "joined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }" statement_identifier : (if_statement "if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }" if (parenthesized_expression "((local_30 != (byte *)0x0) && (*local_30 != 0))" ( (binary_expression "(local_30 != (byte *)0x0) && (*local_30 != 0)" (parenthesized_expression "(local_30 != (byte *)0x0)" ( (binary_expression "local_30 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_30 != 0)" ( (binary_expression "*local_30 != 0" (pointer_expression "*local_30" * identifier) != number_literal) ))) )) (compound_statement "{\n          FUN_001938f0();\n        }" { (expression_statement "FUN_001938f0();" (call_expression "FUN_001938f0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "sVar8 = strlen((char *)local_30);" (assignment_expression "sVar8 = strlen((char *)local_30)" identifier = (call_expression "strlen((char *)local_30)" identifier (argument_list "((char *)local_30)" ( (cast_expression "(char *)local_30" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_30 = local_30 + sVar8;" (assignment_expression "local_30 = local_30 + sVar8" identifier = (binary_expression "local_30 + sVar8" identifier + identifier)) ;) (goto_statement "goto LAB_00199710;" goto statement_identifier ;) }))) (if_statement "if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" if (parenthesized_expression "(param_1[0xf] == 1)" ( (binary_expression "param_1[0xf] == 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00199872;" goto statement_identifier ;) })) (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" else (compound_statement "{\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" { (expression_statement "iVar7 = FUN_00198d60();" (assignment_expression "iVar7 = FUN_00198d60()" identifier = (call_expression "FUN_00198d60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }" { (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001930a0();" (call_expression "FUN_001930a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }" if (parenthesized_expression "(local_28 != (void *)0x0)" ( (binary_expression "local_28 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }" { (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_00199538;" goto statement_identifier ;) })) (labeled_statement "LAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }" statement_identifier : (if_statement "if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }" if (parenthesized_expression "(*local_30 != 0)" ( (binary_expression "*local_30 != 0" (pointer_expression "*local_30" * identifier) != number_literal) )) (compound_statement "{\n        iVar7 = FUN_00198180();\n      }" { (expression_statement "iVar7 = FUN_00198180();" (assignment_expression "iVar7 = FUN_00198180()" identifier = (call_expression "FUN_00198180()" identifier (argument_list "()" ( )))) ;) }))) (labeled_statement "LAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" statement_identifier : (if_statement "if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" if (parenthesized_expression "(param_1[10] == 2)" ( (binary_expression "param_1[10] == 2" (subscript_expression "param_1[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_001938b0();\n        param_1[10] = 0;\n      }" { (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" else (if_statement "if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" if (parenthesized_expression "(param_1[0xb] == 2)" ( (binary_expression "param_1[0xb] == 2" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }" { (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" else (if_statement "if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" if (parenthesized_expression "(param_1[0xf] == 1)" ( (binary_expression "param_1[0xf] == 1" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" { (labeled_statement "LAB_00199872:\n        FUN_001938b0();" statement_identifier : (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" identifier [ number_literal ]) = number_literal) ;) }))))))) (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        FUN_00193810();\n        goto LAB_001994c7;\n      }" { (expression_statement "FUN_00193810();" (call_expression "FUN_00193810()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_001994c7;" goto statement_identifier ;) })) }))) (if_statement "if (local_28 != (void *)0x0) {\n      free(local_28);\n    }" if (parenthesized_expression "(local_28 != (void *)0x0)" ( (binary_expression "local_28 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(local_28);\n    }" { (expression_statement "free(local_28);" (call_expression "free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) })) })) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001994c7:\n  param_1[10] = uVar2;" statement_identifier : (expression_statement "param_1[10] = uVar2;" (assignment_expression "param_1[10] = uVar2" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_1[0xb] = uVar5;" (assignment_expression "param_1[0xb] = uVar5" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xc] = uVar4;" (assignment_expression "param_1[0xc] = uVar4" (subscript_expression "param_1[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0xe] = uVar3;" (assignment_expression "param_1[0xe] = uVar3" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = identifier) ;) (return_statement "return local_28;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (subscript_expression IDENT [ LIT ])) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT) ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT >> (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) ))) ))) & LIT)) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != BOOL) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT) )) (goto_statement goto statement_identifier ;))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (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 (pointer_expression * IDENT) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))))))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) })))
(function_definition "void * __regparm3 FUN_001993e0(uint *param_1,byte *param_2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}" (primitive_type "void") (pointer_declarator "* __regparm3 FUN_001993e0(uint *param_1,byte *param_2)" (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_001993e0(uint *param_1,byte *param_2)" (identifier "FUN_001993e0") (parameter_list "(uint *param_1,byte *param_2)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  int iVar7;\n  size_t sVar8;\n  byte *pbVar9;\n  char *pcVar10;\n  byte bVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  byte *local_3c;\n  byte *local_30;\n  byte *local_2c;\n  void *local_28;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x1993eb;\n  uVar2 = param_1[10];\n  uVar3 = param_1[0xe];\n  param_1[10] = 0;\n  uVar4 = param_1[0xc];\n  uVar5 = param_1[0xb];\n  param_1[0xb] = 0;\n  param_1[0xe] = 0;\n  param_1[0xf] = 0;\n  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }\n  local_28 = (void *)0x0;\nLAB_001994c7:\n  param_1[10] = uVar2;\n  param_1[0xb] = uVar5;\n  param_1[0xc] = uVar4;\n  param_1[0xe] = uVar3;\n  return local_28;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "byte bVar16;" (type_identifier "byte") (identifier "bVar16") (; ";")) (declaration "byte *local_3c;" (type_identifier "byte") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "byte *local_30;" (type_identifier "byte") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "byte *local_2c;" (type_identifier "byte") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "void *local_28;" (primitive_type "void") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" (identifier "bVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x1993eb;" (assignment_expression "uStack_14 = 0x1993eb" (identifier "uStack_14") (= "=") (number_literal "0x1993eb")) (; ";")) (expression_statement "uVar2 = param_1[10];" (assignment_expression "uVar2 = param_1[10]" (identifier "uVar2") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar3 = param_1[0xe];" (assignment_expression "uVar3 = param_1[0xe]" (identifier "uVar3") (= "=") (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = param_1[0xc];" (assignment_expression "uVar4 = param_1[0xc]" (identifier "uVar4") (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uVar5 = param_1[0xb];" (assignment_expression "uVar5 = param_1[0xb]" (identifier "uVar5") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xe] = 0;" (assignment_expression "param_1[0xe] = 0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }" (if "if") (parenthesized_expression "((param_2 != (byte *)0x0) && (*param_2 != 0))" (( "(") (binary_expression "(param_2 != (byte *)0x0) && (*param_2 != 0)" (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*param_2 != 0)" (( "(") (binary_expression "*param_2 != 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    local_20 = 0;\n    local_24 = 0;\n    local_28 = (void *)0x0;\n    local_30 = param_2;\n    if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }\n    if (local_28 != (void *)0x0) {\n      free(local_28);\n    }\n  }" ({ "{") (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" (identifier "local_28") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" (identifier "local_30") (= "=") (identifier "param_2")) (; ";")) (if_statement "if ((*param_1 & 0x300) == 0) {\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }\n    else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" (if "if") (parenthesized_expression "((*param_1 & 0x300) == 0)" (( "(") (binary_expression "(*param_1 & 0x300) == 0" (parenthesized_expression "(*param_1 & 0x300)" (( "(") (binary_expression "*param_1 & 0x300" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x300")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00199538:\n      sVar8 = strlen((char *)param_2);\n      bVar13 = sVar8 < 6;\n      bVar15 = sVar8 == 6;\n      if (sVar8 < 7) goto LAB_00199670;\n      iVar7 = 6;\n      pbVar9 = param_2;\n      pbVar12 = (byte *)"_imp__";\n      do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      bVar14 = false;\n      bVar13 = (!bVar13 && !bVar15) == bVar13;\n      if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }\nLAB_00199770:\n      param_2 = param_2 + 6;\n      param_1[0xf] = 1;\n      local_30 = param_2;\nLAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);\n      if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }\nLAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }\n      if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }\n      FUN_00193630();\n    }" ({ "{") (labeled_statement "LAB_00199538:\n      sVar8 = strlen((char *)param_2);" (statement_identifier "LAB_00199538") (: ":") (expression_statement "sVar8 = strlen((char *)param_2);" (assignment_expression "sVar8 = strlen((char *)param_2)" (identifier "sVar8") (= "=") (call_expression "strlen((char *)param_2)" (identifier "strlen") (argument_list "((char *)param_2)" (( "(") (cast_expression "(char *)param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")))) (; ";"))) (expression_statement "bVar13 = sVar8 < 6;" (assignment_expression "bVar13 = sVar8 < 6" (identifier "bVar13") (= "=") (binary_expression "sVar8 < 6" (identifier "sVar8") (< "<") (number_literal "6"))) (; ";")) (expression_statement "bVar15 = sVar8 == 6;" (assignment_expression "bVar15 = sVar8 == 6" (identifier "bVar15") (= "=") (binary_expression "sVar8 == 6" (identifier "sVar8") (== "==") (number_literal "6"))) (; ";")) (if_statement "if (sVar8 < 7) goto LAB_00199670;" (if "if") (parenthesized_expression "(sVar8 < 7)" (( "(") (binary_expression "sVar8 < 7" (identifier "sVar8") (< "<") (number_literal "7")) () ")")) (goto_statement "goto LAB_00199670;" (goto "goto") (statement_identifier "LAB_00199670") (; ";"))) (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" (identifier "iVar7") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar12 = (byte *)"_imp__";" (assignment_expression "pbVar12 = (byte *)"_imp__"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"_imp__"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""_imp__"" (" """) (string_content "_imp__") (" """)))) (; ";")) (do_statement "do {\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);" (do "do") (compound_statement "{\n        if (iVar7 == 0) break;\n        iVar7 = iVar7 + -1;\n        bVar13 = *pbVar9 < *pbVar12;\n        bVar15 = *pbVar9 == *pbVar12;\n        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" (identifier "bVar13") (= "=") (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" (( "(") (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (!bVar13) {\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\n        iVar7 = 6;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"__imp_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;\n        bVar13 = sVar8 < 10;\n        bVar15 = sVar8 == 10;\n        if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }\n        iVar7 = 8;\n        pbVar9 = param_2;\n        pbVar12 = (byte *)"_GLOBAL_";\n        do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;\n        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);\n        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;\n        if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }\n        local_30 = param_2 + 0xb;\n        iVar7 = FUN_00198d60();\n        param_2 = local_30;\n        if (iVar7 == 0) goto LAB_00199631;\nLAB_00199710:\n        iVar7 = 1;\n        goto LAB_0019947b;\n      }" ({ "{") (expression_statement "iVar7 = 6;" (assignment_expression "iVar7 = 6" (identifier "iVar7") (= "=") (number_literal "6")) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar12 = (byte *)"__imp_";" (assignment_expression "pbVar12 = (byte *)"__imp_"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"__imp_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__imp_"" (" """) (string_content "__imp_") (" """)))) (; ";")) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);" (do "do") (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar14 = *pbVar9 < *pbVar12;\n          bVar13 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar9 < *pbVar12;" (assignment_expression "bVar14 = *pbVar9 < *pbVar12" (identifier "bVar14") (= "=") (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar13 = *pbVar9 == *pbVar12;" (assignment_expression "bVar13 = *pbVar9 == *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;" (if "if") (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" (( "(") (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" (( "(") (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar14")) () ")")) (goto_statement "goto LAB_00199770;" (goto "goto") (statement_identifier "LAB_00199770") (; ";"))) (expression_statement "bVar13 = sVar8 < 10;" (assignment_expression "bVar13 = sVar8 < 10" (identifier "bVar13") (= "=") (binary_expression "sVar8 < 10" (identifier "sVar8") (< "<") (number_literal "10"))) (; ";")) (expression_statement "bVar15 = sVar8 == 10;" (assignment_expression "bVar15 = sVar8 == 10" (identifier "bVar15") (= "=") (binary_expression "sVar8 == 10" (identifier "sVar8") (== "==") (number_literal "10"))) (; ";")) (if_statement "if (sVar8 < 0xb) {\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" (if "if") (parenthesized_expression "(sVar8 < 0xb)" (( "(") (binary_expression "sVar8 < 0xb" (identifier "sVar8") (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\nLAB_00199670:\n          bVar13 = false;\n          bVar15 = (*param_1 & 0x3800) == 0;\n          if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }\n          goto LAB_00199631;\n        }" ({ "{") (labeled_statement "LAB_00199670:\n          bVar13 = false;" (statement_identifier "LAB_00199670") (: ":") (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";"))) (expression_statement "bVar15 = (*param_1 & 0x3800) == 0;" (assignment_expression "bVar15 = (*param_1 & 0x3800) == 0" (identifier "bVar15") (= "=") (binary_expression "(*param_1 & 0x3800) == 0" (parenthesized_expression "(*param_1 & 0x3800)" (( "(") (binary_expression "*param_1 & 0x3800" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (& "&") (number_literal "0x3800")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar15) {\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (compound_statement "{\n            iVar7 = 7;\n            pbVar9 = param_2;\n            pbVar12 = (byte *)"__std__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            bVar14 = false;\n            bVar13 = (!bVar13 && !bVar15) == bVar13;\n            if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }\n          }" ({ "{") (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" (identifier "iVar7") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar12 = (byte *)"__std__";" (assignment_expression "pbVar12 = (byte *)"__std__"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"__std__"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__std__"" (" """) (string_content "__std__") (" """)))) (; ";")) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);" (do "do") (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" (identifier "bVar13") (= "=") (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" (( "(") (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (bVar13) {\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }\n            else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n              param_2 = param_2 + 7;\n              param_1[0xb] = 2;\n              local_30 = param_2;\n            }" ({ "{") (expression_statement "param_2 = param_2 + 7;" (assignment_expression "param_2 = param_2 + 7" (identifier "param_2") (= "=") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "param_1[0xb] = 2;" (assignment_expression "param_1[0xb] = 2" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" (identifier "local_30") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" (else "else") (compound_statement "{\n              iVar7 = 7;\n              pbVar9 = param_2;\n              pbVar12 = (byte *)"__sti__";\n              do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);\n              if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }\n            }" ({ "{") (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" (identifier "iVar7") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar12 = (byte *)"__sti__";" (assignment_expression "pbVar12 = (byte *)"__sti__"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"__sti__"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__sti__"" (" """) (string_content "__sti__") (" """)))) (; ";")) (do_statement "do {\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              } while (bVar13);" (do "do") (compound_statement "{\n                if (iVar7 == 0) break;\n                iVar7 = iVar7 + -1;\n                bVar14 = *pbVar9 < *pbVar12;\n                bVar13 = *pbVar9 == *pbVar12;\n                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n              }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar9 < *pbVar12;" (assignment_expression "bVar14 = *pbVar9 < *pbVar12" (identifier "bVar14") (= "=") (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar13 = *pbVar9 == *pbVar12;" (assignment_expression "bVar13 = *pbVar9 == *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if ((!bVar14 && !bVar13) == bVar14) {\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }" (if "if") (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" (( "(") (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" (( "(") (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar14")) () ")")) (compound_statement "{\n                param_2 = param_2 + 7;\n                param_1[10] = 2;\n                local_30 = param_2;\n              }" ({ "{") (expression_statement "param_2 = param_2 + 7;" (assignment_expression "param_2 = param_2 + 7" (identifier "param_2") (= "=") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7"))) (; ";")) (expression_statement "param_1[10] = 2;" (assignment_expression "param_1[10] = 2" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" (identifier "local_30") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (goto_statement "goto LAB_00199631;" (goto "goto") (statement_identifier "LAB_00199631") (; ";")) (} "}"))) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" (identifier "iVar7") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar9 = param_2;" (assignment_expression "pbVar9 = param_2" (identifier "pbVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar12 = (byte *)"_GLOBAL_";" (assignment_expression "pbVar12 = (byte *)"_GLOBAL_"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"_GLOBAL_"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""_GLOBAL_"" (" """) (string_content "_GLOBAL_") (" """)))) (; ";")) (do_statement "do {\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar15);" (do "do") (compound_statement "{\n          if (iVar7 == 0) break;\n          iVar7 = iVar7 + -1;\n          bVar13 = *pbVar9 < *pbVar12;\n          bVar15 = *pbVar9 == *pbVar12;\n          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;" (if "if") (parenthesized_expression "((!bVar13 && !bVar15) != bVar13)" (( "(") (binary_expression "(!bVar13 && !bVar15) != bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" (( "(") (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (!= "!=") (identifier "bVar13")) () ")")) (goto_statement "goto LAB_00199670;" (goto "goto") (statement_identifier "LAB_00199670") (; ";"))) (expression_statement "pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);" (assignment_expression "pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8])" (identifier "pbVar9") (= "=") (cast_expression "(byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strchr(&DAT_0033f2f4,(int)(char)param_2[8])" (identifier "strchr") (argument_list "(&DAT_0033f2f4,(int)(char)param_2[8])" (( "(") (pointer_expression "&DAT_0033f2f4" (& "&") (identifier "DAT_0033f2f4")) (, ",") (cast_expression "(int)(char)param_2[8]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)param_2[8]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")))) () ")"))))) (; ";")) (if_statement "if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;" (if "if") (parenthesized_expression "((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10]))" (( "(") (binary_expression "(pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])" (parenthesized_expression "(pbVar9 == (byte *)0x0)" (( "(") (binary_expression "pbVar9 == (byte *)0x0" (identifier "pbVar9") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*pbVar9 != param_2[10])" (( "(") (binary_expression "*pbVar9 != param_2[10]" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (!= "!=") (subscript_expression "param_2[10]" (identifier "param_2") ([ "[") (number_literal "10") (] "]"))) () ")"))) () ")")) (goto_statement "goto LAB_00199631;" (goto "goto") (statement_identifier "LAB_00199631") (; ";"))) (if_statement "if (param_2[9] == 0x44) {\n          param_1[0xb] = 2;\n        }\n        else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" (if "if") (parenthesized_expression "(param_2[9] == 0x44)" (( "(") (binary_expression "param_2[9] == 0x44" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0x44")) () ")")) (compound_statement "{\n          param_1[0xb] = 2;\n        }" ({ "{") (expression_statement "param_1[0xb] = 2;" (assignment_expression "param_1[0xb] = 2" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" (else "else") (compound_statement "{\n          if (param_2[9] != 0x49) goto LAB_00199631;\n          param_1[10] = 2;\n        }" ({ "{") (if_statement "if (param_2[9] != 0x49) goto LAB_00199631;" (if "if") (parenthesized_expression "(param_2[9] != 0x49)" (( "(") (binary_expression "param_2[9] != 0x49" (subscript_expression "param_2[9]" (identifier "param_2") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0x49")) () ")")) (goto_statement "goto LAB_00199631;" (goto "goto") (statement_identifier "LAB_00199631") (; ";"))) (expression_statement "param_1[10] = 2;" (assignment_expression "param_1[10] = 2" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "2")) (; ";")) (} "}")))) (expression_statement "local_30 = param_2 + 0xb;" (assignment_expression "local_30 = param_2 + 0xb" (identifier "local_30") (= "=") (binary_expression "param_2 + 0xb" (identifier "param_2") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "iVar7 = FUN_00198d60();" (assignment_expression "iVar7 = FUN_00198d60()" (identifier "iVar7") (= "=") (call_expression "FUN_00198d60()" (identifier "FUN_00198d60") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_2 = local_30;" (assignment_expression "param_2 = local_30" (identifier "param_2") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00199631;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00199631;" (goto "goto") (statement_identifier "LAB_00199631") (; ";"))) (labeled_statement "LAB_00199710:\n        iVar7 = 1;" (statement_identifier "LAB_00199710") (: ":") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_0019947b;" (goto "goto") (statement_identifier "LAB_0019947b") (; ";")) (} "}"))) (labeled_statement "LAB_00199770:\n      param_2 = param_2 + 6;" (statement_identifier "LAB_00199770") (: ":") (expression_statement "param_2 = param_2 + 6;" (assignment_expression "param_2 = param_2 + 6" (identifier "param_2") (= "=") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6"))) (; ";"))) (expression_statement "param_1[0xf] = 1;" (assignment_expression "param_1[0xf] = 1" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" (identifier "local_30") (= "=") (identifier "param_2")) (; ";")) (labeled_statement "LAB_00199631:\n      do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);" (statement_identifier "LAB_00199631") (: ":") (do_statement "do {\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      } while (local_3c[1] != 0x5f);" (do "do") (compound_statement "{\n        local_3c = (byte *)strchr((char *)param_2,0x5f);\n        if (local_3c == (byte *)0x0) goto LAB_00199643;\n        param_2 = local_3c + 1;\n      }" ({ "{") (expression_statement "local_3c = (byte *)strchr((char *)param_2,0x5f);" (assignment_expression "local_3c = (byte *)strchr((char *)param_2,0x5f)" (identifier "local_3c") (= "=") (cast_expression "(byte *)strchr((char *)param_2,0x5f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strchr((char *)param_2,0x5f)" (identifier "strchr") (argument_list "((char *)param_2,0x5f)" (( "(") (cast_expression "(char *)param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) (, ",") (number_literal "0x5f") () ")"))))) (; ";")) (if_statement "if (local_3c == (byte *)0x0) goto LAB_00199643;" (if "if") (parenthesized_expression "(local_3c == (byte *)0x0)" (( "(") (binary_expression "local_3c == (byte *)0x0" (identifier "local_3c") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00199643;" (goto "goto") (statement_identifier "LAB_00199643") (; ";"))) (expression_statement "param_2 = local_3c + 1;" (assignment_expression "param_2 = local_3c + 1" (identifier "param_2") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_3c[1] != 0x5f)" (( "(") (binary_expression "local_3c[1] != 0x5f" (subscript_expression "local_3c[1]" (identifier "local_3c") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5f")) () ")")) (; ";"))) (if_statement "if ((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" (if "if") (parenthesized_expression "((param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0))))" (( "(") (binary_expression "(param_2 != (byte *)0x0) &&\n         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))" (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))" (( "(") (parenthesized_expression "(sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0))" (( "(") (comma_expression "sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" (assignment_expression "sVar8 = strspn((char *)local_3c,"_")" (identifier "sVar8") (= "=") (call_expression "strspn((char *)local_3c,"_")" (identifier "strspn") (argument_list "((char *)local_3c,"_")" (( "(") (cast_expression "(char *)local_3c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) (, ",") (string_literal ""_"" (" """) (string_content "_") (" """)) () ")")))) (, ",") (binary_expression "(int)sVar8 < 3 ||\n          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" (binary_expression "(int)sVar8 < 3" (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8")) (< "<") (number_literal "3")) (|| "||") (parenthesized_expression "(local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)" (( "(") (comma_expression "local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0" (assignment_expression "local_3c = local_3c + (sVar8 - 2)" (identifier "local_3c") (= "=") (binary_expression "local_3c + (sVar8 - 2)" (identifier "local_3c") (+ "+") (parenthesized_expression "(sVar8 - 2)" (( "(") (binary_expression "sVar8 - 2" (identifier "sVar8") (- "-") (number_literal "2")) () ")")))) (, ",") (binary_expression "local_3c != (byte *)0x0" (identifier "local_3c") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n        if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }\n        uVar6 = *param_1;\n        bVar1 = local_3c[2];\n        if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }\nLAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }\n        if (iVar7 != 0) goto LAB_0019947b;\n        goto LAB_00199484;\n      }" ({ "{") (if_statement "if (param_1[0xc] != 0) {\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }" (if "if") (parenthesized_expression "(param_1[0xc] != 0)" (( "(") (binary_expression "param_1[0xc] != 0" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;\n          goto LAB_00199643;\n        }" ({ "{") (if_statement "if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))\n          goto LAB_00199710;" (if "if") (parenthesized_expression "((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))" (( "(") (binary_expression "(((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74)" (parenthesized_expression "(((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0)" (( "(") (binary_expression "((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)*local_3c * 2] & 4)" (( "(") (binary_expression "(&DAT_0026bf40)[(uint)*local_3c * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)*local_3c * 2]" (parenthesized_expression "(&DAT_0026bf40)" (( "(") (pointer_expression "&DAT_0026bf40" (& "&") (identifier "DAT_0026bf40")) () ")")) ([ "[") (binary_expression "(uint)*local_3c * 2" (binary_expression "(uint)*local_3c" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "local_3c")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*local_3c == 0x74)" (( "(") (binary_expression "*local_3c == 0x74" (pointer_expression "*local_3c" (* "*") (identifier "local_3c")) (== "==") (number_literal "0x74")) () ")"))) () ")")) (goto_statement "goto LAB_00199710;" (goto "goto") (statement_identifier "LAB_00199710") (; ";"))) (goto_statement "goto LAB_00199643;" (goto "goto") (statement_identifier "LAB_00199643") (; ";")) (} "}"))) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" (identifier "uVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "bVar1 = local_3c[2];" (assignment_expression "bVar1 = local_3c[2]" (identifier "bVar1") (= "=") (subscript_expression "local_3c[2]" (identifier "local_3c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (local_30 == local_3c) {\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }" (if "if") (parenthesized_expression "(local_30 == local_3c)" (( "(") (binary_expression "local_30 == local_3c" (identifier "local_30") (== "==") (identifier "local_3c")) () ")")) (compound_statement "{\n          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }\n          local_30 = local_30 + 2;\n          if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }\n          FUN_001934a0();\n          goto joined_r0x00199a26;\n        }" ({ "{") (if_statement "if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" (if "if") (parenthesized_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0)" (( "(") (binary_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4)" (( "(") (binary_expression "(&DAT_0026bf40)[(uint)bVar1 * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)bVar1 * 2]" (parenthesized_expression "(&DAT_0026bf40)" (( "(") (pointer_expression "&DAT_0026bf40" (& "&") (identifier "DAT_0026bf40")) () ")")) ([ "[") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            bVar13 = bVar1 == 0x74;\n            if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }\n            if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }\n            goto LAB_00199733;\n          }" ({ "{") (expression_statement "bVar13 = bVar1 == 0x74;" (assignment_expression "bVar13 = bVar1 == 0x74" (identifier "bVar13") (= "=") (binary_expression "bVar1 == 0x74" (identifier "bVar1") (== "==") (number_literal "0x74"))) (; ";")) (if_statement "if ((byte)(bVar1 + 0xb8) < 10) {\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" (if "if") (parenthesized_expression "((byte)(bVar1 + 0xb8) < 10)" (( "(") (binary_expression "(byte)(bVar1 + 0xb8) < 10" (call_expression "(byte)(bVar1 + 0xb8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar1 + 0xb8)" (( "(") (binary_expression "bVar1 + 0xb8" (identifier "bVar1") (+ "+") (number_literal "0xb8")) () ")"))) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);\n            }" ({ "{") (expression_statement "bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);" (assignment_expression "bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" (identifier "bVar13") (= "=") (cast_expression "(bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1)" (( "(") (binary_expression "bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" (identifier "bVar13") (| "|") (binary_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1" (call_expression "(byte)(0x209 >> (bVar1 + 0xb8 & 0x1f))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(0x209 >> (bVar1 + 0xb8 & 0x1f))" (( "(") (binary_expression "0x209 >> (bVar1 + 0xb8 & 0x1f)" (number_literal "0x209") (>> ">>") (parenthesized_expression "(bVar1 + 0xb8 & 0x1f)" (( "(") (binary_expression "bVar1 + 0xb8 & 0x1f" (binary_expression "bVar1 + 0xb8" (identifier "bVar1") (+ "+") (number_literal "0xb8")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) (& "&") (number_literal "1"))) () ")")))) (; ";")) (} "}"))) (if_statement "if (bVar13 != false) {\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }" (if "if") (parenthesized_expression "(bVar13 != false)" (( "(") (binary_expression "bVar13 != false" (identifier "bVar13") (!= "!=") (false "false")) () ")")) (compound_statement "{\n              local_30 = local_3c + 2;\n              goto LAB_001999dc;\n            }" ({ "{") (expression_statement "local_30 = local_3c + 2;" (assignment_expression "local_30 = local_3c + 2" (identifier "local_30") (= "=") (binary_expression "local_3c + 2" (identifier "local_3c") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_001999dc;" (goto "goto") (statement_identifier "LAB_001999dc") (; ";")) (} "}"))) (goto_statement "goto LAB_00199733;" (goto "goto") (statement_identifier "LAB_00199733") (; ";")) (} "}"))) (expression_statement "local_30 = local_30 + 2;" (assignment_expression "local_30 = local_30 + 2" (identifier "local_30") (= "=") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((uVar6 & 0x1c00) == 0) {\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }" (if "if") (parenthesized_expression "((uVar6 & 0x1c00) == 0)" (( "(") (binary_expression "(uVar6 & 0x1c00) == 0" (parenthesized_expression "(uVar6 & 0x1c00)" (( "(") (binary_expression "uVar6 & 0x1c00" (identifier "uVar6") (& "&") (number_literal "0x1c00")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }\n            goto LAB_00199710;\n          }" ({ "{") (labeled_statement "LAB_001999dc:\n            if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }" (statement_identifier "LAB_001999dc") (: ":") (if_statement "if ((uVar6 & 0x3c00) == 0) {\n              param_1[10] = param_1[10] + 1;\n            }" (if "if") (parenthesized_expression "((uVar6 & 0x3c00) == 0)" (( "(") (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" (( "(") (binary_expression "uVar6 & 0x3c00" (identifier "uVar6") (& "&") (number_literal "0x3c00")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              param_1[10] = param_1[10] + 1;\n            }" ({ "{") (expression_statement "param_1[10] = param_1[10] + 1;" (assignment_expression "param_1[10] = param_1[10] + 1" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "param_1[10] + 1" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00199710;" (goto "goto") (statement_identifier "LAB_00199710") (; ";")) (} "}"))) (expression_statement "FUN_001934a0();" (call_expression "FUN_001934a0()" (identifier "FUN_001934a0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto joined_r0x00199a26;" (goto "goto") (statement_identifier "joined_r0x00199a26") (; ";")) (} "}"))) (labeled_statement "LAB_00199733:\n        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" (statement_identifier "LAB_00199733") (: ":") (if_statement "if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }\n        else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" (if "if") (parenthesized_expression "(((uVar6 & 0x800) == 0) || (bVar1 != 0x70))" (( "(") (binary_expression "((uVar6 & 0x800) == 0) || (bVar1 != 0x70)" (parenthesized_expression "((uVar6 & 0x800) == 0)" (( "(") (binary_expression "(uVar6 & 0x800) == 0" (parenthesized_expression "(uVar6 & 0x800)" (( "(") (binary_expression "uVar6 & 0x800" (identifier "uVar6") (& "&") (number_literal "0x800")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar1 != 0x70)" (( "(") (binary_expression "bVar1 != 0x70" (identifier "bVar1") (!= "!=") (number_literal "0x70")) () ")"))) () ")")) (compound_statement "{\n          if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }\n          if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }\nLAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;\n          bVar13 = false;\n          bVar15 = (uVar6 & 0x3c00) == 0;\n          if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }\nLAB_0019992e:\n          bVar16 = *local_3c;\n          while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }\n          pcVar10 = strstr((char *)local_3c,"__");\n          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;\n          iVar7 = FUN_00198b60(pcVar10);\n        }" ({ "{") (if_statement "if ((uVar6 & 0x2000) != 0) {\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }" (if "if") (parenthesized_expression "((uVar6 & 0x2000) != 0)" (( "(") (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" (( "(") (binary_expression "uVar6 & 0x2000" (identifier "uVar6") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }\n            if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }\n          }" ({ "{") (if_statement "if (bVar1 == 0x74) {\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" (if "if") (parenthesized_expression "(bVar1 == 0x74)" (( "(") (binary_expression "bVar1 == 0x74" (identifier "bVar1") (== "==") (number_literal "0x74")) () ")")) (compound_statement "{\n              if (local_3c[3] == 0x6d) goto LAB_00199a46;\n              goto LAB_001998ba;\n            }" ({ "{") (if_statement "if (local_3c[3] == 0x6d) goto LAB_00199a46;" (if "if") (parenthesized_expression "(local_3c[3] == 0x6d)" (( "(") (binary_expression "local_3c[3] == 0x6d" (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0x6d")) () ")")) (goto_statement "goto LAB_00199a46;" (goto "goto") (statement_identifier "LAB_00199a46") (; ";"))) (goto_statement "goto LAB_001998ba;" (goto "goto") (statement_identifier "LAB_001998ba") (; ";")) (} "}"))) (if_statement "if (bVar1 == 0x70) {\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }" (if "if") (parenthesized_expression "(bVar1 == 0x70)" (( "(") (binary_expression "bVar1 == 0x70" (identifier "bVar1") (== "==") (number_literal "0x70")) () ")")) (compound_statement "{\n              bVar11 = local_3c[3];\n              goto LAB_001998a8;\n            }" ({ "{") (expression_statement "bVar11 = local_3c[3];" (assignment_expression "bVar11 = local_3c[3]" (identifier "bVar11") (= "=") (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_001998a8;" (goto "goto") (statement_identifier "LAB_001998a8") (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_30 != local_3c) {\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" (if "if") (parenthesized_expression "(local_30 != local_3c)" (( "(") (binary_expression "local_30 != local_3c" (identifier "local_30") (!= "!=") (identifier "local_3c")) () ")")) (compound_statement "{\nLAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;\n            goto LAB_001998ba;\n          }" ({ "{") (labeled_statement "LAB_00199759:\n            if (bVar1 == 0) goto LAB_00199643;" (statement_identifier "LAB_00199759") (: ":") (if_statement "if (bVar1 == 0) goto LAB_00199643;" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00199643;" (goto "goto") (statement_identifier "LAB_00199643") (; ";")))) (goto_statement "goto LAB_001998ba;" (goto "goto") (statement_identifier "LAB_001998ba") (; ";")) (} "}"))) (labeled_statement "LAB_00199907:\n          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" (statement_identifier "LAB_00199907") (: ":") (if_statement "if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;" (if "if") (parenthesized_expression "((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74))" (( "(") (binary_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)" (parenthesized_expression "(((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0)" (( "(") (binary_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0" (parenthesized_expression "((&DAT_0026bf40)[(uint)bVar1 * 2] & 4)" (( "(") (binary_expression "(&DAT_0026bf40)[(uint)bVar1 * 2] & 4" (subscript_expression "(&DAT_0026bf40)[(uint)bVar1 * 2]" (parenthesized_expression "(&DAT_0026bf40)" (( "(") (pointer_expression "&DAT_0026bf40" (& "&") (identifier "DAT_0026bf40")) () ")")) ([ "[") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar1 == 0x74)" (( "(") (binary_expression "bVar1 == 0x74" (identifier "bVar1") (== "==") (number_literal "0x74")) () ")"))) () ")")) (goto_statement "goto LAB_00199759;" (goto "goto") (statement_identifier "LAB_00199759") (; ";")))) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (uVar6 & 0x3c00) == 0;" (assignment_expression "bVar15 = (uVar6 & 0x3c00) == 0" (identifier "bVar15") (= "=") (binary_expression "(uVar6 & 0x3c00) == 0" (parenthesized_expression "(uVar6 & 0x3c00)" (( "(") (binary_expression "uVar6 & 0x3c00" (identifier "uVar6") (& "&") (number_literal "0x3c00")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar15) {\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (compound_statement "{\n            iVar7 = 8;\n            pbVar9 = local_3c;\n            pbVar12 = (byte *)"__vtbl__";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);\n            if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }\n          }" ({ "{") (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" (identifier "iVar7") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar9 = local_3c;" (assignment_expression "pbVar9 = local_3c" (identifier "pbVar9") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "pbVar12 = (byte *)"__vtbl__";" (assignment_expression "pbVar12 = (byte *)"__vtbl__"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)"__vtbl__"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__vtbl__"" (" """) (string_content "__vtbl__") (" """)))) (; ";")) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            } while (bVar15);" (do "do") (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar13 = *pbVar9 < *pbVar12;\n              bVar15 = *pbVar9 == *pbVar12;\n              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;\n              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar9 < *pbVar12;" (assignment_expression "bVar13 = *pbVar9 < *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar9 < *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar9 == *pbVar12;" (assignment_expression "bVar15 = *pbVar9 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar9 == *pbVar12" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1" (identifier "pbVar9") (= "=") (binary_expression "pbVar9 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar16 * -2" (identifier "pbVar9") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }" (if "if") (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" (( "(") (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" (( "(") (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar13")) () ")")) (compound_statement "{\n              bVar16 = local_3c[8];\n              local_2c = local_3c + 8;\nLAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }\n              bVar16 = local_30[8];\n              local_30 = local_30 + 8;\nLAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }\n              iVar7 = 1;\n              FUN_001938f0();\n              goto LAB_0019947b;\n            }" ({ "{") (expression_statement "bVar16 = local_3c[8];" (assignment_expression "bVar16 = local_3c[8]" (identifier "bVar16") (= "=") (subscript_expression "local_3c[8]" (identifier "local_3c") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_2c = local_3c + 8;" (assignment_expression "local_2c = local_3c + 8" (identifier "local_2c") (= "=") (binary_expression "local_3c + 8" (identifier "local_3c") (+ "+") (number_literal "8"))) (; ";")) (labeled_statement "LAB_00199ac0:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" (statement_identifier "LAB_00199ac0") (: ":") (if_statement "if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" (if "if") (parenthesized_expression "(bVar16 != 0)" (( "(") (binary_expression "bVar16 != 0" (identifier "bVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);\n                local_2c = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199ac0;\n              }" ({ "{") (do_statement "do {\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                } while (pbVar9[1] != 0x5f);" (do "do") (compound_statement "{\n                  iVar7 = FUN_001934a0();\n                  if (iVar7 == -1) goto LAB_0019992e;\n                  pbVar9 = local_2c + iVar7;\n                  bVar16 = *pbVar9;\n                  local_2c = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199ac0;\n                }" ({ "{") (expression_statement "iVar7 = FUN_001934a0();" (assignment_expression "iVar7 = FUN_001934a0()" (identifier "iVar7") (= "=") (call_expression "FUN_001934a0()" (identifier "FUN_001934a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == -1) goto LAB_0019992e;" (if "if") (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0019992e;" (goto "goto") (statement_identifier "LAB_0019992e") (; ";"))) (expression_statement "pbVar9 = local_2c + iVar7;" (assignment_expression "pbVar9 = local_2c + iVar7" (identifier "pbVar9") (= "=") (binary_expression "local_2c + iVar7" (identifier "local_2c") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "bVar16 = *pbVar9;" (assignment_expression "bVar16 = *pbVar9" (identifier "bVar16") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "local_2c = pbVar9;" (assignment_expression "local_2c = pbVar9" (identifier "local_2c") (= "=") (identifier "pbVar9")) (; ";")) (if_statement "if (bVar16 != 0x5f) goto LAB_00199ac0;" (if "if") (parenthesized_expression "(bVar16 != 0x5f)" (( "(") (binary_expression "bVar16 != 0x5f" (identifier "bVar16") (!= "!=") (number_literal "0x5f")) () ")")) (goto_statement "goto LAB_00199ac0;" (goto "goto") (statement_identifier "LAB_00199ac0") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(pbVar9[1] != 0x5f)" (( "(") (binary_expression "pbVar9[1] != 0x5f" (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5f")) () ")")) (; ";")) (expression_statement "local_2c = pbVar9 + 2;" (assignment_expression "local_2c = pbVar9 + 2" (identifier "local_2c") (= "=") (binary_expression "pbVar9 + 2" (identifier "pbVar9") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar16 = pbVar9[2];" (assignment_expression "bVar16 = pbVar9[2]" (identifier "bVar16") (= "=") (subscript_expression "pbVar9[2]" (identifier "pbVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (goto_statement "goto LAB_00199ac0;" (goto "goto") (statement_identifier "LAB_00199ac0") (; ";")) (} "}")))) (expression_statement "bVar16 = local_30[8];" (assignment_expression "bVar16 = local_30[8]" (identifier "bVar16") (= "=") (subscript_expression "local_30[8]" (identifier "local_30") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_30 = local_30 + 8;" (assignment_expression "local_30 = local_30 + 8" (identifier "local_30") (= "=") (binary_expression "local_30 + 8" (identifier "local_30") (+ "+") (number_literal "8"))) (; ";")) (labeled_statement "LAB_00199b12:\n              if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" (statement_identifier "LAB_00199b12") (: ":") (if_statement "if (bVar16 != 0) {\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" (if "if") (parenthesized_expression "(bVar16 != 0)" (( "(") (binary_expression "bVar16 != 0" (identifier "bVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);\n                FUN_001938b0();\n                local_30 = pbVar9 + 2;\n                bVar16 = pbVar9[2];\n                goto LAB_00199b12;\n              }" ({ "{") (do_statement "do {\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                } while (pbVar9[1] != 0x5f);" (do "do") (compound_statement "{\n                  iVar7 = FUN_001934a0();\n                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;\n                  if (iVar7 != 0) {\n                    FUN_00193850();\n                  }\n                  pbVar9 = local_30 + iVar7;\n                  bVar16 = *pbVar9;\n                  local_30 = pbVar9;\n                  if (bVar16 != 0x5f) goto LAB_00199b12;\n                }" ({ "{") (expression_statement "iVar7 = FUN_001934a0();" (assignment_expression "iVar7 = FUN_001934a0()" (identifier "iVar7") (= "=") (call_expression "FUN_001934a0()" (identifier "FUN_001934a0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))\n                  goto LAB_0019992e;" (if "if") (parenthesized_expression "((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))" (( "(") (binary_expression "(iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7)" (( "(") (comma_expression "sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7" (assignment_expression "sVar8 = strlen((char *)local_30)" (identifier "sVar8") (= "=") (call_expression "strlen((char *)local_30)" (identifier "strlen") (argument_list "((char *)local_30)" (( "(") (cast_expression "(char *)local_30" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30")) () ")")))) (, ",") (binary_expression "(int)sVar8 < iVar7" (cast_expression "(int)sVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar8")) (< "<") (identifier "iVar7"))) () ")"))) () ")")) (goto_statement "goto LAB_0019992e;" (goto "goto") (statement_identifier "LAB_0019992e") (; ";"))) (if_statement "if (iVar7 != 0) {\n                    FUN_00193850();\n                  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    FUN_00193850();\n                  }" ({ "{") (expression_statement "FUN_00193850();" (call_expression "FUN_00193850()" (identifier "FUN_00193850") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar9 = local_30 + iVar7;" (assignment_expression "pbVar9 = local_30 + iVar7" (identifier "pbVar9") (= "=") (binary_expression "local_30 + iVar7" (identifier "local_30") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "bVar16 = *pbVar9;" (assignment_expression "bVar16 = *pbVar9" (identifier "bVar16") (= "=") (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9"))) (; ";")) (expression_statement "local_30 = pbVar9;" (assignment_expression "local_30 = pbVar9" (identifier "local_30") (= "=") (identifier "pbVar9")) (; ";")) (if_statement "if (bVar16 != 0x5f) goto LAB_00199b12;" (if "if") (parenthesized_expression "(bVar16 != 0x5f)" (( "(") (binary_expression "bVar16 != 0x5f" (identifier "bVar16") (!= "!=") (number_literal "0x5f")) () ")")) (goto_statement "goto LAB_00199b12;" (goto "goto") (statement_identifier "LAB_00199b12") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(pbVar9[1] != 0x5f)" (( "(") (binary_expression "pbVar9[1] != 0x5f" (subscript_expression "pbVar9[1]" (identifier "pbVar9") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5f")) () ")")) (; ";")) (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" (identifier "FUN_001938b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_30 = pbVar9 + 2;" (assignment_expression "local_30 = pbVar9 + 2" (identifier "local_30") (= "=") (binary_expression "pbVar9 + 2" (identifier "pbVar9") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar16 = pbVar9[2];" (assignment_expression "bVar16 = pbVar9[2]" (identifier "bVar16") (= "=") (subscript_expression "pbVar9[2]" (identifier "pbVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (goto_statement "goto LAB_00199b12;" (goto "goto") (statement_identifier "LAB_00199b12") (; ";")) (} "}")))) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_001938f0();" (call_expression "FUN_001938f0()" (identifier "FUN_001938f0") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0019947b;" (goto "goto") (statement_identifier "LAB_0019947b") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0019992e:\n          bVar16 = *local_3c;" (statement_identifier "LAB_0019992e") (: ":") (expression_statement "bVar16 = *local_3c;" (assignment_expression "bVar16 = *local_3c" (identifier "bVar16") (= "=") (pointer_expression "*local_3c" (* "*") (identifier "local_3c"))) (; ";"))) (while_statement "while (bVar16 == 0x5f) {\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }" (while "while") (parenthesized_expression "(bVar16 == 0x5f)" (( "(") (binary_expression "bVar16 == 0x5f" (identifier "bVar16") (== "==") (number_literal "0x5f")) () ")")) (compound_statement "{\n            local_3c = local_3c + 1;\n            bVar16 = *local_3c;\n          }" ({ "{") (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar16 = *local_3c;" (assignment_expression "bVar16 = *local_3c" (identifier "bVar16") (= "=") (pointer_expression "*local_3c" (* "*") (identifier "local_3c"))) (; ";")) (} "}"))) (expression_statement "pcVar10 = strstr((char *)local_3c,"__");" (assignment_expression "pcVar10 = strstr((char *)local_3c,"__")" (identifier "pcVar10") (= "=") (call_expression "strstr((char *)local_3c,"__")" (identifier "strstr") (argument_list "((char *)local_3c,"__")" (( "(") (cast_expression "(char *)local_3c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")) (, ",") (string_literal ""__"" (" """) (string_content "__") (" """)) () ")")))) (; ";")) (if_statement "if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;" (if "if") (parenthesized_expression "((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0'))" (( "(") (binary_expression "(pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')" (parenthesized_expression "(pcVar10 == (char *)0x0)" (( "(") (binary_expression "pcVar10 == (char *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar10[2] == '\0')" (( "(") (binary_expression "pcVar10[2] == '\0'" (subscript_expression "pcVar10[2]" (identifier "pcVar10") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00199643;" (goto "goto") (statement_identifier "LAB_00199643") (; ";"))) (expression_statement "iVar7 = FUN_00198b60(pcVar10);" (assignment_expression "iVar7 = FUN_00198b60(pcVar10)" (identifier "iVar7") (= "=") (call_expression "FUN_00198b60(pcVar10)" (identifier "FUN_00198b60") (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" (else "else") (compound_statement "{\n          bVar11 = local_3c[3];\n          if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }\n          if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }\n          if (local_30 == local_3c) goto LAB_00199907;\nLAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);\n        }" ({ "{") (expression_statement "bVar11 = local_3c[3];" (assignment_expression "bVar11 = local_3c[3]" (identifier "bVar11") (= "=") (subscript_expression "local_3c[3]" (identifier "local_3c") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (bVar11 == 0x74) {\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }" (if "if") (parenthesized_expression "(bVar11 == 0x74)" (( "(") (binary_expression "bVar11 == 0x74" (identifier "bVar11") (== "==") (number_literal "0x74")) () ")")) (compound_statement "{\nLAB_00199a46:\n            iVar7 = 1;\n            strlen((char *)local_30);\n            FUN_00195c60(&local_28);\n            goto LAB_0019947b;\n          }" ({ "{") (labeled_statement "LAB_00199a46:\n            iVar7 = 1;" (statement_identifier "LAB_00199a46") (: ":") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";"))) (expression_statement "strlen((char *)local_30);" (call_expression "strlen((char *)local_30)" (identifier "strlen") (argument_list "((char *)local_30)" (( "(") (cast_expression "(char *)local_30" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "FUN_00195c60(&local_28);" (call_expression "FUN_00195c60(&local_28)" (identifier "FUN_00195c60") (argument_list "(&local_28)" (( "(") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))) (; ";")) (goto_statement "goto LAB_0019947b;" (goto "goto") (statement_identifier "LAB_0019947b") (; ";")) (} "}"))) (if_statement "if ((uVar6 & 0x2000) != 0) {\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }" (if "if") (parenthesized_expression "((uVar6 & 0x2000) != 0)" (( "(") (binary_expression "(uVar6 & 0x2000) != 0" (parenthesized_expression "(uVar6 & 0x2000)" (( "(") (binary_expression "uVar6 & 0x2000" (identifier "uVar6") (& "&") (number_literal "0x2000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;\n          }" ({ "{") (labeled_statement "LAB_001998a8:\n            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;" (statement_identifier "LAB_001998a8") (: ":") (if_statement "if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;" (if "if") (parenthesized_expression "((byte)(bVar11 + 0x8d) < 2)" (( "(") (binary_expression "(byte)(bVar11 + 0x8d) < 2" (call_expression "(byte)(bVar11 + 0x8d)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(bVar11 + 0x8d)" (( "(") (binary_expression "bVar11 + 0x8d" (identifier "bVar11") (+ "+") (number_literal "0x8d")) () ")"))) (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00199a46;" (goto "goto") (statement_identifier "LAB_00199a46") (; ";")))) (} "}"))) (if_statement "if (local_30 == local_3c) goto LAB_00199907;" (if "if") (parenthesized_expression "(local_30 == local_3c)" (( "(") (binary_expression "local_30 == local_3c" (identifier "local_30") (== "==") (identifier "local_3c")) () ")")) (goto_statement "goto LAB_00199907;" (goto "goto") (statement_identifier "LAB_00199907") (; ";"))) (labeled_statement "LAB_001998ba:\n          iVar7 = FUN_00198b60(local_3c);" (statement_identifier "LAB_001998ba") (: ":") (expression_statement "iVar7 = FUN_00198b60(local_3c);" (assignment_expression "iVar7 = FUN_00198b60(local_3c)" (identifier "iVar7") (= "=") (call_expression "FUN_00198b60(local_3c)" (identifier "FUN_00198b60") (argument_list "(local_3c)" (( "(") (identifier "local_3c") () ")")))) (; ";"))) (} "}"))))) (if_statement "if (iVar7 != 0) goto LAB_0019947b;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0019947b;" (goto "goto") (statement_identifier "LAB_0019947b") (; ";"))) (goto_statement "goto LAB_00199484;" (goto "goto") (statement_identifier "LAB_00199484") (; ";")) (} "}"))) (labeled_statement "LAB_00199643:\n      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" (statement_identifier "LAB_00199643") (: ":") (if_statement "if ((param_1[10] == 2) || (param_1[0xb] == 2)) {\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" (if "if") (parenthesized_expression "((param_1[10] == 2) || (param_1[0xb] == 2))" (( "(") (binary_expression "(param_1[10] == 2) || (param_1[0xb] == 2)" (parenthesized_expression "(param_1[10] == 2)" (( "(") (binary_expression "param_1[10] == 2" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(param_1[0xb] == 2)" (( "(") (binary_expression "param_1[0xb] == 2" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\njoined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }\n        sVar8 = strlen((char *)local_30);\n        local_30 = local_30 + sVar8;\n        goto LAB_00199710;\n      }" ({ "{") (labeled_statement "joined_r0x00199a26:\n        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }" (statement_identifier "joined_r0x00199a26") (: ":") (if_statement "if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {\n          FUN_001938f0();\n        }" (if "if") (parenthesized_expression "((local_30 != (byte *)0x0) && (*local_30 != 0))" (( "(") (binary_expression "(local_30 != (byte *)0x0) && (*local_30 != 0)" (parenthesized_expression "(local_30 != (byte *)0x0)" (( "(") (binary_expression "local_30 != (byte *)0x0" (identifier "local_30") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*local_30 != 0)" (( "(") (binary_expression "*local_30 != 0" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          FUN_001938f0();\n        }" ({ "{") (expression_statement "FUN_001938f0();" (call_expression "FUN_001938f0()" (identifier "FUN_001938f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "sVar8 = strlen((char *)local_30);" (assignment_expression "sVar8 = strlen((char *)local_30)" (identifier "sVar8") (= "=") (call_expression "strlen((char *)local_30)" (identifier "strlen") (argument_list "((char *)local_30)" (( "(") (cast_expression "(char *)local_30" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_30")) () ")")))) (; ";")) (expression_statement "local_30 = local_30 + sVar8;" (assignment_expression "local_30 = local_30 + sVar8" (identifier "local_30") (= "=") (binary_expression "local_30 + sVar8" (identifier "local_30") (+ "+") (identifier "sVar8"))) (; ";")) (goto_statement "goto LAB_00199710;" (goto "goto") (statement_identifier "LAB_00199710") (; ";")) (} "}")))) (if_statement "if (param_1[0xf] == 1) {\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" (if "if") (parenthesized_expression "(param_1[0xf] == 1)" (( "(") (binary_expression "param_1[0xf] == 1" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        iVar7 = 0;\n        goto LAB_00199872;\n      }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00199872;" (goto "goto") (statement_identifier "LAB_00199872") (; ";")) (} "}"))) (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" (identifier "FUN_00193630") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" (else "else") (compound_statement "{\n      iVar7 = FUN_00198d60();\n      if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }\nLAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }\nLAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }\n      FUN_00193630();\n      if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }\n    }" ({ "{") (expression_statement "iVar7 = FUN_00198d60();" (assignment_expression "iVar7 = FUN_00198d60()" (identifier "iVar7") (= "=") (call_expression "FUN_00198d60()" (identifier "FUN_00198d60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00193630();\n        FUN_001930a0();\n        if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }\n        goto LAB_00199538;\n      }" ({ "{") (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" (identifier "FUN_00193630") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001930a0();" (call_expression "FUN_001930a0()" (identifier "FUN_001930a0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_28 != (void *)0x0) {\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }" (if "if") (parenthesized_expression "(local_28 != (void *)0x0)" (( "(") (binary_expression "local_28 != (void *)0x0" (identifier "local_28") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          free(local_28);\n          local_24 = 0;\n          local_20 = 0;\n          local_28 = (void *)0x0;\n        }" ({ "{") (expression_statement "free(local_28);" (call_expression "free(local_28)" (identifier "free") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" (identifier "local_28") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00199538;" (goto "goto") (statement_identifier "LAB_00199538") (; ";")) (} "}"))) (labeled_statement "LAB_0019947b:\n      if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }" (statement_identifier "LAB_0019947b") (: ":") (if_statement "if (*local_30 != 0) {\n        iVar7 = FUN_00198180();\n      }" (if "if") (parenthesized_expression "(*local_30 != 0)" (( "(") (binary_expression "*local_30 != 0" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = FUN_00198180();\n      }" ({ "{") (expression_statement "iVar7 = FUN_00198180();" (assignment_expression "iVar7 = FUN_00198180()" (identifier "iVar7") (= "=") (call_expression "FUN_00198180()" (identifier "FUN_00198180") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_00199484:\n      if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" (statement_identifier "LAB_00199484") (: ":") (if_statement "if (param_1[10] == 2) {\n        FUN_001938b0();\n        param_1[10] = 0;\n      }\n      else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" (if "if") (parenthesized_expression "(param_1[10] == 2)" (( "(") (binary_expression "param_1[10] == 2" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_001938b0();\n        param_1[10] = 0;\n      }" ({ "{") (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" (identifier "FUN_001938b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" (else "else") (if_statement "if (param_1[0xb] == 2) {\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }\n      else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" (if "if") (parenthesized_expression "(param_1[0xb] == 2)" (( "(") (binary_expression "param_1[0xb] == 2" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        FUN_001938b0();\n        param_1[0xb] = 0;\n      }" ({ "{") (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" (identifier "FUN_001938b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1[0xb] = 0;" (assignment_expression "param_1[0xb] = 0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" (else "else") (if_statement "if (param_1[0xf] == 1) {\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" (if "if") (parenthesized_expression "(param_1[0xf] == 1)" (( "(") (binary_expression "param_1[0xf] == 1" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00199872:\n        FUN_001938b0();\n        param_1[0xf] = 0;\n      }" ({ "{") (labeled_statement "LAB_00199872:\n        FUN_001938b0();" (statement_identifier "LAB_00199872") (: ":") (expression_statement "FUN_001938b0();" (call_expression "FUN_001938b0()" (identifier "FUN_001938b0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "param_1[0xf] = 0;" (assignment_expression "param_1[0xf] = 0" (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))))))) (expression_statement "FUN_00193630();" (call_expression "FUN_00193630()" (identifier "FUN_00193630") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar7 != 0) {\n        FUN_00193810();\n        goto LAB_001994c7;\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00193810();\n        goto LAB_001994c7;\n      }" ({ "{") (expression_statement "FUN_00193810();" (call_expression "FUN_00193810()" (identifier "FUN_00193810") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_001994c7;" (goto "goto") (statement_identifier "LAB_001994c7") (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_28 != (void *)0x0) {\n      free(local_28);\n    }" (if "if") (parenthesized_expression "(local_28 != (void *)0x0)" (( "(") (binary_expression "local_28 != (void *)0x0" (identifier "local_28") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(local_28);\n    }" ({ "{") (expression_statement "free(local_28);" (call_expression "free(local_28)" (identifier "free") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_28 = (void *)0x0;" (assignment_expression "local_28 = (void *)0x0" (identifier "local_28") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_001994c7:\n  param_1[10] = uVar2;" (statement_identifier "LAB_001994c7") (: ":") (expression_statement "param_1[10] = uVar2;" (assignment_expression "param_1[10] = uVar2" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar2")) (; ";"))) (expression_statement "param_1[0xb] = uVar5;" (assignment_expression "param_1[0xb] = uVar5" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "param_1[0xc] = uVar4;" (assignment_expression "param_1[0xc] = uVar4" (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "param_1[0xe] = uVar3;" (assignment_expression "param_1[0xe] = uVar3" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return local_28;" (return "return") (identifier "local_28") (; ";")) (} "}")))

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

char * __regparm3 function_1(type_1 *work,char *var_1)

{
  type_2 var_5;
  int iVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  type_3 var_18;
  int var_4;
  size_t var_3;
  char *var_10;
  type_1 *var_17;
  char var_11;
  type_1 *var_14;
  type_1 *pwVar12;
  type_2 *var_6;
  bool var_7;
  bool var_8;
  bool bVar16;
  type_2 var_16;
  char **ppcVar18;
  type_4 *in_stack_ffffffac;
  char *in_stack_ffffffb0;
  type_1 *var_13;
  type_1 *var_27;
  char *var_20;
  type_4 decl;
  
  var_16 = 0;
  iVar2 = work->constructor;
  iVar3 = work->type_quals;
  work->constructor = 0;
  iVar4 = work->static_type;
  iVar5 = work->destructor;
  work->destructor = 0;
  work->type_quals = 0;
  work->dllimported = 0;
  if ((var_1 != (char *)0x0) && (*var_1 != '\0')) {
    decl.e = (char *)0x0;
    decl.p = (char *)0x0;
    decl.b = (char *)0x0;
    var_27 = (type_1 *)var_1;
    if ((work->options & 0x300U) == 0) {
LAB_00199538:
      var_14 = var_27;
      var_3 = var_2((char *)var_27);
      var_7 = var_3 < 6;
      bVar16 = var_3 == 6;
      var_17 = var_14;
      if (var_3 < 7) goto LAB_00199670;
      var_4 = 6;
      pwVar12 = var_14;
      var_6 = (type_2 *)"_imp__";
      do {
        if (var_4 == 0) break;
        var_4 = var_4 + -1;
        var_5 = (type_2)pwVar12->options;
        var_7 = var_5 < *var_6;
        bVar16 = var_5 == *var_6;
        pwVar12 = (type_1 *)((int)pwVar12 + (type_3)var_16 * -2 + 1);
        var_6 = var_6 + (type_3)var_16 * -2 + 1;
      } while (bVar16);
      var_8 = false;
      var_7 = (!var_7 && !bVar16) == var_7;
      if (!var_7) {
        var_4 = 6;
        pwVar12 = var_14;
        var_6 = (type_2 *)"__imp_";
        do {
          if (var_4 == 0) break;
          var_4 = var_4 + -1;
          var_5 = (type_2)pwVar12->options;
          var_8 = var_5 < *var_6;
          var_7 = var_5 == *var_6;
          pwVar12 = (type_1 *)((int)pwVar12 + (type_3)var_16 * -2 + 1);
          var_6 = var_6 + (type_3)var_16 * -2 + 1;
        } while (var_7);
        if ((!var_8 && !var_7) == var_8) goto LAB_00199770;
        var_7 = var_3 < 10;
        bVar16 = var_3 == 10;
        if (var_3 < 0xb) {
LAB_00199670:
          var_7 = false;
          bVar16 = (work->options & 0x3800U) == 0;
          if (!bVar16) {
            var_4 = 7;
            pwVar12 = var_14;
            var_6 = (type_2 *)"__std__";
            do {
              if (var_4 == 0) break;
              var_4 = var_4 + -1;
              var_5 = (type_2)pwVar12->options;
              var_7 = var_5 < *var_6;
              bVar16 = var_5 == *var_6;
              pwVar12 = (type_1 *)((int)pwVar12 + (type_3)var_16 * -2 + 1);
              var_6 = var_6 + (type_3)var_16 * -2 + 1;
            } while (bVar16);
            var_8 = false;
            var_7 = (!var_7 && !bVar16) == var_7;
            if (var_7) {
              var_27 = (type_1 *)((int)&var_14->typevec + 3);
              work->destructor = 2;
              var_14 = var_27;
              var_17 = var_27;
            }
            else {
              var_4 = 7;
              pwVar12 = var_14;
              var_6 = (type_2 *)"__sti__";
              do {
                if (var_4 == 0) break;
                var_4 = var_4 + -1;
                var_5 = (type_2)pwVar12->options;
                var_8 = var_5 < *var_6;
                var_7 = var_5 == *var_6;
                pwVar12 = (type_1 *)((int)pwVar12 + (type_3)var_16 * -2 + 1);
                var_6 = var_6 + (type_3)var_16 * -2 + 1;
              } while (var_7);
              if ((!var_8 && !var_7) == var_8) {
                var_27 = (type_1 *)((int)&var_14->typevec + 3);
                work->constructor = 2;
                var_14 = var_27;
                var_17 = var_27;
              }
            }
          }
          goto LAB_00199631;
        }
        var_4 = 8;
        pwVar12 = var_14;
        var_6 = (type_2 *)"_GLOBAL_";
        do {
          if (var_4 == 0) break;
          var_4 = var_4 + -1;
          var_5 = (type_2)pwVar12->options;
          var_7 = var_5 < *var_6;
          bVar16 = var_5 == *var_6;
          pwVar12 = (type_1 *)((int)pwVar12 + (type_3)var_16 * -2 + 1);
          var_6 = var_6 + (type_3)var_16 * -2 + 1;
        } while (bVar16);
        if ((!var_7 && !bVar16) != var_7) goto LAB_00199670;
        var_10 = var_9(cplus_markers,(int)*(char *)&var_14->ktypevec);
        if ((var_10 == (char *)0x0) || (*var_10 != *(char *)((int)&var_14->ktypevec + 2)))
        goto LAB_00199631;
        var_11 = *(char *)((int)&var_14->ktypevec + 1);
        if (var_11 == 'D') {
          work->destructor = 2;
        }
        else {
          if (var_11 != 'I') goto LAB_00199631;
          work->constructor = 2;
        }
        var_27 = (type_1 *)((int)&var_14->ktypevec + 3);
        in_stack_ffffffb0 = (char *)0x19960c;
        var_4 = var_12(work,(char **)&var_27,&decl);
        var_17 = var_27;
        var_14 = var_27;
        if (var_4 == 0) goto LAB_00199631;
LAB_00199710:
        var_4 = 1;
        goto LAB_0019947b;
      }
LAB_00199770:
      var_27 = (type_1 *)((int)&var_14->typevec + 2);
      work->dllimported = 1;
      var_14 = var_27;
      var_17 = var_27;
LAB_00199631:
      do {
        var_13 = (type_1 *)var_9((char *)var_14,0x5f);
        if (var_13 == (type_1 *)0x0) goto LAB_00199643;
        var_14 = (type_1 *)((int)&var_13->options + 1);
      } while (*(char *)((int)&var_13->options + 1) != '_');
      if (var_14 != (type_1 *)0x0) {
        ppcVar18 = (char **)0x24b428;
        var_3 = var_15((char *)var_13,"_");
        if ((2 < (int)var_3) &&
           (var_13 = (type_1 *)((int)var_13 + (var_3 - 2)), var_13 == (type_1 *)0x0))
        goto LAB_00199643;
        if (work->static_type != 0) {
          var_16 = (type_2)var_13->options;
          if (((_sch_istable[var_16] & 4) != 0) || (var_16 == 0x74)) goto LAB_00199710;
          goto LAB_00199643;
        }
        var_18 = work->options;
        var_5 = *(type_2 *)((int)&var_13->options + 2);
        if (var_17 == var_13) {
          if ((_sch_istable[var_5] & 4) == 0) {
            var_7 = var_5 == 0x74;
            if ((type_2)(var_5 + 0xb8) < 10) {
              var_7 = (bool)(var_7 | (type_2)(0x209 >> (var_5 + 0xb8 & 0x1f)) & 1);
            }
            if (var_7 != false) {
              var_17 = (type_1 *)((int)&var_13->options + 2);
              goto LAB_001999dc;
            }
            goto LAB_00199733;
          }
          var_17 = (type_1 *)((int)&var_17->options + 2);
          if ((var_18 & 0x1c00) == 0) {
LAB_001999dc:
            var_27 = var_17;
            if ((var_18 & 0x3c00) == 0) {
              work->constructor = work->constructor + 1;
            }
            goto LAB_00199710;
          }
          var_27 = var_17;
          var_19((char **)&var_27);
          goto joined_r0x00199a26;
        }
LAB_00199733:
        if (((var_18 & 0x800) == 0) || (var_5 != 0x70)) {
          if ((var_18 & 0x2000) != 0) {
            if (var_5 == 0x74) {
              if (*(char *)((int)&var_13->options + 3) == 'm') goto LAB_00199a46;
              goto LAB_001998ba;
            }
            if (var_5 == 0x70) {
              var_11 = *(char *)((int)&var_13->options + 3);
              goto LAB_001998a8;
            }
          }
          if (var_17 != var_13) {
LAB_00199759:
            if (var_5 == 0) goto LAB_00199643;
            goto LAB_001998ba;
          }
LAB_00199907:
          if (((_sch_istable[var_5] & 4) != 0) || (var_5 == 0x74)) goto LAB_00199759;
          var_7 = false;
          bVar16 = (var_18 & 0x3c00) == 0;
          if (!bVar16) {
            var_4 = 8;
            var_17 = var_13;
            var_6 = (type_2 *)"__vtbl__";
            do {
              if (var_4 == 0) break;
              var_4 = var_4 + -1;
              var_5 = (type_2)var_17->options;
              var_7 = var_5 < *var_6;
              bVar16 = var_5 == *var_6;
              var_17 = (type_1 *)((int)var_17 + (type_3)var_16 * -2 + 1);
              var_6 = var_6 + (type_3)var_16 * -2 + 1;
            } while (bVar16);
            if ((!var_7 && !bVar16) == var_7) {
              var_11 = *(char *)&var_13->ktypevec;
              var_20 = (char *)&var_13->ktypevec;
LAB_00199ac0:
              if (var_11 != '\0') {
                do {
                  in_stack_ffffffb0 = (char *)0x199acb;
                  var_4 = var_19(&var_20);
                  if (var_4 == -1) goto LAB_0019992e;
                  var_10 = var_20 + var_4;
                  var_11 = *var_10;
                  var_20 = var_10;
                  if (var_11 != '_') goto LAB_00199ac0;
                } while (var_10[1] != '_');
                var_20 = var_10 + 2;
                var_11 = var_10[2];
                goto LAB_00199ac0;
              }
              var_11 = *(char *)&var_27->ktypevec;
              var_27 = (type_1 *)&var_27->ktypevec;
LAB_00199b12:
              if (var_11 != '\0') {
                do {
                  in_stack_ffffffb0 = (char *)0x199b21;
                  var_4 = var_19((char **)&var_27);
                  var_17 = var_27;
                  if ((var_4 == -1) || (var_3 = var_2((char *)var_27), (int)var_3 < var_4))
                  goto LAB_0019992e;
                  if (var_4 != 0) {
                    var_21(&decl,(char *)var_17,var_4);
                    var_17 = var_27;
                  }
                  var_27 = (type_1 *)((int)&var_17->options + var_4);
                  var_11 = *(char *)&var_27->options;
                  if (var_11 != '_') goto LAB_00199b12;
                } while (*(char *)((int)&var_27->options + 1) != '_');
                var_22(&decl,"::");
                var_11 = *(char *)((int)&var_27->options + 2);
                var_27 = (type_1 *)((int)&var_27->options + 2);
                goto LAB_00199b12;
              }
              var_4 = 1;
              var_23(&decl," virtual table");
              var_17 = var_27;
              goto LAB_0019947b;
            }
          }
LAB_0019992e:
          var_11 = (char)var_13->options;
          while (var_11 == '_') {
            var_13 = (type_1 *)((int)&var_13->options + 1);
            var_11 = (char)var_13->options;
          }
          ppcVar18 = (char **)0x269580;
          var_17 = (type_1 *)var_24((char *)var_13,"__");
          if ((var_17 == (type_1 *)0x0) || (*(char *)((int)&var_17->options + 2) == '\0'))
          goto LAB_00199643;
          var_4 = var_25(var_17,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);
        }
        else {
          var_11 = *(char *)((int)&var_13->options + 3);
          if (var_11 == 't') {
LAB_00199a46:
            var_4 = 1;
            var_3 = var_2((char *)var_17);
            var_26(work,(char **)&var_27,var_3,&decl);
            var_17 = var_27;
            goto LAB_0019947b;
          }
          if ((var_18 & 0x2000) != 0) {
LAB_001998a8:
            if ((type_2)(var_11 + 0x8dU) < 2) goto LAB_00199a46;
          }
          if (var_17 == var_13) goto LAB_00199907;
LAB_001998ba:
          var_4 = var_25(var_13,ppcVar18,in_stack_ffffffac,in_stack_ffffffb0);
        }
        var_17 = var_27;
        if (var_4 != 0) goto LAB_0019947b;
        goto LAB_00199484;
      }
LAB_00199643:
      if ((work->constructor == 2) || (work->destructor == 2)) {
joined_r0x00199a26:
        if ((var_27 != (type_1 *)0x0) && ((char)var_27->options != '\0')) {
          var_23(&decl,(char *)var_27);
        }
        var_17 = var_27;
        var_3 = var_2((char *)var_27);
        var_17 = (type_1 *)((int)&var_17->options + var_3);
        var_27 = var_17;
        goto LAB_00199710;
      }
      if (work->dllimported == 1) {
        var_4 = 0;
        goto LAB_00199872;
      }
      var_28(work);
    }
    else {
      var_4 = var_12(work,(char **)&var_27,&decl);
      var_17 = var_27;
      if (var_4 == 0) {
        var_28(work);
        in_stack_ffffffb0 = (char *)0x1994fe;
        var_29(work);
        if (decl.b != (char *)0x0) {
          var_30(decl.b);
          decl.p = (char *)0x0;
          decl.e = (char *)0x0;
          decl.b = (char *)0x0;
        }
        goto LAB_00199538;
      }
LAB_0019947b:
      if ((char)var_17->options != '\0') {
        var_4 = var_31(work,(char **)&var_27,&decl);
      }
LAB_00199484:
      if (work->constructor == 2) {
        var_22(&decl,"global constructors keyed to ");
        work->constructor = 0;
      }
      else if (work->destructor == 2) {
        var_22(&decl,"global destructors keyed to ");
        work->destructor = 0;
      }
      else if (work->dllimported == 1) {
LAB_00199872:
        var_22(&decl,"import stub for ");
        work->dllimported = 0;
      }
      var_28(work);
      if (var_4 != 0) {
        var_32(&decl,"",1);
        goto LAB_001994c7;
      }
    }
    if (decl.b != (char *)0x0) {
      var_30(decl.b);
    }
  }
  decl.b = (char *)0x0;
LAB_001994c7:
  work->constructor = iVar2;
  work->destructor = iVar5;
  work->static_type = iVar4;
  work->type_quals = iVar3;
  return decl.b;
}


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

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

void * __regparm3 MASKED(uint *param_1,byte *param_2)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  int iVar7;
  size_t sVar8;
  byte *pbVar9;
  char *pcVar10;
  byte bVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  bool bVar15;
  byte bVar16;
  byte *local_3c;
  byte *local_30;
  byte *local_2c;
  void *local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar16 = 0;
  uStack_14 = 0x1993eb;
  uVar2 = param_1[10];
  uVar3 = param_1[0xe];
  param_1[10] = 0;
  uVar4 = param_1[0xc];
  uVar5 = param_1[0xb];
  param_1[0xb] = 0;
  param_1[0xe] = 0;
  param_1[0xf] = 0;
  if ((param_2 != (byte *)0x0) && (*param_2 != 0)) {
    local_20 = 0;
    local_24 = 0;
    local_28 = (void *)0x0;
    local_30 = param_2;
    if ((*param_1 & 0x300) == 0) {
LAB_00199538:
      sVar8 = strlen((char *)param_2);
      bVar13 = sVar8 < 6;
      bVar15 = sVar8 == 6;
      if (sVar8 < 7) goto LAB_00199670;
      iVar7 = 6;
      pbVar9 = param_2;
      pbVar12 = (byte *)"_imp__";
      do {
        if (iVar7 == 0) break;
        iVar7 = iVar7 + -1;
        bVar13 = *pbVar9 < *pbVar12;
        bVar15 = *pbVar9 == *pbVar12;
        pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
      } while (bVar15);
      bVar14 = false;
      bVar13 = (!bVar13 && !bVar15) == bVar13;
      if (!bVar13) {
        iVar7 = 6;
        pbVar9 = param_2;
        pbVar12 = (byte *)"__imp_";
        do {
          if (iVar7 == 0) break;
          iVar7 = iVar7 + -1;
          bVar14 = *pbVar9 < *pbVar12;
          bVar13 = *pbVar9 == *pbVar12;
          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
        } while (bVar13);
        if ((!bVar14 && !bVar13) == bVar14) goto LAB_00199770;
        bVar13 = sVar8 < 10;
        bVar15 = sVar8 == 10;
        if (sVar8 < 0xb) {
LAB_00199670:
          bVar13 = false;
          bVar15 = (*param_1 & 0x3800) == 0;
          if (!bVar15) {
            iVar7 = 7;
            pbVar9 = param_2;
            pbVar12 = (byte *)"__std__";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar13 = *pbVar9 < *pbVar12;
              bVar15 = *pbVar9 == *pbVar12;
              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
            } while (bVar15);
            bVar14 = false;
            bVar13 = (!bVar13 && !bVar15) == bVar13;
            if (bVar13) {
              param_2 = param_2 + 7;
              param_1[0xb] = 2;
              local_30 = param_2;
            }
            else {
              iVar7 = 7;
              pbVar9 = param_2;
              pbVar12 = (byte *)"__sti__";
              do {
                if (iVar7 == 0) break;
                iVar7 = iVar7 + -1;
                bVar14 = *pbVar9 < *pbVar12;
                bVar13 = *pbVar9 == *pbVar12;
                pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
                pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
              } while (bVar13);
              if ((!bVar14 && !bVar13) == bVar14) {
                param_2 = param_2 + 7;
                param_1[10] = 2;
                local_30 = param_2;
              }
            }
          }
          goto LAB_00199631;
        }
        iVar7 = 8;
        pbVar9 = param_2;
        pbVar12 = (byte *)"_GLOBAL_";
        do {
          if (iVar7 == 0) break;
          iVar7 = iVar7 + -1;
          bVar13 = *pbVar9 < *pbVar12;
          bVar15 = *pbVar9 == *pbVar12;
          pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
        } while (bVar15);
        if ((!bVar13 && !bVar15) != bVar13) goto LAB_00199670;
        pbVar9 = (byte *)strchr(&DAT_0033f2f4,(int)(char)param_2[8]);
        if ((pbVar9 == (byte *)0x0) || (*pbVar9 != param_2[10])) goto LAB_00199631;
        if (param_2[9] == 0x44) {
          param_1[0xb] = 2;
        }
        else {
          if (param_2[9] != 0x49) goto LAB_00199631;
          param_1[10] = 2;
        }
        local_30 = param_2 + 0xb;
        iVar7 = FUN_00198d60();
        param_2 = local_30;
        if (iVar7 == 0) goto LAB_00199631;
LAB_00199710:
        iVar7 = 1;
        goto LAB_0019947b;
      }
LAB_00199770:
      param_2 = param_2 + 6;
      param_1[0xf] = 1;
      local_30 = param_2;
LAB_00199631:
      do {
        local_3c = (byte *)strchr((char *)param_2,0x5f);
        if (local_3c == (byte *)0x0) goto LAB_00199643;
        param_2 = local_3c + 1;
      } while (local_3c[1] != 0x5f);
      if ((param_2 != (byte *)0x0) &&
         ((sVar8 = strspn((char *)local_3c,"_"), (int)sVar8 < 3 ||
          (local_3c = local_3c + (sVar8 - 2), local_3c != (byte *)0x0)))) {
        if (param_1[0xc] != 0) {
          if ((((&DAT_0026bf40)[(uint)*local_3c * 2] & 4) != 0) || (*local_3c == 0x74))
          goto LAB_00199710;
          goto LAB_00199643;
        }
        uVar6 = *param_1;
        bVar1 = local_3c[2];
        if (local_30 == local_3c) {
          if (((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) == 0) {
            bVar13 = bVar1 == 0x74;
            if ((byte)(bVar1 + 0xb8) < 10) {
              bVar13 = (bool)(bVar13 | (byte)(0x209 >> (bVar1 + 0xb8 & 0x1f)) & 1);
            }
            if (bVar13 != false) {
              local_30 = local_3c + 2;
              goto LAB_001999dc;
            }
            goto LAB_00199733;
          }
          local_30 = local_30 + 2;
          if ((uVar6 & 0x1c00) == 0) {
LAB_001999dc:
            if ((uVar6 & 0x3c00) == 0) {
              param_1[10] = param_1[10] + 1;
            }
            goto LAB_00199710;
          }
          FUN_001934a0();
          goto joined_r0x00199a26;
        }
LAB_00199733:
        if (((uVar6 & 0x800) == 0) || (bVar1 != 0x70)) {
          if ((uVar6 & 0x2000) != 0) {
            if (bVar1 == 0x74) {
              if (local_3c[3] == 0x6d) goto LAB_00199a46;
              goto LAB_001998ba;
            }
            if (bVar1 == 0x70) {
              bVar11 = local_3c[3];
              goto LAB_001998a8;
            }
          }
          if (local_30 != local_3c) {
LAB_00199759:
            if (bVar1 == 0) goto LAB_00199643;
            goto LAB_001998ba;
          }
LAB_00199907:
          if ((((&DAT_0026bf40)[(uint)bVar1 * 2] & 4) != 0) || (bVar1 == 0x74)) goto LAB_00199759;
          bVar13 = false;
          bVar15 = (uVar6 & 0x3c00) == 0;
          if (!bVar15) {
            iVar7 = 8;
            pbVar9 = local_3c;
            pbVar12 = (byte *)"__vtbl__";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar13 = *pbVar9 < *pbVar12;
              bVar15 = *pbVar9 == *pbVar12;
              pbVar9 = pbVar9 + (uint)bVar16 * -2 + 1;
              pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
            } while (bVar15);
            if ((!bVar13 && !bVar15) == bVar13) {
              bVar16 = local_3c[8];
              local_2c = local_3c + 8;
LAB_00199ac0:
              if (bVar16 != 0) {
                do {
                  iVar7 = FUN_001934a0();
                  if (iVar7 == -1) goto LAB_0019992e;
                  pbVar9 = local_2c + iVar7;
                  bVar16 = *pbVar9;
                  local_2c = pbVar9;
                  if (bVar16 != 0x5f) goto LAB_00199ac0;
                } while (pbVar9[1] != 0x5f);
                local_2c = pbVar9 + 2;
                bVar16 = pbVar9[2];
                goto LAB_00199ac0;
              }
              bVar16 = local_30[8];
              local_30 = local_30 + 8;
LAB_00199b12:
              if (bVar16 != 0) {
                do {
                  iVar7 = FUN_001934a0();
                  if ((iVar7 == -1) || (sVar8 = strlen((char *)local_30), (int)sVar8 < iVar7))
                  goto LAB_0019992e;
                  if (iVar7 != 0) {
                    FUN_00193850();
                  }
                  pbVar9 = local_30 + iVar7;
                  bVar16 = *pbVar9;
                  local_30 = pbVar9;
                  if (bVar16 != 0x5f) goto LAB_00199b12;
                } while (pbVar9[1] != 0x5f);
                FUN_001938b0();
                local_30 = pbVar9 + 2;
                bVar16 = pbVar9[2];
                goto LAB_00199b12;
              }
              iVar7 = 1;
              FUN_001938f0();
              goto LAB_0019947b;
            }
          }
LAB_0019992e:
          bVar16 = *local_3c;
          while (bVar16 == 0x5f) {
            local_3c = local_3c + 1;
            bVar16 = *local_3c;
          }
          pcVar10 = strstr((char *)local_3c,"__");
          if ((pcVar10 == (char *)0x0) || (pcVar10[2] == '\0')) goto LAB_00199643;
          iVar7 = FUN_00198b60(pcVar10);
        }
        else {
          bVar11 = local_3c[3];
          if (bVar11 == 0x74) {
LAB_00199a46:
            iVar7 = 1;
            strlen((char *)local_30);
            FUN_00195c60(&local_28);
            goto LAB_0019947b;
          }
          if ((uVar6 & 0x2000) != 0) {
LAB_001998a8:
            if ((byte)(bVar11 + 0x8d) < 2) goto LAB_00199a46;
          }
          if (local_30 == local_3c) goto LAB_00199907;
LAB_001998ba:
          iVar7 = FUN_00198b60(local_3c);
        }
        if (iVar7 != 0) goto LAB_0019947b;
        goto LAB_00199484;
      }
LAB_00199643:
      if ((param_1[10] == 2) || (param_1[0xb] == 2)) {
joined_r0x00199a26:
        if ((local_30 != (byte *)0x0) && (*local_30 != 0)) {
          FUN_001938f0();
        }
        sVar8 = strlen((char *)local_30);
        local_30 = local_30 + sVar8;
        goto LAB_00199710;
      }
      if (param_1[0xf] == 1) {
        iVar7 = 0;
        goto LAB_00199872;
      }
      FUN_00193630();
    }
    else {
      iVar7 = FUN_00198d60();
      if (iVar7 == 0) {
        FUN_00193630();
        FUN_001930a0();
        if (local_28 != (void *)0x0) {
          free(local_28);
          local_24 = 0;
          local_20 = 0;
          local_28 = (void *)0x0;
        }
        goto LAB_00199538;
      }
LAB_0019947b:
      if (*local_30 != 0) {
        iVar7 = FUN_00198180();
      }
LAB_00199484:
      if (param_1[10] == 2) {
        FUN_001938b0();
        param_1[10] = 0;
      }
      else if (param_1[0xb] == 2) {
        FUN_001938b0();
        param_1[0xb] = 0;
      }
      else if (param_1[0xf] == 1) {
LAB_00199872:
        FUN_001938b0();
        param_1[0xf] = 0;
      }
      FUN_00193630();
      if (iVar7 != 0) {
        FUN_00193810();
        goto LAB_001994c7;
      }
    }
    if (local_28 != (void *)0x0) {
      free(local_28);
    }
  }
  local_28 = (void *)0x0;
LAB_001994c7:
  param_1[10] = uVar2;
  param_1[0xb] = uVar5;
  param_1[0xc] = uVar4;
  param_1[0xe] = uVar3;
  return local_28;
}

