
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

char * __regparm3 quote_escapes_internal(char *string,int flags)

{
  int iVar1;
  undefined4 uVar2;
  bool bVar3;
  bool bVar4;
  int iVar5;
  anon_union_4_2_91654ee9_for___value aVar6;
  size_t sVar7;
  byte *pbVar8;
  uint uVar9;
  byte bVar10;
  char cVar11;
  byte *pbVar12;
  byte *pbVar13;
  uint uVar14;
  char *pcVar15;
  byte *__s;
  byte bVar16;
  byte *pbVar17;
  byte *pbVar18;
  int in_GS_OFFSET;
  byte *local_4c;
  mbstate_t state;
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  state.__count = 0;
  state.__value.__wch = 0;
  sVar7 = strlen(string);
  if (ifs_value != (char *)0x0) {
    if (*ifs_value == '\0') {
      bVar3 = true;
      bVar16 = 0;
      bVar4 = false;
      goto LAB_00070e59;
    }
    cVar11 = *ifs_value;
    if (*ifs_value != '\0') {
      pcVar15 = ifs_value;
      if (flags == 0) {
        bVar4 = false;
        bVar16 = 0;
        do {
          if (cVar11 == '\x01') {
            bVar16 = 1;
          }
          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');
          pcVar15 = pcVar15 + 1;
        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));
        bVar3 = false;
        goto LAB_00070e59;
      }
      do {
        pcVar15 = pcVar15 + 1;
        if (pcVar15 == (char *)0x0) break;
      } while (*pcVar15 != '\0');
    }
  }
  bVar3 = false;
  bVar16 = 0;
  bVar4 = false;
LAB_00070e59:
  pbVar8 = (byte *)xmalloc(sVar7 * 2 + 1);
  bVar10 = *string;
  local_4c = pbVar8;
  if (bVar10 != 0) {
    __s = (byte *)string;
    do {
      while( true ) {
        aVar6 = state.__value;
        iVar5 = state.__count;
        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||
           ((bVar10 == 0x20 && (bVar3)))) {
          *local_4c = 1;
          local_4c = local_4c + 1;
          bVar10 = *__s;
        }
        if (locale_mb_cur_max < 2) break;
        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {
          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {
            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),
                            (mbstate_t *)&state);
            if (0xfffffffd < uVar9) goto LAB_00070f01;
          }
          else {
            uVar9 = (uint)(bVar10 != 0);
          }
          iVar5 = state.__count;
          aVar6 = state.__value;
          if (uVar9 == 0) goto LAB_00070f01;
          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)
             || (uVar9 - 1 < 4)) goto LAB_00070f06;
          pbVar12 = local_4c;
          pbVar13 = __s;
          do {
            uVar2 = *(undefined4 *)pbVar13;
            pbVar13 = pbVar13 + 4;
            *(undefined4 *)pbVar12 = uVar2;
            pbVar12 = pbVar12 + 4;
          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));
          uVar14 = uVar9 & 0xfffffffc;
          pbVar12 = local_4c + uVar14;
          local_4c = local_4c + uVar9;
          pbVar13 = __s + uVar14;
          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&
             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {
            pbVar12[2] = pbVar13[2];
          }
        }
        else {
LAB_00070f01:
          state.__value = aVar6;
          state.__count = iVar5;
          uVar9 = 1;
LAB_00070f06:
          pbVar12 = local_4c + uVar9;
          pbVar13 = __s;
          pbVar17 = local_4c;
          do {
            bVar10 = *pbVar13;
            pbVar18 = pbVar17 + 1;
            pbVar13 = pbVar13 + 1;
            *pbVar17 = bVar10;
            pbVar17 = pbVar18;
            local_4c = pbVar12;
          } while (pbVar18 != pbVar12);
        }
        __s = __s + uVar9;
        bVar10 = *__s;
        if (bVar10 == 0) goto LAB_00070f37;
      }
      __s = __s + 1;
      *local_4c = bVar10;
      local_4c = local_4c + 1;
      bVar10 = *__s;
    } while (bVar10 != 0);
  }
LAB_00070f37:
  *local_4c = 0;
  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return (char *)pbVar8;
}



byte * FUN_00070dd0(void)

{
  undefined4 uVar1;
  bool bVar2;
  bool bVar3;
  int iVar4;
  _union_54 _Var5;
  byte *__s;
  size_t sVar6;
  byte *pbVar7;
  uint uVar8;
  byte bVar9;
  char cVar10;
  byte *pbVar11;
  byte *pbVar12;
  uint uVar13;
  char *pcVar14;
  int unaff_EBP;
  byte *__s_00;
  byte bVar15;
  byte *pbVar16;
  byte *pbVar17;
  int in_GS_OFFSET;
  undefined8 uVar18;
  byte *local_4c;
  mbstate_t local_28;
  int local_20;
  
  uVar18 = FUN_00041277();
  __s = (byte *)uVar18;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_28.__count = 0;
  local_28.__value.__wch = 0;
  sVar6 = strlen((char *)__s);
  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);
  if (pcVar14 != (char *)0x0) {
    if (*pcVar14 == '\0') {
      bVar2 = true;
      bVar15 = 0;
      bVar3 = false;
      goto LAB_00070e59;
    }
    cVar10 = *pcVar14;
    if (*pcVar14 != '\0') {
      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {
        bVar3 = false;
        bVar15 = 0;
        do {
          if (cVar10 == '\x01') {
            bVar15 = 1;
          }
          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');
          pcVar14 = pcVar14 + 1;
        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));
        bVar2 = false;
        goto LAB_00070e59;
      }
      do {
        pcVar14 = pcVar14 + 1;
        if (pcVar14 == (char *)0x0) break;
      } while (*pcVar14 != '\0');
    }
  }
  bVar2 = false;
  bVar15 = 0;
  bVar3 = false;
LAB_00070e59:
  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);
  bVar9 = *__s;
  local_4c = pbVar7;
  if (bVar9 != 0) {
    __s_00 = __s;
    do {
      while( true ) {
        _Var5 = local_28.__value;
        iVar4 = local_28.__count;
        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||
           ((bVar9 == 0x20 && (bVar2)))) {
          *local_4c = 1;
          local_4c = local_4c + 1;
          bVar9 = *__s_00;
        }
        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;
        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {
          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {
            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),
                            &local_28);
            if (0xfffffffd < uVar8) goto LAB_00070f01;
          }
          else {
            uVar8 = (uint)(bVar9 != 0);
          }
          iVar4 = local_28.__count;
          _Var5 = local_28.__value;
          if (uVar8 == 0) goto LAB_00070f01;
          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||
               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;
          pbVar11 = local_4c;
          pbVar12 = __s_00;
          do {
            uVar1 = *(undefined4 *)pbVar12;
            pbVar12 = pbVar12 + 4;
            *(undefined4 *)pbVar11 = uVar1;
            pbVar11 = pbVar11 + 4;
          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));
          uVar13 = uVar8 & 0xfffffffc;
          pbVar11 = local_4c + uVar13;
          local_4c = local_4c + uVar8;
          pbVar12 = __s_00 + uVar13;
          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&
             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {
            pbVar11[2] = pbVar12[2];
          }
        }
        else {
LAB_00070f01:
          local_28.__value = _Var5;
          local_28.__count = iVar4;
          uVar8 = 1;
LAB_00070f06:
          pbVar11 = local_4c + uVar8;
          pbVar12 = __s_00;
          pbVar16 = local_4c;
          do {
            bVar9 = *pbVar12;
            pbVar17 = pbVar16 + 1;
            pbVar12 = pbVar12 + 1;
            *pbVar16 = bVar9;
            pbVar16 = pbVar17;
            local_4c = pbVar11;
          } while (pbVar17 != pbVar11);
        }
        __s_00 = __s_00 + uVar8;
        bVar9 = *__s_00;
        if (bVar9 == 0) goto LAB_00070f37;
      }
      __s_00 = __s_00 + 1;
      *local_4c = bVar9;
      local_4c = local_4c + 1;
      bVar9 = *__s_00;
    } while (bVar9 != 0);
  }
LAB_00070f37:
  *local_4c = 0;
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0010f8b0();
  }
  return pbVar7;
}


PUSH EBP
CALL 0x00041277
ADD EBP,0x10122a
PUSH EDI
MOV EDI,EDX
PUSH ESI
MOV ESI,EAX
PUSH EBX
SUB ESP,0x58
MOV dword ptr [ESP + 0x2c],EBP
MOV EBX,EBP
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x48],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0x40],0x0
MOV dword ptr [ESP + 0x44],0x0
PUSH ESI
CALL 0x0002e760
LEA EDX,[EBP + 0xcfac]
ADD ESP,0x10
LEA EBX,[ESI + EAX*0x1]
MOV EDX,dword ptr [EDX]
MOV dword ptr [ESP + 0x2c],EBX
TEST EDX,EDX
JZ 0x00070e4a
CMP byte ptr [EDX],0x0
JZ 0x00071080
MOVZX ECX,byte ptr [EDX]
JZ 0x00070e4a
TEST EDI,EDI
JNZ 0x00070e45
JMP 0x00071098
CMP byte ptr [EDX],0x0
JZ 0x00070e4a
ADD EDX,0x1
JNZ 0x00070e40
MOV byte ptr [ESP + 0x1f],0x0
XOR EDI,EDI
MOV dword ptr [ESP + 0x18],0x0
SUB ESP,0xc
LEA EAX,[EAX + EAX*0x1 + 0x1]
PUSH EAX
MOV EBP,dword ptr [ESP + 0x30]
MOV EBX,EBP
CALL 0x000ad700
MOVZX ECX,byte ptr [ESI]
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
TEST CL,CL
JZ 0x000710d3
MOV EDX,EAX
LEA EAX,[EBP + 0xd4b0]
XOR EDI,0x1
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,EDI
MOV EDI,EDX
AND EAX,0x1
MOV byte ptr [ESP + 0x1e],AL
LEA EAX,[EBP + 0xfffb6460]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x00070eb7
ADD ESI,0x1
MOV byte ptr [EDI],CL
ADD EDI,0x1
MOVZX ECX,byte ptr [ESI]
TEST CL,CL
JZ 0x00070f35
CMP byte ptr [ESP + 0x1e],0x0
JZ 0x00070ec7
CMP CL,0x1
JZ 0x00070f60
CMP CL,0x7f
JNZ 0x00070ed7
TEST byte ptr [ESP + 0x18],0x1
JZ 0x00070f60
CMP CL,0x20
JNZ 0x00070ee3
CMP byte ptr [ESP + 0x1f],0x0
JNZ 0x00070f60
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [EAX],0x1
JLE 0x00070ea8
MOV EAX,ECX
MOV EBX,dword ptr [ESP + 0x24]
SHR AL,0x5
MOVZX EAX,AL
MOV EAX,dword ptr [EBX + EAX*0x4]
SHR EAX,CL
TEST AL,0x1
JZ 0x00070f70
MOV EAX,0x1
MOV EDX,ESI
LEA ECX,[EDI + EAX*0x1]
LEA ESI,[ESI]
NOP
MOVZX EBX,byte ptr [EDX]
ADD EDI,0x1
ADD EDX,0x1
MOV byte ptr [EDI + -0x1],BL
CMP EDI,ECX
JNZ 0x00070f10
MOV dword ptr [ESP + 0x10],ECX
LEA ESI,[ESI]
ADD ESI,EAX
MOV EDI,dword ptr [ESP + 0x10]
MOVZX ECX,byte ptr [ESI]
TEST CL,CL
JNZ 0x00070eb7
MOV EDX,EDI
MOV byte ptr [EDX],0x0
MOV EAX,dword ptr [ESP + 0x28]
MOV ESI,dword ptr [ESP + 0x3c]
XOR ESI,dword ptr GS:[0x14]
JNZ 0x000710dc
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV byte ptr [EDI],0x1
ADD EDI,0x1
MOVZX ECX,byte ptr [ESI]
JMP 0x00070ee3
MOV EAX,dword ptr [ESP + 0x20]
LEA EAX,[EAX + 0xd4b8]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x00071030
TEST CL,CL
JS 0x00071030
SETNZ AL
MOVZX EAX,AL
TEST EAX,EAX
JZ 0x00070f01
LEA EDX,[ESI + 0x4]
CMP EDI,EDX
LEA EDX,[EDI + 0x4]
SETNC CL
CMP ESI,EDX
SETNC DL
OR EDX,ECX
MOV ECX,EDI
OR ECX,ESI
AND ECX,0x3
SETZ CL
TEST DL,CL
JZ 0x00070f06
LEA EDX,[EAX + -0x1]
CMP EDX,0x3
JBE 0x00070f06
MOV EBX,EAX
MOV EDX,ESI
MOV ECX,EDI
AND EBX,0xfffffffc
ADD EBX,ESI
LEA ESI,[ESI]
MOV EBP,dword ptr [EDX]
ADD EDX,0x4
ADD ECX,0x4
MOV dword ptr [ECX + -0x4],EBP
CMP EDX,EBX
JNZ 0x00070fd8
MOV EDX,EAX
AND EDX,0xfffffffc
LEA EBX,[EDI + EDX*0x1]
ADD EDI,EAX
LEA EBP,[ESI + EDX*0x1]
MOV dword ptr [ESP + 0x10],EDI
CMP EAX,EDX
JZ 0x00070f28
MOVZX ECX,byte ptr [EBP]
LEA EDI,[EDX + 0x1]
MOV byte ptr [EBX],CL
CMP EAX,EDI
JBE 0x00070f28
MOVZX ECX,byte ptr [EBP + 0x1]
ADD EDX,0x2
MOV byte ptr [EBX + 0x1],CL
CMP EAX,EDX
JBE 0x00070f28
MOVZX EDX,byte ptr [EBP + 0x2]
MOV byte ptr [EBX + 0x2],DL
JMP 0x00070f28
MOV EDX,dword ptr [ESP + 0x34]
MOV ECX,dword ptr [ESP + 0x38]
LEA EAX,[ESP + 0x34]
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESP + 0x14],ECX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x30]
SUB EAX,ESI
PUSH EAX
PUSH ESI
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x0002e5b0
ADD ESP,0x10
CMP EAX,-0x2
JC 0x00070f92
MOV EDX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x34],EDX
MOV dword ptr [ESP + 0x38],ECX
JMP 0x00070f01
MOV byte ptr [ESP + 0x1f],0x1
XOR EDI,EDI
MOV dword ptr [ESP + 0x18],0x0
JMP 0x00070e59
XOR EBP,EBP
MOV EBX,0x1
JMP 0x000710af
MOVZX ECX,byte ptr [EDX]
TEST CL,CL
JZ 0x000710c5
CMP CL,0x1
CMOVZ EDI,EBX
CMP CL,0x7f
SETZ CL
MOVZX ECX,CL
OR EBP,ECX
ADD EDX,0x1
JNZ 0x000710a8
MOV dword ptr [ESP + 0x18],EBP
MOV byte ptr [ESP + 0x1f],0x0
JMP 0x00070e59
MOV EDX,dword ptr [ESP + 0x28]
JMP 0x00070f37
CALL 0x0010f8b0
(translation_unit "byte * FUN_00070dd0(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}\n\n" (function_definition "byte * FUN_00070dd0(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}" type_identifier (pointer_declarator "* FUN_00070dd0(void)" * (function_declarator "FUN_00070dd0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "_union_54 _Var5;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte *__s_00;" type_identifier (pointer_declarator "*__s_00" * identifier) ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "mbstate_t local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar18 = FUN_00041277();" (assignment_expression "uVar18 = FUN_00041277()" identifier = (call_expression "FUN_00041277()" identifier (argument_list "()" ( )))) ;) (expression_statement "__s = (byte *)uVar18;" (assignment_expression "__s = (byte *)uVar18" identifier = (cast_expression "(byte *)uVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_28.__count = 0;" (assignment_expression "local_28.__count = 0" (field_expression "local_28.__count" identifier . field_identifier) = number_literal) ;) (expression_statement "local_28.__value.__wch = 0;" (assignment_expression "local_28.__value.__wch = 0" (field_expression "local_28.__value.__wch" (field_expression "local_28.__value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "sVar6 = strlen((char *)__s);" (assignment_expression "sVar6 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);" (assignment_expression "pcVar14 = *(char **)(unaff_EBP + 0x10e1d6)" identifier = (pointer_expression "*(char **)(unaff_EBP + 0x10e1d6)" * (cast_expression "(char **)(unaff_EBP + 0x10e1d6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x10e1d6)" ( (binary_expression "unaff_EBP + 0x10e1d6" identifier + number_literal) ))))) ;) (if_statement "if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }" if (parenthesized_expression "(pcVar14 != (char *)0x0)" ( (binary_expression "pcVar14 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }" { (if_statement "if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }" if (parenthesized_expression "(*pcVar14 == '\0')" ( (binary_expression "*pcVar14 == '\0'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (goto_statement "goto LAB_00070e59;" goto statement_identifier ;) })) (expression_statement "cVar10 = *pcVar14;" (assignment_expression "cVar10 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (if_statement "if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }" if (parenthesized_expression "(*pcVar14 != '\0')" ( (binary_expression "*pcVar14 != '\0'" (pointer_expression "*pcVar14" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }" { (if_statement "if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }" if (parenthesized_expression "((int)((ulonglong)uVar18 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar18 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));" do (compound_statement "{\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        }" { (if_statement "if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }" if (parenthesized_expression "(cVar10 == '\x01')" ( (binary_expression "cVar10 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            bVar15 = 1;\n          }" { (expression_statement "bVar15 = 1;" (assignment_expression "bVar15 = 1" identifier = number_literal) ;) })) (expression_statement "bVar3 = (bool)(bVar3 | cVar10 == '\x7f');" (assignment_expression "bVar3 = (bool)(bVar3 | cVar10 == '\x7f')" identifier = (cast_expression "(bool)(bVar3 | cVar10 == '\x7f')" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar3 | cVar10 == '\x7f')" ( (binary_expression "bVar3 | cVar10 == '\x7f'" identifier | (binary_expression "cVar10 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence '))) )))) ;) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'))" ( (binary_expression "(pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0')" (parenthesized_expression "(pcVar14 != (char *)0x0)" ( (binary_expression "pcVar14 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar10 = *pcVar14, cVar10 != '\0')" ( (comma_expression "cVar10 = *pcVar14, cVar10 != '\0'" (assignment_expression "cVar10 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) , (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (goto_statement "goto LAB_00070e59;" goto statement_identifier ;) })) (do_statement "do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');" do (compound_statement "{\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      }" { (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar14 == (char *)0x0) break;" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(*pcVar14 != '\0')" ( (binary_expression "*pcVar14 != '\0'" (pointer_expression "*pcVar14" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);" statement_identifier : (expression_statement "pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);" (assignment_expression "pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1)" identifier = (cast_expression "(byte *)xmalloc(sVar6 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar6 * 2 + 1)" identifier (argument_list "(sVar6 * 2 + 1)" ( (binary_expression "sVar6 * 2 + 1" (binary_expression "sVar6 * 2" identifier * number_literal) + number_literal) ))))) ;)) (expression_statement "bVar9 = *__s;" (assignment_expression "bVar9 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "local_4c = pbVar7;" (assignment_expression "local_4c = pbVar7" identifier = identifier) ;) (if_statement "if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }" { (expression_statement "__s_00 = __s;" (assignment_expression "__s_00 = __s" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);" do (compound_statement "{\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    }" { (while_statement "while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }" { (expression_statement "_Var5 = local_28.__value;" (assignment_expression "_Var5 = local_28.__value" identifier = (field_expression "local_28.__value" identifier . field_identifier)) ;) (expression_statement "iVar4 = local_28.__count;" (assignment_expression "iVar4 = local_28.__count" identifier = (field_expression "local_28.__count" identifier . field_identifier)) ;) (if_statement "if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }" if (parenthesized_expression "(((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2))))" ( (binary_expression "((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))" (parenthesized_expression "((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3))))" ( (binary_expression "(((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))" (parenthesized_expression "(((bool)(bVar15 ^ 1)) && (bVar9 == 1))" ( (binary_expression "((bool)(bVar15 ^ 1)) && (bVar9 == 1)" (parenthesized_expression "((bool)(bVar15 ^ 1))" ( (cast_expression "(bool)(bVar15 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar15 ^ 1)" ( (binary_expression "bVar15 ^ 1" identifier ^ number_literal) ))) )) && (parenthesized_expression "(bVar9 == 1)" ( (binary_expression "bVar9 == 1" identifier == number_literal) ))) )) || (parenthesized_expression "((bVar9 == 0x7f && (!bVar3)))" ( (parenthesized_expression "(bVar9 == 0x7f && (!bVar3))" ( (binary_expression "bVar9 == 0x7f && (!bVar3)" (binary_expression "bVar9 == 0x7f" identifier == number_literal) && (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) ))) )) || (parenthesized_expression "((bVar9 == 0x20 && (bVar2)))" ( (parenthesized_expression "(bVar9 == 0x20 && (bVar2))" ( (binary_expression "bVar9 == 0x20 && (bVar2)" (binary_expression "bVar9 == 0x20" identifier == number_literal) && (parenthesized_expression "(bVar2)" ( identifier ))) )) ))) )) (compound_statement "{\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }" { (expression_statement "*local_4c = 1;" (assignment_expression "*local_4c = 1" (pointer_expression "*local_4c" * identifier) = number_literal) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" identifier = (pointer_expression "*__s_00" * identifier)) ;) })) (if_statement "if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x10e6da) < 2)" ( (binary_expression "*(int *)(unaff_EBP + 0x10e6da) < 2" (pointer_expression "*(int *)(unaff_EBP + 0x10e6da)" * (cast_expression "(int *)(unaff_EBP + 0x10e6da)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x10e6da)" ( (binary_expression "unaff_EBP + 0x10e6da" identifier + number_literal) )))) < number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" if (parenthesized_expression "((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1)" ( (binary_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1" (binary_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f)" (pointer_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" * (cast_expression "(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" ( (binary_expression "unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4" (binary_expression "unaff_EBP + 0xb768a" identifier + number_literal) + (binary_expression "(uint)(bVar9 >> 5) * 4" (call_expression "(uint)(bVar9 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar9 >> 5)" ( (binary_expression "bVar9 >> 5" identifier >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(bVar9 & 0x1f)" ( (binary_expression "bVar9 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }" { (if_statement "if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }" if (parenthesized_expression "((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0'))" ( (binary_expression "(*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')" (parenthesized_expression "(*(int *)(unaff_EBP + 0x10e6e2) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x10e6e2) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x10e6e2)" * (cast_expression "(int *)(unaff_EBP + 0x10e6e2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x10e6e2)" ( (binary_expression "unaff_EBP + 0x10e6e2" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((char)bVar9 < '\0')" ( (binary_expression "(char)bVar9 < '\0'" (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }" { (expression_statement "uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);" (assignment_expression "uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" identifier = (call_expression "mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" identifier (argument_list "((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" ( (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(__s + (sVar6 - (int)__s_00))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(__s + (sVar6 - (int)__s_00))" ( (binary_expression "__s + (sVar6 - (int)__s_00)" identifier + (parenthesized_expression "(sVar6 - (int)__s_00)" ( (binary_expression "sVar6 - (int)__s_00" identifier - (cast_expression "(int)__s_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (0xfffffffd < uVar8) goto LAB_00070f01;" if (parenthesized_expression "(0xfffffffd < uVar8)" ( (binary_expression "0xfffffffd < uVar8" number_literal < identifier) )) (goto_statement "goto LAB_00070f01;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar8 = (uint)(bVar9 != 0);\n          }" else (compound_statement "{\n            uVar8 = (uint)(bVar9 != 0);\n          }" { (expression_statement "uVar8 = (uint)(bVar9 != 0);" (assignment_expression "uVar8 = (uint)(bVar9 != 0)" identifier = (call_expression "(uint)(bVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )))) ;) }))) (expression_statement "iVar4 = local_28.__count;" (assignment_expression "iVar4 = local_28.__count" identifier = (field_expression "local_28.__count" identifier . field_identifier)) ;) (expression_statement "_Var5 = local_28.__value;" (assignment_expression "_Var5 = local_28.__value" identifier = (field_expression "local_28.__value" identifier . field_identifier)) ;) (if_statement "if (uVar8 == 0) goto LAB_00070f01;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00070f01;" goto statement_identifier ;)) (if_statement "if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;" if (parenthesized_expression "((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4))" ( (binary_expression "(__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)" (parenthesized_expression "(__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0)" ( (binary_expression "__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0" (binary_expression "__s_00 < local_4c + 4 && local_4c < __s_00 + 4" (binary_expression "__s_00 < local_4c + 4" identifier < (binary_expression "local_4c + 4" identifier + number_literal)) && (binary_expression "local_4c < __s_00 + 4" identifier < (binary_expression "__s_00 + 4" identifier + number_literal))) || (binary_expression "(((uint)local_4c | (uint)__s_00) & 3) != 0" (parenthesized_expression "(((uint)local_4c | (uint)__s_00) & 3)" ( (binary_expression "((uint)local_4c | (uint)__s_00) & 3" (parenthesized_expression "((uint)local_4c | (uint)__s_00)" ( (binary_expression "(uint)local_4c | (uint)__s_00" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)__s_00" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & number_literal) )) != number_literal)) )) || (parenthesized_expression "(uVar8 - 1 < 4)" ( (binary_expression "uVar8 - 1 < 4" (binary_expression "uVar8 - 1" identifier - number_literal) < number_literal) ))) )) (goto_statement "goto LAB_00070f06;" goto statement_identifier ;)) (expression_statement "pbVar11 = local_4c;" (assignment_expression "pbVar11 = local_4c" identifier = identifier) ;) (expression_statement "pbVar12 = __s_00;" (assignment_expression "pbVar12 = __s_00" identifier = identifier) ;) (do_statement "do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));" do (compound_statement "{\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          }" { (expression_statement "uVar1 = *(undefined4 *)pbVar12;" (assignment_expression "uVar1 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" identifier = (binary_expression "pbVar12 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar11 = uVar1;" (assignment_expression "*(undefined4 *)pbVar11 = uVar1" (pointer_expression "*(undefined4 *)pbVar11" * (cast_expression "(undefined4 *)pbVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar11 = pbVar11 + 4;" (assignment_expression "pbVar11 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar12 != __s_00 + (uVar8 & 0xfffffffc))" ( (binary_expression "pbVar12 != __s_00 + (uVar8 & 0xfffffffc)" identifier != (binary_expression "__s_00 + (uVar8 & 0xfffffffc)" identifier + (parenthesized_expression "(uVar8 & 0xfffffffc)" ( (binary_expression "uVar8 & 0xfffffffc" identifier & number_literal) )))) )) ;) (expression_statement "uVar13 = uVar8 & 0xfffffffc;" (assignment_expression "uVar13 = uVar8 & 0xfffffffc" identifier = (binary_expression "uVar8 & 0xfffffffc" identifier & number_literal)) ;) (expression_statement "pbVar11 = local_4c + uVar13;" (assignment_expression "pbVar11 = local_4c + uVar13" identifier = (binary_expression "local_4c + uVar13" identifier + identifier)) ;) (expression_statement "local_4c = local_4c + uVar8;" (assignment_expression "local_4c = local_4c + uVar8" identifier = (binary_expression "local_4c + uVar8" identifier + identifier)) ;) (expression_statement "pbVar12 = __s_00 + uVar13;" (assignment_expression "pbVar12 = __s_00 + uVar13" identifier = (binary_expression "__s_00 + uVar13" identifier + identifier)) ;) (if_statement "if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }" if (parenthesized_expression "(((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8))" ( (binary_expression "((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)" (parenthesized_expression "((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8))" ( (binary_expression "(uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)" (parenthesized_expression "(uVar8 != uVar13)" ( (binary_expression "uVar8 != uVar13" identifier != identifier) )) && (parenthesized_expression "(*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)" ( (comma_expression "*pbVar11 = *pbVar12, uVar13 + 1 < uVar8" (assignment_expression "*pbVar11 = *pbVar12" (pointer_expression "*pbVar11" * identifier) = (pointer_expression "*pbVar12" * identifier)) , (binary_expression "uVar13 + 1 < uVar8" (binary_expression "uVar13 + 1" identifier + number_literal) < identifier)) ))) )) && (parenthesized_expression "(pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)" ( (comma_expression "pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8" (assignment_expression "pbVar11[1] = pbVar12[1]" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) , (binary_expression "uVar13 + 2 < uVar8" (binary_expression "uVar13 + 2" identifier + number_literal) < identifier)) ))) )) (compound_statement "{\n            pbVar11[2] = pbVar12[2];\n          }" { (expression_statement "pbVar11[2] = pbVar12[2];" (assignment_expression "pbVar11[2] = pbVar12[2]" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = (subscript_expression "pbVar12[2]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" else (compound_statement "{\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" { (labeled_statement "LAB_00070f01:\n          local_28.__value = _Var5;" statement_identifier : (expression_statement "local_28.__value = _Var5;" (assignment_expression "local_28.__value = _Var5" (field_expression "local_28.__value" identifier . field_identifier) = identifier) ;)) (expression_statement "local_28.__count = iVar4;" (assignment_expression "local_28.__count = iVar4" (field_expression "local_28.__count" identifier . field_identifier) = identifier) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00070f06:\n          pbVar11 = local_4c + uVar8;" statement_identifier : (expression_statement "pbVar11 = local_4c + uVar8;" (assignment_expression "pbVar11 = local_4c + uVar8" identifier = (binary_expression "local_4c + uVar8" identifier + identifier)) ;)) (expression_statement "pbVar12 = __s_00;" (assignment_expression "pbVar12 = __s_00" identifier = identifier) ;) (expression_statement "pbVar16 = local_4c;" (assignment_expression "pbVar16 = local_4c" identifier = identifier) ;) (do_statement "do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);" do (compound_statement "{\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          }" { (expression_statement "bVar9 = *pbVar12;" (assignment_expression "bVar9 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "pbVar17 = pbVar16 + 1;" (assignment_expression "pbVar17 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar16 = bVar9;" (assignment_expression "*pbVar16 = bVar9" (pointer_expression "*pbVar16" * identifier) = identifier) ;) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" identifier = identifier) ;) (expression_statement "local_4c = pbVar11;" (assignment_expression "local_4c = pbVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar17 != pbVar11)" ( (binary_expression "pbVar17 != pbVar11" identifier != identifier) )) ;) }))) (expression_statement "__s_00 = __s_00 + uVar8;" (assignment_expression "__s_00 = __s_00 + uVar8" identifier = (binary_expression "__s_00 + uVar8" identifier + identifier)) ;) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" identifier = (pointer_expression "*__s_00" * identifier)) ;) (if_statement "if (bVar9 == 0) goto LAB_00070f37;" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00070f37;" goto statement_identifier ;)) })) (expression_statement "__s_00 = __s_00 + 1;" (assignment_expression "__s_00 = __s_00 + 1" identifier = (binary_expression "__s_00 + 1" identifier + number_literal)) ;) (expression_statement "*local_4c = bVar9;" (assignment_expression "*local_4c = bVar9" (pointer_expression "*local_4c" * identifier) = identifier) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" identifier = (pointer_expression "*__s_00" * identifier)) ;) }) while (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00070f37:\n  *local_4c = 0;" statement_identifier : (expression_statement "*local_4c = 0;" (assignment_expression "*local_4c = 0" (pointer_expression "*local_4c" * identifier) = number_literal) ;)) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0010f8b0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0010f8b0();\n  }" { comment (expression_statement "FUN_0010f8b0();" (call_expression "FUN_0010f8b0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return pbVar7;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n\nchar * __regparm3 quote_escapes_internal(char *string,int flags)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  anon_union_4_2_91654ee9_for___value aVar6;\n  size_t sVar7;\n  byte *pbVar8;\n  uint uVar9;\n  byte bVar10;\n  char cVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte *__s;\n  byte bVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int in_GS_OFFSET;\n  byte *local_4c;\n  mbstate_t state;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  state.__count = 0;\n  state.__value.__wch = 0;\n  sVar7 = strlen(string);\n  if (ifs_value != (char *)0x0) {\n    if (*ifs_value == '\0') {\n      bVar3 = true;\n      bVar16 = 0;\n      bVar4 = false;\n      goto LAB_00070e59;\n    }\n    cVar11 = *ifs_value;\n    if (*ifs_value != '\0') {\n      pcVar15 = ifs_value;\n      if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');\n    }\n  }\n  bVar3 = false;\n  bVar16 = 0;\n  bVar4 = false;\nLAB_00070e59:\n  pbVar8 = (byte *)xmalloc(sVar7 * 2 + 1);\n  bVar10 = *string;\n  local_4c = pbVar8;\n  if (bVar10 != 0) {\n    __s = (byte *)string;\n    do {\n      while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }\n      __s = __s + 1;\n      *local_4c = bVar10;\n      local_4c = local_4c + 1;\n      bVar10 = *__s;\n    } while (bVar10 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return (char *)pbVar8;\n}\n\n" comment (function_definition "char * __regparm3 quote_escapes_internal(char *string,int flags)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  anon_union_4_2_91654ee9_for___value aVar6;\n  size_t sVar7;\n  byte *pbVar8;\n  uint uVar9;\n  byte bVar10;\n  char cVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte *__s;\n  byte bVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int in_GS_OFFSET;\n  byte *local_4c;\n  mbstate_t state;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  state.__count = 0;\n  state.__value.__wch = 0;\n  sVar7 = strlen(string);\n  if (ifs_value != (char *)0x0) {\n    if (*ifs_value == '\0') {\n      bVar3 = true;\n      bVar16 = 0;\n      bVar4 = false;\n      goto LAB_00070e59;\n    }\n    cVar11 = *ifs_value;\n    if (*ifs_value != '\0') {\n      pcVar15 = ifs_value;\n      if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');\n    }\n  }\n  bVar3 = false;\n  bVar16 = 0;\n  bVar4 = false;\nLAB_00070e59:\n  pbVar8 = (byte *)xmalloc(sVar7 * 2 + 1);\n  bVar10 = *string;\n  local_4c = pbVar8;\n  if (bVar10 != 0) {\n    __s = (byte *)string;\n    do {\n      while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }\n      __s = __s + 1;\n      *local_4c = bVar10;\n      local_4c = local_4c + 1;\n      bVar10 = *__s;\n    } while (bVar10 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return (char *)pbVar8;\n}" primitive_type (pointer_declarator "* __regparm3 quote_escapes_internal(char *string,int flags)" * (ERROR "__regparm3" identifier) (function_declarator "quote_escapes_internal(char *string,int flags)" identifier (parameter_list "(char *string,int flags)" ( (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) )))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  bool bVar3;\n  bool bVar4;\n  int iVar5;\n  anon_union_4_2_91654ee9_for___value aVar6;\n  size_t sVar7;\n  byte *pbVar8;\n  uint uVar9;\n  byte bVar10;\n  char cVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint uVar14;\n  char *pcVar15;\n  byte *__s;\n  byte bVar16;\n  byte *pbVar17;\n  byte *pbVar18;\n  int in_GS_OFFSET;\n  byte *local_4c;\n  mbstate_t state;\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  state.__count = 0;\n  state.__value.__wch = 0;\n  sVar7 = strlen(string);\n  if (ifs_value != (char *)0x0) {\n    if (*ifs_value == '\0') {\n      bVar3 = true;\n      bVar16 = 0;\n      bVar4 = false;\n      goto LAB_00070e59;\n    }\n    cVar11 = *ifs_value;\n    if (*ifs_value != '\0') {\n      pcVar15 = ifs_value;\n      if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');\n    }\n  }\n  bVar3 = false;\n  bVar16 = 0;\n  bVar4 = false;\nLAB_00070e59:\n  pbVar8 = (byte *)xmalloc(sVar7 * 2 + 1);\n  bVar10 = *string;\n  local_4c = pbVar8;\n  if (bVar10 != 0) {\n    __s = (byte *)string;\n    do {\n      while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }\n      __s = __s + 1;\n      *local_4c = bVar10;\n      local_4c = local_4c + 1;\n      bVar10 = *__s;\n    } while (bVar10 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return (char *)pbVar8;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "anon_union_4_2_91654ee9_for___value aVar6;" type_identifier identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "byte bVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "mbstate_t state;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "state.__count = 0;" (assignment_expression "state.__count = 0" (field_expression "state.__count" identifier . field_identifier) = number_literal) ;) (expression_statement "state.__value.__wch = 0;" (assignment_expression "state.__value.__wch = 0" (field_expression "state.__value.__wch" (field_expression "state.__value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "sVar7 = strlen(string);" (assignment_expression "sVar7 = strlen(string)" identifier = (call_expression "strlen(string)" identifier (argument_list "(string)" ( identifier )))) ;) (if_statement "if (ifs_value != (char *)0x0) {\n    if (*ifs_value == '\0') {\n      bVar3 = true;\n      bVar16 = 0;\n      bVar4 = false;\n      goto LAB_00070e59;\n    }\n    cVar11 = *ifs_value;\n    if (*ifs_value != '\0') {\n      pcVar15 = ifs_value;\n      if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');\n    }\n  }" if (parenthesized_expression "(ifs_value != (char *)0x0)" ( (binary_expression "ifs_value != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*ifs_value == '\0') {\n      bVar3 = true;\n      bVar16 = 0;\n      bVar4 = false;\n      goto LAB_00070e59;\n    }\n    cVar11 = *ifs_value;\n    if (*ifs_value != '\0') {\n      pcVar15 = ifs_value;\n      if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');\n    }\n  }" { (if_statement "if (*ifs_value == '\0') {\n      bVar3 = true;\n      bVar16 = 0;\n      bVar4 = false;\n      goto LAB_00070e59;\n    }" if (parenthesized_expression "(*ifs_value == '\0')" ( (binary_expression "*ifs_value == '\0'" (pointer_expression "*ifs_value" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar3 = true;\n      bVar16 = 0;\n      bVar4 = false;\n      goto LAB_00070e59;\n    }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (goto_statement "goto LAB_00070e59;" goto statement_identifier ;) })) (expression_statement "cVar11 = *ifs_value;" (assignment_expression "cVar11 = *ifs_value" identifier = (pointer_expression "*ifs_value" * identifier)) ;) (if_statement "if (*ifs_value != '\0') {\n      pcVar15 = ifs_value;\n      if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');\n    }" if (parenthesized_expression "(*ifs_value != '\0')" ( (binary_expression "*ifs_value != '\0'" (pointer_expression "*ifs_value" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar15 = ifs_value;\n      if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');\n    }" { (expression_statement "pcVar15 = ifs_value;" (assignment_expression "pcVar15 = ifs_value" identifier = identifier) ;) (if_statement "if (flags == 0) {\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }" if (parenthesized_expression "(flags == 0)" ( (binary_expression "flags == 0" identifier == number_literal) )) (compound_statement "{\n        bVar4 = false;\n        bVar16 = 0;\n        do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));\n        bVar3 = false;\n        goto LAB_00070e59;\n      }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        } while ((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'));" do (compound_statement "{\n          if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }\n          bVar4 = (bool)(bVar4 | cVar11 == '\x7f');\n          pcVar15 = pcVar15 + 1;\n        }" { (if_statement "if (cVar11 == '\x01') {\n            bVar16 = 1;\n          }" if (parenthesized_expression "(cVar11 == '\x01')" ( (binary_expression "cVar11 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            bVar16 = 1;\n          }" { (expression_statement "bVar16 = 1;" (assignment_expression "bVar16 = 1" identifier = number_literal) ;) })) (expression_statement "bVar4 = (bool)(bVar4 | cVar11 == '\x7f');" (assignment_expression "bVar4 = (bool)(bVar4 | cVar11 == '\x7f')" identifier = (cast_expression "(bool)(bVar4 | cVar11 == '\x7f')" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar4 | cVar11 == '\x7f')" ( (binary_expression "bVar4 | cVar11 == '\x7f'" identifier | (binary_expression "cVar11 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence '))) )))) ;) (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0'))" ( (binary_expression "(pcVar15 != (char *)0x0) && (cVar11 = *pcVar15, cVar11 != '\0')" (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar11 = *pcVar15, cVar11 != '\0')" ( (comma_expression "cVar11 = *pcVar15, cVar11 != '\0'" (assignment_expression "cVar11 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) , (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (goto_statement "goto LAB_00070e59;" goto statement_identifier ;) })) (do_statement "do {\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      } while (*pcVar15 != '\0');" do (compound_statement "{\n        pcVar15 = pcVar15 + 1;\n        if (pcVar15 == (char *)0x0) break;\n      }" { (expression_statement "pcVar15 = pcVar15 + 1;" (assignment_expression "pcVar15 = pcVar15 + 1" identifier = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar15 == (char *)0x0) break;" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(*pcVar15 != '\0')" ( (binary_expression "*pcVar15 != '\0'" (pointer_expression "*pcVar15" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (labeled_statement "LAB_00070e59:\n  pbVar8 = (byte *)xmalloc(sVar7 * 2 + 1);" statement_identifier : (expression_statement "pbVar8 = (byte *)xmalloc(sVar7 * 2 + 1);" (assignment_expression "pbVar8 = (byte *)xmalloc(sVar7 * 2 + 1)" identifier = (cast_expression "(byte *)xmalloc(sVar7 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 * 2 + 1)" identifier (argument_list "(sVar7 * 2 + 1)" ( (binary_expression "sVar7 * 2 + 1" (binary_expression "sVar7 * 2" identifier * number_literal) + number_literal) ))))) ;)) (expression_statement "bVar10 = *string;" (assignment_expression "bVar10 = *string" identifier = (pointer_expression "*string" * identifier)) ;) (expression_statement "local_4c = pbVar8;" (assignment_expression "local_4c = pbVar8" identifier = identifier) ;) (if_statement "if (bVar10 != 0) {\n    __s = (byte *)string;\n    do {\n      while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }\n      __s = __s + 1;\n      *local_4c = bVar10;\n      local_4c = local_4c + 1;\n      bVar10 = *__s;\n    } while (bVar10 != 0);\n  }" if (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) (compound_statement "{\n    __s = (byte *)string;\n    do {\n      while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }\n      __s = __s + 1;\n      *local_4c = bVar10;\n      local_4c = local_4c + 1;\n      bVar10 = *__s;\n    } while (bVar10 != 0);\n  }" { (expression_statement "__s = (byte *)string;" (assignment_expression "__s = (byte *)string" identifier = (cast_expression "(byte *)string" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }\n      __s = __s + 1;\n      *local_4c = bVar10;\n      local_4c = local_4c + 1;\n      bVar10 = *__s;\n    } while (bVar10 != 0);" do (compound_statement "{\n      while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }\n      __s = __s + 1;\n      *local_4c = bVar10;\n      local_4c = local_4c + 1;\n      bVar10 = *__s;\n    }" { (while_statement "while( true ) {\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        aVar6 = state.__value;\n        iVar5 = state.__count;\n        if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }\n        if (locale_mb_cur_max < 2) break;\n        if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }\n        __s = __s + uVar9;\n        bVar10 = *__s;\n        if (bVar10 == 0) goto LAB_00070f37;\n      }" { (expression_statement "aVar6 = state.__value;" (assignment_expression "aVar6 = state.__value" identifier = (field_expression "state.__value" identifier . field_identifier)) ;) (expression_statement "iVar5 = state.__count;" (assignment_expression "iVar5 = state.__count" identifier = (field_expression "state.__count" identifier . field_identifier)) ;) (if_statement "if (((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }" if (parenthesized_expression "(((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3))))" ( (binary_expression "((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))) ||\n           ((bVar10 == 0x20 && (bVar3)))" (parenthesized_expression "((((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4))))" ( (binary_expression "(((bool)(bVar16 ^ 1)) && (bVar10 == 1)) || ((bVar10 == 0x7f && (!bVar4)))" (parenthesized_expression "(((bool)(bVar16 ^ 1)) && (bVar10 == 1))" ( (binary_expression "((bool)(bVar16 ^ 1)) && (bVar10 == 1)" (parenthesized_expression "((bool)(bVar16 ^ 1))" ( (cast_expression "(bool)(bVar16 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar16 ^ 1)" ( (binary_expression "bVar16 ^ 1" identifier ^ number_literal) ))) )) && (parenthesized_expression "(bVar10 == 1)" ( (binary_expression "bVar10 == 1" identifier == number_literal) ))) )) || (parenthesized_expression "((bVar10 == 0x7f && (!bVar4)))" ( (parenthesized_expression "(bVar10 == 0x7f && (!bVar4))" ( (binary_expression "bVar10 == 0x7f && (!bVar4)" (binary_expression "bVar10 == 0x7f" identifier == number_literal) && (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) ))) )) ))) )) || (parenthesized_expression "((bVar10 == 0x20 && (bVar3)))" ( (parenthesized_expression "(bVar10 == 0x20 && (bVar3))" ( (binary_expression "bVar10 == 0x20 && (bVar3)" (binary_expression "bVar10 == 0x20" identifier == number_literal) && (parenthesized_expression "(bVar3)" ( identifier ))) )) ))) )) (compound_statement "{\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar10 = *__s;\n        }" { (expression_statement "*local_4c = 1;" (assignment_expression "*local_4c = 1" (pointer_expression "*local_4c" * identifier) = number_literal) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = *__s;" (assignment_expression "bVar10 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) })) (if_statement "if (locale_mb_cur_max < 2) break;" if (parenthesized_expression "(locale_mb_cur_max < 2)" ( (binary_expression "locale_mb_cur_max < 2" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0) {\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }" if (parenthesized_expression "(((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0)" ( (binary_expression "((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1) == 0" (parenthesized_expression "((uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1)" ( (binary_expression "(uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f) & 1" (binary_expression "(uint)(&is_basic_table)[bVar10 >> 5] >> (bVar10 & 0x1f)" (subscript_expression "(uint)(&is_basic_table)[bVar10 >> 5]" (call_expression "(uint)(&is_basic_table)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(&is_basic_table)" ( (pointer_expression "&is_basic_table" & identifier) ))) [ (binary_expression "bVar10 >> 5" identifier >> number_literal) ]) >> (parenthesized_expression "(bVar10 & 0x1f)" ( (binary_expression "bVar10 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }\n          iVar5 = state.__count;\n          aVar6 = state.__value;\n          if (uVar9 == 0) goto LAB_00070f01;\n          if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;\n          pbVar12 = local_4c;\n          pbVar13 = __s;\n          do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));\n          uVar14 = uVar9 & 0xfffffffc;\n          pbVar12 = local_4c + uVar14;\n          local_4c = local_4c + uVar9;\n          pbVar13 = __s + uVar14;\n          if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }\n        }" { (if_statement "if ((locale_utf8locale == 0) || ((char)bVar10 < '\0')) {\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }\n          else {\n            uVar9 = (uint)(bVar10 != 0);\n          }" if (parenthesized_expression "((locale_utf8locale == 0) || ((char)bVar10 < '\0'))" ( (binary_expression "(locale_utf8locale == 0) || ((char)bVar10 < '\0')" (parenthesized_expression "(locale_utf8locale == 0)" ( (binary_expression "locale_utf8locale == 0" identifier == number_literal) )) || (parenthesized_expression "((char)bVar10 < '\0')" ( (binary_expression "(char)bVar10 < '\0'" (cast_expression "(char)bVar10" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);\n            if (0xfffffffd < uVar9) goto LAB_00070f01;\n          }" { (expression_statement "uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state);" (assignment_expression "uVar9 = mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state)" identifier = (call_expression "mbrtowc((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state)" identifier (argument_list "((wchar_t *)0x0,(char *)__s,(size_t)(string + (sVar7 - (int)__s)),\n                            (mbstate_t *)&state)" ( (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(string + (sVar7 - (int)__s))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(string + (sVar7 - (int)__s))" ( (binary_expression "string + (sVar7 - (int)__s)" identifier + (parenthesized_expression "(sVar7 - (int)__s)" ( (binary_expression "sVar7 - (int)__s" identifier - (cast_expression "(int)__s" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (cast_expression "(mbstate_t *)&state" ( (type_descriptor "mbstate_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&state" & identifier)) )))) ;) (if_statement "if (0xfffffffd < uVar9) goto LAB_00070f01;" if (parenthesized_expression "(0xfffffffd < uVar9)" ( (binary_expression "0xfffffffd < uVar9" number_literal < identifier) )) (goto_statement "goto LAB_00070f01;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar9 = (uint)(bVar10 != 0);\n          }" else (compound_statement "{\n            uVar9 = (uint)(bVar10 != 0);\n          }" { (expression_statement "uVar9 = (uint)(bVar10 != 0);" (assignment_expression "uVar9 = (uint)(bVar10 != 0)" identifier = (call_expression "(uint)(bVar10 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )))) ;) }))) (expression_statement "iVar5 = state.__count;" (assignment_expression "iVar5 = state.__count" identifier = (field_expression "state.__count" identifier . field_identifier)) ;) (expression_statement "aVar6 = state.__value;" (assignment_expression "aVar6 = state.__value" identifier = (field_expression "state.__value" identifier . field_identifier)) ;) (if_statement "if (uVar9 == 0) goto LAB_00070f01;" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00070f01;" goto statement_identifier ;)) (if_statement "if ((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)) goto LAB_00070f06;" if (parenthesized_expression "((__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4))" ( (binary_expression "(__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)\n             || (uVar9 - 1 < 4)" (parenthesized_expression "(__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0)" ( (binary_expression "__s < local_4c + 4 && local_4c < __s + 4 || (((uint)local_4c | (uint)__s) & 3) != 0" (binary_expression "__s < local_4c + 4 && local_4c < __s + 4" (binary_expression "__s < local_4c + 4" identifier < (binary_expression "local_4c + 4" identifier + number_literal)) && (binary_expression "local_4c < __s + 4" identifier < (binary_expression "__s + 4" identifier + number_literal))) || (binary_expression "(((uint)local_4c | (uint)__s) & 3) != 0" (parenthesized_expression "(((uint)local_4c | (uint)__s) & 3)" ( (binary_expression "((uint)local_4c | (uint)__s) & 3" (parenthesized_expression "((uint)local_4c | (uint)__s)" ( (binary_expression "(uint)local_4c | (uint)__s" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)__s" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & number_literal) )) != number_literal)) )) || (parenthesized_expression "(uVar9 - 1 < 4)" ( (binary_expression "uVar9 - 1 < 4" (binary_expression "uVar9 - 1" identifier - number_literal) < number_literal) ))) )) (goto_statement "goto LAB_00070f06;" goto statement_identifier ;)) (expression_statement "pbVar12 = local_4c;" (assignment_expression "pbVar12 = local_4c" identifier = identifier) ;) (expression_statement "pbVar13 = __s;" (assignment_expression "pbVar13 = __s" identifier = identifier) ;) (do_statement "do {\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          } while (pbVar13 != __s + (uVar9 & 0xfffffffc));" do (compound_statement "{\n            uVar2 = *(undefined4 *)pbVar13;\n            pbVar13 = pbVar13 + 4;\n            *(undefined4 *)pbVar12 = uVar2;\n            pbVar12 = pbVar12 + 4;\n          }" { (expression_statement "uVar2 = *(undefined4 *)pbVar13;" (assignment_expression "uVar2 = *(undefined4 *)pbVar13" identifier = (pointer_expression "*(undefined4 *)pbVar13" * (cast_expression "(undefined4 *)pbVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar13 = pbVar13 + 4;" (assignment_expression "pbVar13 = pbVar13 + 4" identifier = (binary_expression "pbVar13 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar12 = uVar2;" (assignment_expression "*(undefined4 *)pbVar12 = uVar2" (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" identifier = (binary_expression "pbVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar13 != __s + (uVar9 & 0xfffffffc))" ( (binary_expression "pbVar13 != __s + (uVar9 & 0xfffffffc)" identifier != (binary_expression "__s + (uVar9 & 0xfffffffc)" identifier + (parenthesized_expression "(uVar9 & 0xfffffffc)" ( (binary_expression "uVar9 & 0xfffffffc" identifier & number_literal) )))) )) ;) (expression_statement "uVar14 = uVar9 & 0xfffffffc;" (assignment_expression "uVar14 = uVar9 & 0xfffffffc" identifier = (binary_expression "uVar9 & 0xfffffffc" identifier & number_literal)) ;) (expression_statement "pbVar12 = local_4c + uVar14;" (assignment_expression "pbVar12 = local_4c + uVar14" identifier = (binary_expression "local_4c + uVar14" identifier + identifier)) ;) (expression_statement "local_4c = local_4c + uVar9;" (assignment_expression "local_4c = local_4c + uVar9" identifier = (binary_expression "local_4c + uVar9" identifier + identifier)) ;) (expression_statement "pbVar13 = __s + uVar14;" (assignment_expression "pbVar13 = __s + uVar14" identifier = (binary_expression "__s + uVar14" identifier + identifier)) ;) (if_statement "if (((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)) {\n            pbVar12[2] = pbVar13[2];\n          }" if (parenthesized_expression "(((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9))" ( (binary_expression "((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)) &&\n             (pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)" (parenthesized_expression "((uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9))" ( (binary_expression "(uVar9 != uVar14) && (*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)" (parenthesized_expression "(uVar9 != uVar14)" ( (binary_expression "uVar9 != uVar14" identifier != identifier) )) && (parenthesized_expression "(*pbVar12 = *pbVar13, uVar14 + 1 < uVar9)" ( (comma_expression "*pbVar12 = *pbVar13, uVar14 + 1 < uVar9" (assignment_expression "*pbVar12 = *pbVar13" (pointer_expression "*pbVar12" * identifier) = (pointer_expression "*pbVar13" * identifier)) , (binary_expression "uVar14 + 1 < uVar9" (binary_expression "uVar14 + 1" identifier + number_literal) < identifier)) ))) )) && (parenthesized_expression "(pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9)" ( (comma_expression "pbVar12[1] = pbVar13[1], uVar14 + 2 < uVar9" (assignment_expression "pbVar12[1] = pbVar13[1]" (subscript_expression "pbVar12[1]" identifier [ number_literal ]) = (subscript_expression "pbVar13[1]" identifier [ number_literal ])) , (binary_expression "uVar14 + 2 < uVar9" (binary_expression "uVar14 + 2" identifier + number_literal) < identifier)) ))) )) (compound_statement "{\n            pbVar12[2] = pbVar13[2];\n          }" { (expression_statement "pbVar12[2] = pbVar13[2];" (assignment_expression "pbVar12[2] = pbVar13[2]" (subscript_expression "pbVar12[2]" identifier [ number_literal ]) = (subscript_expression "pbVar13[2]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }" else (compound_statement "{\nLAB_00070f01:\n          state.__value = aVar6;\n          state.__count = iVar5;\n          uVar9 = 1;\nLAB_00070f06:\n          pbVar12 = local_4c + uVar9;\n          pbVar13 = __s;\n          pbVar17 = local_4c;\n          do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);\n        }" { (labeled_statement "LAB_00070f01:\n          state.__value = aVar6;" statement_identifier : (expression_statement "state.__value = aVar6;" (assignment_expression "state.__value = aVar6" (field_expression "state.__value" identifier . field_identifier) = identifier) ;)) (expression_statement "state.__count = iVar5;" (assignment_expression "state.__count = iVar5" (field_expression "state.__count" identifier . field_identifier) = identifier) ;) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00070f06:\n          pbVar12 = local_4c + uVar9;" statement_identifier : (expression_statement "pbVar12 = local_4c + uVar9;" (assignment_expression "pbVar12 = local_4c + uVar9" identifier = (binary_expression "local_4c + uVar9" identifier + identifier)) ;)) (expression_statement "pbVar13 = __s;" (assignment_expression "pbVar13 = __s" identifier = identifier) ;) (expression_statement "pbVar17 = local_4c;" (assignment_expression "pbVar17 = local_4c" identifier = identifier) ;) (do_statement "do {\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          } while (pbVar18 != pbVar12);" do (compound_statement "{\n            bVar10 = *pbVar13;\n            pbVar18 = pbVar17 + 1;\n            pbVar13 = pbVar13 + 1;\n            *pbVar17 = bVar10;\n            pbVar17 = pbVar18;\n            local_4c = pbVar12;\n          }" { (expression_statement "bVar10 = *pbVar13;" (assignment_expression "bVar10 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (expression_statement "pbVar18 = pbVar17 + 1;" (assignment_expression "pbVar18 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar17 = bVar10;" (assignment_expression "*pbVar17 = bVar10" (pointer_expression "*pbVar17" * identifier) = identifier) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) (expression_statement "local_4c = pbVar12;" (assignment_expression "local_4c = pbVar12" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar18 != pbVar12)" ( (binary_expression "pbVar18 != pbVar12" identifier != identifier) )) ;) }))) (expression_statement "__s = __s + uVar9;" (assignment_expression "__s = __s + uVar9" identifier = (binary_expression "__s + uVar9" identifier + identifier)) ;) (expression_statement "bVar10 = *__s;" (assignment_expression "bVar10 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (if_statement "if (bVar10 == 0) goto LAB_00070f37;" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00070f37;" goto statement_identifier ;)) })) (expression_statement "__s = __s + 1;" (assignment_expression "__s = __s + 1" identifier = (binary_expression "__s + 1" identifier + number_literal)) ;) (expression_statement "*local_4c = bVar10;" (assignment_expression "*local_4c = bVar10" (pointer_expression "*local_4c" * identifier) = identifier) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "bVar10 = *__s;" (assignment_expression "bVar10 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) }) while (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00070f37:\n  *local_4c = 0;" statement_identifier : (expression_statement "*local_4c = 0;" (assignment_expression "*local_4c = 0" (pointer_expression "*local_4c" * identifier) = number_literal) ;)) (if_statement "if (iVar1 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar1 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return (char *)pbVar8;" return (cast_expression "(char *)pbVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })))
(translation_unit "byte * FUN_00070dd0(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}\n\n" (function_definition "byte * FUN_00070dd0(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}" type_identifier (pointer_declarator "* FUN_00070dd0(void)" * (function_declarator "FUN_00070dd0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "_union_54 _Var5;" type_identifier identifier ;) (declaration "byte *__s;" type_identifier (pointer_declarator "*__s" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte *__s_00;" type_identifier (pointer_declarator "*__s_00" * identifier) ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined8 uVar18;" type_identifier identifier ;) (declaration "byte *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "mbstate_t local_28;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar18 = FUN_00041277();" (assignment_expression "uVar18 = FUN_00041277()" identifier = (call_expression "FUN_00041277()" identifier (argument_list "()" ( )))) ;) (expression_statement "__s = (byte *)uVar18;" (assignment_expression "__s = (byte *)uVar18" identifier = (cast_expression "(byte *)uVar18" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_28.__count = 0;" (assignment_expression "local_28.__count = 0" (field_expression "local_28.__count" identifier . field_identifier) = number_literal) ;) (expression_statement "local_28.__value.__wch = 0;" (assignment_expression "local_28.__value.__wch = 0" (field_expression "local_28.__value.__wch" (field_expression "local_28.__value" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "sVar6 = strlen((char *)__s);" (assignment_expression "sVar6 = strlen((char *)__s)" identifier = (call_expression "strlen((char *)__s)" identifier (argument_list "((char *)__s)" ( (cast_expression "(char *)__s" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);" (assignment_expression "pcVar14 = *(char **)(unaff_EBP + 0x10e1d6)" identifier = (pointer_expression "*(char **)(unaff_EBP + 0x10e1d6)" * (cast_expression "(char **)(unaff_EBP + 0x10e1d6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBP + 0x10e1d6)" ( (binary_expression "unaff_EBP + 0x10e1d6" identifier + number_literal) ))))) ;) (if_statement "if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }" if (parenthesized_expression "(pcVar14 != (char *)0x0)" ( (binary_expression "pcVar14 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }" { (if_statement "if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }" if (parenthesized_expression "(*pcVar14 == '\0')" ( (binary_expression "*pcVar14 == '\0'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (goto_statement "goto LAB_00070e59;" goto statement_identifier ;) })) (expression_statement "cVar10 = *pcVar14;" (assignment_expression "cVar10 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) ;) (if_statement "if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }" if (parenthesized_expression "(*pcVar14 != '\0')" ( (binary_expression "*pcVar14 != '\0'" (pointer_expression "*pcVar14" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }" { (if_statement "if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }" if (parenthesized_expression "((int)((ulonglong)uVar18 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar18 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar18 >> 0x20)" ( (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));" do (compound_statement "{\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        }" { (if_statement "if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }" if (parenthesized_expression "(cVar10 == '\x01')" ( (binary_expression "cVar10 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            bVar15 = 1;\n          }" { (expression_statement "bVar15 = 1;" (assignment_expression "bVar15 = 1" identifier = number_literal) ;) })) (expression_statement "bVar3 = (bool)(bVar3 | cVar10 == '\x7f');" (assignment_expression "bVar3 = (bool)(bVar3 | cVar10 == '\x7f')" identifier = (cast_expression "(bool)(bVar3 | cVar10 == '\x7f')" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar3 | cVar10 == '\x7f')" ( (binary_expression "bVar3 | cVar10 == '\x7f'" identifier | (binary_expression "cVar10 == '\x7f'" identifier == (char_literal "'\x7f'" ' escape_sequence '))) )))) ;) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'))" ( (binary_expression "(pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0')" (parenthesized_expression "(pcVar14 != (char *)0x0)" ( (binary_expression "pcVar14 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(cVar10 = *pcVar14, cVar10 != '\0')" ( (comma_expression "cVar10 = *pcVar14, cVar10 != '\0'" (assignment_expression "cVar10 = *pcVar14" identifier = (pointer_expression "*pcVar14" * identifier)) , (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (goto_statement "goto LAB_00070e59;" goto statement_identifier ;) })) (do_statement "do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');" do (compound_statement "{\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      }" { (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar14 == (char *)0x0) break;" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(*pcVar14 != '\0')" ( (binary_expression "*pcVar14 != '\0'" (pointer_expression "*pcVar14" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (labeled_statement "LAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);" statement_identifier : (expression_statement "pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);" (assignment_expression "pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1)" identifier = (cast_expression "(byte *)xmalloc(sVar6 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar6 * 2 + 1)" identifier (argument_list "(sVar6 * 2 + 1)" ( (binary_expression "sVar6 * 2 + 1" (binary_expression "sVar6 * 2" identifier * number_literal) + number_literal) ))))) ;)) (expression_statement "bVar9 = *__s;" (assignment_expression "bVar9 = *__s" identifier = (pointer_expression "*__s" * identifier)) ;) (expression_statement "local_4c = pbVar7;" (assignment_expression "local_4c = pbVar7" identifier = identifier) ;) (if_statement "if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }" if (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }" { (expression_statement "__s_00 = __s;" (assignment_expression "__s_00 = __s" identifier = identifier) ;) (do_statement "do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);" do (compound_statement "{\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    }" { (while_statement "while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }" { (expression_statement "_Var5 = local_28.__value;" (assignment_expression "_Var5 = local_28.__value" identifier = (field_expression "local_28.__value" identifier . field_identifier)) ;) (expression_statement "iVar4 = local_28.__count;" (assignment_expression "iVar4 = local_28.__count" identifier = (field_expression "local_28.__count" identifier . field_identifier)) ;) (if_statement "if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }" if (parenthesized_expression "(((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2))))" ( (binary_expression "((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))" (parenthesized_expression "((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3))))" ( (binary_expression "(((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))" (parenthesized_expression "(((bool)(bVar15 ^ 1)) && (bVar9 == 1))" ( (binary_expression "((bool)(bVar15 ^ 1)) && (bVar9 == 1)" (parenthesized_expression "((bool)(bVar15 ^ 1))" ( (cast_expression "(bool)(bVar15 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar15 ^ 1)" ( (binary_expression "bVar15 ^ 1" identifier ^ number_literal) ))) )) && (parenthesized_expression "(bVar9 == 1)" ( (binary_expression "bVar9 == 1" identifier == number_literal) ))) )) || (parenthesized_expression "((bVar9 == 0x7f && (!bVar3)))" ( (parenthesized_expression "(bVar9 == 0x7f && (!bVar3))" ( (binary_expression "bVar9 == 0x7f && (!bVar3)" (binary_expression "bVar9 == 0x7f" identifier == number_literal) && (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) ))) )) ))) )) || (parenthesized_expression "((bVar9 == 0x20 && (bVar2)))" ( (parenthesized_expression "(bVar9 == 0x20 && (bVar2))" ( (binary_expression "bVar9 == 0x20 && (bVar2)" (binary_expression "bVar9 == 0x20" identifier == number_literal) && (parenthesized_expression "(bVar2)" ( identifier ))) )) ))) )) (compound_statement "{\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }" { (expression_statement "*local_4c = 1;" (assignment_expression "*local_4c = 1" (pointer_expression "*local_4c" * identifier) = number_literal) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" identifier = (pointer_expression "*__s_00" * identifier)) ;) })) (if_statement "if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;" if (parenthesized_expression "(*(int *)(unaff_EBP + 0x10e6da) < 2)" ( (binary_expression "*(int *)(unaff_EBP + 0x10e6da) < 2" (pointer_expression "*(int *)(unaff_EBP + 0x10e6da)" * (cast_expression "(int *)(unaff_EBP + 0x10e6da)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x10e6da)" ( (binary_expression "unaff_EBP + 0x10e6da" identifier + number_literal) )))) < number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" if (parenthesized_expression "((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0)" ( (binary_expression "(*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1)" ( (binary_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1" (binary_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f)" (pointer_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" * (cast_expression "(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" ( (binary_expression "unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4" (binary_expression "unaff_EBP + 0xb768a" identifier + number_literal) + (binary_expression "(uint)(bVar9 >> 5) * 4" (call_expression "(uint)(bVar9 >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar9 >> 5)" ( (binary_expression "bVar9 >> 5" identifier >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(bVar9 & 0x1f)" ( (binary_expression "bVar9 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }" { (if_statement "if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }" if (parenthesized_expression "((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0'))" ( (binary_expression "(*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')" (parenthesized_expression "(*(int *)(unaff_EBP + 0x10e6e2) == 0)" ( (binary_expression "*(int *)(unaff_EBP + 0x10e6e2) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x10e6e2)" * (cast_expression "(int *)(unaff_EBP + 0x10e6e2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x10e6e2)" ( (binary_expression "unaff_EBP + 0x10e6e2" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "((char)bVar9 < '\0')" ( (binary_expression "(char)bVar9 < '\0'" (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }" { (expression_statement "uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);" (assignment_expression "uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" identifier = (call_expression "mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" identifier (argument_list "((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" ( (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)__s_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(__s + (sVar6 - (int)__s_00))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(__s + (sVar6 - (int)__s_00))" ( (binary_expression "__s + (sVar6 - (int)__s_00)" identifier + (parenthesized_expression "(sVar6 - (int)__s_00)" ( (binary_expression "sVar6 - (int)__s_00" identifier - (cast_expression "(int)__s_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (0xfffffffd < uVar8) goto LAB_00070f01;" if (parenthesized_expression "(0xfffffffd < uVar8)" ( (binary_expression "0xfffffffd < uVar8" number_literal < identifier) )) (goto_statement "goto LAB_00070f01;" goto statement_identifier ;)) }) (else_clause "else {\n            uVar8 = (uint)(bVar9 != 0);\n          }" else (compound_statement "{\n            uVar8 = (uint)(bVar9 != 0);\n          }" { (expression_statement "uVar8 = (uint)(bVar9 != 0);" (assignment_expression "uVar8 = (uint)(bVar9 != 0)" identifier = (call_expression "(uint)(bVar9 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )))) ;) }))) (expression_statement "iVar4 = local_28.__count;" (assignment_expression "iVar4 = local_28.__count" identifier = (field_expression "local_28.__count" identifier . field_identifier)) ;) (expression_statement "_Var5 = local_28.__value;" (assignment_expression "_Var5 = local_28.__value" identifier = (field_expression "local_28.__value" identifier . field_identifier)) ;) (if_statement "if (uVar8 == 0) goto LAB_00070f01;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00070f01;" goto statement_identifier ;)) (if_statement "if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;" if (parenthesized_expression "((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4))" ( (binary_expression "(__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)" (parenthesized_expression "(__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0)" ( (binary_expression "__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0" (binary_expression "__s_00 < local_4c + 4 && local_4c < __s_00 + 4" (binary_expression "__s_00 < local_4c + 4" identifier < (binary_expression "local_4c + 4" identifier + number_literal)) && (binary_expression "local_4c < __s_00 + 4" identifier < (binary_expression "__s_00 + 4" identifier + number_literal))) || (binary_expression "(((uint)local_4c | (uint)__s_00) & 3) != 0" (parenthesized_expression "(((uint)local_4c | (uint)__s_00) & 3)" ( (binary_expression "((uint)local_4c | (uint)__s_00) & 3" (parenthesized_expression "((uint)local_4c | (uint)__s_00)" ( (binary_expression "(uint)local_4c | (uint)__s_00" (cast_expression "(uint)local_4c" ( (type_descriptor "uint" type_identifier) ) identifier) | (cast_expression "(uint)__s_00" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & number_literal) )) != number_literal)) )) || (parenthesized_expression "(uVar8 - 1 < 4)" ( (binary_expression "uVar8 - 1 < 4" (binary_expression "uVar8 - 1" identifier - number_literal) < number_literal) ))) )) (goto_statement "goto LAB_00070f06;" goto statement_identifier ;)) (expression_statement "pbVar11 = local_4c;" (assignment_expression "pbVar11 = local_4c" identifier = identifier) ;) (expression_statement "pbVar12 = __s_00;" (assignment_expression "pbVar12 = __s_00" identifier = identifier) ;) (do_statement "do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));" do (compound_statement "{\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          }" { (expression_statement "uVar1 = *(undefined4 *)pbVar12;" (assignment_expression "uVar1 = *(undefined4 *)pbVar12" identifier = (pointer_expression "*(undefined4 *)pbVar12" * (cast_expression "(undefined4 *)pbVar12" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" identifier = (binary_expression "pbVar12 + 4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)pbVar11 = uVar1;" (assignment_expression "*(undefined4 *)pbVar11 = uVar1" (pointer_expression "*(undefined4 *)pbVar11" * (cast_expression "(undefined4 *)pbVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pbVar11 = pbVar11 + 4;" (assignment_expression "pbVar11 = pbVar11 + 4" identifier = (binary_expression "pbVar11 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar12 != __s_00 + (uVar8 & 0xfffffffc))" ( (binary_expression "pbVar12 != __s_00 + (uVar8 & 0xfffffffc)" identifier != (binary_expression "__s_00 + (uVar8 & 0xfffffffc)" identifier + (parenthesized_expression "(uVar8 & 0xfffffffc)" ( (binary_expression "uVar8 & 0xfffffffc" identifier & number_literal) )))) )) ;) (expression_statement "uVar13 = uVar8 & 0xfffffffc;" (assignment_expression "uVar13 = uVar8 & 0xfffffffc" identifier = (binary_expression "uVar8 & 0xfffffffc" identifier & number_literal)) ;) (expression_statement "pbVar11 = local_4c + uVar13;" (assignment_expression "pbVar11 = local_4c + uVar13" identifier = (binary_expression "local_4c + uVar13" identifier + identifier)) ;) (expression_statement "local_4c = local_4c + uVar8;" (assignment_expression "local_4c = local_4c + uVar8" identifier = (binary_expression "local_4c + uVar8" identifier + identifier)) ;) (expression_statement "pbVar12 = __s_00 + uVar13;" (assignment_expression "pbVar12 = __s_00 + uVar13" identifier = (binary_expression "__s_00 + uVar13" identifier + identifier)) ;) (if_statement "if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }" if (parenthesized_expression "(((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8))" ( (binary_expression "((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)" (parenthesized_expression "((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8))" ( (binary_expression "(uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)" (parenthesized_expression "(uVar8 != uVar13)" ( (binary_expression "uVar8 != uVar13" identifier != identifier) )) && (parenthesized_expression "(*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)" ( (comma_expression "*pbVar11 = *pbVar12, uVar13 + 1 < uVar8" (assignment_expression "*pbVar11 = *pbVar12" (pointer_expression "*pbVar11" * identifier) = (pointer_expression "*pbVar12" * identifier)) , (binary_expression "uVar13 + 1 < uVar8" (binary_expression "uVar13 + 1" identifier + number_literal) < identifier)) ))) )) && (parenthesized_expression "(pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)" ( (comma_expression "pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8" (assignment_expression "pbVar11[1] = pbVar12[1]" (subscript_expression "pbVar11[1]" identifier [ number_literal ]) = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) , (binary_expression "uVar13 + 2 < uVar8" (binary_expression "uVar13 + 2" identifier + number_literal) < identifier)) ))) )) (compound_statement "{\n            pbVar11[2] = pbVar12[2];\n          }" { (expression_statement "pbVar11[2] = pbVar12[2];" (assignment_expression "pbVar11[2] = pbVar12[2]" (subscript_expression "pbVar11[2]" identifier [ number_literal ]) = (subscript_expression "pbVar12[2]" identifier [ number_literal ])) ;) })) }) (else_clause "else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" else (compound_statement "{\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" { (labeled_statement "LAB_00070f01:\n          local_28.__value = _Var5;" statement_identifier : (expression_statement "local_28.__value = _Var5;" (assignment_expression "local_28.__value = _Var5" (field_expression "local_28.__value" identifier . field_identifier) = identifier) ;)) (expression_statement "local_28.__count = iVar4;" (assignment_expression "local_28.__count = iVar4" (field_expression "local_28.__count" identifier . field_identifier) = identifier) ;) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00070f06:\n          pbVar11 = local_4c + uVar8;" statement_identifier : (expression_statement "pbVar11 = local_4c + uVar8;" (assignment_expression "pbVar11 = local_4c + uVar8" identifier = (binary_expression "local_4c + uVar8" identifier + identifier)) ;)) (expression_statement "pbVar12 = __s_00;" (assignment_expression "pbVar12 = __s_00" identifier = identifier) ;) (expression_statement "pbVar16 = local_4c;" (assignment_expression "pbVar16 = local_4c" identifier = identifier) ;) (do_statement "do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);" do (compound_statement "{\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          }" { (expression_statement "bVar9 = *pbVar12;" (assignment_expression "bVar9 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (expression_statement "pbVar17 = pbVar16 + 1;" (assignment_expression "pbVar17 = pbVar16 + 1" identifier = (binary_expression "pbVar16 + 1" identifier + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar16 = bVar9;" (assignment_expression "*pbVar16 = bVar9" (pointer_expression "*pbVar16" * identifier) = identifier) ;) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" identifier = identifier) ;) (expression_statement "local_4c = pbVar11;" (assignment_expression "local_4c = pbVar11" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar17 != pbVar11)" ( (binary_expression "pbVar17 != pbVar11" identifier != identifier) )) ;) }))) (expression_statement "__s_00 = __s_00 + uVar8;" (assignment_expression "__s_00 = __s_00 + uVar8" identifier = (binary_expression "__s_00 + uVar8" identifier + identifier)) ;) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" identifier = (pointer_expression "*__s_00" * identifier)) ;) (if_statement "if (bVar9 == 0) goto LAB_00070f37;" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00070f37;" goto statement_identifier ;)) })) (expression_statement "__s_00 = __s_00 + 1;" (assignment_expression "__s_00 = __s_00 + 1" identifier = (binary_expression "__s_00 + 1" identifier + number_literal)) ;) (expression_statement "*local_4c = bVar9;" (assignment_expression "*local_4c = bVar9" (pointer_expression "*local_4c" * identifier) = identifier) ;) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" identifier = (binary_expression "local_4c + 1" identifier + number_literal)) ;) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" identifier = (pointer_expression "*__s_00" * identifier)) ;) }) while (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00070f37:\n  *local_4c = 0;" statement_identifier : (expression_statement "*local_4c = 0;" (assignment_expression "*local_4c = 0" (pointer_expression "*local_4c" * identifier) = number_literal) ;)) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0010f8b0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0010f8b0();\n  }" { (expression_statement "FUN_0010f8b0();" (call_expression "FUN_0010f8b0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return pbVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT | (binary_expression IDENT == (char_literal ' escape_sequence '))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) ;) })) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT * LIT) + LIT) ))))) ;)) (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 = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( IDENT ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) * LIT)) )))) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ))) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT < (binary_expression IDENT + LIT)) && (binary_expression IDENT < (binary_expression IDENT + LIT))) || (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) & LIT) )) != LIT)) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT & LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) , (binary_expression (binary_expression IDENT + LIT) < IDENT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) , (binary_expression (binary_expression IDENT + LIT) < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "byte * FUN_00070dd0(void)\n\n{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}" (type_identifier "byte") (pointer_declarator "* FUN_00070dd0(void)" (* "*") (function_declarator "FUN_00070dd0(void)" (identifier "FUN_00070dd0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")")))) (compound_statement "{\n  undefined4 uVar1;\n  bool bVar2;\n  bool bVar3;\n  int iVar4;\n  _union_54 _Var5;\n  byte *__s;\n  size_t sVar6;\n  byte *pbVar7;\n  uint uVar8;\n  byte bVar9;\n  char cVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  uint uVar13;\n  char *pcVar14;\n  int unaff_EBP;\n  byte *__s_00;\n  byte bVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  int in_GS_OFFSET;\n  undefined8 uVar18;\n  byte *local_4c;\n  mbstate_t local_28;\n  int local_20;\n  \n  uVar18 = FUN_00041277();\n  __s = (byte *)uVar18;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28.__count = 0;\n  local_28.__value.__wch = 0;\n  sVar6 = strlen((char *)__s);\n  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);\n  if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }\n  bVar2 = false;\n  bVar15 = 0;\n  bVar3 = false;\nLAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);\n  bVar9 = *__s;\n  local_4c = pbVar7;\n  if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }\nLAB_00070f37:\n  *local_4c = 0;\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0010f8b0();\n  }\n  return pbVar7;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "_union_54 _Var5;" (type_identifier "_union_54") (identifier "_Var5") (; ";")) (declaration "byte *__s;" (type_identifier "byte") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "char *pcVar14;" (primitive_type "char") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "byte *__s_00;" (type_identifier "byte") (pointer_declarator "*__s_00" (* "*") (identifier "__s_00")) (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined8 uVar18;" (type_identifier "undefined8") (identifier "uVar18") (; ";")) (declaration "byte *local_4c;" (type_identifier "byte") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "mbstate_t local_28;" (type_identifier "mbstate_t") (identifier "local_28") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "uVar18 = FUN_00041277();" (assignment_expression "uVar18 = FUN_00041277()" (identifier "uVar18") (= "=") (call_expression "FUN_00041277()" (identifier "FUN_00041277") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "__s = (byte *)uVar18;" (assignment_expression "__s = (byte *)uVar18" (identifier "__s") (= "=") (cast_expression "(byte *)uVar18" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar18"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_28.__count = 0;" (assignment_expression "local_28.__count = 0" (field_expression "local_28.__count" (identifier "local_28") (. ".") (field_identifier "__count")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_28.__value.__wch = 0;" (assignment_expression "local_28.__value.__wch = 0" (field_expression "local_28.__value.__wch" (field_expression "local_28.__value" (identifier "local_28") (. ".") (field_identifier "__value")) (. ".") (field_identifier "__wch")) (= "=") (number_literal "0")) (; ";")) (expression_statement "sVar6 = strlen((char *)__s);" (assignment_expression "sVar6 = strlen((char *)__s)" (identifier "sVar6") (= "=") (call_expression "strlen((char *)__s)" (identifier "strlen") (argument_list "((char *)__s)" (( "(") (cast_expression "(char *)__s" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s")) () ")")))) (; ";")) (expression_statement "pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);" (assignment_expression "pcVar14 = *(char **)(unaff_EBP + 0x10e1d6)" (identifier "pcVar14") (= "=") (pointer_expression "*(char **)(unaff_EBP + 0x10e1d6)" (* "*") (cast_expression "(char **)(unaff_EBP + 0x10e1d6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBP + 0x10e1d6)" (( "(") (binary_expression "unaff_EBP + 0x10e1d6" (identifier "unaff_EBP") (+ "+") (number_literal "0x10e1d6")) () ")"))))) (; ";")) (if_statement "if (pcVar14 != (char *)0x0) {\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }" (if "if") (parenthesized_expression "(pcVar14 != (char *)0x0)" (( "(") (binary_expression "pcVar14 != (char *)0x0" (identifier "pcVar14") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }\n    cVar10 = *pcVar14;\n    if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }\n  }" ({ "{") (if_statement "if (*pcVar14 == '\0') {\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }" (if "if") (parenthesized_expression "(*pcVar14 == '\0')" (( "(") (binary_expression "*pcVar14 == '\0'" (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      bVar2 = true;\n      bVar15 = 0;\n      bVar3 = false;\n      goto LAB_00070e59;\n    }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_00070e59;" (goto "goto") (statement_identifier "LAB_00070e59") (; ";")) (} "}"))) (expression_statement "cVar10 = *pcVar14;" (assignment_expression "cVar10 = *pcVar14" (identifier "cVar10") (= "=") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14"))) (; ";")) (if_statement "if (*pcVar14 != '\0') {\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }" (if "if") (parenthesized_expression "(*pcVar14 != '\0')" (( "(") (binary_expression "*pcVar14 != '\0'" (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }\n      do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');\n    }" ({ "{") (if_statement "if ((int)((ulonglong)uVar18 >> 0x20) == 0) {\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar18 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar18 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar18 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar18 >> 0x20" (cast_expression "(ulonglong)uVar18" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar3 = false;\n        bVar15 = 0;\n        do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));\n        bVar2 = false;\n        goto LAB_00070e59;\n      }" ({ "{") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));" (do "do") (compound_statement "{\n          if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }\n          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');\n          pcVar14 = pcVar14 + 1;\n        }" ({ "{") (if_statement "if (cVar10 == '\x01') {\n            bVar15 = 1;\n          }" (if "if") (parenthesized_expression "(cVar10 == '\x01')" (( "(") (binary_expression "cVar10 == '\x01'" (identifier "cVar10") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n            bVar15 = 1;\n          }" ({ "{") (expression_statement "bVar15 = 1;" (assignment_expression "bVar15 = 1" (identifier "bVar15") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "bVar3 = (bool)(bVar3 | cVar10 == '\x7f');" (assignment_expression "bVar3 = (bool)(bVar3 | cVar10 == '\x7f')" (identifier "bVar3") (= "=") (cast_expression "(bool)(bVar3 | cVar10 == '\x7f')" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar3 | cVar10 == '\x7f')" (( "(") (binary_expression "bVar3 | cVar10 == '\x7f'" (identifier "bVar3") (| "|") (binary_expression "cVar10 == '\x7f'" (identifier "cVar10") (== "==") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'")))) () ")")))) (; ";")) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'))" (( "(") (binary_expression "(pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0')" (parenthesized_expression "(pcVar14 != (char *)0x0)" (( "(") (binary_expression "pcVar14 != (char *)0x0" (identifier "pcVar14") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(cVar10 = *pcVar14, cVar10 != '\0')" (( "(") (comma_expression "cVar10 = *pcVar14, cVar10 != '\0'" (assignment_expression "cVar10 = *pcVar14" (identifier "cVar10") (= "=") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14"))) (, ",") (binary_expression "cVar10 != '\0'" (identifier "cVar10") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_00070e59;" (goto "goto") (statement_identifier "LAB_00070e59") (; ";")) (} "}"))) (do_statement "do {\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      } while (*pcVar14 != '\0');" (do "do") (compound_statement "{\n        pcVar14 = pcVar14 + 1;\n        if (pcVar14 == (char *)0x0) break;\n      }" ({ "{") (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" (identifier "pcVar14") (= "=") (binary_expression "pcVar14 + 1" (identifier "pcVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pcVar14 == (char *)0x0) break;" (if "if") (parenthesized_expression "(pcVar14 == (char *)0x0)" (( "(") (binary_expression "pcVar14 == (char *)0x0" (identifier "pcVar14") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*pcVar14 != '\0')" (( "(") (binary_expression "*pcVar14 != '\0'" (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_00070e59:\n  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);" (statement_identifier "LAB_00070e59") (: ":") (expression_statement "pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);" (assignment_expression "pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)xmalloc(sVar6 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar6 * 2 + 1)" (identifier "xmalloc") (argument_list "(sVar6 * 2 + 1)" (( "(") (binary_expression "sVar6 * 2 + 1" (binary_expression "sVar6 * 2" (identifier "sVar6") (* "*") (number_literal "2")) (+ "+") (number_literal "1")) () ")"))))) (; ";"))) (expression_statement "bVar9 = *__s;" (assignment_expression "bVar9 = *__s" (identifier "bVar9") (= "=") (pointer_expression "*__s" (* "*") (identifier "__s"))) (; ";")) (expression_statement "local_4c = pbVar7;" (assignment_expression "local_4c = pbVar7" (identifier "local_4c") (= "=") (identifier "pbVar7")) (; ";")) (if_statement "if (bVar9 != 0) {\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }" (if "if") (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    __s_00 = __s;\n    do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);\n  }" ({ "{") (expression_statement "__s_00 = __s;" (assignment_expression "__s_00 = __s" (identifier "__s_00") (= "=") (identifier "__s")) (; ";")) (do_statement "do {\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    } while (bVar9 != 0);" (do "do") (compound_statement "{\n      while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }\n      __s_00 = __s_00 + 1;\n      *local_4c = bVar9;\n      local_4c = local_4c + 1;\n      bVar9 = *__s_00;\n    }" ({ "{") (while_statement "while( true ) {\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        _Var5 = local_28.__value;\n        iVar4 = local_28.__count;\n        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }\n        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;\n        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }\n        __s_00 = __s_00 + uVar8;\n        bVar9 = *__s_00;\n        if (bVar9 == 0) goto LAB_00070f37;\n      }" ({ "{") (expression_statement "_Var5 = local_28.__value;" (assignment_expression "_Var5 = local_28.__value" (identifier "_Var5") (= "=") (field_expression "local_28.__value" (identifier "local_28") (. ".") (field_identifier "__value"))) (; ";")) (expression_statement "iVar4 = local_28.__count;" (assignment_expression "iVar4 = local_28.__count" (identifier "iVar4") (= "=") (field_expression "local_28.__count" (identifier "local_28") (. ".") (field_identifier "__count"))) (; ";")) (if_statement "if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))) {\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }" (if "if") (parenthesized_expression "(((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2))))" (( "(") (binary_expression "((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||\n           ((bVar9 == 0x20 && (bVar2)))" (parenthesized_expression "((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3))))" (( "(") (binary_expression "(((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))" (parenthesized_expression "(((bool)(bVar15 ^ 1)) && (bVar9 == 1))" (( "(") (binary_expression "((bool)(bVar15 ^ 1)) && (bVar9 == 1)" (parenthesized_expression "((bool)(bVar15 ^ 1))" (( "(") (cast_expression "(bool)(bVar15 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar15 ^ 1)" (( "(") (binary_expression "bVar15 ^ 1" (identifier "bVar15") (^ "^") (number_literal "1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(bVar9 == 1)" (( "(") (binary_expression "bVar9 == 1" (identifier "bVar9") (== "==") (number_literal "1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((bVar9 == 0x7f && (!bVar3)))" (( "(") (parenthesized_expression "(bVar9 == 0x7f && (!bVar3))" (( "(") (binary_expression "bVar9 == 0x7f && (!bVar3)" (binary_expression "bVar9 == 0x7f" (identifier "bVar9") (== "==") (number_literal "0x7f")) (&& "&&") (parenthesized_expression "(!bVar3)" (( "(") (unary_expression "!bVar3" (! "!") (identifier "bVar3")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((bVar9 == 0x20 && (bVar2)))" (( "(") (parenthesized_expression "(bVar9 == 0x20 && (bVar2))" (( "(") (binary_expression "bVar9 == 0x20 && (bVar2)" (binary_expression "bVar9 == 0x20" (identifier "bVar9") (== "==") (number_literal "0x20")) (&& "&&") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          *local_4c = 1;\n          local_4c = local_4c + 1;\n          bVar9 = *__s_00;\n        }" ({ "{") (expression_statement "*local_4c = 1;" (assignment_expression "*local_4c = 1" (pointer_expression "*local_4c" (* "*") (identifier "local_4c")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" (identifier "local_4c") (= "=") (binary_expression "local_4c + 1" (identifier "local_4c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" (identifier "bVar9") (= "=") (pointer_expression "*__s_00" (* "*") (identifier "__s_00"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;" (if "if") (parenthesized_expression "(*(int *)(unaff_EBP + 0x10e6da) < 2)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x10e6da) < 2" (pointer_expression "*(int *)(unaff_EBP + 0x10e6da)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x10e6da)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x10e6da)" (( "(") (binary_expression "unaff_EBP + 0x10e6da" (identifier "unaff_EBP") (+ "+") (number_literal "0x10e6da")) () ")")))) (< "<") (number_literal "2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }\n        else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" (if "if") (parenthesized_expression "((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0" (parenthesized_expression "(*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1)" (( "(") (binary_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1" (binary_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f)" (pointer_expression "*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" (* "*") (cast_expression "(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4)" (( "(") (binary_expression "unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4" (binary_expression "unaff_EBP + 0xb768a" (identifier "unaff_EBP") (+ "+") (number_literal "0xb768a")) (+ "+") (binary_expression "(uint)(bVar9 >> 5) * 4" (call_expression "(uint)(bVar9 >> 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar9 >> 5)" (( "(") (binary_expression "bVar9 >> 5" (identifier "bVar9") (>> ">>") (number_literal "5")) () ")"))) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "(bVar9 & 0x1f)" (( "(") (binary_expression "bVar9 & 0x1f" (identifier "bVar9") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }\n          iVar4 = local_28.__count;\n          _Var5 = local_28.__value;\n          if (uVar8 == 0) goto LAB_00070f01;\n          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;\n          pbVar11 = local_4c;\n          pbVar12 = __s_00;\n          do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));\n          uVar13 = uVar8 & 0xfffffffc;\n          pbVar11 = local_4c + uVar13;\n          local_4c = local_4c + uVar8;\n          pbVar12 = __s_00 + uVar13;\n          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }\n        }" ({ "{") (if_statement "if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }\n          else {\n            uVar8 = (uint)(bVar9 != 0);\n          }" (if "if") (parenthesized_expression "((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0'))" (( "(") (binary_expression "(*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')" (parenthesized_expression "(*(int *)(unaff_EBP + 0x10e6e2) == 0)" (( "(") (binary_expression "*(int *)(unaff_EBP + 0x10e6e2) == 0" (pointer_expression "*(int *)(unaff_EBP + 0x10e6e2)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x10e6e2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x10e6e2)" (( "(") (binary_expression "unaff_EBP + 0x10e6e2" (identifier "unaff_EBP") (+ "+") (number_literal "0x10e6e2")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((char)bVar9 < '\0')" (( "(") (binary_expression "(char)bVar9 < '\0'" (cast_expression "(char)bVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar9")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);\n            if (0xfffffffd < uVar8) goto LAB_00070f01;\n          }" ({ "{") (expression_statement "uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28);" (assignment_expression "uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" (identifier "uVar8") (= "=") (call_expression "mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" (identifier "mbrtowc") (argument_list "((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),\n                            &local_28)" (( "(") (cast_expression "(wchar_t *)0x0" (( "(") (type_descriptor "wchar_t *" (type_identifier "wchar_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(char *)__s_00" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "__s_00")) (, ",") (cast_expression "(size_t)(__s + (sVar6 - (int)__s_00))" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (parenthesized_expression "(__s + (sVar6 - (int)__s_00))" (( "(") (binary_expression "__s + (sVar6 - (int)__s_00)" (identifier "__s") (+ "+") (parenthesized_expression "(sVar6 - (int)__s_00)" (( "(") (binary_expression "sVar6 - (int)__s_00" (identifier "sVar6") (- "-") (cast_expression "(int)__s_00" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__s_00"))) () ")"))) () ")"))) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if (0xfffffffd < uVar8) goto LAB_00070f01;" (if "if") (parenthesized_expression "(0xfffffffd < uVar8)" (( "(") (binary_expression "0xfffffffd < uVar8" (number_literal "0xfffffffd") (< "<") (identifier "uVar8")) () ")")) (goto_statement "goto LAB_00070f01;" (goto "goto") (statement_identifier "LAB_00070f01") (; ";"))) (} "}")) (else_clause "else {\n            uVar8 = (uint)(bVar9 != 0);\n          }" (else "else") (compound_statement "{\n            uVar8 = (uint)(bVar9 != 0);\n          }" ({ "{") (expression_statement "uVar8 = (uint)(bVar9 != 0);" (assignment_expression "uVar8 = (uint)(bVar9 != 0)" (identifier "uVar8") (= "=") (call_expression "(uint)(bVar9 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")))) (expression_statement "iVar4 = local_28.__count;" (assignment_expression "iVar4 = local_28.__count" (identifier "iVar4") (= "=") (field_expression "local_28.__count" (identifier "local_28") (. ".") (field_identifier "__count"))) (; ";")) (expression_statement "_Var5 = local_28.__value;" (assignment_expression "_Var5 = local_28.__value" (identifier "_Var5") (= "=") (field_expression "local_28.__value" (identifier "local_28") (. ".") (field_identifier "__value"))) (; ";")) (if_statement "if (uVar8 == 0) goto LAB_00070f01;" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00070f01;" (goto "goto") (statement_identifier "LAB_00070f01") (; ";"))) (if_statement "if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;" (if "if") (parenthesized_expression "((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4))" (( "(") (binary_expression "(__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)" (parenthesized_expression "(__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0)" (( "(") (binary_expression "__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||\n               (((uint)local_4c | (uint)__s_00) & 3) != 0" (binary_expression "__s_00 < local_4c + 4 && local_4c < __s_00 + 4" (binary_expression "__s_00 < local_4c + 4" (identifier "__s_00") (< "<") (binary_expression "local_4c + 4" (identifier "local_4c") (+ "+") (number_literal "4"))) (&& "&&") (binary_expression "local_4c < __s_00 + 4" (identifier "local_4c") (< "<") (binary_expression "__s_00 + 4" (identifier "__s_00") (+ "+") (number_literal "4")))) (|| "||") (binary_expression "(((uint)local_4c | (uint)__s_00) & 3) != 0" (parenthesized_expression "(((uint)local_4c | (uint)__s_00) & 3)" (( "(") (binary_expression "((uint)local_4c | (uint)__s_00) & 3" (parenthesized_expression "((uint)local_4c | (uint)__s_00)" (( "(") (binary_expression "(uint)local_4c | (uint)__s_00" (cast_expression "(uint)local_4c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_4c")) (| "|") (cast_expression "(uint)__s_00" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "__s_00"))) () ")")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(uVar8 - 1 < 4)" (( "(") (binary_expression "uVar8 - 1 < 4" (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1")) (< "<") (number_literal "4")) () ")"))) () ")")) (goto_statement "goto LAB_00070f06;" (goto "goto") (statement_identifier "LAB_00070f06") (; ";"))) (expression_statement "pbVar11 = local_4c;" (assignment_expression "pbVar11 = local_4c" (identifier "pbVar11") (= "=") (identifier "local_4c")) (; ";")) (expression_statement "pbVar12 = __s_00;" (assignment_expression "pbVar12 = __s_00" (identifier "pbVar12") (= "=") (identifier "__s_00")) (; ";")) (do_statement "do {\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));" (do "do") (compound_statement "{\n            uVar1 = *(undefined4 *)pbVar12;\n            pbVar12 = pbVar12 + 4;\n            *(undefined4 *)pbVar11 = uVar1;\n            pbVar11 = pbVar11 + 4;\n          }" ({ "{") (expression_statement "uVar1 = *(undefined4 *)pbVar12;" (assignment_expression "uVar1 = *(undefined4 *)pbVar12" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)pbVar12" (* "*") (cast_expression "(undefined4 *)pbVar12" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 4;" (assignment_expression "pbVar12 = pbVar12 + 4" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 4" (identifier "pbVar12") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(undefined4 *)pbVar11 = uVar1;" (assignment_expression "*(undefined4 *)pbVar11 = uVar1" (pointer_expression "*(undefined4 *)pbVar11" (* "*") (cast_expression "(undefined4 *)pbVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar11"))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "pbVar11 = pbVar11 + 4;" (assignment_expression "pbVar11 = pbVar11 + 4" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + 4" (identifier "pbVar11") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar12 != __s_00 + (uVar8 & 0xfffffffc))" (( "(") (binary_expression "pbVar12 != __s_00 + (uVar8 & 0xfffffffc)" (identifier "pbVar12") (!= "!=") (binary_expression "__s_00 + (uVar8 & 0xfffffffc)" (identifier "__s_00") (+ "+") (parenthesized_expression "(uVar8 & 0xfffffffc)" (( "(") (binary_expression "uVar8 & 0xfffffffc" (identifier "uVar8") (& "&") (number_literal "0xfffffffc")) () ")")))) () ")")) (; ";")) (expression_statement "uVar13 = uVar8 & 0xfffffffc;" (assignment_expression "uVar13 = uVar8 & 0xfffffffc" (identifier "uVar13") (= "=") (binary_expression "uVar8 & 0xfffffffc" (identifier "uVar8") (& "&") (number_literal "0xfffffffc"))) (; ";")) (expression_statement "pbVar11 = local_4c + uVar13;" (assignment_expression "pbVar11 = local_4c + uVar13" (identifier "pbVar11") (= "=") (binary_expression "local_4c + uVar13" (identifier "local_4c") (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "local_4c = local_4c + uVar8;" (assignment_expression "local_4c = local_4c + uVar8" (identifier "local_4c") (= "=") (binary_expression "local_4c + uVar8" (identifier "local_4c") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "pbVar12 = __s_00 + uVar13;" (assignment_expression "pbVar12 = __s_00 + uVar13" (identifier "pbVar12") (= "=") (binary_expression "__s_00 + uVar13" (identifier "__s_00") (+ "+") (identifier "uVar13"))) (; ";")) (if_statement "if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {\n            pbVar11[2] = pbVar12[2];\n          }" (if "if") (parenthesized_expression "(((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8))" (( "(") (binary_expression "((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&\n             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)" (parenthesized_expression "((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8))" (( "(") (binary_expression "(uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)" (parenthesized_expression "(uVar8 != uVar13)" (( "(") (binary_expression "uVar8 != uVar13" (identifier "uVar8") (!= "!=") (identifier "uVar13")) () ")")) (&& "&&") (parenthesized_expression "(*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)" (( "(") (comma_expression "*pbVar11 = *pbVar12, uVar13 + 1 < uVar8" (assignment_expression "*pbVar11 = *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (, ",") (binary_expression "uVar13 + 1 < uVar8" (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1")) (< "<") (identifier "uVar8"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)" (( "(") (comma_expression "pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8" (assignment_expression "pbVar11[1] = pbVar12[1]" (subscript_expression "pbVar11[1]" (identifier "pbVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]"))) (, ",") (binary_expression "uVar13 + 2 < uVar8" (binary_expression "uVar13 + 2" (identifier "uVar13") (+ "+") (number_literal "2")) (< "<") (identifier "uVar8"))) () ")"))) () ")")) (compound_statement "{\n            pbVar11[2] = pbVar12[2];\n          }" ({ "{") (expression_statement "pbVar11[2] = pbVar12[2];" (assignment_expression "pbVar11[2] = pbVar12[2]" (subscript_expression "pbVar11[2]" (identifier "pbVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "pbVar12[2]" (identifier "pbVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" (else "else") (compound_statement "{\nLAB_00070f01:\n          local_28.__value = _Var5;\n          local_28.__count = iVar4;\n          uVar8 = 1;\nLAB_00070f06:\n          pbVar11 = local_4c + uVar8;\n          pbVar12 = __s_00;\n          pbVar16 = local_4c;\n          do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);\n        }" ({ "{") (labeled_statement "LAB_00070f01:\n          local_28.__value = _Var5;" (statement_identifier "LAB_00070f01") (: ":") (expression_statement "local_28.__value = _Var5;" (assignment_expression "local_28.__value = _Var5" (field_expression "local_28.__value" (identifier "local_28") (. ".") (field_identifier "__value")) (= "=") (identifier "_Var5")) (; ";"))) (expression_statement "local_28.__count = iVar4;" (assignment_expression "local_28.__count = iVar4" (field_expression "local_28.__count" (identifier "local_28") (. ".") (field_identifier "__count")) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00070f06:\n          pbVar11 = local_4c + uVar8;" (statement_identifier "LAB_00070f06") (: ":") (expression_statement "pbVar11 = local_4c + uVar8;" (assignment_expression "pbVar11 = local_4c + uVar8" (identifier "pbVar11") (= "=") (binary_expression "local_4c + uVar8" (identifier "local_4c") (+ "+") (identifier "uVar8"))) (; ";"))) (expression_statement "pbVar12 = __s_00;" (assignment_expression "pbVar12 = __s_00" (identifier "pbVar12") (= "=") (identifier "__s_00")) (; ";")) (expression_statement "pbVar16 = local_4c;" (assignment_expression "pbVar16 = local_4c" (identifier "pbVar16") (= "=") (identifier "local_4c")) (; ";")) (do_statement "do {\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          } while (pbVar17 != pbVar11);" (do "do") (compound_statement "{\n            bVar9 = *pbVar12;\n            pbVar17 = pbVar16 + 1;\n            pbVar12 = pbVar12 + 1;\n            *pbVar16 = bVar9;\n            pbVar16 = pbVar17;\n            local_4c = pbVar11;\n          }" ({ "{") (expression_statement "bVar9 = *pbVar12;" (assignment_expression "bVar9 = *pbVar12" (identifier "bVar9") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (expression_statement "pbVar17 = pbVar16 + 1;" (assignment_expression "pbVar17 = pbVar16 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar16 + 1" (identifier "pbVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar16 = bVar9;" (assignment_expression "*pbVar16 = bVar9" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (= "=") (identifier "bVar9")) (; ";")) (expression_statement "pbVar16 = pbVar17;" (assignment_expression "pbVar16 = pbVar17" (identifier "pbVar16") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "local_4c = pbVar11;" (assignment_expression "local_4c = pbVar11" (identifier "local_4c") (= "=") (identifier "pbVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar17 != pbVar11)" (( "(") (binary_expression "pbVar17 != pbVar11" (identifier "pbVar17") (!= "!=") (identifier "pbVar11")) () ")")) (; ";")) (} "}")))) (expression_statement "__s_00 = __s_00 + uVar8;" (assignment_expression "__s_00 = __s_00 + uVar8" (identifier "__s_00") (= "=") (binary_expression "__s_00 + uVar8" (identifier "__s_00") (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" (identifier "bVar9") (= "=") (pointer_expression "*__s_00" (* "*") (identifier "__s_00"))) (; ";")) (if_statement "if (bVar9 == 0) goto LAB_00070f37;" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00070f37;" (goto "goto") (statement_identifier "LAB_00070f37") (; ";"))) (} "}"))) (expression_statement "__s_00 = __s_00 + 1;" (assignment_expression "__s_00 = __s_00 + 1" (identifier "__s_00") (= "=") (binary_expression "__s_00 + 1" (identifier "__s_00") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_4c = bVar9;" (assignment_expression "*local_4c = bVar9" (pointer_expression "*local_4c" (* "*") (identifier "local_4c")) (= "=") (identifier "bVar9")) (; ";")) (expression_statement "local_4c = local_4c + 1;" (assignment_expression "local_4c = local_4c + 1" (identifier "local_4c") (= "=") (binary_expression "local_4c + 1" (identifier "local_4c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar9 = *__s_00;" (assignment_expression "bVar9 = *__s_00" (identifier "bVar9") (= "=") (pointer_expression "*__s_00" (* "*") (identifier "__s_00"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00070f37:\n  *local_4c = 0;" (statement_identifier "LAB_00070f37") (: ":") (expression_statement "*local_4c = 0;" (assignment_expression "*local_4c = 0" (pointer_expression "*local_4c" (* "*") (identifier "local_4c")) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0010f8b0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0010f8b0();\n  }" ({ "{") (expression_statement "FUN_0010f8b0();" (call_expression "FUN_0010f8b0()" (identifier "FUN_0010f8b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return pbVar7;" (return "return") (identifier "pbVar7") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */

char * __regparm3 function_1(char *var_16,int var_4)

{
  int var_24;
  type_1 uVar2;
  bool bVar3;
  bool var_6;
  int iVar5;
  type_2 aVar6;
  size_t var_9;
  type_3 *pbVar8;
  type_4 var_17;
  type_3 var_10;
  char var_5;
  type_3 *var_20;
  type_3 *var_19;
  type_4 var_21;
  char *var_7;
  type_3 *var_18;
  type_3 var_11;
  type_3 *var_22;
  type_3 *var_23;
  int var_1;
  type_3 *var_12;
  type_5 state;
  
  var_24 = *(int *)(var_1 + 0x14);
  state.__count = 0;
  state.__value.__wch = 0;
  var_9 = var_2(var_16);
  if (var_3 != (char *)0x0) {
    if (*var_3 == '\0') {
      bVar3 = true;
      var_11 = 0;
      var_6 = false;
      goto LAB_00070e59;
    }
    var_5 = *var_3;
    if (*var_3 != '\0') {
      var_7 = var_3;
      if (var_4 == 0) {
        var_6 = false;
        var_11 = 0;
        do {
          if (var_5 == '\x01') {
            var_11 = 1;
          }
          var_6 = (bool)(var_6 | var_5 == '\x7f');
          var_7 = var_7 + 1;
        } while ((var_7 != (char *)0x0) && (var_5 = *var_7, var_5 != '\0'));
        bVar3 = false;
        goto LAB_00070e59;
      }
      do {
        var_7 = var_7 + 1;
        if (var_7 == (char *)0x0) break;
      } while (*var_7 != '\0');
    }
  }
  bVar3 = false;
  var_11 = 0;
  var_6 = false;
LAB_00070e59:
  pbVar8 = (type_3 *)var_8(var_9 * 2 + 1);
  var_10 = *var_16;
  var_12 = pbVar8;
  if (var_10 != 0) {
    var_18 = (type_3 *)var_16;
    do {
      while( true ) {
        aVar6 = state.__value;
        iVar5 = state.__count;
        if (((((bool)(var_11 ^ 1)) && (var_10 == 1)) || ((var_10 == 0x7f && (!var_6)))) ||
           ((var_10 == 0x20 && (bVar3)))) {
          *var_12 = 1;
          var_12 = var_12 + 1;
          var_10 = *var_18;
        }
        if (var_13 < 2) break;
        if (((type_4)(&is_basic_table)[var_10 >> 5] >> (var_10 & 0x1f) & 1) == 0) {
          if ((var_14 == 0) || ((char)var_10 < '\0')) {
            var_17 = var_15((type_6 *)0x0,(char *)var_18,(size_t)(var_16 + (var_9 - (int)var_18)),
                            (type_5 *)&state);
            if (0xfffffffd < var_17) goto LAB_00070f01;
          }
          else {
            var_17 = (type_4)(var_10 != 0);
          }
          iVar5 = state.__count;
          aVar6 = state.__value;
          if (var_17 == 0) goto LAB_00070f01;
          if ((var_18 < var_12 + 4 && var_12 < var_18 + 4 || (((type_4)var_12 | (type_4)var_18) & 3) != 0)
             || (var_17 - 1 < 4)) goto LAB_00070f06;
          var_20 = var_12;
          var_19 = var_18;
          do {
            uVar2 = *(type_1 *)var_19;
            var_19 = var_19 + 4;
            *(type_1 *)var_20 = uVar2;
            var_20 = var_20 + 4;
          } while (var_19 != var_18 + (var_17 & 0xfffffffc));
          var_21 = var_17 & 0xfffffffc;
          var_20 = var_12 + var_21;
          var_12 = var_12 + var_17;
          var_19 = var_18 + var_21;
          if (((var_17 != var_21) && (*var_20 = *var_19, var_21 + 1 < var_17)) &&
             (var_20[1] = var_19[1], var_21 + 2 < var_17)) {
            var_20[2] = var_19[2];
          }
        }
        else {
LAB_00070f01:
          state.__value = aVar6;
          state.__count = iVar5;
          var_17 = 1;
LAB_00070f06:
          var_20 = var_12 + var_17;
          var_19 = var_18;
          var_22 = var_12;
          do {
            var_10 = *var_19;
            var_23 = var_22 + 1;
            var_19 = var_19 + 1;
            *var_22 = var_10;
            var_22 = var_23;
            var_12 = var_20;
          } while (var_23 != var_20);
        }
        var_18 = var_18 + var_17;
        var_10 = *var_18;
        if (var_10 == 0) goto LAB_00070f37;
      }
      var_18 = var_18 + 1;
      *var_12 = var_10;
      var_12 = var_12 + 1;
      var_10 = *var_18;
    } while (var_10 != 0);
  }
LAB_00070f37:
  *var_12 = 0;
  if (var_24 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_25();
  }
  return (char *)pbVar8;
}


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

byte * MASKED(void)

{
  undefined4 uVar1;
  bool bVar2;
  bool bVar3;
  int iVar4;
  _union_54 _Var5;
  byte *__s;
  size_t sVar6;
  byte *pbVar7;
  uint uVar8;
  byte bVar9;
  char cVar10;
  byte *pbVar11;
  byte *pbVar12;
  uint uVar13;
  char *pcVar14;
  int unaff_EBP;
  byte *__s_00;
  byte bVar15;
  byte *pbVar16;
  byte *pbVar17;
  int in_GS_OFFSET;
  undefined8 uVar18;
  byte *local_4c;
  mbstate_t local_28;
  int local_20;
  
  uVar18 = FUN_00041277();
  __s = (byte *)uVar18;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_28.__count = 0;
  local_28.__value.__wch = 0;
  sVar6 = strlen((char *)__s);
  pcVar14 = *(char **)(unaff_EBP + 0x10e1d6);
  if (pcVar14 != (char *)0x0) {
    if (*pcVar14 == '\0') {
      bVar2 = true;
      bVar15 = 0;
      bVar3 = false;
      goto LAB_00070e59;
    }
    cVar10 = *pcVar14;
    if (*pcVar14 != '\0') {
      if ((int)((ulonglong)uVar18 >> 0x20) == 0) {
        bVar3 = false;
        bVar15 = 0;
        do {
          if (cVar10 == '\x01') {
            bVar15 = 1;
          }
          bVar3 = (bool)(bVar3 | cVar10 == '\x7f');
          pcVar14 = pcVar14 + 1;
        } while ((pcVar14 != (char *)0x0) && (cVar10 = *pcVar14, cVar10 != '\0'));
        bVar2 = false;
        goto LAB_00070e59;
      }
      do {
        pcVar14 = pcVar14 + 1;
        if (pcVar14 == (char *)0x0) break;
      } while (*pcVar14 != '\0');
    }
  }
  bVar2 = false;
  bVar15 = 0;
  bVar3 = false;
LAB_00070e59:
  pbVar7 = (byte *)xmalloc(sVar6 * 2 + 1);
  bVar9 = *__s;
  local_4c = pbVar7;
  if (bVar9 != 0) {
    __s_00 = __s;
    do {
      while( true ) {
        _Var5 = local_28.__value;
        iVar4 = local_28.__count;
        if (((((bool)(bVar15 ^ 1)) && (bVar9 == 1)) || ((bVar9 == 0x7f && (!bVar3)))) ||
           ((bVar9 == 0x20 && (bVar2)))) {
          *local_4c = 1;
          local_4c = local_4c + 1;
          bVar9 = *__s_00;
        }
        if (*(int *)(unaff_EBP + 0x10e6da) < 2) break;
        if ((*(uint *)(unaff_EBP + 0xb768a + (uint)(bVar9 >> 5) * 4) >> (bVar9 & 0x1f) & 1) == 0) {
          if ((*(int *)(unaff_EBP + 0x10e6e2) == 0) || ((char)bVar9 < '\0')) {
            uVar8 = mbrtowc((wchar_t *)0x0,(char *)__s_00,(size_t)(__s + (sVar6 - (int)__s_00)),
                            &local_28);
            if (0xfffffffd < uVar8) goto LAB_00070f01;
          }
          else {
            uVar8 = (uint)(bVar9 != 0);
          }
          iVar4 = local_28.__count;
          _Var5 = local_28.__value;
          if (uVar8 == 0) goto LAB_00070f01;
          if ((__s_00 < local_4c + 4 && local_4c < __s_00 + 4 ||
               (((uint)local_4c | (uint)__s_00) & 3) != 0) || (uVar8 - 1 < 4)) goto LAB_00070f06;
          pbVar11 = local_4c;
          pbVar12 = __s_00;
          do {
            uVar1 = *(undefined4 *)pbVar12;
            pbVar12 = pbVar12 + 4;
            *(undefined4 *)pbVar11 = uVar1;
            pbVar11 = pbVar11 + 4;
          } while (pbVar12 != __s_00 + (uVar8 & 0xfffffffc));
          uVar13 = uVar8 & 0xfffffffc;
          pbVar11 = local_4c + uVar13;
          local_4c = local_4c + uVar8;
          pbVar12 = __s_00 + uVar13;
          if (((uVar8 != uVar13) && (*pbVar11 = *pbVar12, uVar13 + 1 < uVar8)) &&
             (pbVar11[1] = pbVar12[1], uVar13 + 2 < uVar8)) {
            pbVar11[2] = pbVar12[2];
          }
        }
        else {
LAB_00070f01:
          local_28.__value = _Var5;
          local_28.__count = iVar4;
          uVar8 = 1;
LAB_00070f06:
          pbVar11 = local_4c + uVar8;
          pbVar12 = __s_00;
          pbVar16 = local_4c;
          do {
            bVar9 = *pbVar12;
            pbVar17 = pbVar16 + 1;
            pbVar12 = pbVar12 + 1;
            *pbVar16 = bVar9;
            pbVar16 = pbVar17;
            local_4c = pbVar11;
          } while (pbVar17 != pbVar11);
        }
        __s_00 = __s_00 + uVar8;
        bVar9 = *__s_00;
        if (bVar9 == 0) goto LAB_00070f37;
      }
      __s_00 = __s_00 + 1;
      *local_4c = bVar9;
      local_4c = local_4c + 1;
      bVar9 = *__s_00;
    } while (bVar9 != 0);
  }
LAB_00070f37:
  *local_4c = 0;
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0010f8b0();
  }
  return pbVar7;
}

