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

bfd_boolean __regparm3 stab_demangle_template(stab_demangle_info *minfo,char **pp,char **pname)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  char cVar7;
  size_t sVar8;
  bfd_boolean bVar9;
  byte *pbVar10;
  char *pcVar11;
  void *__ptr;
  char *pcVar12;
  byte *pbVar13;
  int iVar14;
  byte bVar15;
  uint uVar16;
  char *pcVar17;
  uint uVar18;
  char *pcVar19;
  stab_demangle_info *minfo_00;
  char **pp_00;
  debug_type_conflict *ptype;
  int local_3c;
  uint r;
  undefined4 uStack_14;
  
  uStack_14 = 0x3ebcb;
  pcVar17 = *pp;
  *pp = pcVar17 + 1;
  pp_00 = (char **)PTR__sch_istable_0006ffc4;
  uVar16 = (uint)(byte)pcVar17[1];
  if ((PTR__sch_istable_0006ffc4[uVar16 * 2] & 4) == 0) {
    r = 0;
  }
  else {
    uVar18 = 0;
    pbVar10 = (byte *)(pcVar17 + 2);
    do {
      pbVar13 = pbVar10;
      *pp = (char *)pbVar13;
      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;
      uVar16 = (uint)*pbVar13;
      pbVar10 = pbVar13 + 1;
    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);
    r = uVar18;
    if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {
      *pp = (char *)(pbVar13 + uVar18);
      local_3c = stab_demangle_get_count(pp,&r);
      if (local_3c == 0) {
LAB_0003efe7:
        stab_bad_demangle(pcVar17);
        return local_3c;
      }
      if (r != 0) {
        ptype = (debug_type_conflict *)0x0;
LAB_0003eccd:
        minfo_00 = (stab_demangle_info *)*pp;
        if (*(char *)&minfo_00->dhandle != 'Z') {
          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);
          if (bVar9 == 0) {
            return 0;
          }
          bVar4 = false;
          bVar3 = false;
          local_3c = 0;
          cVar7 = *(char *)&minfo_00->dhandle;
          bVar2 = false;
          bVar5 = false;
          bVar6 = false;
LAB_0003ed28:
          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;
          switch(cVar7) {
          case 'C':
          case 'F':
          case 'M':
          case 'O':
          case 'S':
          case 'U':
          case 'V':
            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);
            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);
            bVar2 = false;
            goto LAB_0003ed28;
          default:
            bVar2 = true;
            local_3c = 1;
            goto LAB_0003ed28;
          case 'P':
          case 'R':
          case 'p':
            goto _L601;
          case 'T':
          case 'v':
                    /* WARNING: Subroutine does not return */
            abort();
          case 'b':
            bVar2 = true;
            bVar4 = true;
            goto LAB_0003ed28;
          case 'c':
            bVar2 = true;
            bVar3 = true;
            goto LAB_0003ed28;
          case 'd':
          case 'f':
          case 'r':
            bVar2 = true;
            bVar5 = true;
            goto LAB_0003ed28;
          }
        }
        *pp = (char *)((int)&minfo_00->dhandle + 1);
        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);
        if (bVar9 == 0) {
          return 0;
        }
        goto LAB_0003ecba;
      }
LAB_0003ee1f:
      if (pname != (char **)0x0) {
        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);
        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);
        free(pcVar11);
        pcVar11 = (char *)cplus_demangle(__ptr,2);
        free(__ptr);
        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;
        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");
        if (pcVar12 == (char *)0x0) {
          stab_bad_demangle(pcVar17);
          free(pcVar11);
          return 0;
        }
        pcVar17 = pcVar11;
        pcVar19 = pcVar11;
        if (pcVar11 == pcVar12) {
          iVar14 = 0;
        }
        else {
          do {
            if ((*pcVar17 != ' ') ||
               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {
              *pcVar19 = *pcVar17;
              pcVar19 = pcVar19 + 1;
            }
            pcVar17 = pcVar17 + 1;
          } while (pcVar12 != pcVar17);
          iVar14 = (int)pcVar19 - (int)pcVar11;
        }
        pcVar17 = savestring(pcVar11,iVar14);
        *pname = pcVar17;
        free(pcVar11);
      }
      return 1;
    }
  }
LAB_0003ec4d:
  stab_bad_demangle(pcVar17);
  return 0;
_L601:
  bVar6 = true;
LAB_0003ed70:
  if (local_3c == 0) {
    if (bVar3) {
      pbVar10 = (byte *)*pp;
      bVar15 = *pbVar10;
      uVar16 = (uint)bVar15;
      if (bVar15 == 0x6d) {
        *pp = (char *)(pbVar10 + 1);
        uVar16 = (uint)pbVar10[1];
        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);
        pbVar10 = pbVar10 + 1;
      }
      else {
        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);
      }
      if ((bVar15 & 4) == 0) goto LAB_0003efe7;
      iVar14 = 0;
      do {
        pbVar10 = pbVar10 + 1;
        *pp = (char *)pbVar10;
        cVar7 = (char)uVar16;
        uVar16 = (uint)*pbVar10;
        iVar14 = cVar7 + -0x30 + iVar14 * 10;
      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);
      if (iVar14 == 0) goto LAB_0003efe7;
    }
    else if (bVar4) {
      pbVar10 = (byte *)*pp;
      uVar16 = (uint)*pbVar10;
      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {
        uVar18 = 0;
        do {
          pbVar10 = pbVar10 + 1;
          *pp = (char *)pbVar10;
          cVar7 = (char)uVar16;
          uVar16 = (uint)*pbVar10;
          uVar18 = cVar7 + -0x30 + uVar18 * 10;
        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);
        if (1 < uVar18) goto LAB_0003ec4d;
      }
    }
    else if (bVar5) {
      pbVar13 = (byte *)*pp;
      bVar15 = *pbVar13;
      pbVar10 = pbVar13;
      if (bVar15 == 0x6d) {
        pbVar10 = pbVar13 + 1;
        *pp = (char *)pbVar10;
        bVar15 = pbVar13[1];
      }
      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);
      while ((bVar1 & 4) != 0) {
        pbVar10 = pbVar10 + 1;
        *pp = (char *)pbVar10;
        bVar15 = *pbVar10;
        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);
      }
      if (bVar15 == 0x2e) {
        pbVar13 = pbVar10 + 1;
        *pp = (char *)pbVar13;
        bVar15 = pbVar10[1];
        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {
          pbVar10 = pbVar10 + 2;
          do {
            pbVar13 = pbVar10;
            *pp = (char *)pbVar13;
            bVar15 = *pbVar13;
            pbVar10 = pbVar13 + 1;
          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);
        }
      }
      else {
        pbVar13 = (byte *)*pp;
        bVar15 = *pbVar13;
      }
      if ((bVar15 == 0x65) &&
         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {
        pbVar10 = pbVar13 + 2;
        do {
          *pp = (char *)pbVar10;
          bVar15 = *pbVar10;
          pbVar10 = pbVar10 + 1;
        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);
      }
    }
    else if (bVar6) {
      pbVar10 = (byte *)*pp;
      uVar16 = (uint)*pbVar10;
      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;
      iVar14 = 0;
      do {
        pbVar10 = pbVar10 + 1;
        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;
        *pp = (char *)pbVar10;
        uVar16 = (uint)*pbVar10;
      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);
      if (iVar14 == 0) goto LAB_0003ec4d;
      ptype = (debug_type_conflict *)((int)ptype + 1);
      *pp = (char *)(pbVar10 + iVar14);
      if (r <= ptype) goto LAB_0003ee1f;
      goto LAB_0003eccd;
    }
  }
  else {
    pbVar13 = (byte *)*pp;
    bVar15 = *pbVar13;
    pbVar10 = pbVar13;
    if (bVar15 == 0x6d) {
      pbVar10 = pbVar13 + 1;
      *pp = (char *)pbVar10;
      bVar15 = pbVar13[1];
    }
    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);
    while ((bVar15 & 4) != 0) {
      pbVar10 = pbVar10 + 1;
      *pp = (char *)pbVar10;
      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);
    }
  }
LAB_0003ecba:
  ptype = (debug_type_conflict *)((int)ptype + 1);
  if (r <= ptype) goto LAB_0003ee1f;
  goto LAB_0003eccd;
}



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

int __regparm3 FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  char *pcVar7;
  undefined *puVar8;
  char cVar9;
  size_t sVar10;
  int iVar11;
  byte *pbVar12;
  void *__ptr;
  void *__ptr_00;
  char *__haystack;
  char *pcVar13;
  byte *pbVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  char *pcVar20;
  char *local_5c;
  uint local_54;
  int local_3c;
  
  iVar11 = *param_2;
  *param_2 = iVar11 + 1;
  puVar8 = PTR__sch_istable_0006ffc4;
  uVar18 = (uint)*(byte *)(iVar11 + 1);
  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {
    uVar19 = 0;
    pbVar12 = (byte *)(iVar11 + 2);
    do {
      pbVar14 = pbVar12;
      *param_2 = (int)pbVar14;
      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;
      uVar18 = (uint)*pbVar14;
      pbVar12 = pbVar14 + 1;
    } while ((puVar8[uVar18 * 2] & 4) != 0);
    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {
      *param_2 = (int)(pbVar14 + uVar19);
      local_3c = FUN_0003cb60();
      if (local_3c == 0) {
LAB_0003efe7:
        FUN_0003cc40();
        return local_3c;
      }
      if (uVar19 != 0) {
        local_54 = 0;
LAB_0003eccd:
        local_5c = (char *)*param_2;
        if (*local_5c != 'Z') {
          iVar11 = FUN_0003e060();
          if (iVar11 == 0) {
            return 0;
          }
          bVar4 = false;
          bVar3 = false;
          local_3c = 0;
          cVar9 = *local_5c;
          bVar2 = false;
          bVar5 = false;
          bVar6 = false;
LAB_0003ed28:
          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;
          switch(cVar9) {
          case 'C':
          case 'F':
          case 'M':
          case 'O':
          case 'S':
          case 'U':
          case 'V':
            cVar9 = local_5c[1];
            local_5c = local_5c + 1;
            bVar2 = false;
            goto LAB_0003ed28;
          default:
            bVar2 = true;
            local_3c = 1;
            goto LAB_0003ed28;
          case 'P':
          case 'R':
          case 'p':
            goto code_r0x0003ed60;
          case 'T':
          case 'v':
                    /* WARNING: Subroutine does not return */
            abort();
          case 'b':
            bVar2 = true;
            bVar4 = true;
            goto LAB_0003ed28;
          case 'c':
            bVar2 = true;
            bVar3 = true;
            goto LAB_0003ed28;
          case 'd':
          case 'f':
          case 'r':
            bVar2 = true;
            bVar5 = true;
            goto LAB_0003ed28;
          }
        }
        *param_2 = (int)(local_5c + 1);
        iVar11 = FUN_0003e060();
        if (iVar11 == 0) {
          return 0;
        }
        goto joined_r0x0003ecc7;
      }
LAB_0003ee1f:
      if (param_3 != (undefined4 *)0x0) {
        __ptr = (void *)FUN_0003cd30();
        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);
        free(__ptr);
        __haystack = (char *)cplus_demangle(__ptr_00,2);
        free(__ptr_00);
        if (__haystack == (char *)0x0) goto LAB_0003ec4d;
        pcVar13 = strstr(__haystack,"::NoSuchStrinG");
        pcVar7 = __haystack;
        pcVar20 = __haystack;
        if (pcVar13 == (char *)0x0) {
          FUN_0003cc40();
          free(__haystack);
          return 0;
        }
        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {
          if ((*pcVar7 != ' ') ||
             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {
            *pcVar20 = *pcVar7;
            pcVar20 = pcVar20 + 1;
          }
        }
        uVar15 = FUN_0003cd30();
        *param_3 = uVar15;
        free(__haystack);
      }
      return 1;
    }
  }
LAB_0003ec4d:
  FUN_0003cc40();
  return 0;
code_r0x0003ed60:
  bVar6 = true;
LAB_0003ed70:
  if (local_3c == 0) {
    if (bVar3) {
      pbVar12 = (byte *)*param_2;
      bVar17 = *pbVar12;
      uVar18 = (uint)bVar17;
      if (bVar17 == 0x6d) {
        *param_2 = (int)(pbVar12 + 1);
        uVar18 = (uint)pbVar12[1];
        bVar17 = puVar8[uVar18 * 2];
        pbVar12 = pbVar12 + 1;
      }
      else {
        bVar17 = puVar8[(uint)bVar17 * 2];
      }
      if ((bVar17 & 4) == 0) goto LAB_0003efe7;
      iVar11 = 0;
      do {
        pbVar12 = pbVar12 + 1;
        *param_2 = (int)pbVar12;
        cVar9 = (char)uVar18;
        uVar18 = (uint)*pbVar12;
        iVar11 = cVar9 + -0x30 + iVar11 * 10;
      } while ((puVar8[uVar18 * 2] & 4) != 0);
      if (iVar11 == 0) goto LAB_0003efe7;
    }
    else if (bVar4) {
      pbVar12 = (byte *)*param_2;
      uVar18 = (uint)*pbVar12;
      if ((puVar8[uVar18 * 2] & 4) != 0) {
        uVar16 = 0;
        do {
          pbVar12 = pbVar12 + 1;
          *param_2 = (int)pbVar12;
          cVar9 = (char)uVar18;
          uVar18 = (uint)*pbVar12;
          uVar16 = cVar9 + -0x30 + uVar16 * 10;
        } while ((puVar8[uVar18 * 2] & 4) != 0);
        if (1 < uVar16) goto LAB_0003ec4d;
      }
    }
    else if (bVar5) {
      pbVar14 = (byte *)*param_2;
      bVar17 = *pbVar14;
      pbVar12 = pbVar14;
      if (bVar17 == 0x6d) {
        pbVar12 = pbVar14 + 1;
        *param_2 = (int)pbVar12;
        bVar17 = pbVar14[1];
      }
      bVar1 = puVar8[(uint)bVar17 * 2];
      while ((bVar1 & 4) != 0) {
        pbVar12 = pbVar12 + 1;
        *param_2 = (int)pbVar12;
        bVar17 = *pbVar12;
        bVar1 = puVar8[(uint)bVar17 * 2];
      }
      if (bVar17 == 0x2e) {
        pbVar14 = pbVar12 + 1;
        *param_2 = (int)pbVar14;
        bVar17 = pbVar12[1];
        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {
          pbVar12 = pbVar12 + 2;
          do {
            pbVar14 = pbVar12;
            *param_2 = (int)pbVar14;
            bVar17 = *pbVar14;
            pbVar12 = pbVar14 + 1;
          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);
        }
      }
      else {
        pbVar14 = (byte *)*param_2;
        bVar17 = *pbVar14;
      }
      if ((bVar17 == 0x65) &&
         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {
        pbVar12 = pbVar14 + 2;
        do {
          *param_2 = (int)pbVar12;
          bVar17 = *pbVar12;
          pbVar12 = pbVar12 + 1;
        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);
      }
    }
    else if (bVar6) {
      pbVar12 = (byte *)*param_2;
      uVar18 = (uint)*pbVar12;
      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;
      iVar11 = 0;
      do {
        pbVar12 = pbVar12 + 1;
        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;
        *param_2 = (int)pbVar12;
        uVar18 = (uint)*pbVar12;
      } while ((puVar8[uVar18 * 2] & 4) != 0);
      if (iVar11 == 0) goto LAB_0003ec4d;
      *param_2 = (int)(pbVar12 + iVar11);
    }
  }
  else {
    pbVar14 = (byte *)*param_2;
    bVar17 = *pbVar14;
    pbVar12 = pbVar14;
    if (bVar17 == 0x6d) {
      pbVar12 = pbVar14 + 1;
      *param_2 = (int)pbVar12;
      bVar17 = pbVar14[1];
    }
    bVar17 = puVar8[(uint)bVar17 * 2];
    while ((bVar17 & 4) != 0) {
      pbVar12 = pbVar12 + 1;
      *param_2 = (int)pbVar12;
      bVar17 = puVar8[(uint)*pbVar12 * 2];
    }
  }
joined_r0x0003ecc7:
  local_54 = local_54 + 1;
  if (uVar19 <= local_54) goto LAB_0003ee1f;
  goto LAB_0003eccd;
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000143a0
ADD EBX,0x31435
SUB ESP,0x4c
MOV ESI,dword ptr [EDX]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[ESI + 0x1]
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [EDX],EAX
MOVZX EDX,byte ptr [ESI + 0x1]
MOV EDI,dword ptr [EBX + 0xffffffc4]
MOV dword ptr [ESP + 0x2c],ECX
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0x4],EDI
TEST byte ptr [EDI + EDX*0x2],0x4
JZ 0x0003f14b
MOV EAX,EDX
LEA EDX,[ESI + 0x2]
XOR ESI,ESI
LEA ESI,[ESI]
LEA ECX,[ESI + ESI*0x4]
MOVSX EAX,AL
MOV dword ptr [EBP],EDX
MOV EDI,dword ptr [ESP + 0x4]
LEA ESI,[EAX + ECX*0x2 + -0x30]
MOVZX ECX,byte ptr [EDX]
MOV dword ptr [ESP],EDX
ADD EDX,0x1
MOV EAX,ECX
TEST byte ptr [EDI + ECX*0x2],0x4
JNZ 0x0003ec10
MOV EDI,dword ptr [ESP]
MOV dword ptr [ESP + 0x3c],ESI
TEST ESI,ESI
JZ 0x0003ec4d
SUB ESP,0xc
PUSH EDI
CALL 0x00013470
ADD ESP,0x10
CMP EAX,ESI
JNC 0x0003ec6a
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x0003cc40
MOV dword ptr [ESP + 0x20],0x0
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x10]
ADD ESI,EDI
LEA EDX,[ESP + 0x3c]
MOV dword ptr [EAX],ESI
CALL 0x0003cb60
MOV dword ptr [ESP + 0x20],EAX
TEST EAX,EAX
JZ 0x0003efe7
MOV EAX,dword ptr [ESP + 0x3c]
TEST EAX,EAX
JZ 0x0003ee1f
MOV dword ptr [ESP + 0x8],0x0
JMP 0x0003eccd
ADD EAX,0x1
XOR ECX,ECX
MOV EDX,ESI
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0x24]
CALL 0x0003e060
TEST EAX,EAX
JZ 0x0003f137
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP + 0x3c],EAX
JBE 0x0003ee1f
MOV ESI,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESI]
CMP byte ptr [EAX],0x5a
MOV dword ptr [ESP],EAX
JZ 0x0003eca0
MOV EDX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x24]
XOR ECX,ECX
CALL 0x0003e060
TEST EAX,EAX
JZ 0x0003f137
MOV EAX,dword ptr [ESP]
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x20],0x0
MOVZX ECX,byte ptr [EAX]
XOR EAX,EAX
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x14],0x0
LEA ESI,[ESI]
TEST CL,CL
SETNZ DL
MOV ESI,EDX
LEA EDX,[ECX + -0x43]
MOVZX EBP,DL
TEST EAX,EAX
JNZ 0x0003ed70
MOV EAX,ESI
TEST AL,AL
JZ 0x0003ed70
MOV EAX,0x1
CMP DL,0x33
JA 0x0003ef30
MOV EDI,dword ptr [EBX + EBP*0x4 + 0xfffe59d8]
ADD EDI,EBX
JMP EDI
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JNZ 0x0003ef48
MOV EBP,dword ptr [ESP + 0xc]
TEST EBP,EBP
JNZ 0x0003ef99
MOV EDI,dword ptr [ESP + 0x18]
TEST EDI,EDI
JNZ 0x0003effc
MOV ESI,dword ptr [ESP + 0x1c]
TEST ESI,ESI
JNZ 0x0003f050
MOV ECX,dword ptr [ESP + 0x14]
TEST ECX,ECX
JZ 0x0003ecba
MOV EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX]
MOVZX ECX,byte ptr [EAX]
MOV EDX,ECX
TEST byte ptr [EDI + ECX*0x2],0x4
JZ 0x0003ec4d
MOV EDI,dword ptr [ESP + 0x10]
ADD EAX,0x1
XOR ECX,ECX
MOV dword ptr [ESP],EDI
LEA ESI,[ESI]
MOV ESI,dword ptr [ESP]
MOV EBP,dword ptr [ESP + 0x4]
MOVSX EDX,DL
LEA ECX,[ECX + ECX*0x4]
LEA ECX,[EDX + ECX*0x2 + -0x30]
MOV EDI,EAX
MOV dword ptr [ESI],EAX
MOVZX ESI,byte ptr [EAX]
ADD EAX,0x1
MOV EDX,ESI
TEST byte ptr [EBP + ESI*0x2],0x4
JNZ 0x0003edd8
TEST ECX,ECX
JZ 0x0003ec4d
MOV EAX,dword ptr [ESP + 0x10]
ADD ECX,EDI
ADD dword ptr [ESP + 0x8],0x1
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP + 0x3c],EAX
JA 0x0003eccd
MOV EAX,dword ptr [ESP + 0x2c]
TEST EAX,EAX
JZ 0x0003f175
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x28]
SUB EDX,EAX
CALL 0x0003cd30
SUB ESP,0x4
PUSH 0x0
MOV EDI,EAX
PUSH EAX
LEA EAX,[EBX + 0xfffe5213]
PUSH EAX
CALL 0x00013240
MOV dword ptr [ESP],EDI
MOV ESI,EAX
CALL 0x00013120
POP EAX
POP EDX
PUSH 0x2
PUSH ESI
CALL 0x000135b0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x00013120
ADD ESP,0x10
TEST EDI,EDI
JZ 0x0003ec4d
SUB ESP,0x8
LEA EAX,[EBX + 0xfffe5222]
PUSH EAX
PUSH EDI
CALL 0x00013060
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0003f122
CMP EDI,EAX
JZ 0x0003f1c7
MOV ESI,EDI
MOV EDX,EDI
JMP 0x0003eeb2
MOV byte ptr [ESI],CL
ADD ESI,0x1
ADD EDX,0x1
CMP EAX,EDX
JZ 0x0003f158
MOVZX ECX,byte ptr [EDX]
CMP CL,0x20
JNZ 0x0003eea2
CMP byte ptr [EDX + 0x1],0x3e
JNZ 0x0003eea7
CMP EDI,EDX
JNC 0x0003eea7
CMP byte ptr [EDX + -0x1],0x3e
JNZ 0x0003eea7
JMP 0x0003eea2
MOV EAX,0x1
MOV dword ptr [ESP + 0x20],0x1
JMP 0x0003ed28
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX]
MOVZX EDX,byte ptr [EAX]
CMP DL,0x6d
JNZ 0x0003ef65
MOV EDI,dword ptr [ESP + 0x10]
LEA ECX,[EAX + 0x1]
MOV dword ptr [EDI],ECX
MOVZX EDX,byte ptr [EAX + 0x1]
MOV EAX,ECX
MOV EDI,dword ptr [ESP + 0x4]
TEST byte ptr [EDI + EDX*0x2],0x4
JZ 0x0003ecba
MOV ECX,dword ptr [ESP + 0x10]
ADD EAX,0x1
LEA ESI,[ESI]
MOV EDX,EAX
MOV dword ptr [ECX],EAX
MOV EDI,dword ptr [ESP + 0x4]
ADD EAX,0x1
MOVZX EDX,byte ptr [EDX]
TEST byte ptr [EDI + EDX*0x2],0x4
JNZ 0x0003ef80
JMP 0x0003ecba
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EAX]
MOVZX EAX,byte ptr [EDX]
CMP AL,0x6d
JZ 0x0003f0fe
MOV EDI,dword ptr [ESP + 0x4]
MOVZX ECX,AL
TEST byte ptr [EDI + ECX*0x2],0x4
JZ 0x0003efe7
MOV EDI,dword ptr [ESP + 0x10]
ADD EDX,0x1
XOR ECX,ECX
MOV dword ptr [EDI],EDX
MOV EBP,dword ptr [ESP + 0x4]
MOVSX EAX,AL
LEA ECX,[ECX + ECX*0x4]
MOVZX ESI,byte ptr [EDX]
LEA ECX,[EAX + ECX*0x2 + -0x30]
ADD EDX,0x1
MOV EAX,ESI
TEST byte ptr [EBP + ESI*0x2],0x4
JNZ 0x0003efc0
TEST ECX,ECX
JNZ 0x0003ecba
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x0003cc40
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [ESP + 0x4]
MOV EDX,dword ptr [EDI]
MOVZX ECX,byte ptr [EDX]
MOV EAX,ECX
TEST byte ptr [ESI + ECX*0x2],0x4
JZ 0x0003ecba
ADD EDX,0x1
XOR ECX,ECX
LEA ESI,[ESI]
MOV dword ptr [EDI],EDX
MOV EBP,dword ptr [ESP + 0x4]
MOVSX EAX,AL
LEA ECX,[ECX + ECX*0x4]
MOVZX ESI,byte ptr [EDX]
LEA ECX,[EAX + ECX*0x2 + -0x30]
ADD EDX,0x1
MOV EAX,ESI
TEST byte ptr [EBP + ESI*0x2],0x4
JNZ 0x0003f020
CMP ECX,0x1
JBE 0x0003ecba
JMP 0x0003ec4d
MOV EAX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [EAX]
MOVZX EDX,byte ptr [ECX]
CMP DL,0x6d
JZ 0x0003f0ea
MOV EDI,dword ptr [ESP + 0x4]
MOVZX EAX,DL
TEST byte ptr [EDI + EAX*0x2],0x4
JZ 0x0003f098
MOV EDI,dword ptr [ESP + 0x10]
LEA EAX,[ECX + 0x1]
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV dword ptr [EDI],EAX
MOV EBP,dword ptr [ESP + 0x4]
MOV ECX,EAX
ADD EAX,0x1
MOVZX ESI,byte ptr [EAX + -0x1]
MOV EDX,ESI
TEST byte ptr [EBP + ESI*0x2],0x4
JNZ 0x0003f080
CMP DL,0x2e
JZ 0x0003f189
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX]
MOVZX EDX,byte ptr [EAX]
CMP DL,0x65
JNZ 0x0003ecba
MOV ECX,dword ptr [ESP + 0x10]
LEA EDX,[EAX + 0x1]
MOV EDI,dword ptr [ESP + 0x4]
MOV dword ptr [ECX],EDX
MOVZX EDX,byte ptr [EAX + 0x1]
TEST byte ptr [EDI + EDX*0x2],0x4
JZ 0x0003ecba
ADD EAX,0x2
MOV EDX,EAX
MOV dword ptr [ECX],EAX
MOV EDI,dword ptr [ESP + 0x4]
ADD EAX,0x1
MOVZX EDX,byte ptr [EDX]
TEST byte ptr [EDI + EDX*0x2],0x4
JNZ 0x0003f0d1
JMP 0x0003ecba
MOV ESI,dword ptr [ESP + 0x10]
LEA EAX,[ECX + 0x1]
MOV dword ptr [ESI],EAX
MOVZX EDX,byte ptr [ECX + 0x1]
MOV ECX,EAX
JMP 0x0003f062
MOV EAX,dword ptr [ESP + 0x10]
LEA ECX,[EDX + 0x1]
MOV EDI,dword ptr [ESP + 0x4]
MOV dword ptr [EAX],ECX
MOVZX EDX,byte ptr [EDX + 0x1]
MOV EAX,EDX
TEST byte ptr [EDI + EDX*0x2],0x4
JZ 0x0003efe7
MOV EDX,ECX
JMP 0x0003efb7
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x0003cc40
SUB ESP,0xc
PUSH EDI
CALL 0x00013120
ADD ESP,0x10
MOV dword ptr [ESP + 0x20],0x0
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x3c],0x0
JMP 0x0003ec4d
SUB ESI,EDI
MOV EDX,ESI
MOV EAX,EDI
CALL 0x0003cd30
MOV ESI,dword ptr [ESP + 0x2c]
SUB ESP,0xc
MOV dword ptr [ESI],EAX
PUSH EDI
CALL 0x00013120
ADD ESP,0x10
MOV dword ptr [ESP + 0x20],0x1
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x10]
LEA EAX,[ECX + 0x1]
MOV EBP,dword ptr [ESP + 0x4]
MOV dword ptr [EDI],EAX
MOVZX ESI,byte ptr [ECX + 0x1]
MOV EDX,ESI
TEST byte ptr [EBP + ESI*0x2],0x4
JZ 0x0003f0aa
ADD ECX,0x2
MOV dword ptr [EDI],ECX
MOV EBP,dword ptr [ESP + 0x4]
MOV EAX,ECX
ADD ECX,0x1
MOVZX ESI,byte ptr [ECX + -0x1]
MOV EDX,ESI
TEST byte ptr [EBP + ESI*0x2],0x4
JNZ 0x0003f1aa
JMP 0x0003f0aa
XOR EDX,EDX
JMP 0x0003f15c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}\n\n" comment (function_definition "int __regparm3 FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 param_1,int *param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "char *__haystack;" primitive_type (pointer_declarator "*__haystack" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "char *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "iVar11 = *param_2;" (assignment_expression "iVar11 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*param_2 = iVar11 + 1;" (assignment_expression "*param_2 = iVar11 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR__sch_istable_0006ffc4;" (assignment_expression "puVar8 = PTR__sch_istable_0006ffc4" identifier = identifier) ;) (expression_statement "uVar18 = (uint)*(byte *)(iVar11 + 1);" (assignment_expression "uVar18 = (uint)*(byte *)(iVar11 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) ))))) ;) (if_statement "if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }" if (parenthesized_expression "((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0)" ( (binary_expression "(PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0" (parenthesized_expression "(PTR__sch_istable_0006ffc4[uVar18 * 2] & 4)" ( (binary_expression "PTR__sch_istable_0006ffc4[uVar18 * 2] & 4" (subscript_expression "PTR__sch_istable_0006ffc4[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)(iVar11 + 2);" (assignment_expression "pbVar12 = (byte *)(iVar11 + 2)" identifier = (cast_expression "(byte *)(iVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 2)" ( (binary_expression "iVar11 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    }" { (expression_statement "pbVar14 = pbVar12;" (assignment_expression "pbVar14 = pbVar12" identifier = identifier) ;) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;" (assignment_expression "uVar19 = (char)uVar18 + -0x30 + uVar19 * 10" identifier = (binary_expression "(char)uVar18 + -0x30 + uVar19 * 10" (binary_expression "(char)uVar18 + -0x30" (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "uVar19 * 10" identifier * number_literal))) ;) (expression_statement "uVar18 = (uint)*pbVar14;" (assignment_expression "uVar18 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }" if (parenthesized_expression "((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10))" ( (binary_expression "(uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)" (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)" ( (comma_expression "sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10" (assignment_expression "sVar10 = strlen((char *)pbVar14)" identifier = (call_expression "strlen((char *)pbVar14)" identifier (argument_list "((char *)pbVar14)" ( (cast_expression "(char *)pbVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar19 <= sVar10" identifier <= identifier)) ))) )) (compound_statement "{\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }" { (expression_statement "*param_2 = (int)(pbVar14 + uVar19);" (assignment_expression "*param_2 = (int)(pbVar14 + uVar19)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar14 + uVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + uVar19)" ( (binary_expression "pbVar14 + uVar19" identifier + identifier) )))) ;) (expression_statement "local_3c = FUN_0003cb60();" (assignment_expression "local_3c = FUN_0003cb60()" identifier = (call_expression "FUN_0003cb60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }" { (labeled_statement "LAB_0003efe7:\n        FUN_0003cc40();" statement_identifier : (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" identifier (argument_list "()" ( ))) ;)) (return_statement "return local_3c;" return identifier ;) })) (if_statement "if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0003eccd:\n        local_5c = (char *)*param_2;" statement_identifier : (expression_statement "local_5c = (char *)*param_2;" (assignment_expression "local_5c = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (if_statement "if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" if (parenthesized_expression "(*local_5c != 'Z')" ( (binary_expression "*local_5c != 'Z'" (pointer_expression "*local_5c" * identifier) != (char_literal "'Z'" ' character ')) )) (compound_statement "{\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" { (expression_statement "iVar11 = FUN_0003e060();" (assignment_expression "iVar11 = FUN_0003e060()" identifier = (call_expression "FUN_0003e060()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "cVar9 = *local_5c;" (assignment_expression "cVar9 = *local_5c" identifier = (pointer_expression "*local_5c" * identifier)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (labeled_statement "LAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;" statement_identifier : (if_statement "if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;" if (parenthesized_expression "((bVar2) || (cVar9 == '\0'))" ( (binary_expression "(bVar2) || (cVar9 == '\0')" (parenthesized_expression "(bVar2)" ( identifier )) || (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0003ed70;" goto statement_identifier ;))) (switch_statement "switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" switch (parenthesized_expression "(cVar9)" ( identifier )) (compound_statement "{\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" { (case_statement "case 'C':" case (char_literal "'C'" ' character ') :) (case_statement "case 'F':" case (char_literal "'F'" ' character ') :) (case_statement "case 'M':" case (char_literal "'M'" ' character ') :) (case_statement "case 'O':" case (char_literal "'O'" ' character ') :) (case_statement "case 'S':" case (char_literal "'S'" ' character ') :) (case_statement "case 'U':" case (char_literal "'U'" ' character ') :) (case_statement "case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;" case (char_literal "'V'" ' character ') : (expression_statement "cVar9 = local_5c[1];" (assignment_expression "cVar9 = local_5c[1]" identifier = (subscript_expression "local_5c[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;" default : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'R':" case (char_literal "'R'" ' character ') :) (case_statement "case 'p':\n            goto code_r0x0003ed60;" case (char_literal "'p'" ' character ') : (goto_statement "goto code_r0x0003ed60;" goto statement_identifier ;)) (case_statement "case 'T':" case (char_literal "'T'" ' character ') :) (case_statement "case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();" case (char_literal "'v'" ' character ') : comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;" case (char_literal "'b'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;" case (char_literal "'c'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'd':" case (char_literal "'d'" ' character ') :) (case_statement "case 'f':" case (char_literal "'f'" ' character ') :) (case_statement "case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;" case (char_literal "'r'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) })) })) (expression_statement "*param_2 = (int)(local_5c + 1);" (assignment_expression "*param_2 = (int)(local_5c + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(local_5c + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_5c + 1)" ( (binary_expression "local_5c + 1" identifier + number_literal) )))) ;) (expression_statement "iVar11 = FUN_0003e060();" (assignment_expression "iVar11 = FUN_0003e060()" identifier = (call_expression "FUN_0003e060()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto joined_r0x0003ecc7;" goto statement_identifier ;) })) (labeled_statement "LAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" statement_identifier : (if_statement "if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" { (expression_statement "__ptr = (void *)FUN_0003cd30();" (assignment_expression "__ptr = (void *)FUN_0003cd30()" identifier = (cast_expression "(void *)FUN_0003cd30()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003cd30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "__ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);" (assignment_expression "__ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0)" identifier = (cast_expression "(void *)concat("NoSuchStrinG__",__ptr,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "concat("NoSuchStrinG__",__ptr,0)" identifier (argument_list "("NoSuchStrinG__",__ptr,0)" ( (string_literal ""NoSuchStrinG__"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__haystack = (char *)cplus_demangle(__ptr_00,2);" (assignment_expression "__haystack = (char *)cplus_demangle(__ptr_00,2)" identifier = (cast_expression "(char *)cplus_demangle(__ptr_00,2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "cplus_demangle(__ptr_00,2)" identifier (argument_list "(__ptr_00,2)" ( identifier , number_literal ))))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (if_statement "if (__haystack == (char *)0x0) goto LAB_0003ec4d;" if (parenthesized_expression "(__haystack == (char *)0x0)" ( (binary_expression "__haystack == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "pcVar13 = strstr(__haystack,"::NoSuchStrinG");" (assignment_expression "pcVar13 = strstr(__haystack,"::NoSuchStrinG")" identifier = (call_expression "strstr(__haystack,"::NoSuchStrinG")" identifier (argument_list "(__haystack,"::NoSuchStrinG")" ( identifier , (string_literal ""::NoSuchStrinG"" " string_content ") )))) ;) (expression_statement "pcVar7 = __haystack;" (assignment_expression "pcVar7 = __haystack" identifier = identifier) ;) (expression_statement "pcVar20 = __haystack;" (assignment_expression "pcVar20 = __haystack" identifier = identifier) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }" { (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__haystack);" (call_expression "free(__haystack)" identifier (argument_list "(__haystack)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (for_statement "for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }" for ( ; (binary_expression "pcVar7 != pcVar13" identifier != identifier) ; (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ) (compound_statement "{\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }" { (if_statement "if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }" if (parenthesized_expression "((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>'))))" ( (binary_expression "(*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))" (parenthesized_expression "(*pcVar7 != ' ')" ( (binary_expression "*pcVar7 != ' '" (pointer_expression "*pcVar7" * identifier) != (char_literal "' '" ' character ')) )) || (parenthesized_expression "(((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))" ( (parenthesized_expression "((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>'))" ( (binary_expression "(pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')" (parenthesized_expression "(pcVar7[1] == '>' && (__haystack < pcVar7))" ( (binary_expression "pcVar7[1] == '>' && (__haystack < pcVar7)" (binary_expression "pcVar7[1] == '>'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) == (char_literal "'>'" ' character ')) && (parenthesized_expression "(__haystack < pcVar7)" ( (binary_expression "__haystack < pcVar7" identifier < identifier) ))) )) && (parenthesized_expression "(pcVar7[-1] == '>')" ( (binary_expression "pcVar7[-1] == '>'" (subscript_expression "pcVar7[-1]" identifier [ number_literal ]) == (char_literal "'>'" ' character ')) ))) )) ))) )) (compound_statement "{\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }" { (expression_statement "*pcVar20 = *pcVar7;" (assignment_expression "*pcVar20 = *pcVar7" (pointer_expression "*pcVar20" * identifier) = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) })) })) (expression_statement "uVar15 = FUN_0003cd30();" (assignment_expression "uVar15 = FUN_0003cd30()" identifier = (call_expression "FUN_0003cd30()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_3 = uVar15;" (assignment_expression "*param_3 = uVar15" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "free(__haystack);" (call_expression "free(__haystack)" identifier (argument_list "(__haystack)" ( identifier ))) ;) }))) (return_statement "return 1;" return number_literal ;) })) })) (labeled_statement "LAB_0003ec4d:\n  FUN_0003cc40();" statement_identifier : (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 0;" return number_literal ;) (labeled_statement "code_r0x0003ed60:\n  bVar6 = true;" statement_identifier : (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;)) (labeled_statement "LAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" statement_identifier : (if_statement "if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }" { (if_statement "if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }" { (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "uVar18 = (uint)bVar17;" (assignment_expression "uVar18 = (uint)bVar17" identifier = (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" if (parenthesized_expression "(bVar17 == 0x6d)" ( (binary_expression "bVar17 == 0x6d" identifier == number_literal) )) (compound_statement "{\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }" { (expression_statement "*param_2 = (int)(pbVar12 + 1);" (assignment_expression "*param_2 = (int)(pbVar12 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar12 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar18 = (uint)pbVar12[1];" (assignment_expression "uVar18 = (uint)pbVar12[1]" identifier = (cast_expression "(uint)pbVar12[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar12[1]" identifier [ number_literal ]))) ;) (expression_statement "bVar17 = puVar8[uVar18 * 2];" (assignment_expression "bVar17 = puVar8[uVar18 * 2]" identifier = (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ])) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" else (compound_statement "{\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" { (expression_statement "bVar17 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar17 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) }))) (if_statement "if ((bVar17 & 4) == 0) goto LAB_0003efe7;" if (parenthesized_expression "((bVar17 & 4) == 0)" ( (binary_expression "(bVar17 & 4) == 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003efe7;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar9 = (char)uVar18;" (assignment_expression "cVar9 = (char)uVar18" identifier = (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar11 = cVar9 + -0x30 + iVar11 * 10;" (assignment_expression "iVar11 = cVar9 + -0x30 + iVar11 * 10" identifier = (binary_expression "cVar9 + -0x30 + iVar11 * 10" (binary_expression "cVar9 + -0x30" identifier + number_literal) + (binary_expression "iVar11 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if (iVar11 == 0) goto LAB_0003efe7;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003efe7;" goto statement_identifier ;)) }) (else_clause "else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" else (if_statement "if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }" { (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }" if (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar9 = (char)uVar18;" (assignment_expression "cVar9 = (char)uVar18" identifier = (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar16 = cVar9 + -0x30 + uVar16 * 10;" (assignment_expression "uVar16 = cVar9 + -0x30 + uVar16 * 10" identifier = (binary_expression "cVar9 + -0x30 + uVar16 * 10" (binary_expression "cVar9 + -0x30" identifier + number_literal) + (binary_expression "uVar16 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if (1 < uVar16) goto LAB_0003ec4d;" if (parenthesized_expression "(1 < uVar16)" ( (binary_expression "1 < uVar16" number_literal < identifier) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) })) }) (else_clause "else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" else (if_statement "if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }" { (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar12 = pbVar14;" (assignment_expression "pbVar12 = pbVar14" identifier = identifier) ;) (if_statement "if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }" if (parenthesized_expression "(bVar17 == 0x6d)" ( (binary_expression "bVar17 == 0x6d" identifier == number_literal) )) (compound_statement "{\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }" { (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = pbVar14[1];" (assignment_expression "bVar17 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) })) (expression_statement "bVar1 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar1 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (while_statement "while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }" while (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "bVar1 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar1 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (if_statement "if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" if (parenthesized_expression "(bVar17 == 0x2e)" ( (binary_expression "bVar17 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }" { (expression_statement "pbVar14 = pbVar12 + 1;" (assignment_expression "pbVar14 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = pbVar12[1];" (assignment_expression "bVar17 = pbVar12[1]" identifier = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ;) (if_statement "if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }" if (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" ( (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" ( (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }" { (expression_statement "pbVar12 = pbVar12 + 2;" (assignment_expression "pbVar12 = pbVar12 + 2" identifier = (binary_expression "pbVar12 + 2" identifier + number_literal)) ;) (do_statement "do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);" do (compound_statement "{\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          }" { (expression_statement "pbVar14 = pbVar12;" (assignment_expression "pbVar14 = pbVar12" identifier = identifier) ;) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" ( (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" ( (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) })) }) (else_clause "else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" else (compound_statement "{\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" { (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) }))) (if_statement "if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }" if (parenthesized_expression "((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0))" ( (binary_expression "(bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)" (parenthesized_expression "(bVar17 == 0x65)" ( (binary_expression "bVar17 == 0x65" identifier == number_literal) )) && (parenthesized_expression "(*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)" ( (comma_expression "*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0" (assignment_expression "*param_2 = (int)(pbVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + 1)" ( (binary_expression "pbVar14 + 1" identifier + number_literal) )))) , (binary_expression "(puVar8[(uint)pbVar14[1] * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)pbVar14[1] * 2] & 4)" ( (binary_expression "puVar8[(uint)pbVar14[1] * 2] & 4" (subscript_expression "puVar8[(uint)pbVar14[1] * 2]" identifier [ (binary_expression "(uint)pbVar14[1] * 2" (cast_expression "(uint)pbVar14[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar14[1]" identifier [ number_literal ])) * number_literal) ]) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }" { (expression_statement "pbVar12 = pbVar14 + 2;" (assignment_expression "pbVar12 = pbVar14 + 2" identifier = (binary_expression "pbVar14 + 2" identifier + number_literal)) ;) (do_statement "do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);" do (compound_statement "{\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        }" { (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" ( (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" ( (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) })) }) (else_clause "else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" else (if_statement "if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" { (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;" if (parenthesized_expression "((puVar8[uVar18 * 2] & 4) == 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) == 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;" (assignment_expression "iVar11 = (char)uVar18 + -0x30 + iVar11 * 10" identifier = (binary_expression "(char)uVar18 + -0x30 + iVar11 * 10" (binary_expression "(char)uVar18 + -0x30" (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "iVar11 * 10" identifier * number_literal))) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if (iVar11 == 0) goto LAB_0003ec4d;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "*param_2 = (int)(pbVar12 + iVar11);" (assignment_expression "*param_2 = (int)(pbVar12 + iVar11)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar12 + iVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar12 + iVar11)" ( (binary_expression "pbVar12 + iVar11" identifier + identifier) )))) ;) })))))))) }) (else_clause "else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" else (compound_statement "{\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" { (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar12 = pbVar14;" (assignment_expression "pbVar12 = pbVar14" identifier = identifier) ;) (if_statement "if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }" if (parenthesized_expression "(bVar17 == 0x6d)" ( (binary_expression "bVar17 == 0x6d" identifier == number_literal) )) (compound_statement "{\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }" { (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = pbVar14[1];" (assignment_expression "bVar17 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) })) (expression_statement "bVar17 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar17 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (while_statement "while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }" while (parenthesized_expression "((bVar17 & 4) != 0)" ( (binary_expression "(bVar17 & 4) != 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = puVar8[(uint)*pbVar12 * 2];" (assignment_expression "bVar17 = puVar8[(uint)*pbVar12 * 2]" identifier = (subscript_expression "puVar8[(uint)*pbVar12 * 2]" identifier [ (binary_expression "(uint)*pbVar12 * 2" (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal) ])) ;) })) })))) (labeled_statement "joined_r0x0003ecc7:\n  local_54 = local_54 + 1;" statement_identifier : (expression_statement "local_54 = local_54 + 1;" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar19 <= local_54) goto LAB_0003ee1f;" if (parenthesized_expression "(uVar19 <= local_54)" ( (binary_expression "uVar19 <= local_54" identifier <= identifier) )) (goto_statement "goto LAB_0003ee1f;" goto statement_identifier ;)) (goto_statement "goto LAB_0003eccd;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3 stab_demangle_template(stab_demangle_info *minfo,char **pp,char **pname)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char cVar7;\n  size_t sVar8;\n  bfd_boolean bVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  void *__ptr;\n  char *pcVar12;\n  byte *pbVar13;\n  int iVar14;\n  byte bVar15;\n  uint uVar16;\n  char *pcVar17;\n  uint uVar18;\n  char *pcVar19;\n  stab_demangle_info *minfo_00;\n  char **pp_00;\n  debug_type_conflict *ptype;\n  int local_3c;\n  uint r;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3ebcb;\n  pcVar17 = *pp;\n  *pp = pcVar17 + 1;\n  pp_00 = (char **)PTR__sch_istable_0006ffc4;\n  uVar16 = (uint)(byte)pcVar17[1];\n  if ((PTR__sch_istable_0006ffc4[uVar16 * 2] & 4) == 0) {\n    r = 0;\n  }\n  else {\n    uVar18 = 0;\n    pbVar10 = (byte *)(pcVar17 + 2);\n    do {\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n    r = uVar18;\n    if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  stab_bad_demangle(pcVar17);\n  return 0;\n_L601:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }\n  }\n  else {\n    pbVar13 = (byte *)*pp;\n    bVar15 = *pbVar13;\n    pbVar10 = pbVar13;\n    if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }\n    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n    while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }\n  }\nLAB_0003ecba:\n  ptype = (debug_type_conflict *)((int)ptype + 1);\n  if (r <= ptype) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}\n\n" comment (function_definition "bfd_boolean __regparm3 stab_demangle_template(stab_demangle_info *minfo,char **pp,char **pname)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char cVar7;\n  size_t sVar8;\n  bfd_boolean bVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  void *__ptr;\n  char *pcVar12;\n  byte *pbVar13;\n  int iVar14;\n  byte bVar15;\n  uint uVar16;\n  char *pcVar17;\n  uint uVar18;\n  char *pcVar19;\n  stab_demangle_info *minfo_00;\n  char **pp_00;\n  debug_type_conflict *ptype;\n  int local_3c;\n  uint r;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3ebcb;\n  pcVar17 = *pp;\n  *pp = pcVar17 + 1;\n  pp_00 = (char **)PTR__sch_istable_0006ffc4;\n  uVar16 = (uint)(byte)pcVar17[1];\n  if ((PTR__sch_istable_0006ffc4[uVar16 * 2] & 4) == 0) {\n    r = 0;\n  }\n  else {\n    uVar18 = 0;\n    pbVar10 = (byte *)(pcVar17 + 2);\n    do {\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n    r = uVar18;\n    if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  stab_bad_demangle(pcVar17);\n  return 0;\n_L601:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }\n  }\n  else {\n    pbVar13 = (byte *)*pp;\n    bVar15 = *pbVar13;\n    pbVar10 = pbVar13;\n    if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }\n    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n    while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }\n  }\nLAB_0003ecba:\n  ptype = (debug_type_conflict *)((int)ptype + 1);\n  if (r <= ptype) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "stab_demangle_template(stab_demangle_info *minfo,char **pp,char **pname)" identifier (parameter_list "(stab_demangle_info *minfo,char **pp,char **pname)" ( (parameter_declaration "stab_demangle_info *minfo" type_identifier (pointer_declarator "*minfo" * identifier)) , (parameter_declaration "char **pp" primitive_type (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier))) , (parameter_declaration "char **pname" primitive_type (pointer_declarator "**pname" * (pointer_declarator "*pname" * identifier))) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char cVar7;\n  size_t sVar8;\n  bfd_boolean bVar9;\n  byte *pbVar10;\n  char *pcVar11;\n  void *__ptr;\n  char *pcVar12;\n  byte *pbVar13;\n  int iVar14;\n  byte bVar15;\n  uint uVar16;\n  char *pcVar17;\n  uint uVar18;\n  char *pcVar19;\n  stab_demangle_info *minfo_00;\n  char **pp_00;\n  debug_type_conflict *ptype;\n  int local_3c;\n  uint r;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x3ebcb;\n  pcVar17 = *pp;\n  *pp = pcVar17 + 1;\n  pp_00 = (char **)PTR__sch_istable_0006ffc4;\n  uVar16 = (uint)(byte)pcVar17[1];\n  if ((PTR__sch_istable_0006ffc4[uVar16 * 2] & 4) == 0) {\n    r = 0;\n  }\n  else {\n    uVar18 = 0;\n    pbVar10 = (byte *)(pcVar17 + 2);\n    do {\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n    r = uVar18;\n    if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  stab_bad_demangle(pcVar17);\n  return 0;\n_L601:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }\n  }\n  else {\n    pbVar13 = (byte *)*pp;\n    bVar15 = *pbVar13;\n    pbVar10 = pbVar13;\n    if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }\n    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n    while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }\n  }\nLAB_0003ecba:\n  ptype = (debug_type_conflict *)((int)ptype + 1);\n  if (r <= ptype) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "bfd_boolean bVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "stab_demangle_info *minfo_00;" type_identifier (pointer_declarator "*minfo_00" * identifier) ;) (declaration "char **pp_00;" primitive_type (pointer_declarator "**pp_00" * (pointer_declarator "*pp_00" * identifier)) ;) (declaration "debug_type_conflict *ptype;" type_identifier (pointer_declarator "*ptype" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "uint r;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x3ebcb;" (assignment_expression "uStack_14 = 0x3ebcb" identifier = number_literal) ;) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "pp_00 = (char **)PTR__sch_istable_0006ffc4;" (assignment_expression "pp_00 = (char **)PTR__sch_istable_0006ffc4" identifier = (cast_expression "(char **)PTR__sch_istable_0006ffc4" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "uVar16 = (uint)(byte)pcVar17[1];" (assignment_expression "uVar16 = (uint)(byte)pcVar17[1]" identifier = (cast_expression "(uint)(byte)pcVar17[1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar17[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar17[1]" identifier [ number_literal ])))) ;) (if_statement "if ((PTR__sch_istable_0006ffc4[uVar16 * 2] & 4) == 0) {\n    r = 0;\n  }\n  else {\n    uVar18 = 0;\n    pbVar10 = (byte *)(pcVar17 + 2);\n    do {\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n    r = uVar18;\n    if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }\n  }" if (parenthesized_expression "((PTR__sch_istable_0006ffc4[uVar16 * 2] & 4) == 0)" ( (binary_expression "(PTR__sch_istable_0006ffc4[uVar16 * 2] & 4) == 0" (parenthesized_expression "(PTR__sch_istable_0006ffc4[uVar16 * 2] & 4)" ( (binary_expression "PTR__sch_istable_0006ffc4[uVar16 * 2] & 4" (subscript_expression "PTR__sch_istable_0006ffc4[uVar16 * 2]" identifier [ (binary_expression "uVar16 * 2" identifier * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n    r = 0;\n  }" { (expression_statement "r = 0;" (assignment_expression "r = 0" identifier = number_literal) ;) }) (else_clause "else {\n    uVar18 = 0;\n    pbVar10 = (byte *)(pcVar17 + 2);\n    do {\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n    r = uVar18;\n    if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }\n  }" else (compound_statement "{\n    uVar18 = 0;\n    pbVar10 = (byte *)(pcVar17 + 2);\n    do {\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n    r = uVar18;\n    if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }\n  }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "pbVar10 = (byte *)(pcVar17 + 2);" (assignment_expression "pbVar10 = (byte *)(pcVar17 + 2)" identifier = (cast_expression "(byte *)(pcVar17 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 2)" ( (binary_expression "pcVar17 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);" do (compound_statement "{\n      pbVar13 = pbVar10;\n      *pp = (char *)pbVar13;\n      uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;\n      uVar16 = (uint)*pbVar13;\n      pbVar10 = pbVar13 + 1;\n    }" { (expression_statement "pbVar13 = pbVar10;" (assignment_expression "pbVar13 = pbVar10" identifier = identifier) ;) (expression_statement "*pp = (char *)pbVar13;" (assignment_expression "*pp = (char *)pbVar13" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar18 = (char)uVar16 + -0x30 + uVar18 * 10;" (assignment_expression "uVar18 = (char)uVar16 + -0x30 + uVar18 * 10" identifier = (binary_expression "(char)uVar16 + -0x30 + uVar18 * 10" (binary_expression "(char)uVar16 + -0x30" (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "uVar18 * 10" identifier * number_literal))) ;) (expression_statement "uVar16 = (uint)*pbVar13;" (assignment_expression "uVar16 = (uint)*pbVar13" identifier = (binary_expression "(uint)*pbVar13" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar10 = pbVar13 + 1;" (assignment_expression "pbVar10 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + uVar16 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + uVar16 * 2)" * (cast_expression "(byte *)((int)pp_00 + uVar16 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + uVar16 * 2)" ( (binary_expression "(int)pp_00 + uVar16 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "r = uVar18;" (assignment_expression "r = uVar18" identifier = identifier) ;) (if_statement "if ((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)) {\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }" if (parenthesized_expression "((uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8))" ( (binary_expression "(uVar18 != 0) && (sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)" (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8)" ( (comma_expression "sVar8 = strlen((char *)pbVar13), uVar18 <= sVar8" (assignment_expression "sVar8 = strlen((char *)pbVar13)" identifier = (call_expression "strlen((char *)pbVar13)" identifier (argument_list "((char *)pbVar13)" ( (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar18 <= sVar8" identifier <= identifier)) ))) )) (compound_statement "{\n      *pp = (char *)(pbVar13 + uVar18);\n      local_3c = stab_demangle_get_count(pp,&r);\n      if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }\n      if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }\nLAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }\n      return 1;\n    }" { (expression_statement "*pp = (char *)(pbVar13 + uVar18);" (assignment_expression "*pp = (char *)(pbVar13 + uVar18)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar13 + uVar18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + uVar18)" ( (binary_expression "pbVar13 + uVar18" identifier + identifier) )))) ;) (expression_statement "local_3c = stab_demangle_get_count(pp,&r);" (assignment_expression "local_3c = stab_demangle_get_count(pp,&r)" identifier = (call_expression "stab_demangle_get_count(pp,&r)" identifier (argument_list "(pp,&r)" ( identifier , (pointer_expression "&r" & identifier) )))) ;) (if_statement "if (local_3c == 0) {\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003efe7:\n        stab_bad_demangle(pcVar17);\n        return local_3c;\n      }" { (labeled_statement "LAB_0003efe7:\n        stab_bad_demangle(pcVar17);" statement_identifier : (expression_statement "stab_bad_demangle(pcVar17);" (call_expression "stab_bad_demangle(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;)) (return_statement "return local_3c;" return identifier ;) })) (if_statement "if (r != 0) {\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }" if (parenthesized_expression "(r != 0)" ( (binary_expression "r != 0" identifier != number_literal) )) (compound_statement "{\n        ptype = (debug_type_conflict *)0x0;\nLAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;\n        if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *pp = (char *)((int)&minfo_00->dhandle + 1);\n        bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n        if (bVar9 == 0) {\n          return 0;\n        }\n        goto LAB_0003ecba;\n      }" { (expression_statement "ptype = (debug_type_conflict *)0x0;" (assignment_expression "ptype = (debug_type_conflict *)0x0" identifier = (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0003eccd:\n        minfo_00 = (stab_demangle_info *)*pp;" statement_identifier : (expression_statement "minfo_00 = (stab_demangle_info *)*pp;" (assignment_expression "minfo_00 = (stab_demangle_info *)*pp" identifier = (cast_expression "(stab_demangle_info *)*pp" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;)) (if_statement "if (*(char *)&minfo_00->dhandle != 'Z') {\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" if (parenthesized_expression "(*(char *)&minfo_00->dhandle != 'Z')" ( (binary_expression "*(char *)&minfo_00->dhandle != 'Z'" (pointer_expression "*(char *)&minfo_00->dhandle" * (cast_expression "(char *)&minfo_00->dhandle" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&minfo_00->dhandle" & (field_expression "minfo_00->dhandle" identifier -> field_identifier)))) != (char_literal "'Z'" ' character ')) )) (compound_statement "{\n          bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);\n          if (bVar9 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar7 = *(char *)&minfo_00->dhandle;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;\n          switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" { (expression_statement "bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);" (assignment_expression "bVar9 = stab_demangle_type(minfo_00,pp_00,ptype)" identifier = (call_expression "stab_demangle_type(minfo_00,pp_00,ptype)" identifier (argument_list "(minfo_00,pp_00,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar9 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "cVar7 = *(char *)&minfo_00->dhandle;" (assignment_expression "cVar7 = *(char *)&minfo_00->dhandle" identifier = (pointer_expression "*(char *)&minfo_00->dhandle" * (cast_expression "(char *)&minfo_00->dhandle" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&minfo_00->dhandle" & (field_expression "minfo_00->dhandle" identifier -> field_identifier))))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (labeled_statement "LAB_0003ed28:\n          if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;" statement_identifier : (if_statement "if ((bVar2) || (cVar7 == '\0')) goto LAB_0003ed70;" if (parenthesized_expression "((bVar2) || (cVar7 == '\0'))" ( (binary_expression "(bVar2) || (cVar7 == '\0')" (parenthesized_expression "(bVar2)" ( identifier )) || (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0003ed70;" goto statement_identifier ;))) (switch_statement "switch(cVar7) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" switch (parenthesized_expression "(cVar7)" ( identifier )) (compound_statement "{\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto _L601;\n          case 'T':\n          case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" { (case_statement "case 'C':" case (char_literal "'C'" ' character ') :) (case_statement "case 'F':" case (char_literal "'F'" ' character ') :) (case_statement "case 'M':" case (char_literal "'M'" ' character ') :) (case_statement "case 'O':" case (char_literal "'O'" ' character ') :) (case_statement "case 'S':" case (char_literal "'S'" ' character ') :) (case_statement "case 'U':" case (char_literal "'U'" ' character ') :) (case_statement "case 'V':\n            cVar7 = *(char *)((int)&minfo_00->dhandle + 1);\n            minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);\n            bVar2 = false;\n            goto LAB_0003ed28;" case (char_literal "'V'" ' character ') : (expression_statement "cVar7 = *(char *)((int)&minfo_00->dhandle + 1);" (assignment_expression "cVar7 = *(char *)((int)&minfo_00->dhandle + 1)" identifier = (pointer_expression "*(char *)((int)&minfo_00->dhandle + 1)" * (cast_expression "(char *)((int)&minfo_00->dhandle + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&minfo_00->dhandle + 1)" ( (binary_expression "(int)&minfo_00->dhandle + 1" (cast_expression "(int)&minfo_00->dhandle" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&minfo_00->dhandle" & (field_expression "minfo_00->dhandle" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1);" (assignment_expression "minfo_00 = (stab_demangle_info *)((int)&minfo_00->dhandle + 1)" identifier = (cast_expression "(stab_demangle_info *)((int)&minfo_00->dhandle + 1)" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&minfo_00->dhandle + 1)" ( (binary_expression "(int)&minfo_00->dhandle + 1" (cast_expression "(int)&minfo_00->dhandle" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&minfo_00->dhandle" & (field_expression "minfo_00->dhandle" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;" default : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'R':" case (char_literal "'R'" ' character ') :) (case_statement "case 'p':\n            goto _L601;" case (char_literal "'p'" ' character ') : (goto_statement "goto _L601;" goto statement_identifier ;)) (case_statement "case 'T':" case (char_literal "'T'" ' character ') :) (case_statement "case 'v':\n                    /* WARNING: Subroutine does not return */\n            abort();" case (char_literal "'v'" ' character ') : comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;" case (char_literal "'b'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;" case (char_literal "'c'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'd':" case (char_literal "'d'" ' character ') :) (case_statement "case 'f':" case (char_literal "'f'" ' character ') :) (case_statement "case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;" case (char_literal "'r'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) })) })) (expression_statement "*pp = (char *)((int)&minfo_00->dhandle + 1);" (assignment_expression "*pp = (char *)((int)&minfo_00->dhandle + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)((int)&minfo_00->dhandle + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&minfo_00->dhandle + 1)" ( (binary_expression "(int)&minfo_00->dhandle + 1" (cast_expression "(int)&minfo_00->dhandle" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&minfo_00->dhandle" & (field_expression "minfo_00->dhandle" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "bVar9 = stab_demangle_type(minfo_00,pp_00,ptype);" (assignment_expression "bVar9 = stab_demangle_type(minfo_00,pp_00,ptype)" identifier = (call_expression "stab_demangle_type(minfo_00,pp_00,ptype)" identifier (argument_list "(minfo_00,pp_00,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar9 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_0003ecba;" goto statement_identifier ;) })) (labeled_statement "LAB_0003ee1f:\n      if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }" statement_identifier : (if_statement "if (pname != (char **)0x0) {\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }" if (parenthesized_expression "(pname != (char **)0x0)" ( (binary_expression "pname != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);\n        __ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);\n        free(pcVar11);\n        pcVar11 = (char *)cplus_demangle(__ptr,2);\n        free(__ptr);\n        if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;\n        pcVar12 = strstr(pcVar11,"::NoSuchStrinG");\n        if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }\n        pcVar17 = pcVar11;\n        pcVar19 = pcVar11;\n        if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }\n        pcVar17 = savestring(pcVar11,iVar14);\n        *pname = pcVar17;\n        free(pcVar11);\n      }" { (expression_statement "pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17);" (assignment_expression "pcVar11 = savestring(pcVar17,(int)*pp - (int)pcVar17)" identifier = (call_expression "savestring(pcVar17,(int)*pp - (int)pcVar17)" identifier (argument_list "(pcVar17,(int)*pp - (int)pcVar17)" ( identifier , (binary_expression "(int)*pp - (int)pcVar17" (cast_expression "(int)*pp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pp" * identifier)) - (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "__ptr = (void *)concat("NoSuchStrinG__",pcVar11,0);" (assignment_expression "__ptr = (void *)concat("NoSuchStrinG__",pcVar11,0)" identifier = (cast_expression "(void *)concat("NoSuchStrinG__",pcVar11,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "concat("NoSuchStrinG__",pcVar11,0)" identifier (argument_list "("NoSuchStrinG__",pcVar11,0)" ( (string_literal ""NoSuchStrinG__"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (expression_statement "pcVar11 = (char *)cplus_demangle(__ptr,2);" (assignment_expression "pcVar11 = (char *)cplus_demangle(__ptr,2)" identifier = (cast_expression "(char *)cplus_demangle(__ptr,2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "cplus_demangle(__ptr,2)" identifier (argument_list "(__ptr,2)" ( identifier , number_literal ))))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (pcVar11 == (char *)0x0) goto LAB_0003ec4d;" if (parenthesized_expression "(pcVar11 == (char *)0x0)" ( (binary_expression "pcVar11 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "pcVar12 = strstr(pcVar11,"::NoSuchStrinG");" (assignment_expression "pcVar12 = strstr(pcVar11,"::NoSuchStrinG")" identifier = (call_expression "strstr(pcVar11,"::NoSuchStrinG")" identifier (argument_list "(pcVar11,"::NoSuchStrinG")" ( identifier , (string_literal ""::NoSuchStrinG"" " string_content ") )))) ;) (if_statement "if (pcVar12 == (char *)0x0) {\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }" if (parenthesized_expression "(pcVar12 == (char *)0x0)" ( (binary_expression "pcVar12 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          stab_bad_demangle(pcVar17);\n          free(pcVar11);\n          return 0;\n        }" { (expression_statement "stab_bad_demangle(pcVar17);" (call_expression "stab_bad_demangle(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar17 = pcVar11;" (assignment_expression "pcVar17 = pcVar11" identifier = identifier) ;) (expression_statement "pcVar19 = pcVar11;" (assignment_expression "pcVar19 = pcVar11" identifier = identifier) ;) (if_statement "if (pcVar11 == pcVar12) {\n          iVar14 = 0;\n        }\n        else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }" if (parenthesized_expression "(pcVar11 == pcVar12)" ( (binary_expression "pcVar11 == pcVar12" identifier == identifier) )) (compound_statement "{\n          iVar14 = 0;\n        }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }" else (compound_statement "{\n          do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);\n          iVar14 = (int)pcVar19 - (int)pcVar11;\n        }" { (do_statement "do {\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          } while (pcVar12 != pcVar17);" do (compound_statement "{\n            if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }\n            pcVar17 = pcVar17 + 1;\n          }" { (if_statement "if ((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))) {\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }" if (parenthesized_expression "((*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>'))))" ( (binary_expression "(*pcVar17 != ' ') ||\n               (((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))" (parenthesized_expression "(*pcVar17 != ' ')" ( (binary_expression "*pcVar17 != ' '" (pointer_expression "*pcVar17" * identifier) != (char_literal "' '" ' character ')) )) || (parenthesized_expression "(((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')))" ( (parenthesized_expression "((pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>'))" ( (binary_expression "(pcVar17[1] == '>' && (pcVar11 < pcVar17)) && (pcVar17[-1] == '>')" (parenthesized_expression "(pcVar17[1] == '>' && (pcVar11 < pcVar17))" ( (binary_expression "pcVar17[1] == '>' && (pcVar11 < pcVar17)" (binary_expression "pcVar17[1] == '>'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) == (char_literal "'>'" ' character ')) && (parenthesized_expression "(pcVar11 < pcVar17)" ( (binary_expression "pcVar11 < pcVar17" identifier < identifier) ))) )) && (parenthesized_expression "(pcVar17[-1] == '>')" ( (binary_expression "pcVar17[-1] == '>'" (subscript_expression "pcVar17[-1]" identifier [ number_literal ]) == (char_literal "'>'" ' character ')) ))) )) ))) )) (compound_statement "{\n              *pcVar19 = *pcVar17;\n              pcVar19 = pcVar19 + 1;\n            }" { (expression_statement "*pcVar19 = *pcVar17;" (assignment_expression "*pcVar19 = *pcVar17" (pointer_expression "*pcVar19" * identifier) = (pointer_expression "*pcVar17" * identifier)) ;) (expression_statement "pcVar19 = pcVar19 + 1;" (assignment_expression "pcVar19 = pcVar19 + 1" identifier = (binary_expression "pcVar19 + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar12 != pcVar17)" ( (binary_expression "pcVar12 != pcVar17" identifier != identifier) )) ;) (expression_statement "iVar14 = (int)pcVar19 - (int)pcVar11;" (assignment_expression "iVar14 = (int)pcVar19 - (int)pcVar11" identifier = (binary_expression "(int)pcVar19 - (int)pcVar11" (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }))) (expression_statement "pcVar17 = savestring(pcVar11,iVar14);" (assignment_expression "pcVar17 = savestring(pcVar11,iVar14)" identifier = (call_expression "savestring(pcVar11,iVar14)" identifier (argument_list "(pcVar11,iVar14)" ( identifier , identifier )))) ;) (expression_statement "*pname = pcVar17;" (assignment_expression "*pname = pcVar17" (pointer_expression "*pname" * identifier) = identifier) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) }))) (return_statement "return 1;" return number_literal ;) })) }))) (labeled_statement "LAB_0003ec4d:\n  stab_bad_demangle(pcVar17);" statement_identifier : (expression_statement "stab_bad_demangle(pcVar17);" (call_expression "stab_bad_demangle(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) (labeled_statement "_L601:\n  bVar6 = true;" statement_identifier : (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;)) (labeled_statement "LAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }\n  }\n  else {\n    pbVar13 = (byte *)*pp;\n    bVar15 = *pbVar13;\n    pbVar10 = pbVar13;\n    if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }\n    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n    while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }\n  }" statement_identifier : (if_statement "if (local_3c == 0) {\n    if (bVar3) {\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }\n  }\n  else {\n    pbVar13 = (byte *)*pp;\n    bVar15 = *pbVar13;\n    pbVar10 = pbVar13;\n    if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }\n    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n    while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }\n  }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n    if (bVar3) {\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }\n  }" { (if_statement "if (bVar3) {\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      pbVar10 = (byte *)*pp;\n      bVar15 = *pbVar10;\n      uVar16 = (uint)bVar15;\n      if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if ((bVar15 & 4) == 0) goto LAB_0003efe7;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003efe7;\n    }" { (expression_statement "pbVar10 = (byte *)*pp;" (assignment_expression "pbVar10 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar15 = *pbVar10;" (assignment_expression "bVar15 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "uVar16 = (uint)bVar15;" (assignment_expression "uVar16 = (uint)bVar15" identifier = (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar15 == 0x6d) {\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }\n      else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }" if (parenthesized_expression "(bVar15 == 0x6d)" ( (binary_expression "bVar15 == 0x6d" identifier == number_literal) )) (compound_statement "{\n        *pp = (char *)(pbVar10 + 1);\n        uVar16 = (uint)pbVar10[1];\n        bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);\n        pbVar10 = pbVar10 + 1;\n      }" { (expression_statement "*pp = (char *)(pbVar10 + 1);" (assignment_expression "*pp = (char *)(pbVar10 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + 1)" ( (binary_expression "pbVar10 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar16 = (uint)pbVar10[1];" (assignment_expression "uVar16 = (uint)pbVar10[1]" identifier = (cast_expression "(uint)pbVar10[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar10[1]" identifier [ number_literal ]))) ;) (expression_statement "bVar15 = *(byte *)((int)pp_00 + uVar16 * 2);" (assignment_expression "bVar15 = *(byte *)((int)pp_00 + uVar16 * 2)" identifier = (pointer_expression "*(byte *)((int)pp_00 + uVar16 * 2)" * (cast_expression "(byte *)((int)pp_00 + uVar16 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + uVar16 * 2)" ( (binary_expression "(int)pp_00 + uVar16 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) ))))) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }" else (compound_statement "{\n        bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }" { (expression_statement "bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);" (assignment_expression "bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2)" identifier = (pointer_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)bVar15 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)bVar15 * 2)" ( (binary_expression "(int)pp_00 + (uint)bVar15 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * 2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) }))) (if_statement "if ((bVar15 & 4) == 0) goto LAB_0003efe7;" if (parenthesized_expression "((bVar15 & 4) == 0)" ( (binary_expression "(bVar15 & 4) == 0" (parenthesized_expression "(bVar15 & 4)" ( (binary_expression "bVar15 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003efe7;" goto statement_identifier ;)) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);" do (compound_statement "{\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        cVar7 = (char)uVar16;\n        uVar16 = (uint)*pbVar10;\n        iVar14 = cVar7 + -0x30 + iVar14 * 10;\n      }" { (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "cVar7 = (char)uVar16;" (assignment_expression "cVar7 = (char)uVar16" identifier = (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar16 = (uint)*pbVar10;" (assignment_expression "uVar16 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar14 = cVar7 + -0x30 + iVar14 * 10;" (assignment_expression "iVar14 = cVar7 + -0x30 + iVar14 * 10" identifier = (binary_expression "cVar7 + -0x30 + iVar14 * 10" (binary_expression "cVar7 + -0x30" identifier + number_literal) + (binary_expression "iVar14 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + uVar16 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + uVar16 * 2)" * (cast_expression "(byte *)((int)pp_00 + uVar16 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + uVar16 * 2)" ( (binary_expression "(int)pp_00 + uVar16 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) ;) (if_statement "if (iVar14 == 0) goto LAB_0003efe7;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003efe7;" goto statement_identifier ;)) }) (else_clause "else if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" else (if_statement "if (bVar4) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }\n    }" { (expression_statement "pbVar10 = (byte *)*pp;" (assignment_expression "pbVar10 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "uVar16 = (uint)*pbVar10;" (assignment_expression "uVar16 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0) {\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }" if (parenthesized_expression "((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + uVar16 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + uVar16 * 2)" * (cast_expression "(byte *)((int)pp_00 + uVar16 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + uVar16 * 2)" ( (binary_expression "(int)pp_00 + uVar16 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar18 = 0;\n        do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n        if (1 < uVar18) goto LAB_0003ec4d;\n      }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);" do (compound_statement "{\n          pbVar10 = pbVar10 + 1;\n          *pp = (char *)pbVar10;\n          cVar7 = (char)uVar16;\n          uVar16 = (uint)*pbVar10;\n          uVar18 = cVar7 + -0x30 + uVar18 * 10;\n        }" { (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "cVar7 = (char)uVar16;" (assignment_expression "cVar7 = (char)uVar16" identifier = (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar16 = (uint)*pbVar10;" (assignment_expression "uVar16 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar18 = cVar7 + -0x30 + uVar18 * 10;" (assignment_expression "uVar18 = cVar7 + -0x30 + uVar18 * 10" identifier = (binary_expression "cVar7 + -0x30 + uVar18 * 10" (binary_expression "cVar7 + -0x30" identifier + number_literal) + (binary_expression "uVar18 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + uVar16 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + uVar16 * 2)" * (cast_expression "(byte *)((int)pp_00 + uVar16 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + uVar16 * 2)" ( (binary_expression "(int)pp_00 + uVar16 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) ;) (if_statement "if (1 < uVar18) goto LAB_0003ec4d;" if (parenthesized_expression "(1 < uVar18)" ( (binary_expression "1 < uVar18" number_literal < identifier) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) })) }) (else_clause "else if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" else (if_statement "if (bVar5) {\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n      pbVar13 = (byte *)*pp;\n      bVar15 = *pbVar13;\n      pbVar10 = pbVar13;\n      if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }\n      bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }\n      if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }\n      if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }\n    }" { (expression_statement "pbVar13 = (byte *)*pp;" (assignment_expression "pbVar13 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar15 = *pbVar13;" (assignment_expression "bVar15 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar10 = pbVar13;" (assignment_expression "pbVar10 = pbVar13" identifier = identifier) ;) (if_statement "if (bVar15 == 0x6d) {\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }" if (parenthesized_expression "(bVar15 == 0x6d)" ( (binary_expression "bVar15 == 0x6d" identifier == number_literal) )) (compound_statement "{\n        pbVar10 = pbVar13 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = pbVar13[1];\n      }" { (expression_statement "pbVar10 = pbVar13 + 1;" (assignment_expression "pbVar10 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar15 = pbVar13[1];" (assignment_expression "bVar15 = pbVar13[1]" identifier = (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ;) })) (expression_statement "bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);" (assignment_expression "bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2)" identifier = (pointer_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)bVar15 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)bVar15 * 2)" ( (binary_expression "(int)pp_00 + (uint)bVar15 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * 2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (while_statement "while ((bVar1 & 4) != 0) {\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }" while (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pbVar10 = pbVar10 + 1;\n        *pp = (char *)pbVar10;\n        bVar15 = *pbVar10;\n        bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n      }" { (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar15 = *pbVar10;" (assignment_expression "bVar15 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);" (assignment_expression "bVar1 = *(byte *)((int)pp_00 + (uint)bVar15 * 2)" identifier = (pointer_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)bVar15 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)bVar15 * 2)" ( (binary_expression "(int)pp_00 + (uint)bVar15 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * 2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) })) (if_statement "if (bVar15 == 0x2e) {\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }\n      else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }" if (parenthesized_expression "(bVar15 == 0x2e)" ( (binary_expression "bVar15 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        pbVar13 = pbVar10 + 1;\n        *pp = (char *)pbVar13;\n        bVar15 = pbVar10[1];\n        if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }\n      }" { (expression_statement "pbVar13 = pbVar10 + 1;" (assignment_expression "pbVar13 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar13;" (assignment_expression "*pp = (char *)pbVar13" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar15 = pbVar10[1];" (assignment_expression "bVar15 = pbVar10[1]" identifier = (subscript_expression "pbVar10[1]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0) {\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }" if (parenthesized_expression "((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)bVar15 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)bVar15 * 2)" ( (binary_expression "(int)pp_00 + (uint)bVar15 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * 2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          pbVar10 = pbVar10 + 2;\n          do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n        }" { (expression_statement "pbVar10 = pbVar10 + 2;" (assignment_expression "pbVar10 = pbVar10 + 2" identifier = (binary_expression "pbVar10 + 2" identifier + number_literal)) ;) (do_statement "do {\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);" do (compound_statement "{\n            pbVar13 = pbVar10;\n            *pp = (char *)pbVar13;\n            bVar15 = *pbVar13;\n            pbVar10 = pbVar13 + 1;\n          }" { (expression_statement "pbVar13 = pbVar10;" (assignment_expression "pbVar13 = pbVar10" identifier = identifier) ;) (expression_statement "*pp = (char *)pbVar13;" (assignment_expression "*pp = (char *)pbVar13" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar15 = *pbVar13;" (assignment_expression "bVar15 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar10 = pbVar13 + 1;" (assignment_expression "pbVar10 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)bVar15 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)bVar15 * 2)" ( (binary_expression "(int)pp_00 + (uint)bVar15 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * 2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) ;) })) }) (else_clause "else {\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }" else (compound_statement "{\n        pbVar13 = (byte *)*pp;\n        bVar15 = *pbVar13;\n      }" { (expression_statement "pbVar13 = (byte *)*pp;" (assignment_expression "pbVar13 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar15 = *pbVar13;" (assignment_expression "bVar15 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) }))) (if_statement "if ((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)) {\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }" if (parenthesized_expression "((bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0))" ( (binary_expression "(bVar15 == 0x65) &&\n         (*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)" (parenthesized_expression "(bVar15 == 0x65)" ( (binary_expression "bVar15 == 0x65" identifier == number_literal) )) && (parenthesized_expression "(*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0)" ( (comma_expression "*pp = (char *)(pbVar13 + 1), (*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0" (assignment_expression "*pp = (char *)(pbVar13 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar13 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 1)" ( (binary_expression "pbVar13 + 1" identifier + number_literal) )))) , (binary_expression "(*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + (uint)pbVar13[1] * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)pbVar13[1] * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)pbVar13[1] * 2)" ( (binary_expression "(int)pp_00 + (uint)pbVar13[1] * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)pbVar13[1] * 2" (cast_expression "(uint)pbVar13[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar13[1]" identifier [ number_literal ])) * number_literal)) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        pbVar10 = pbVar13 + 2;\n        do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);\n      }" { (expression_statement "pbVar10 = pbVar13 + 2;" (assignment_expression "pbVar10 = pbVar13 + 2" identifier = (binary_expression "pbVar13 + 2" identifier + number_literal)) ;) (do_statement "do {\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        } while ((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0);" do (compound_statement "{\n          *pp = (char *)pbVar10;\n          bVar15 = *pbVar10;\n          pbVar10 = pbVar10 + 1;\n        }" { (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar15 = *pbVar10;" (assignment_expression "bVar15 = *pbVar10" identifier = (pointer_expression "*pbVar10" * identifier)) ;) (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)bVar15 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)bVar15 * 2)" ( (binary_expression "(int)pp_00 + (uint)bVar15 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * 2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) ;) })) }) (else_clause "else if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" else (if_statement "if (bVar6) {\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n      pbVar10 = (byte *)*pp;\n      uVar16 = (uint)*pbVar10;\n      if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;\n      iVar14 = 0;\n      do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);\n      if (iVar14 == 0) goto LAB_0003ec4d;\n      ptype = (debug_type_conflict *)((int)ptype + 1);\n      *pp = (char *)(pbVar10 + iVar14);\n      if (r <= ptype) goto LAB_0003ee1f;\n      goto LAB_0003eccd;\n    }" { (expression_statement "pbVar10 = (byte *)*pp;" (assignment_expression "pbVar10 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "uVar16 = (uint)*pbVar10;" (assignment_expression "uVar16 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0) goto LAB_0003ec4d;" if (parenthesized_expression "((*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0)" ( (binary_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4) == 0" (parenthesized_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + uVar16 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + uVar16 * 2)" * (cast_expression "(byte *)((int)pp_00 + uVar16 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + uVar16 * 2)" ( (binary_expression "(int)pp_00 + uVar16 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      } while ((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0);" do (compound_statement "{\n        pbVar10 = pbVar10 + 1;\n        iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;\n        *pp = (char *)pbVar10;\n        uVar16 = (uint)*pbVar10;\n      }" { (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = (char)uVar16 + -0x30 + iVar14 * 10;" (assignment_expression "iVar14 = (char)uVar16 + -0x30 + iVar14 * 10" identifier = (binary_expression "(char)uVar16 + -0x30 + iVar14 * 10" (binary_expression "(char)uVar16 + -0x30" (cast_expression "(char)uVar16" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "iVar14 * 10" identifier * number_literal))) ;) (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar16 = (uint)*pbVar10;" (assignment_expression "uVar16 = (uint)*pbVar10" identifier = (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0)" ( (binary_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4) != 0" (parenthesized_expression "(*(byte *)((int)pp_00 + uVar16 * 2) & 4)" ( (binary_expression "*(byte *)((int)pp_00 + uVar16 * 2) & 4" (pointer_expression "*(byte *)((int)pp_00 + uVar16 * 2)" * (cast_expression "(byte *)((int)pp_00 + uVar16 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + uVar16 * 2)" ( (binary_expression "(int)pp_00 + uVar16 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar16 * 2" identifier * number_literal)) )))) & number_literal) )) != number_literal) )) ;) (if_statement "if (iVar14 == 0) goto LAB_0003ec4d;" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "ptype = (debug_type_conflict *)((int)ptype + 1);" (assignment_expression "ptype = (debug_type_conflict *)((int)ptype + 1)" identifier = (cast_expression "(debug_type_conflict *)((int)ptype + 1)" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptype + 1)" ( (binary_expression "(int)ptype + 1" (cast_expression "(int)ptype" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*pp = (char *)(pbVar10 + iVar14);" (assignment_expression "*pp = (char *)(pbVar10 + iVar14)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar10 + iVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar10 + iVar14)" ( (binary_expression "pbVar10 + iVar14" identifier + identifier) )))) ;) (if_statement "if (r <= ptype) goto LAB_0003ee1f;" if (parenthesized_expression "(r <= ptype)" ( (binary_expression "r <= ptype" identifier <= identifier) )) (goto_statement "goto LAB_0003ee1f;" goto statement_identifier ;)) (goto_statement "goto LAB_0003eccd;" goto statement_identifier ;) })))))))) }) (else_clause "else {\n    pbVar13 = (byte *)*pp;\n    bVar15 = *pbVar13;\n    pbVar10 = pbVar13;\n    if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }\n    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n    while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }\n  }" else (compound_statement "{\n    pbVar13 = (byte *)*pp;\n    bVar15 = *pbVar13;\n    pbVar10 = pbVar13;\n    if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }\n    bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);\n    while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }\n  }" { (expression_statement "pbVar13 = (byte *)*pp;" (assignment_expression "pbVar13 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar15 = *pbVar13;" (assignment_expression "bVar15 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar10 = pbVar13;" (assignment_expression "pbVar10 = pbVar13" identifier = identifier) ;) (if_statement "if (bVar15 == 0x6d) {\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }" if (parenthesized_expression "(bVar15 == 0x6d)" ( (binary_expression "bVar15 == 0x6d" identifier == number_literal) )) (compound_statement "{\n      pbVar10 = pbVar13 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = pbVar13[1];\n    }" { (expression_statement "pbVar10 = pbVar13 + 1;" (assignment_expression "pbVar10 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar15 = pbVar13[1];" (assignment_expression "bVar15 = pbVar13[1]" identifier = (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ;) })) (expression_statement "bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2);" (assignment_expression "bVar15 = *(byte *)((int)pp_00 + (uint)bVar15 * 2)" identifier = (pointer_expression "*(byte *)((int)pp_00 + (uint)bVar15 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)bVar15 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)bVar15 * 2)" ( (binary_expression "(int)pp_00 + (uint)bVar15 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * 2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ))))) ;) (while_statement "while ((bVar15 & 4) != 0) {\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }" while (parenthesized_expression "((bVar15 & 4) != 0)" ( (binary_expression "(bVar15 & 4) != 0" (parenthesized_expression "(bVar15 & 4)" ( (binary_expression "bVar15 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar10 = pbVar10 + 1;\n      *pp = (char *)pbVar10;\n      bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);\n    }" { (expression_statement "pbVar10 = pbVar10 + 1;" (assignment_expression "pbVar10 = pbVar10 + 1" identifier = (binary_expression "pbVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar10;" (assignment_expression "*pp = (char *)pbVar10" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2);" (assignment_expression "bVar15 = *(byte *)((int)pp_00 + (uint)*pbVar10 * 2)" identifier = (pointer_expression "*(byte *)((int)pp_00 + (uint)*pbVar10 * 2)" * (cast_expression "(byte *)((int)pp_00 + (uint)*pbVar10 * 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pp_00 + (uint)*pbVar10 * 2)" ( (binary_expression "(int)pp_00 + (uint)*pbVar10 * 2" (cast_expression "(int)pp_00" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)*pbVar10 * 2" (binary_expression "(uint)*pbVar10" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) ))))) ;) })) })))) (labeled_statement "LAB_0003ecba:\n  ptype = (debug_type_conflict *)((int)ptype + 1);" statement_identifier : (expression_statement "ptype = (debug_type_conflict *)((int)ptype + 1);" (assignment_expression "ptype = (debug_type_conflict *)((int)ptype + 1)" identifier = (cast_expression "(debug_type_conflict *)((int)ptype + 1)" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptype + 1)" ( (binary_expression "(int)ptype + 1" (cast_expression "(int)ptype" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if (r <= ptype) goto LAB_0003ee1f;" if (parenthesized_expression "(r <= ptype)" ( (binary_expression "r <= ptype" identifier <= identifier) )) (goto_statement "goto LAB_0003ee1f;" goto statement_identifier ;)) (goto_statement "goto LAB_0003eccd;" goto statement_identifier ;) })))
(translation_unit "int __regparm3 FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}\n\n" (function_definition "int __regparm3 FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 param_1,int *param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "char *__haystack;" primitive_type (pointer_declarator "*__haystack" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "char *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "iVar11 = *param_2;" (assignment_expression "iVar11 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "*param_2 = iVar11 + 1;" (assignment_expression "*param_2 = iVar11 + 1" (pointer_expression "*param_2" * identifier) = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR__sch_istable_0006ffc4;" (assignment_expression "puVar8 = PTR__sch_istable_0006ffc4" identifier = identifier) ;) (expression_statement "uVar18 = (uint)*(byte *)(iVar11 + 1);" (assignment_expression "uVar18 = (uint)*(byte *)(iVar11 + 1)" identifier = (binary_expression "(uint)*(byte *)(iVar11 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) ))))) ;) (if_statement "if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }" if (parenthesized_expression "((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0)" ( (binary_expression "(PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0" (parenthesized_expression "(PTR__sch_istable_0006ffc4[uVar18 * 2] & 4)" ( (binary_expression "PTR__sch_istable_0006ffc4[uVar18 * 2] & 4" (subscript_expression "PTR__sch_istable_0006ffc4[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)(iVar11 + 2);" (assignment_expression "pbVar12 = (byte *)(iVar11 + 2)" identifier = (cast_expression "(byte *)(iVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 2)" ( (binary_expression "iVar11 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    }" { (expression_statement "pbVar14 = pbVar12;" (assignment_expression "pbVar14 = pbVar12" identifier = identifier) ;) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;" (assignment_expression "uVar19 = (char)uVar18 + -0x30 + uVar19 * 10" identifier = (binary_expression "(char)uVar18 + -0x30 + uVar19 * 10" (binary_expression "(char)uVar18 + -0x30" (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "uVar19 * 10" identifier * number_literal))) ;) (expression_statement "uVar18 = (uint)*pbVar14;" (assignment_expression "uVar18 = (uint)*pbVar14" identifier = (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }" if (parenthesized_expression "((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10))" ( (binary_expression "(uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)" (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) && (parenthesized_expression "(sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)" ( (comma_expression "sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10" (assignment_expression "sVar10 = strlen((char *)pbVar14)" identifier = (call_expression "strlen((char *)pbVar14)" identifier (argument_list "((char *)pbVar14)" ( (cast_expression "(char *)pbVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "uVar19 <= sVar10" identifier <= identifier)) ))) )) (compound_statement "{\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }" { (expression_statement "*param_2 = (int)(pbVar14 + uVar19);" (assignment_expression "*param_2 = (int)(pbVar14 + uVar19)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar14 + uVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + uVar19)" ( (binary_expression "pbVar14 + uVar19" identifier + identifier) )))) ;) (expression_statement "local_3c = FUN_0003cb60();" (assignment_expression "local_3c = FUN_0003cb60()" identifier = (call_expression "FUN_0003cb60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }" { (labeled_statement "LAB_0003efe7:\n        FUN_0003cc40();" statement_identifier : (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" identifier (argument_list "()" ( ))) ;)) (return_statement "return local_3c;" return identifier ;) })) (if_statement "if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0003eccd:\n        local_5c = (char *)*param_2;" statement_identifier : (expression_statement "local_5c = (char *)*param_2;" (assignment_expression "local_5c = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) (if_statement "if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" if (parenthesized_expression "(*local_5c != 'Z')" ( (binary_expression "*local_5c != 'Z'" (pointer_expression "*local_5c" * identifier) != (char_literal "'Z'" ' character ')) )) (compound_statement "{\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" { (expression_statement "iVar11 = FUN_0003e060();" (assignment_expression "iVar11 = FUN_0003e060()" identifier = (call_expression "FUN_0003e060()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "cVar9 = *local_5c;" (assignment_expression "cVar9 = *local_5c" identifier = (pointer_expression "*local_5c" * identifier)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (labeled_statement "LAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;" statement_identifier : (if_statement "if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;" if (parenthesized_expression "((bVar2) || (cVar9 == '\0'))" ( (binary_expression "(bVar2) || (cVar9 == '\0')" (parenthesized_expression "(bVar2)" ( identifier )) || (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0003ed70;" goto statement_identifier ;))) (switch_statement "switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" switch (parenthesized_expression "(cVar9)" ( identifier )) (compound_statement "{\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" { (case_statement "case 'C':" case (char_literal "'C'" ' character ') :) (case_statement "case 'F':" case (char_literal "'F'" ' character ') :) (case_statement "case 'M':" case (char_literal "'M'" ' character ') :) (case_statement "case 'O':" case (char_literal "'O'" ' character ') :) (case_statement "case 'S':" case (char_literal "'S'" ' character ') :) (case_statement "case 'U':" case (char_literal "'U'" ' character ') :) (case_statement "case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;" case (char_literal "'V'" ' character ') : (expression_statement "cVar9 = local_5c[1];" (assignment_expression "cVar9 = local_5c[1]" identifier = (subscript_expression "local_5c[1]" identifier [ number_literal ])) ;) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" identifier = (binary_expression "local_5c + 1" identifier + number_literal)) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;" default : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'R':" case (char_literal "'R'" ' character ') :) (case_statement "case 'p':\n            goto code_r0x0003ed60;" case (char_literal "'p'" ' character ') : (goto_statement "goto code_r0x0003ed60;" goto statement_identifier ;)) (case_statement "case 'T':" case (char_literal "'T'" ' character ') :) (case_statement "case 'v':\n                    \n            abort();" case (char_literal "'v'" ' character ') : (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;" case (char_literal "'b'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;" case (char_literal "'c'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) (case_statement "case 'd':" case (char_literal "'d'" ' character ') :) (case_statement "case 'f':" case (char_literal "'f'" ' character ') :) (case_statement "case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;" case (char_literal "'r'" ' character ') : (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (goto_statement "goto LAB_0003ed28;" goto statement_identifier ;)) })) })) (expression_statement "*param_2 = (int)(local_5c + 1);" (assignment_expression "*param_2 = (int)(local_5c + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(local_5c + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_5c + 1)" ( (binary_expression "local_5c + 1" identifier + number_literal) )))) ;) (expression_statement "iVar11 = FUN_0003e060();" (assignment_expression "iVar11 = FUN_0003e060()" identifier = (call_expression "FUN_0003e060()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto joined_r0x0003ecc7;" goto statement_identifier ;) })) (labeled_statement "LAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" statement_identifier : (if_statement "if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" { (expression_statement "__ptr = (void *)FUN_0003cd30();" (assignment_expression "__ptr = (void *)FUN_0003cd30()" identifier = (cast_expression "(void *)FUN_0003cd30()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0003cd30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "__ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);" (assignment_expression "__ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0)" identifier = (cast_expression "(void *)concat("NoSuchStrinG__",__ptr,0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "concat("NoSuchStrinG__",__ptr,0)" identifier (argument_list "("NoSuchStrinG__",__ptr,0)" ( (string_literal ""NoSuchStrinG__"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__haystack = (char *)cplus_demangle(__ptr_00,2);" (assignment_expression "__haystack = (char *)cplus_demangle(__ptr_00,2)" identifier = (cast_expression "(char *)cplus_demangle(__ptr_00,2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "cplus_demangle(__ptr_00,2)" identifier (argument_list "(__ptr_00,2)" ( identifier , number_literal ))))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (if_statement "if (__haystack == (char *)0x0) goto LAB_0003ec4d;" if (parenthesized_expression "(__haystack == (char *)0x0)" ( (binary_expression "__haystack == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "pcVar13 = strstr(__haystack,"::NoSuchStrinG");" (assignment_expression "pcVar13 = strstr(__haystack,"::NoSuchStrinG")" identifier = (call_expression "strstr(__haystack,"::NoSuchStrinG")" identifier (argument_list "(__haystack,"::NoSuchStrinG")" ( identifier , (string_literal ""::NoSuchStrinG"" " string_content ") )))) ;) (expression_statement "pcVar7 = __haystack;" (assignment_expression "pcVar7 = __haystack" identifier = identifier) ;) (expression_statement "pcVar20 = __haystack;" (assignment_expression "pcVar20 = __haystack" identifier = identifier) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }" { (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__haystack);" (call_expression "free(__haystack)" identifier (argument_list "(__haystack)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (for_statement "for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }" for ( ; (binary_expression "pcVar7 != pcVar13" identifier != identifier) ; (assignment_expression "pcVar7 = pcVar7 + 1" identifier = (binary_expression "pcVar7 + 1" identifier + number_literal)) ) (compound_statement "{\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }" { (if_statement "if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }" if (parenthesized_expression "((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>'))))" ( (binary_expression "(*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))" (parenthesized_expression "(*pcVar7 != ' ')" ( (binary_expression "*pcVar7 != ' '" (pointer_expression "*pcVar7" * identifier) != (char_literal "' '" ' character ')) )) || (parenthesized_expression "(((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))" ( (parenthesized_expression "((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>'))" ( (binary_expression "(pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')" (parenthesized_expression "(pcVar7[1] == '>' && (__haystack < pcVar7))" ( (binary_expression "pcVar7[1] == '>' && (__haystack < pcVar7)" (binary_expression "pcVar7[1] == '>'" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) == (char_literal "'>'" ' character ')) && (parenthesized_expression "(__haystack < pcVar7)" ( (binary_expression "__haystack < pcVar7" identifier < identifier) ))) )) && (parenthesized_expression "(pcVar7[-1] == '>')" ( (binary_expression "pcVar7[-1] == '>'" (subscript_expression "pcVar7[-1]" identifier [ number_literal ]) == (char_literal "'>'" ' character ')) ))) )) ))) )) (compound_statement "{\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }" { (expression_statement "*pcVar20 = *pcVar7;" (assignment_expression "*pcVar20 = *pcVar7" (pointer_expression "*pcVar20" * identifier) = (pointer_expression "*pcVar7" * identifier)) ;) (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" identifier = (binary_expression "pcVar20 + 1" identifier + number_literal)) ;) })) })) (expression_statement "uVar15 = FUN_0003cd30();" (assignment_expression "uVar15 = FUN_0003cd30()" identifier = (call_expression "FUN_0003cd30()" identifier (argument_list "()" ( )))) ;) (expression_statement "*param_3 = uVar15;" (assignment_expression "*param_3 = uVar15" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "free(__haystack);" (call_expression "free(__haystack)" identifier (argument_list "(__haystack)" ( identifier ))) ;) }))) (return_statement "return 1;" return number_literal ;) })) })) (labeled_statement "LAB_0003ec4d:\n  FUN_0003cc40();" statement_identifier : (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" identifier (argument_list "()" ( ))) ;)) (return_statement "return 0;" return number_literal ;) (labeled_statement "code_r0x0003ed60:\n  bVar6 = true;" statement_identifier : (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;)) (labeled_statement "LAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" statement_identifier : (if_statement "if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }" { (if_statement "if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }" { (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "uVar18 = (uint)bVar17;" (assignment_expression "uVar18 = (uint)bVar17" identifier = (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" if (parenthesized_expression "(bVar17 == 0x6d)" ( (binary_expression "bVar17 == 0x6d" identifier == number_literal) )) (compound_statement "{\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }" { (expression_statement "*param_2 = (int)(pbVar12 + 1);" (assignment_expression "*param_2 = (int)(pbVar12 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar12 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar18 = (uint)pbVar12[1];" (assignment_expression "uVar18 = (uint)pbVar12[1]" identifier = (cast_expression "(uint)pbVar12[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar12[1]" identifier [ number_literal ]))) ;) (expression_statement "bVar17 = puVar8[uVar18 * 2];" (assignment_expression "bVar17 = puVar8[uVar18 * 2]" identifier = (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ])) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" else (compound_statement "{\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" { (expression_statement "bVar17 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar17 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) }))) (if_statement "if ((bVar17 & 4) == 0) goto LAB_0003efe7;" if (parenthesized_expression "((bVar17 & 4) == 0)" ( (binary_expression "(bVar17 & 4) == 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003efe7;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar9 = (char)uVar18;" (assignment_expression "cVar9 = (char)uVar18" identifier = (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "iVar11 = cVar9 + -0x30 + iVar11 * 10;" (assignment_expression "iVar11 = cVar9 + -0x30 + iVar11 * 10" identifier = (binary_expression "cVar9 + -0x30 + iVar11 * 10" (binary_expression "cVar9 + -0x30" identifier + number_literal) + (binary_expression "iVar11 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if (iVar11 == 0) goto LAB_0003efe7;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003efe7;" goto statement_identifier ;)) }) (else_clause "else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" else (if_statement "if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar4)" ( identifier )) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }" { (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }" if (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar9 = (char)uVar18;" (assignment_expression "cVar9 = (char)uVar18" identifier = (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar16 = cVar9 + -0x30 + uVar16 * 10;" (assignment_expression "uVar16 = cVar9 + -0x30 + uVar16 * 10" identifier = (binary_expression "cVar9 + -0x30 + uVar16 * 10" (binary_expression "cVar9 + -0x30" identifier + number_literal) + (binary_expression "uVar16 * 10" identifier * number_literal))) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if (1 < uVar16) goto LAB_0003ec4d;" if (parenthesized_expression "(1 < uVar16)" ( (binary_expression "1 < uVar16" number_literal < identifier) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) })) }) (else_clause "else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" else (if_statement "if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }" { (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar12 = pbVar14;" (assignment_expression "pbVar12 = pbVar14" identifier = identifier) ;) (if_statement "if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }" if (parenthesized_expression "(bVar17 == 0x6d)" ( (binary_expression "bVar17 == 0x6d" identifier == number_literal) )) (compound_statement "{\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }" { (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = pbVar14[1];" (assignment_expression "bVar17 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) })) (expression_statement "bVar1 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar1 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (while_statement "while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }" while (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "bVar1 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar1 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (if_statement "if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" if (parenthesized_expression "(bVar17 == 0x2e)" ( (binary_expression "bVar17 == 0x2e" identifier == number_literal) )) (compound_statement "{\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }" { (expression_statement "pbVar14 = pbVar12 + 1;" (assignment_expression "pbVar14 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = pbVar12[1];" (assignment_expression "bVar17 = pbVar12[1]" identifier = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ;) (if_statement "if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }" if (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" ( (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" ( (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }" { (expression_statement "pbVar12 = pbVar12 + 2;" (assignment_expression "pbVar12 = pbVar12 + 2" identifier = (binary_expression "pbVar12 + 2" identifier + number_literal)) ;) (do_statement "do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);" do (compound_statement "{\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          }" { (expression_statement "pbVar14 = pbVar12;" (assignment_expression "pbVar14 = pbVar12" identifier = identifier) ;) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" ( (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" ( (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) })) }) (else_clause "else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" else (compound_statement "{\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" { (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) }))) (if_statement "if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }" if (parenthesized_expression "((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0))" ( (binary_expression "(bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)" (parenthesized_expression "(bVar17 == 0x65)" ( (binary_expression "bVar17 == 0x65" identifier == number_literal) )) && (parenthesized_expression "(*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)" ( (comma_expression "*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0" (assignment_expression "*param_2 = (int)(pbVar14 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar14 + 1)" ( (binary_expression "pbVar14 + 1" identifier + number_literal) )))) , (binary_expression "(puVar8[(uint)pbVar14[1] * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)pbVar14[1] * 2] & 4)" ( (binary_expression "puVar8[(uint)pbVar14[1] * 2] & 4" (subscript_expression "puVar8[(uint)pbVar14[1] * 2]" identifier [ (binary_expression "(uint)pbVar14[1] * 2" (cast_expression "(uint)pbVar14[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar14[1]" identifier [ number_literal ])) * number_literal) ]) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }" { (expression_statement "pbVar12 = pbVar14 + 2;" (assignment_expression "pbVar12 = pbVar14 + 2" identifier = (binary_expression "pbVar14 + 2" identifier + number_literal)) ;) (do_statement "do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);" do (compound_statement "{\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        }" { (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" ( (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" ( (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) })) }) (else_clause "else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" else (if_statement "if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" { (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (if_statement "if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;" if (parenthesized_expression "((puVar8[uVar18 * 2] & 4) == 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) == 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);" do (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;" (assignment_expression "iVar11 = (char)uVar18 + -0x30 + iVar11 * 10" identifier = (binary_expression "(char)uVar18 + -0x30 + iVar11 * 10" (binary_expression "(char)uVar18 + -0x30" (cast_expression "(char)uVar18" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "iVar11 * 10" identifier * number_literal))) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" identifier = (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" ( (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" ( (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" identifier [ (binary_expression "uVar18 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) ;) (if_statement "if (iVar11 == 0) goto LAB_0003ec4d;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0003ec4d;" goto statement_identifier ;)) (expression_statement "*param_2 = (int)(pbVar12 + iVar11);" (assignment_expression "*param_2 = (int)(pbVar12 + iVar11)" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)(pbVar12 + iVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar12 + iVar11)" ( (binary_expression "pbVar12 + iVar11" identifier + identifier) )))) ;) })))))))) }) (else_clause "else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" else (compound_statement "{\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" { (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" identifier = (pointer_expression "*pbVar14" * identifier)) ;) (expression_statement "pbVar12 = pbVar14;" (assignment_expression "pbVar12 = pbVar14" identifier = identifier) ;) (if_statement "if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }" if (parenthesized_expression "(bVar17 == 0x6d)" ( (binary_expression "bVar17 == 0x6d" identifier == number_literal) )) (compound_statement "{\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }" { (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" identifier = (binary_expression "pbVar14 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = pbVar14[1];" (assignment_expression "bVar17 = pbVar14[1]" identifier = (subscript_expression "pbVar14[1]" identifier [ number_literal ])) ;) })) (expression_statement "bVar17 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar17 = puVar8[(uint)bVar17 * 2]" identifier = (subscript_expression "puVar8[(uint)bVar17 * 2]" identifier [ (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (while_statement "while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }" while (parenthesized_expression "((bVar17 & 4) != 0)" ( (binary_expression "(bVar17 & 4) != 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }" { (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar17 = puVar8[(uint)*pbVar12 * 2];" (assignment_expression "bVar17 = puVar8[(uint)*pbVar12 * 2]" identifier = (subscript_expression "puVar8[(uint)*pbVar12 * 2]" identifier [ (binary_expression "(uint)*pbVar12 * 2" (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal) ])) ;) })) })))) (labeled_statement "joined_r0x0003ecc7:\n  local_54 = local_54 + 1;" statement_identifier : (expression_statement "local_54 = local_54 + 1;" (assignment_expression "local_54 = local_54 + 1" identifier = (binary_expression "local_54 + 1" identifier + number_literal)) ;)) (if_statement "if (uVar19 <= local_54) goto LAB_0003ee1f;" if (parenthesized_expression "(uVar19 <= local_54)" ( (binary_expression "uVar19 <= local_54" identifier <= identifier) )) (goto_statement "goto LAB_0003ee1f;" goto statement_identifier ;)) (goto_statement "goto LAB_0003eccd;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) != LIT) )) ;) (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 IDENT <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;))) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (return_statement return LIT ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return LIT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT) ]) & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) })))))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT) ])) ;) })) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3 FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0003ebc0(undefined4 param_1,int *param_2,undefined4 *param_3)" (identifier "FUN_0003ebc0") (parameter_list "(undefined4 param_1,int *param_2,undefined4 *param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  bool bVar6;\n  char *pcVar7;\n  undefined *puVar8;\n  char cVar9;\n  size_t sVar10;\n  int iVar11;\n  byte *pbVar12;\n  void *__ptr;\n  void *__ptr_00;\n  char *__haystack;\n  char *pcVar13;\n  byte *pbVar14;\n  undefined4 uVar15;\n  uint uVar16;\n  byte bVar17;\n  uint uVar18;\n  uint uVar19;\n  char *pcVar20;\n  char *local_5c;\n  uint local_54;\n  int local_3c;\n  \n  iVar11 = *param_2;\n  *param_2 = iVar11 + 1;\n  puVar8 = PTR__sch_istable_0006ffc4;\n  uVar18 = (uint)*(byte *)(iVar11 + 1);\n  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }\nLAB_0003ec4d:\n  FUN_0003cc40();\n  return 0;\ncode_r0x0003ed60:\n  bVar6 = true;\nLAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }\njoined_r0x0003ecc7:\n  local_54 = local_54 + 1;\n  if (uVar19 <= local_54) goto LAB_0003ee1f;\n  goto LAB_0003eccd;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char cVar9;" (primitive_type "char") (identifier "cVar9") (; ";")) (declaration "size_t sVar10;" (primitive_type "size_t") (identifier "sVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "void *__ptr_00;" (primitive_type "void") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "char *__haystack;" (primitive_type "char") (pointer_declarator "*__haystack" (* "*") (identifier "__haystack")) (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "uint uVar19;" (type_identifier "uint") (identifier "uVar19") (; ";")) (declaration "char *pcVar20;" (primitive_type "char") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "char *local_5c;" (primitive_type "char") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (expression_statement "iVar11 = *param_2;" (assignment_expression "iVar11 = *param_2" (identifier "iVar11") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "*param_2 = iVar11 + 1;" (assignment_expression "*param_2 = iVar11 + 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar8 = PTR__sch_istable_0006ffc4;" (assignment_expression "puVar8 = PTR__sch_istable_0006ffc4" (identifier "puVar8") (= "=") (identifier "PTR__sch_istable_0006ffc4")) (; ";")) (expression_statement "uVar18 = (uint)*(byte *)(iVar11 + 1);" (assignment_expression "uVar18 = (uint)*(byte *)(iVar11 + 1)" (identifier "uVar18") (= "=") (binary_expression "(uint)*(byte *)(iVar11 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar11 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 1)" (( "(") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0)" (( "(") (binary_expression "(PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0" (parenthesized_expression "(PTR__sch_istable_0006ffc4[uVar18 * 2] & 4)" (( "(") (binary_expression "PTR__sch_istable_0006ffc4[uVar18 * 2] & 4" (subscript_expression "PTR__sch_istable_0006ffc4[uVar18 * 2]" (identifier "PTR__sch_istable_0006ffc4") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar19 = 0;\n    pbVar12 = (byte *)(iVar11 + 2);\n    do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);\n    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }\n  }" ({ "{") (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" (identifier "uVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar12 = (byte *)(iVar11 + 2);" (assignment_expression "pbVar12 = (byte *)(iVar11 + 2)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)(iVar11 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 2)" (( "(") (binary_expression "iVar11 + 2" (identifier "iVar11") (+ "+") (number_literal "2")) () ")")))) (; ";")) (do_statement "do {\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    } while ((puVar8[uVar18 * 2] & 4) != 0);" (do "do") (compound_statement "{\n      pbVar14 = pbVar12;\n      *param_2 = (int)pbVar14;\n      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;\n      uVar18 = (uint)*pbVar14;\n      pbVar12 = pbVar14 + 1;\n    }" ({ "{") (expression_statement "pbVar14 = pbVar12;" (assignment_expression "pbVar14 = pbVar12" (identifier "pbVar14") (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14"))) (; ";")) (expression_statement "uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;" (assignment_expression "uVar19 = (char)uVar18 + -0x30 + uVar19 * 10" (identifier "uVar19") (= "=") (binary_expression "(char)uVar18 + -0x30 + uVar19 * 10" (binary_expression "(char)uVar18 + -0x30" (cast_expression "(char)uVar18" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar18")) (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "uVar19 * 10" (identifier "uVar19") (* "*") (number_literal "10")))) (; ";")) (expression_statement "uVar18 = (uint)*pbVar14;" (assignment_expression "uVar18 = (uint)*pbVar14" (identifier "uVar18") (= "=") (binary_expression "(uint)*pbVar14" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" (( "(") (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" (identifier "puVar8") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }" (if "if") (parenthesized_expression "((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10))" (( "(") (binary_expression "(uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)" (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)" (( "(") (comma_expression "sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10" (assignment_expression "sVar10 = strlen((char *)pbVar14)" (identifier "sVar10") (= "=") (call_expression "strlen((char *)pbVar14)" (identifier "strlen") (argument_list "((char *)pbVar14)" (( "(") (cast_expression "(char *)pbVar14" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar14")) () ")")))) (, ",") (binary_expression "uVar19 <= sVar10" (identifier "uVar19") (<= "<=") (identifier "sVar10"))) () ")"))) () ")")) (compound_statement "{\n      *param_2 = (int)(pbVar14 + uVar19);\n      local_3c = FUN_0003cb60();\n      if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }\n      if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }\nLAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }\n      return 1;\n    }" ({ "{") (expression_statement "*param_2 = (int)(pbVar14 + uVar19);" (assignment_expression "*param_2 = (int)(pbVar14 + uVar19)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pbVar14 + uVar19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar14 + uVar19)" (( "(") (binary_expression "pbVar14 + uVar19" (identifier "pbVar14") (+ "+") (identifier "uVar19")) () ")")))) (; ";")) (expression_statement "local_3c = FUN_0003cb60();" (assignment_expression "local_3c = FUN_0003cb60()" (identifier "local_3c") (= "=") (call_expression "FUN_0003cb60()" (identifier "FUN_0003cb60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_3c == 0) {\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }" (if "if") (parenthesized_expression "(local_3c == 0)" (( "(") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003efe7:\n        FUN_0003cc40();\n        return local_3c;\n      }" ({ "{") (labeled_statement "LAB_0003efe7:\n        FUN_0003cc40();" (statement_identifier "LAB_0003efe7") (: ":") (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" (identifier "FUN_0003cc40") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return local_3c;" (return "return") (identifier "local_3c") (; ";")) (} "}"))) (if_statement "if (uVar19 != 0) {\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }" (if "if") (parenthesized_expression "(uVar19 != 0)" (( "(") (binary_expression "uVar19 != 0" (identifier "uVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_54 = 0;\nLAB_0003eccd:\n        local_5c = (char *)*param_2;\n        if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }\n        *param_2 = (int)(local_5c + 1);\n        iVar11 = FUN_0003e060();\n        if (iVar11 == 0) {\n          return 0;\n        }\n        goto joined_r0x0003ecc7;\n      }" ({ "{") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0003eccd:\n        local_5c = (char *)*param_2;" (statement_identifier "LAB_0003eccd") (: ":") (expression_statement "local_5c = (char *)*param_2;" (assignment_expression "local_5c = (char *)*param_2" (identifier "local_5c") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";"))) (if_statement "if (*local_5c != 'Z') {\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" (if "if") (parenthesized_expression "(*local_5c != 'Z')" (( "(") (binary_expression "*local_5c != 'Z'" (pointer_expression "*local_5c" (* "*") (identifier "local_5c")) (!= "!=") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")) (compound_statement "{\n          iVar11 = FUN_0003e060();\n          if (iVar11 == 0) {\n            return 0;\n          }\n          bVar4 = false;\n          bVar3 = false;\n          local_3c = 0;\n          cVar9 = *local_5c;\n          bVar2 = false;\n          bVar5 = false;\n          bVar6 = false;\nLAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;\n          switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }\n        }" ({ "{") (expression_statement "iVar11 = FUN_0003e060();" (assignment_expression "iVar11 = FUN_0003e060()" (identifier "iVar11") (= "=") (call_expression "FUN_0003e060()" (identifier "FUN_0003e060") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar9 = *local_5c;" (assignment_expression "cVar9 = *local_5c" (identifier "cVar9") (= "=") (pointer_expression "*local_5c" (* "*") (identifier "local_5c"))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" (identifier "bVar6") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_0003ed28:\n          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;" (statement_identifier "LAB_0003ed28") (: ":") (if_statement "if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;" (if "if") (parenthesized_expression "((bVar2) || (cVar9 == '\0'))" (( "(") (binary_expression "(bVar2) || (cVar9 == '\0')" (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (|| "||") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0003ed70;" (goto "goto") (statement_identifier "LAB_0003ed70") (; ";")))) (switch_statement "switch(cVar9) {\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" (switch "switch") (parenthesized_expression "(cVar9)" (( "(") (identifier "cVar9") () ")")) (compound_statement "{\n          case 'C':\n          case 'F':\n          case 'M':\n          case 'O':\n          case 'S':\n          case 'U':\n          case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;\n          default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;\n          case 'P':\n          case 'R':\n          case 'p':\n            goto code_r0x0003ed60;\n          case 'T':\n          case 'v':\n                    \n            abort();\n          case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;\n          case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;\n          case 'd':\n          case 'f':\n          case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;\n          }" ({ "{") (case_statement "case 'C':" (case "case") (char_literal "'C'" (' "'") (character "C") (' "'")) (: ":")) (case_statement "case 'F':" (case "case") (char_literal "'F'" (' "'") (character "F") (' "'")) (: ":")) (case_statement "case 'M':" (case "case") (char_literal "'M'" (' "'") (character "M") (' "'")) (: ":")) (case_statement "case 'O':" (case "case") (char_literal "'O'" (' "'") (character "O") (' "'")) (: ":")) (case_statement "case 'S':" (case "case") (char_literal "'S'" (' "'") (character "S") (' "'")) (: ":")) (case_statement "case 'U':" (case "case") (char_literal "'U'" (' "'") (character "U") (' "'")) (: ":")) (case_statement "case 'V':\n            cVar9 = local_5c[1];\n            local_5c = local_5c + 1;\n            bVar2 = false;\n            goto LAB_0003ed28;" (case "case") (char_literal "'V'" (' "'") (character "V") (' "'")) (: ":") (expression_statement "cVar9 = local_5c[1];" (assignment_expression "cVar9 = local_5c[1]" (identifier "cVar9") (= "=") (subscript_expression "local_5c[1]" (identifier "local_5c") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_5c = local_5c + 1;" (assignment_expression "local_5c = local_5c + 1" (identifier "local_5c") (= "=") (binary_expression "local_5c + 1" (identifier "local_5c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_0003ed28;" (goto "goto") (statement_identifier "LAB_0003ed28") (; ";"))) (case_statement "default:\n            bVar2 = true;\n            local_3c = 1;\n            goto LAB_0003ed28;" (default "default") (: ":") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "local_3c = 1;" (assignment_expression "local_3c = 1" (identifier "local_3c") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0003ed28;" (goto "goto") (statement_identifier "LAB_0003ed28") (; ";"))) (case_statement "case 'P':" (case "case") (char_literal "'P'" (' "'") (character "P") (' "'")) (: ":")) (case_statement "case 'R':" (case "case") (char_literal "'R'" (' "'") (character "R") (' "'")) (: ":")) (case_statement "case 'p':\n            goto code_r0x0003ed60;" (case "case") (char_literal "'p'" (' "'") (character "p") (' "'")) (: ":") (goto_statement "goto code_r0x0003ed60;" (goto "goto") (statement_identifier "code_r0x0003ed60") (; ";"))) (case_statement "case 'T':" (case "case") (char_literal "'T'" (' "'") (character "T") (' "'")) (: ":")) (case_statement "case 'v':\n                    \n            abort();" (case "case") (char_literal "'v'" (' "'") (character "v") (' "'")) (: ":") (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";"))) (case_statement "case 'b':\n            bVar2 = true;\n            bVar4 = true;\n            goto LAB_0003ed28;" (case "case") (char_literal "'b'" (' "'") (character "b") (' "'")) (: ":") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "bVar4 = true;" (assignment_expression "bVar4 = true" (identifier "bVar4") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0003ed28;" (goto "goto") (statement_identifier "LAB_0003ed28") (; ";"))) (case_statement "case 'c':\n            bVar2 = true;\n            bVar3 = true;\n            goto LAB_0003ed28;" (case "case") (char_literal "'c'" (' "'") (character "c") (' "'")) (: ":") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0003ed28;" (goto "goto") (statement_identifier "LAB_0003ed28") (; ";"))) (case_statement "case 'd':" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":")) (case_statement "case 'f':" (case "case") (char_literal "'f'" (' "'") (character "f") (' "'")) (: ":")) (case_statement "case 'r':\n            bVar2 = true;\n            bVar5 = true;\n            goto LAB_0003ed28;" (case "case") (char_literal "'r'" (' "'") (character "r") (' "'")) (: ":") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_0003ed28;" (goto "goto") (statement_identifier "LAB_0003ed28") (; ";"))) (} "}"))) (} "}"))) (expression_statement "*param_2 = (int)(local_5c + 1);" (assignment_expression "*param_2 = (int)(local_5c + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(local_5c + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_5c + 1)" (( "(") (binary_expression "local_5c + 1" (identifier "local_5c") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar11 = FUN_0003e060();" (assignment_expression "iVar11 = FUN_0003e060()" (identifier "iVar11") (= "=") (call_expression "FUN_0003e060()" (identifier "FUN_0003e060") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto joined_r0x0003ecc7;" (goto "goto") (statement_identifier "joined_r0x0003ecc7") (; ";")) (} "}"))) (labeled_statement "LAB_0003ee1f:\n      if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" (statement_identifier "LAB_0003ee1f") (: ":") (if_statement "if (param_3 != (undefined4 *)0x0) {\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" (if "if") (parenthesized_expression "(param_3 != (undefined4 *)0x0)" (( "(") (binary_expression "param_3 != (undefined4 *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        __ptr = (void *)FUN_0003cd30();\n        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);\n        free(__ptr);\n        __haystack = (char *)cplus_demangle(__ptr_00,2);\n        free(__ptr_00);\n        if (__haystack == (char *)0x0) goto LAB_0003ec4d;\n        pcVar13 = strstr(__haystack,"::NoSuchStrinG");\n        pcVar7 = __haystack;\n        pcVar20 = __haystack;\n        if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }\n        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }\n        uVar15 = FUN_0003cd30();\n        *param_3 = uVar15;\n        free(__haystack);\n      }" ({ "{") (expression_statement "__ptr = (void *)FUN_0003cd30();" (assignment_expression "__ptr = (void *)FUN_0003cd30()" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_0003cd30()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0003cd30()" (identifier "FUN_0003cd30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "__ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);" (assignment_expression "__ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0)" (identifier "__ptr_00") (= "=") (cast_expression "(void *)concat("NoSuchStrinG__",__ptr,0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "concat("NoSuchStrinG__",__ptr,0)" (identifier "concat") (argument_list "("NoSuchStrinG__",__ptr,0)" (( "(") (string_literal ""NoSuchStrinG__"" (" """) (string_content "NoSuchStrinG__") (" """)) (, ",") (identifier "__ptr") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "__haystack = (char *)cplus_demangle(__ptr_00,2);" (assignment_expression "__haystack = (char *)cplus_demangle(__ptr_00,2)" (identifier "__haystack") (= "=") (cast_expression "(char *)cplus_demangle(__ptr_00,2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "cplus_demangle(__ptr_00,2)" (identifier "cplus_demangle") (argument_list "(__ptr_00,2)" (( "(") (identifier "__ptr_00") (, ",") (number_literal "2") () ")"))))) (; ";")) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (if_statement "if (__haystack == (char *)0x0) goto LAB_0003ec4d;" (if "if") (parenthesized_expression "(__haystack == (char *)0x0)" (( "(") (binary_expression "__haystack == (char *)0x0" (identifier "__haystack") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003ec4d;" (goto "goto") (statement_identifier "LAB_0003ec4d") (; ";"))) (expression_statement "pcVar13 = strstr(__haystack,"::NoSuchStrinG");" (assignment_expression "pcVar13 = strstr(__haystack,"::NoSuchStrinG")" (identifier "pcVar13") (= "=") (call_expression "strstr(__haystack,"::NoSuchStrinG")" (identifier "strstr") (argument_list "(__haystack,"::NoSuchStrinG")" (( "(") (identifier "__haystack") (, ",") (string_literal ""::NoSuchStrinG"" (" """) (string_content "::NoSuchStrinG") (" """)) () ")")))) (; ";")) (expression_statement "pcVar7 = __haystack;" (assignment_expression "pcVar7 = __haystack" (identifier "pcVar7") (= "=") (identifier "__haystack")) (; ";")) (expression_statement "pcVar20 = __haystack;" (assignment_expression "pcVar20 = __haystack" (identifier "pcVar20") (= "=") (identifier "__haystack")) (; ";")) (if_statement "if (pcVar13 == (char *)0x0) {\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }" (if "if") (parenthesized_expression "(pcVar13 == (char *)0x0)" (( "(") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_0003cc40();\n          free(__haystack);\n          return 0;\n        }" ({ "{") (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" (identifier "FUN_0003cc40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(__haystack);" (call_expression "free(__haystack)" (identifier "free") (argument_list "(__haystack)" (( "(") (identifier "__haystack") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (for_statement "for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }" (for "for") (( "(") (; ";") (binary_expression "pcVar7 != pcVar13" (identifier "pcVar7") (!= "!=") (identifier "pcVar13")) (; ";") (assignment_expression "pcVar7 = pcVar7 + 1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n          if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }\n        }" ({ "{") (if_statement "if ((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }" (if "if") (parenthesized_expression "((*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>'))))" (( "(") (binary_expression "(*pcVar7 != ' ') ||\n             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))" (parenthesized_expression "(*pcVar7 != ' ')" (( "(") (binary_expression "*pcVar7 != ' '" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))" (( "(") (parenthesized_expression "((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>'))" (( "(") (binary_expression "(pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')" (parenthesized_expression "(pcVar7[1] == '>' && (__haystack < pcVar7))" (( "(") (binary_expression "pcVar7[1] == '>' && (__haystack < pcVar7)" (binary_expression "pcVar7[1] == '>'" (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'>'" (' "'") (character ">") (' "'"))) (&& "&&") (parenthesized_expression "(__haystack < pcVar7)" (( "(") (binary_expression "__haystack < pcVar7" (identifier "__haystack") (< "<") (identifier "pcVar7")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar7[-1] == '>')" (( "(") (binary_expression "pcVar7[-1] == '>'" (subscript_expression "pcVar7[-1]" (identifier "pcVar7") ([ "[") (number_literal "-1") (] "]")) (== "==") (char_literal "'>'" (' "'") (character ">") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            *pcVar20 = *pcVar7;\n            pcVar20 = pcVar20 + 1;\n          }" ({ "{") (expression_statement "*pcVar20 = *pcVar7;" (assignment_expression "*pcVar20 = *pcVar7" (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (expression_statement "pcVar20 = pcVar20 + 1;" (assignment_expression "pcVar20 = pcVar20 + 1" (identifier "pcVar20") (= "=") (binary_expression "pcVar20 + 1" (identifier "pcVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar15 = FUN_0003cd30();" (assignment_expression "uVar15 = FUN_0003cd30()" (identifier "uVar15") (= "=") (call_expression "FUN_0003cd30()" (identifier "FUN_0003cd30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*param_3 = uVar15;" (assignment_expression "*param_3 = uVar15" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "free(__haystack);" (call_expression "free(__haystack)" (identifier "free") (argument_list "(__haystack)" (( "(") (identifier "__haystack") () ")"))) (; ";")) (} "}")))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0003ec4d:\n  FUN_0003cc40();" (statement_identifier "LAB_0003ec4d") (: ":") (expression_statement "FUN_0003cc40();" (call_expression "FUN_0003cc40()" (identifier "FUN_0003cc40") (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (labeled_statement "code_r0x0003ed60:\n  bVar6 = true;" (statement_identifier "code_r0x0003ed60") (: ":") (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" (identifier "bVar6") (= "=") (true "true")) (; ";"))) (labeled_statement "LAB_0003ed70:\n  if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" (statement_identifier "LAB_0003ed70") (: ":") (if_statement "if (local_3c == 0) {\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }\n  else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" (if "if") (parenthesized_expression "(local_3c == 0)" (( "(") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }\n  }" ({ "{") (if_statement "if (bVar3) {\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }\n    else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" (if "if") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      bVar17 = *pbVar12;\n      uVar18 = (uint)bVar17;\n      if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }\n      if ((bVar17 & 4) == 0) goto LAB_0003efe7;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003efe7;\n    }" ({ "{") (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" (identifier "pbVar12") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" (identifier "bVar17") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "uVar18 = (uint)bVar17;" (assignment_expression "uVar18 = (uint)bVar17" (identifier "uVar18") (= "=") (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17"))) (; ";")) (if_statement "if (bVar17 == 0x6d) {\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }\n      else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" (if "if") (parenthesized_expression "(bVar17 == 0x6d)" (( "(") (binary_expression "bVar17 == 0x6d" (identifier "bVar17") (== "==") (number_literal "0x6d")) () ")")) (compound_statement "{\n        *param_2 = (int)(pbVar12 + 1);\n        uVar18 = (uint)pbVar12[1];\n        bVar17 = puVar8[uVar18 * 2];\n        pbVar12 = pbVar12 + 1;\n      }" ({ "{") (expression_statement "*param_2 = (int)(pbVar12 + 1);" (assignment_expression "*param_2 = (int)(pbVar12 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pbVar12 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar12 + 1)" (( "(") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar18 = (uint)pbVar12[1];" (assignment_expression "uVar18 = (uint)pbVar12[1]" (identifier "uVar18") (= "=") (cast_expression "(uint)pbVar12[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "bVar17 = puVar8[uVar18 * 2];" (assignment_expression "bVar17 = puVar8[uVar18 * 2]" (identifier "bVar17") (= "=") (subscript_expression "puVar8[uVar18 * 2]" (identifier "puVar8") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" (else "else") (compound_statement "{\n        bVar17 = puVar8[(uint)bVar17 * 2];\n      }" ({ "{") (expression_statement "bVar17 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar17 = puVar8[(uint)bVar17 * 2]" (identifier "bVar17") (= "=") (subscript_expression "puVar8[(uint)bVar17 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (} "}")))) (if_statement "if ((bVar17 & 4) == 0) goto LAB_0003efe7;" (if "if") (parenthesized_expression "((bVar17 & 4) == 0)" (( "(") (binary_expression "(bVar17 & 4) == 0" (parenthesized_expression "(bVar17 & 4)" (( "(") (binary_expression "bVar17 & 4" (identifier "bVar17") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003efe7;" (goto "goto") (statement_identifier "LAB_0003efe7") (; ";"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);" (do "do") (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        cVar9 = (char)uVar18;\n        uVar18 = (uint)*pbVar12;\n        iVar11 = cVar9 + -0x30 + iVar11 * 10;\n      }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "cVar9 = (char)uVar18;" (assignment_expression "cVar9 = (char)uVar18" (identifier "cVar9") (= "=") (cast_expression "(char)uVar18" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar18"))) (; ";")) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" (identifier "uVar18") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "iVar11 = cVar9 + -0x30 + iVar11 * 10;" (assignment_expression "iVar11 = cVar9 + -0x30 + iVar11 * 10" (identifier "iVar11") (= "=") (binary_expression "cVar9 + -0x30 + iVar11 * 10" (binary_expression "cVar9 + -0x30" (identifier "cVar9") (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar11 * 10" (identifier "iVar11") (* "*") (number_literal "10")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" (( "(") (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" (identifier "puVar8") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_0003efe7;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003efe7;" (goto "goto") (statement_identifier "LAB_0003efe7") (; ";"))) (} "}")) (else_clause "else if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" (else "else") (if_statement "if (bVar4) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }\n    else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }\n    }" ({ "{") (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" (identifier "pbVar12") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" (identifier "uVar18") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (if_statement "if ((puVar8[uVar18 * 2] & 4) != 0) {\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }" (if "if") (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" (( "(") (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" (identifier "puVar8") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar16 = 0;\n        do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);\n        if (1 < uVar16) goto LAB_0003ec4d;\n      }" ({ "{") (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        } while ((puVar8[uVar18 * 2] & 4) != 0);" (do "do") (compound_statement "{\n          pbVar12 = pbVar12 + 1;\n          *param_2 = (int)pbVar12;\n          cVar9 = (char)uVar18;\n          uVar18 = (uint)*pbVar12;\n          uVar16 = cVar9 + -0x30 + uVar16 * 10;\n        }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "cVar9 = (char)uVar18;" (assignment_expression "cVar9 = (char)uVar18" (identifier "cVar9") (= "=") (cast_expression "(char)uVar18" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar18"))) (; ";")) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" (identifier "uVar18") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "uVar16 = cVar9 + -0x30 + uVar16 * 10;" (assignment_expression "uVar16 = cVar9 + -0x30 + uVar16 * 10" (identifier "uVar16") (= "=") (binary_expression "cVar9 + -0x30 + uVar16 * 10" (binary_expression "cVar9 + -0x30" (identifier "cVar9") (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "uVar16 * 10" (identifier "uVar16") (* "*") (number_literal "10")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" (( "(") (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" (identifier "puVar8") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (1 < uVar16) goto LAB_0003ec4d;" (if "if") (parenthesized_expression "(1 < uVar16)" (( "(") (binary_expression "1 < uVar16" (number_literal "1") (< "<") (identifier "uVar16")) () ")")) (goto_statement "goto LAB_0003ec4d;" (goto "goto") (statement_identifier "LAB_0003ec4d") (; ";"))) (} "}"))) (} "}")) (else_clause "else if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" (else "else") (if_statement "if (bVar5) {\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }\n    else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n      pbVar14 = (byte *)*param_2;\n      bVar17 = *pbVar14;\n      pbVar12 = pbVar14;\n      if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }\n      bVar1 = puVar8[(uint)bVar17 * 2];\n      while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }\n      if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }\n      if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }\n    }" ({ "{") (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" (identifier "pbVar14") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" (identifier "bVar17") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "pbVar12 = pbVar14;" (assignment_expression "pbVar12 = pbVar14" (identifier "pbVar12") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if (bVar17 == 0x6d) {\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }" (if "if") (parenthesized_expression "(bVar17 == 0x6d)" (( "(") (binary_expression "bVar17 == 0x6d" (identifier "bVar17") (== "==") (number_literal "0x6d")) () ")")) (compound_statement "{\n        pbVar12 = pbVar14 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = pbVar14[1];\n      }" ({ "{") (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "bVar17 = pbVar14[1];" (assignment_expression "bVar17 = pbVar14[1]" (identifier "bVar17") (= "=") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "bVar1 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar1 = puVar8[(uint)bVar17 * 2]" (identifier "bVar1") (= "=") (subscript_expression "puVar8[(uint)bVar17 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (while_statement "while ((bVar1 & 4) != 0) {\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }" (while "while") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        *param_2 = (int)pbVar12;\n        bVar17 = *pbVar12;\n        bVar1 = puVar8[(uint)bVar17 * 2];\n      }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" (identifier "bVar17") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "bVar1 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar1 = puVar8[(uint)bVar17 * 2]" (identifier "bVar1") (= "=") (subscript_expression "puVar8[(uint)bVar17 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (} "}"))) (if_statement "if (bVar17 == 0x2e) {\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }\n      else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" (if "if") (parenthesized_expression "(bVar17 == 0x2e)" (( "(") (binary_expression "bVar17 == 0x2e" (identifier "bVar17") (== "==") (number_literal "0x2e")) () ")")) (compound_statement "{\n        pbVar14 = pbVar12 + 1;\n        *param_2 = (int)pbVar14;\n        bVar17 = pbVar12[1];\n        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }\n      }" ({ "{") (expression_statement "pbVar14 = pbVar12 + 1;" (assignment_expression "pbVar14 = pbVar12 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14"))) (; ";")) (expression_statement "bVar17 = pbVar12[1];" (assignment_expression "bVar17 = pbVar12[1]" (identifier "bVar17") (= "=") (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }" (if "if") (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" (( "(") (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar12 = pbVar12 + 2;\n          do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n        }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 2;" (assignment_expression "pbVar12 = pbVar12 + 2" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 2" (identifier "pbVar12") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);" (do "do") (compound_statement "{\n            pbVar14 = pbVar12;\n            *param_2 = (int)pbVar14;\n            bVar17 = *pbVar14;\n            pbVar12 = pbVar14 + 1;\n          }" ({ "{") (expression_statement "pbVar14 = pbVar12;" (assignment_expression "pbVar14 = pbVar12" (identifier "pbVar14") (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "*param_2 = (int)pbVar14;" (assignment_expression "*param_2 = (int)pbVar14" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar14"))) (; ";")) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" (identifier "bVar17") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" (( "(") (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" (else "else") (compound_statement "{\n        pbVar14 = (byte *)*param_2;\n        bVar17 = *pbVar14;\n      }" ({ "{") (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" (identifier "pbVar14") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" (identifier "bVar17") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (} "}")))) (if_statement "if ((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }" (if "if") (parenthesized_expression "((bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0))" (( "(") (binary_expression "(bVar17 == 0x65) &&\n         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)" (parenthesized_expression "(bVar17 == 0x65)" (( "(") (binary_expression "bVar17 == 0x65" (identifier "bVar17") (== "==") (number_literal "0x65")) () ")")) (&& "&&") (parenthesized_expression "(*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)" (( "(") (comma_expression "*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0" (assignment_expression "*param_2 = (int)(pbVar14 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pbVar14 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar14 + 1)" (( "(") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(puVar8[(uint)pbVar14[1] * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)pbVar14[1] * 2] & 4)" (( "(") (binary_expression "puVar8[(uint)pbVar14[1] * 2] & 4" (subscript_expression "puVar8[(uint)pbVar14[1] * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)pbVar14[1] * 2" (cast_expression "(uint)pbVar14[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        pbVar12 = pbVar14 + 2;\n        do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);\n      }" ({ "{") (expression_statement "pbVar12 = pbVar14 + 2;" (assignment_expression "pbVar12 = pbVar14 + 2" (identifier "pbVar12") (= "=") (binary_expression "pbVar14 + 2" (identifier "pbVar14") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);" (do "do") (compound_statement "{\n          *param_2 = (int)pbVar12;\n          bVar17 = *pbVar12;\n          pbVar12 = pbVar12 + 1;\n        }" ({ "{") (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "bVar17 = *pbVar12;" (assignment_expression "bVar17 = *pbVar12" (identifier "bVar17") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar8[(uint)bVar17 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[(uint)bVar17 * 2] & 4) != 0" (parenthesized_expression "(puVar8[(uint)bVar17 * 2] & 4)" (( "(") (binary_expression "puVar8[(uint)bVar17 * 2] & 4" (subscript_expression "puVar8[(uint)bVar17 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" (else "else") (if_statement "if (bVar6) {\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" (if "if") (parenthesized_expression "(bVar6)" (( "(") (identifier "bVar6") () ")")) (compound_statement "{\n      pbVar12 = (byte *)*param_2;\n      uVar18 = (uint)*pbVar12;\n      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;\n      iVar11 = 0;\n      do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);\n      if (iVar11 == 0) goto LAB_0003ec4d;\n      *param_2 = (int)(pbVar12 + iVar11);\n    }" ({ "{") (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" (identifier "pbVar12") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" (identifier "uVar18") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (if_statement "if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;" (if "if") (parenthesized_expression "((puVar8[uVar18 * 2] & 4) == 0)" (( "(") (binary_expression "(puVar8[uVar18 * 2] & 4) == 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" (( "(") (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" (identifier "puVar8") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003ec4d;" (goto "goto") (statement_identifier "LAB_0003ec4d") (; ";"))) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      } while ((puVar8[uVar18 * 2] & 4) != 0);" (do "do") (compound_statement "{\n        pbVar12 = pbVar12 + 1;\n        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;\n        *param_2 = (int)pbVar12;\n        uVar18 = (uint)*pbVar12;\n      }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;" (assignment_expression "iVar11 = (char)uVar18 + -0x30 + iVar11 * 10" (identifier "iVar11") (= "=") (binary_expression "(char)uVar18 + -0x30 + iVar11 * 10" (binary_expression "(char)uVar18 + -0x30" (cast_expression "(char)uVar18" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar18")) (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "iVar11 * 10" (identifier "iVar11") (* "*") (number_literal "10")))) (; ";")) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "uVar18 = (uint)*pbVar12;" (assignment_expression "uVar18 = (uint)*pbVar12" (identifier "uVar18") (= "=") (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((puVar8[uVar18 * 2] & 4) != 0)" (( "(") (binary_expression "(puVar8[uVar18 * 2] & 4) != 0" (parenthesized_expression "(puVar8[uVar18 * 2] & 4)" (( "(") (binary_expression "puVar8[uVar18 * 2] & 4" (subscript_expression "puVar8[uVar18 * 2]" (identifier "puVar8") ([ "[") (binary_expression "uVar18 * 2" (identifier "uVar18") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_0003ec4d;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003ec4d;" (goto "goto") (statement_identifier "LAB_0003ec4d") (; ";"))) (expression_statement "*param_2 = (int)(pbVar12 + iVar11);" (assignment_expression "*param_2 = (int)(pbVar12 + iVar11)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)(pbVar12 + iVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar12 + iVar11)" (( "(") (binary_expression "pbVar12 + iVar11" (identifier "pbVar12") (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (} "}"))))))))) (} "}")) (else_clause "else {\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" (else "else") (compound_statement "{\n    pbVar14 = (byte *)*param_2;\n    bVar17 = *pbVar14;\n    pbVar12 = pbVar14;\n    if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }\n    bVar17 = puVar8[(uint)bVar17 * 2];\n    while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }\n  }" ({ "{") (expression_statement "pbVar14 = (byte *)*param_2;" (assignment_expression "pbVar14 = (byte *)*param_2" (identifier "pbVar14") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "bVar17 = *pbVar14;" (assignment_expression "bVar17 = *pbVar14" (identifier "bVar17") (= "=") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14"))) (; ";")) (expression_statement "pbVar12 = pbVar14;" (assignment_expression "pbVar12 = pbVar14" (identifier "pbVar12") (= "=") (identifier "pbVar14")) (; ";")) (if_statement "if (bVar17 == 0x6d) {\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }" (if "if") (parenthesized_expression "(bVar17 == 0x6d)" (( "(") (binary_expression "bVar17 == 0x6d" (identifier "bVar17") (== "==") (number_literal "0x6d")) () ")")) (compound_statement "{\n      pbVar12 = pbVar14 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = pbVar14[1];\n    }" ({ "{") (expression_statement "pbVar12 = pbVar14 + 1;" (assignment_expression "pbVar12 = pbVar14 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar14 + 1" (identifier "pbVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "bVar17 = pbVar14[1];" (assignment_expression "bVar17 = pbVar14[1]" (identifier "bVar17") (= "=") (subscript_expression "pbVar14[1]" (identifier "pbVar14") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "bVar17 = puVar8[(uint)bVar17 * 2];" (assignment_expression "bVar17 = puVar8[(uint)bVar17 * 2]" (identifier "bVar17") (= "=") (subscript_expression "puVar8[(uint)bVar17 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)bVar17 * 2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (while_statement "while ((bVar17 & 4) != 0) {\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }" (while "while") (parenthesized_expression "((bVar17 & 4) != 0)" (( "(") (binary_expression "(bVar17 & 4) != 0" (parenthesized_expression "(bVar17 & 4)" (( "(") (binary_expression "bVar17 & 4" (identifier "bVar17") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar12 = pbVar12 + 1;\n      *param_2 = (int)pbVar12;\n      bVar17 = puVar8[(uint)*pbVar12 * 2];\n    }" ({ "{") (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (int)pbVar12;" (assignment_expression "*param_2 = (int)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(int)pbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "bVar17 = puVar8[(uint)*pbVar12 * 2];" (assignment_expression "bVar17 = puVar8[(uint)*pbVar12 * 2]" (identifier "bVar17") (= "=") (subscript_expression "puVar8[(uint)*pbVar12 * 2]" (identifier "puVar8") ([ "[") (binary_expression "(uint)*pbVar12 * 2" (binary_expression "(uint)*pbVar12" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar12")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (} "}"))) (} "}"))))) (labeled_statement "joined_r0x0003ecc7:\n  local_54 = local_54 + 1;" (statement_identifier "joined_r0x0003ecc7") (: ":") (expression_statement "local_54 = local_54 + 1;" (assignment_expression "local_54 = local_54 + 1" (identifier "local_54") (= "=") (binary_expression "local_54 + 1" (identifier "local_54") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (uVar19 <= local_54) goto LAB_0003ee1f;" (if "if") (parenthesized_expression "(uVar19 <= local_54)" (( "(") (binary_expression "uVar19 <= local_54" (identifier "uVar19") (<= "<=") (identifier "local_54")) () ")")) (goto_statement "goto LAB_0003ee1f;" (goto "goto") (statement_identifier "LAB_0003ee1f") (; ";"))) (goto_statement "goto LAB_0003eccd;" (goto "goto") (statement_identifier "LAB_0003eccd") (; ";")) (} "}")))

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

type_1 __regparm3 function_1(type_2 *minfo,char **pp,char **var_15)

{
  type_3 var_27;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  char var_13;
  size_t var_6;
  type_1 var_12;
  type_3 *var_25;
  char *var_20;
  void *__ptr;
  char *var_22;
  type_3 *var_4;
  int var_26;
  type_3 var_24;
  type_4 var_2;
  char *var_1;
  type_4 var_3;
  char *var_23;
  type_2 *minfo_00;
  char **pp_00;
  type_5 *var_28;
  int var_8;
  type_4 var_10;
  type_6 uStack_14;
  
  uStack_14 = 0x3ebcb;
  var_1 = *pp;
  *pp = var_1 + 1;
  pp_00 = (char **)PTR__sch_istable_0006ffc4;
  var_2 = (type_4)(type_3)var_1[1];
  if ((PTR__sch_istable_0006ffc4[var_2 * 2] & 4) == 0) {
    var_10 = 0;
  }
  else {
    var_3 = 0;
    var_25 = (type_3 *)(var_1 + 2);
    do {
      var_4 = var_25;
      *pp = (char *)var_4;
      var_3 = (char)var_2 + -0x30 + var_3 * 10;
      var_2 = (type_4)*var_4;
      var_25 = var_4 + 1;
    } while ((*(type_3 *)((int)pp_00 + var_2 * 2) & 4) != 0);
    var_10 = var_3;
    if ((var_3 != 0) && (var_6 = var_5((char *)var_4), var_3 <= var_6)) {
      *pp = (char *)(var_4 + var_3);
      var_8 = var_7(pp,&var_10);
      if (var_8 == 0) {
LAB_0003efe7:
        var_9(var_1);
        return var_8;
      }
      if (var_10 != 0) {
        var_28 = (type_5 *)0x0;
LAB_0003eccd:
        minfo_00 = (type_2 *)*pp;
        if (*(char *)&minfo_00->dhandle != 'Z') {
          var_12 = var_11(minfo_00,pp_00,var_28);
          if (var_12 == 0) {
            return 0;
          }
          bVar4 = false;
          bVar3 = false;
          var_8 = 0;
          var_13 = *(char *)&minfo_00->dhandle;
          bVar2 = false;
          bVar5 = false;
          bVar6 = false;
LAB_0003ed28:
          if ((bVar2) || (var_13 == '\0')) goto LAB_0003ed70;
          switch(var_13) {
          case 'C':
          case 'F':
          case 'M':
          case 'O':
          case 'S':
          case 'U':
          case 'V':
            var_13 = *(char *)((int)&minfo_00->dhandle + 1);
            minfo_00 = (type_2 *)((int)&minfo_00->dhandle + 1);
            bVar2 = false;
            goto LAB_0003ed28;
          default:
            bVar2 = true;
            var_8 = 1;
            goto LAB_0003ed28;
          case 'P':
          case 'R':
          case 'p':
            goto _L601;
          case 'T':
          case 'v':
                    /* WARNING: Subroutine does not return */
            var_14();
          case 'b':
            bVar2 = true;
            bVar4 = true;
            goto LAB_0003ed28;
          case 'c':
            bVar2 = true;
            bVar3 = true;
            goto LAB_0003ed28;
          case 'd':
          case 'f':
          case 'r':
            bVar2 = true;
            bVar5 = true;
            goto LAB_0003ed28;
          }
        }
        *pp = (char *)((int)&minfo_00->dhandle + 1);
        var_12 = var_11(minfo_00,pp_00,var_28);
        if (var_12 == 0) {
          return 0;
        }
        goto LAB_0003ecba;
      }
LAB_0003ee1f:
      if (var_15 != (char **)0x0) {
        var_20 = var_16(var_1,(int)*pp - (int)var_1);
        __ptr = (void *)var_17("NoSuchStrinG__",var_20,0);
        var_18(var_20);
        var_20 = (char *)var_19(__ptr,2);
        var_18(__ptr);
        if (var_20 == (char *)0x0) goto LAB_0003ec4d;
        var_22 = var_21(var_20,"::NoSuchStrinG");
        if (var_22 == (char *)0x0) {
          var_9(var_1);
          var_18(var_20);
          return 0;
        }
        var_1 = var_20;
        var_23 = var_20;
        if (var_20 == var_22) {
          var_26 = 0;
        }
        else {
          do {
            if ((*var_1 != ' ') ||
               (((var_1[1] == '>' && (var_20 < var_1)) && (var_1[-1] == '>')))) {
              *var_23 = *var_1;
              var_23 = var_23 + 1;
            }
            var_1 = var_1 + 1;
          } while (var_22 != var_1);
          var_26 = (int)var_23 - (int)var_20;
        }
        var_1 = var_16(var_20,var_26);
        *var_15 = var_1;
        var_18(var_20);
      }
      return 1;
    }
  }
LAB_0003ec4d:
  var_9(var_1);
  return 0;
_L601:
  bVar6 = true;
LAB_0003ed70:
  if (var_8 == 0) {
    if (bVar3) {
      var_25 = (type_3 *)*pp;
      var_24 = *var_25;
      var_2 = (type_4)var_24;
      if (var_24 == 0x6d) {
        *pp = (char *)(var_25 + 1);
        var_2 = (type_4)var_25[1];
        var_24 = *(type_3 *)((int)pp_00 + var_2 * 2);
        var_25 = var_25 + 1;
      }
      else {
        var_24 = *(type_3 *)((int)pp_00 + (type_4)var_24 * 2);
      }
      if ((var_24 & 4) == 0) goto LAB_0003efe7;
      var_26 = 0;
      do {
        var_25 = var_25 + 1;
        *pp = (char *)var_25;
        var_13 = (char)var_2;
        var_2 = (type_4)*var_25;
        var_26 = var_13 + -0x30 + var_26 * 10;
      } while ((*(type_3 *)((int)pp_00 + var_2 * 2) & 4) != 0);
      if (var_26 == 0) goto LAB_0003efe7;
    }
    else if (bVar4) {
      var_25 = (type_3 *)*pp;
      var_2 = (type_4)*var_25;
      if ((*(type_3 *)((int)pp_00 + var_2 * 2) & 4) != 0) {
        var_3 = 0;
        do {
          var_25 = var_25 + 1;
          *pp = (char *)var_25;
          var_13 = (char)var_2;
          var_2 = (type_4)*var_25;
          var_3 = var_13 + -0x30 + var_3 * 10;
        } while ((*(type_3 *)((int)pp_00 + var_2 * 2) & 4) != 0);
        if (1 < var_3) goto LAB_0003ec4d;
      }
    }
    else if (bVar5) {
      var_4 = (type_3 *)*pp;
      var_24 = *var_4;
      var_25 = var_4;
      if (var_24 == 0x6d) {
        var_25 = var_4 + 1;
        *pp = (char *)var_25;
        var_24 = var_4[1];
      }
      var_27 = *(type_3 *)((int)pp_00 + (type_4)var_24 * 2);
      while ((var_27 & 4) != 0) {
        var_25 = var_25 + 1;
        *pp = (char *)var_25;
        var_24 = *var_25;
        var_27 = *(type_3 *)((int)pp_00 + (type_4)var_24 * 2);
      }
      if (var_24 == 0x2e) {
        var_4 = var_25 + 1;
        *pp = (char *)var_4;
        var_24 = var_25[1];
        if ((*(type_3 *)((int)pp_00 + (type_4)var_24 * 2) & 4) != 0) {
          var_25 = var_25 + 2;
          do {
            var_4 = var_25;
            *pp = (char *)var_4;
            var_24 = *var_4;
            var_25 = var_4 + 1;
          } while ((*(type_3 *)((int)pp_00 + (type_4)var_24 * 2) & 4) != 0);
        }
      }
      else {
        var_4 = (type_3 *)*pp;
        var_24 = *var_4;
      }
      if ((var_24 == 0x65) &&
         (*pp = (char *)(var_4 + 1), (*(type_3 *)((int)pp_00 + (type_4)var_4[1] * 2) & 4) != 0)) {
        var_25 = var_4 + 2;
        do {
          *pp = (char *)var_25;
          var_24 = *var_25;
          var_25 = var_25 + 1;
        } while ((*(type_3 *)((int)pp_00 + (type_4)var_24 * 2) & 4) != 0);
      }
    }
    else if (bVar6) {
      var_25 = (type_3 *)*pp;
      var_2 = (type_4)*var_25;
      if ((*(type_3 *)((int)pp_00 + var_2 * 2) & 4) == 0) goto LAB_0003ec4d;
      var_26 = 0;
      do {
        var_25 = var_25 + 1;
        var_26 = (char)var_2 + -0x30 + var_26 * 10;
        *pp = (char *)var_25;
        var_2 = (type_4)*var_25;
      } while ((*(type_3 *)((int)pp_00 + var_2 * 2) & 4) != 0);
      if (var_26 == 0) goto LAB_0003ec4d;
      var_28 = (type_5 *)((int)var_28 + 1);
      *pp = (char *)(var_25 + var_26);
      if (var_10 <= var_28) goto LAB_0003ee1f;
      goto LAB_0003eccd;
    }
  }
  else {
    var_4 = (type_3 *)*pp;
    var_24 = *var_4;
    var_25 = var_4;
    if (var_24 == 0x6d) {
      var_25 = var_4 + 1;
      *pp = (char *)var_25;
      var_24 = var_4[1];
    }
    var_24 = *(type_3 *)((int)pp_00 + (type_4)var_24 * 2);
    while ((var_24 & 4) != 0) {
      var_25 = var_25 + 1;
      *pp = (char *)var_25;
      var_24 = *(type_3 *)((int)pp_00 + (type_4)*var_25 * 2);
    }
  }
LAB_0003ecba:
  var_28 = (type_5 *)((int)var_28 + 1);
  if (var_10 <= var_28) goto LAB_0003ee1f;
  goto LAB_0003eccd;
}


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

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

int __regparm3 MASKED(undefined4 param_1,int *param_2,undefined4 *param_3)

{
  byte bVar1;
  bool bVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  bool bVar6;
  char *pcVar7;
  undefined *puVar8;
  char cVar9;
  size_t sVar10;
  int iVar11;
  byte *pbVar12;
  void *__ptr;
  void *__ptr_00;
  char *__haystack;
  char *pcVar13;
  byte *pbVar14;
  undefined4 uVar15;
  uint uVar16;
  byte bVar17;
  uint uVar18;
  uint uVar19;
  char *pcVar20;
  char *local_5c;
  uint local_54;
  int local_3c;
  
  iVar11 = *param_2;
  *param_2 = iVar11 + 1;
  puVar8 = PTR__sch_istable_0006ffc4;
  uVar18 = (uint)*(byte *)(iVar11 + 1);
  if ((PTR__sch_istable_0006ffc4[uVar18 * 2] & 4) != 0) {
    uVar19 = 0;
    pbVar12 = (byte *)(iVar11 + 2);
    do {
      pbVar14 = pbVar12;
      *param_2 = (int)pbVar14;
      uVar19 = (char)uVar18 + -0x30 + uVar19 * 10;
      uVar18 = (uint)*pbVar14;
      pbVar12 = pbVar14 + 1;
    } while ((puVar8[uVar18 * 2] & 4) != 0);
    if ((uVar19 != 0) && (sVar10 = strlen((char *)pbVar14), uVar19 <= sVar10)) {
      *param_2 = (int)(pbVar14 + uVar19);
      local_3c = FUN_0003cb60();
      if (local_3c == 0) {
LAB_0003efe7:
        FUN_0003cc40();
        return local_3c;
      }
      if (uVar19 != 0) {
        local_54 = 0;
LAB_0003eccd:
        local_5c = (char *)*param_2;
        if (*local_5c != 'Z') {
          iVar11 = FUN_0003e060();
          if (iVar11 == 0) {
            return 0;
          }
          bVar4 = false;
          bVar3 = false;
          local_3c = 0;
          cVar9 = *local_5c;
          bVar2 = false;
          bVar5 = false;
          bVar6 = false;
LAB_0003ed28:
          if ((bVar2) || (cVar9 == '\0')) goto LAB_0003ed70;
          switch(cVar9) {
          case 'C':
          case 'F':
          case 'M':
          case 'O':
          case 'S':
          case 'U':
          case 'V':
            cVar9 = local_5c[1];
            local_5c = local_5c + 1;
            bVar2 = false;
            goto LAB_0003ed28;
          default:
            bVar2 = true;
            local_3c = 1;
            goto LAB_0003ed28;
          case 'P':
          case 'R':
          case 'p':
            goto code_r0x0003ed60;
          case 'T':
          case 'v':
                    /* WARNING: Subroutine does not return */
            abort();
          case 'b':
            bVar2 = true;
            bVar4 = true;
            goto LAB_0003ed28;
          case 'c':
            bVar2 = true;
            bVar3 = true;
            goto LAB_0003ed28;
          case 'd':
          case 'f':
          case 'r':
            bVar2 = true;
            bVar5 = true;
            goto LAB_0003ed28;
          }
        }
        *param_2 = (int)(local_5c + 1);
        iVar11 = FUN_0003e060();
        if (iVar11 == 0) {
          return 0;
        }
        goto joined_r0x0003ecc7;
      }
LAB_0003ee1f:
      if (param_3 != (undefined4 *)0x0) {
        __ptr = (void *)FUN_0003cd30();
        __ptr_00 = (void *)concat("NoSuchStrinG__",__ptr,0);
        free(__ptr);
        __haystack = (char *)cplus_demangle(__ptr_00,2);
        free(__ptr_00);
        if (__haystack == (char *)0x0) goto LAB_0003ec4d;
        pcVar13 = strstr(__haystack,"::NoSuchStrinG");
        pcVar7 = __haystack;
        pcVar20 = __haystack;
        if (pcVar13 == (char *)0x0) {
          FUN_0003cc40();
          free(__haystack);
          return 0;
        }
        for (; pcVar7 != pcVar13; pcVar7 = pcVar7 + 1) {
          if ((*pcVar7 != ' ') ||
             (((pcVar7[1] == '>' && (__haystack < pcVar7)) && (pcVar7[-1] == '>')))) {
            *pcVar20 = *pcVar7;
            pcVar20 = pcVar20 + 1;
          }
        }
        uVar15 = FUN_0003cd30();
        *param_3 = uVar15;
        free(__haystack);
      }
      return 1;
    }
  }
LAB_0003ec4d:
  FUN_0003cc40();
  return 0;
code_r0x0003ed60:
  bVar6 = true;
LAB_0003ed70:
  if (local_3c == 0) {
    if (bVar3) {
      pbVar12 = (byte *)*param_2;
      bVar17 = *pbVar12;
      uVar18 = (uint)bVar17;
      if (bVar17 == 0x6d) {
        *param_2 = (int)(pbVar12 + 1);
        uVar18 = (uint)pbVar12[1];
        bVar17 = puVar8[uVar18 * 2];
        pbVar12 = pbVar12 + 1;
      }
      else {
        bVar17 = puVar8[(uint)bVar17 * 2];
      }
      if ((bVar17 & 4) == 0) goto LAB_0003efe7;
      iVar11 = 0;
      do {
        pbVar12 = pbVar12 + 1;
        *param_2 = (int)pbVar12;
        cVar9 = (char)uVar18;
        uVar18 = (uint)*pbVar12;
        iVar11 = cVar9 + -0x30 + iVar11 * 10;
      } while ((puVar8[uVar18 * 2] & 4) != 0);
      if (iVar11 == 0) goto LAB_0003efe7;
    }
    else if (bVar4) {
      pbVar12 = (byte *)*param_2;
      uVar18 = (uint)*pbVar12;
      if ((puVar8[uVar18 * 2] & 4) != 0) {
        uVar16 = 0;
        do {
          pbVar12 = pbVar12 + 1;
          *param_2 = (int)pbVar12;
          cVar9 = (char)uVar18;
          uVar18 = (uint)*pbVar12;
          uVar16 = cVar9 + -0x30 + uVar16 * 10;
        } while ((puVar8[uVar18 * 2] & 4) != 0);
        if (1 < uVar16) goto LAB_0003ec4d;
      }
    }
    else if (bVar5) {
      pbVar14 = (byte *)*param_2;
      bVar17 = *pbVar14;
      pbVar12 = pbVar14;
      if (bVar17 == 0x6d) {
        pbVar12 = pbVar14 + 1;
        *param_2 = (int)pbVar12;
        bVar17 = pbVar14[1];
      }
      bVar1 = puVar8[(uint)bVar17 * 2];
      while ((bVar1 & 4) != 0) {
        pbVar12 = pbVar12 + 1;
        *param_2 = (int)pbVar12;
        bVar17 = *pbVar12;
        bVar1 = puVar8[(uint)bVar17 * 2];
      }
      if (bVar17 == 0x2e) {
        pbVar14 = pbVar12 + 1;
        *param_2 = (int)pbVar14;
        bVar17 = pbVar12[1];
        if ((puVar8[(uint)bVar17 * 2] & 4) != 0) {
          pbVar12 = pbVar12 + 2;
          do {
            pbVar14 = pbVar12;
            *param_2 = (int)pbVar14;
            bVar17 = *pbVar14;
            pbVar12 = pbVar14 + 1;
          } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);
        }
      }
      else {
        pbVar14 = (byte *)*param_2;
        bVar17 = *pbVar14;
      }
      if ((bVar17 == 0x65) &&
         (*param_2 = (int)(pbVar14 + 1), (puVar8[(uint)pbVar14[1] * 2] & 4) != 0)) {
        pbVar12 = pbVar14 + 2;
        do {
          *param_2 = (int)pbVar12;
          bVar17 = *pbVar12;
          pbVar12 = pbVar12 + 1;
        } while ((puVar8[(uint)bVar17 * 2] & 4) != 0);
      }
    }
    else if (bVar6) {
      pbVar12 = (byte *)*param_2;
      uVar18 = (uint)*pbVar12;
      if ((puVar8[uVar18 * 2] & 4) == 0) goto LAB_0003ec4d;
      iVar11 = 0;
      do {
        pbVar12 = pbVar12 + 1;
        iVar11 = (char)uVar18 + -0x30 + iVar11 * 10;
        *param_2 = (int)pbVar12;
        uVar18 = (uint)*pbVar12;
      } while ((puVar8[uVar18 * 2] & 4) != 0);
      if (iVar11 == 0) goto LAB_0003ec4d;
      *param_2 = (int)(pbVar12 + iVar11);
    }
  }
  else {
    pbVar14 = (byte *)*param_2;
    bVar17 = *pbVar14;
    pbVar12 = pbVar14;
    if (bVar17 == 0x6d) {
      pbVar12 = pbVar14 + 1;
      *param_2 = (int)pbVar12;
      bVar17 = pbVar14[1];
    }
    bVar17 = puVar8[(uint)bVar17 * 2];
    while ((bVar17 & 4) != 0) {
      pbVar12 = pbVar12 + 1;
      *param_2 = (int)pbVar12;
      bVar17 = puVar8[(uint)*pbVar12 * 2];
    }
  }
joined_r0x0003ecc7:
  local_54 = local_54 + 1;
  if (uVar19 <= local_54) goto LAB_0003ee1f;
  goto LAB_0003eccd;
}

