
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::__pad<char, std::char_traits<char> >::_S_pad(std::ios_base&, char, char*, char const*, int,
   int) */

void std::__pad<char,std::char_traits<char>>::_S_pad
               (ios_base *param_1,char param_2,char *param_3,char *param_4,int param_5,int param_6)

{
  ctype cVar1;
  ctype cVar2;
  char cVar3;
  ctype *this;
  char *__dest;
  size_t __n;
  ctype<char> *in_stack_ffffffd4;
  char in_stack_ffffffd8;
  
  __n = param_5 - param_6;
  if ((*(uint *)(param_1 + 0xc) & 0xb0) == 0x20) {
    if (param_6 != 0) {
      memcpy(param_3,param_4,param_6);
    }
    if (__n == 0) {
      return;
    }
    memset(param_3 + param_6,(int)param_2,__n);
    return;
  }
  if ((*(uint *)(param_1 + 0xc) & 0xb0) == 0x10) {
    this = use_facet<std::ctype<char>>((locale *)(param_1 + 0x6c));
    if (this[0x1c] == (ctype)0x0) {
      ctype<char>::_M_widen_init((ctype<char> *)this);
      cVar2 = (ctype)0x2d;
      if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {
        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);
      }
      cVar1 = (ctype)*param_4;
      if (cVar1 != cVar2) {
        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;
        ctype<char>::_M_widen_init((ctype<char> *)this);
        cVar2 = (ctype)0x2b;
        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {
          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);
        }
        cVar1 = (ctype)*param_4;
        if (cVar1 != cVar2) {
          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;
          ctype<char>::_M_widen_init((ctype<char> *)this);
          cVar3 = '0';
          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {
            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);
          }
          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;
          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;
          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);
          cVar2 = *(ctype *)(param_4 + 1);
          if (cVar2 != cVar1) {
            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;
            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);
            cVar2 = *(ctype *)(param_4 + 1);
            goto LAB_001ff1d4;
          }
          goto LAB_001ff418;
        }
      }
LAB_001ff2b4:
      *param_3 = (char)cVar2;
      param_6 = param_6 - 1;
      param_3 = param_3 + 1;
      param_4 = param_4 + 1;
      goto LAB_001ff191;
    }
    cVar1 = (ctype)*param_4;
    cVar2 = cVar1;
    if (this[0x4a] == cVar1) goto LAB_001ff2b4;
LAB_001ff2ab:
    cVar2 = cVar1;
    if (this[0x48] == cVar1) goto LAB_001ff2b4;
LAB_001ff1b0:
    if ((this[0x4d] != cVar1) || (param_6 < 2)) goto LAB_001ff191;
LAB_001ff1bc:
    cVar2 = *(ctype *)(param_4 + 1);
    if (cVar2 == this[0x95]) {
LAB_001ff418:
      *param_3 = *param_4;
      param_3[1] = param_4[1];
      param_6 = param_6 - 2;
      param_3 = param_3 + 2;
      param_4 = param_4 + 2;
      goto LAB_001ff191;
    }
LAB_001ff1d0:
    cVar1 = this[0x75];
LAB_001ff1d4:
    if (cVar1 == cVar2) goto LAB_001ff418;
    __dest = param_3 + __n;
    if (__n == 0) goto LAB_001ff20d;
LAB_001ff1f0:
    memset(param_3,(int)param_2,__n);
  }
  else {
LAB_001ff191:
    __dest = param_3 + __n;
    if (__n != 0) goto LAB_001ff1f0;
  }
  if (param_6 == 0) {
    return;
  }
LAB_001ff20d:
  memcpy(__dest,param_4,param_6);
  return;
}



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

void FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)

{
  char cVar1;
  char cVar2;
  uint uVar3;
  int *piVar4;
  char *__dest;
  size_t __n;
  
  __n = param_5 - param_6;
  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;
  if (uVar3 == 0x20) {
    if (param_6 != 0) {
      memcpy(param_3,param_4,param_6);
    }
    if (__n == 0) {
      return;
    }
    memset(param_3 + param_6,(int)param_2,__n);
    return;
  }
  if (uVar3 == 0x10) {
    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);
    if ((char)piVar4[7] == '\0') {
      FUN_0022ccc0(piVar4);
      cVar2 = '-';
      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {
        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);
      }
      cVar1 = *param_4;
      if (cVar1 != cVar2) {
        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;
        FUN_0022ccc0(piVar4);
        cVar2 = '+';
        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {
          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);
        }
        cVar1 = *param_4;
        if (cVar1 != cVar2) {
          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;
          FUN_0022ccc0(piVar4);
          cVar2 = '0';
          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {
            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);
          }
          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;
          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;
          cVar1 = FUN_001f9220();
          cVar2 = param_4[1];
          if (cVar2 != cVar1) {
            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;
            cVar1 = FUN_001f9220();
            cVar2 = param_4[1];
            goto LAB_001ff1d4;
          }
          goto LAB_001ff418;
        }
      }
LAB_001ff2b4:
      *param_3 = cVar2;
      param_6 = param_6 - 1;
      param_3 = param_3 + 1;
      param_4 = param_4 + 1;
      goto LAB_001ff191;
    }
    cVar1 = *param_4;
    cVar2 = cVar1;
    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;
LAB_001ff2ab:
    cVar2 = cVar1;
    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;
LAB_001ff1b0:
    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;
LAB_001ff1bc:
    cVar2 = param_4[1];
    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {
LAB_001ff418:
      *param_3 = *param_4;
      param_3[1] = param_4[1];
      param_6 = param_6 - 2;
      param_3 = param_3 + 2;
      param_4 = param_4 + 2;
      goto LAB_001ff191;
    }
LAB_001ff1d0:
    cVar1 = *(char *)((int)piVar4 + 0x75);
LAB_001ff1d4:
    if (cVar1 == cVar2) goto LAB_001ff418;
    __dest = param_3 + __n;
    if (__n == 0) goto LAB_001ff20d;
LAB_001ff1f0:
    memset(param_3,(int)param_2,__n);
  }
  else {
LAB_001ff191:
    __dest = param_3 + __n;
    if (__n != 0) goto LAB_001ff1f0;
  }
  if (param_6 == 0) {
    return;
  }
LAB_001ff20d:
  memcpy(__dest,param_4,param_6);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035840
ADD EBX,0x18fea7
SUB ESP,0x1c
MOV EDX,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [ESP + 0x40]
MOV EDI,dword ptr [ESP + 0x44]
SUB ESI,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [EDX + 0xc]
MOVSX EBP,byte ptr [ESP + 0x34]
AND EAX,0xb0
CMP EAX,0x20
JZ 0x001ff230
CMP EAX,0x10
JZ 0x001ff288
MOV EDX,dword ptr [ESP + 0x38]
ADD EDX,ESI
TEST ESI,ESI
JNZ 0x001ff1f0
TEST EDI,EDI
JNZ 0x001ff20d
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,EDX
LEA ESI,[ESI]
CMP byte ptr [ECX + 0x4d],AL
JNZ 0x001ff191
CMP dword ptr [ESP + 0x44],0x1
JLE 0x001ff191
MOV EAX,dword ptr [ESP + 0x3c]
MOVZX EDX,byte ptr [EAX + 0x1]
CMP DL,byte ptr [ECX + 0x95]
JZ 0x001ff418
MOVZX EAX,byte ptr [ECX + 0x75]
CMP AL,DL
JZ 0x001ff418
MOV EDX,dword ptr [ESP + 0x38]
ADD EDX,ESI
TEST ESI,ESI
JZ 0x001ff20d
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0x4
PUSH ESI
PUSH EBP
PUSH dword ptr [ESP + 0x44]
CALL 0x000292f0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
TEST EDI,EDI
JZ 0x001ff19f
SUB ESP,0x4
PUSH EDI
PUSH dword ptr [ESP + 0x44]
PUSH EDX
CALL 0x000295c0
ADD ESP,0x10
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST EDI,EDI
JNZ 0x001ff260
TEST ESI,ESI
JZ 0x001ff19f
SUB ESP,0x4
PUSH ESI
PUSH EBP
MOV EAX,dword ptr [ESP + 0x44]
ADD EAX,dword ptr [ESP + 0x50]
PUSH EAX
CALL 0x000292f0
ADD ESP,0x10
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x44]
CALL 0x000295c0
ADD ESP,0x10
TEST ESI,ESI
JZ 0x001ff19f
JMP 0x001ff23c
SUB ESP,0xc
ADD EDX,0x6c
PUSH EDX
CALL 0x001fbde0
ADD ESP,0x10
CMP byte ptr [EAX + 0x1c],0x0
MOV ECX,EAX
JZ 0x001ff2d0
MOV EAX,dword ptr [ESP + 0x3c]
MOVZX EAX,byte ptr [EAX]
CMP byte ptr [ECX + 0x4a],AL
JZ 0x001ff2b4
CMP byte ptr [ECX + 0x48],AL
JNZ 0x001ff1b0
MOV ECX,dword ptr [ESP + 0x38]
ADD dword ptr [ESP + 0x3c],0x1
ADD dword ptr [ESP + 0x38],0x1
MOV byte ptr [ECX],AL
MOV EAX,dword ptr [ESP + 0x44]
LEA EDI,[EAX + -0x1]
JMP 0x001ff191
SUB ESP,0xc
PUSH EAX
MOV dword ptr [ESP + 0x18],EAX
CALL 0x0022ccc0
MOV ECX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [ECX]
MOV EDX,dword ptr [EAX + 0x18]
LEA EAX,[EBX + 0xffd15880]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,0x2d
CMP EDX,dword ptr [ESP + 0x8]
JNZ 0x001ff400
MOV EDX,dword ptr [ESP + 0x3c]
MOVZX EDX,byte ptr [EDX]
CMP DL,AL
JZ 0x001ff2b4
CMP byte ptr [ECX + 0x1c],0x0
JNZ 0x001ff45e
SUB ESP,0xc
PUSH ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x0022ccc0
MOV ECX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV EAX,dword ptr [ECX]
MOV EDX,dword ptr [EAX + 0x18]
MOV EAX,0x2b
CMP EDX,dword ptr [ESP + 0x8]
JNZ 0x001ff3e8
MOV EDX,dword ptr [ESP + 0x3c]
MOVZX EDX,byte ptr [EDX]
CMP DL,AL
JZ 0x001ff2b4
CMP byte ptr [ECX + 0x1c],0x0
JNZ 0x001ff1a7
SUB ESP,0xc
PUSH ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x0022ccc0
MOV ECX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV EAX,dword ptr [ECX]
MOV EDX,dword ptr [EAX + 0x18]
MOV EAX,0x30
CMP EDX,dword ptr [ESP + 0x8]
JNZ 0x001ff446
MOV EDX,dword ptr [ESP + 0x3c]
CMP byte ptr [EDX],AL
JNZ 0x001ff191
CMP dword ptr [ESP + 0x44],0x1
JLE 0x001ff191
CMP byte ptr [ECX + 0x1c],0x0
JNZ 0x001ff1bc
MOV EDX,0x78
MOV EAX,ECX
MOV dword ptr [ESP + 0x8],ECX
CALL 0x001f9220
MOV ECX,dword ptr [ESP + 0x3c]
MOVZX EDX,byte ptr [ECX + 0x1]
CMP DL,AL
JZ 0x001ff418
MOV ECX,dword ptr [ESP + 0x8]
CMP byte ptr [ECX + 0x1c],0x0
JNZ 0x001ff1d0
MOV EDX,0x58
MOV EAX,ECX
CALL 0x001f9220
MOV ECX,dword ptr [ESP + 0x3c]
MOVZX EDX,byte ptr [ECX + 0x1]
JMP 0x001ff1d4
SUB ESP,0x8
PUSH 0x2b
PUSH ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL EDX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x001ff33f
SUB ESP,0x8
PUSH 0x2d
PUSH ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL EDX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x001ff302
MOV EAX,dword ptr [ESP + 0x3c]
MOV ECX,dword ptr [ESP + 0x38]
ADD dword ptr [ESP + 0x38],0x2
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ECX],AL
MOV EAX,dword ptr [ESP + 0x3c]
ADD dword ptr [ESP + 0x3c],0x2
MOVZX EAX,byte ptr [EAX + 0x1]
MOV byte ptr [ECX + 0x1],AL
MOV EAX,dword ptr [ESP + 0x44]
LEA EDI,[EAX + -0x2]
JMP 0x001ff191
SUB ESP,0x8
PUSH 0x30
PUSH ECX
MOV dword ptr [ESP + 0x18],ECX
CALL EDX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x8]
JMP 0x001ff380
MOV EAX,EDX
JMP 0x001ff2ab
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)\n\n{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}\n\n" comment (function_definition "void FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)\n\n{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}" primitive_type (function_declarator "FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)" identifier (parameter_list "(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "size_t param_6" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (expression_statement "__n = param_5 - param_6;" (assignment_expression "__n = param_5 - param_6" identifier = (binary_expression "param_5 - param_6" identifier - identifier)) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xc) & 0xb0" identifier = (binary_expression "*(uint *)(param_1 + 0xc) & 0xb0" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" if (parenthesized_expression "(uVar3 == 0x20)" ( (binary_expression "uVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" { (if_statement "if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }" if (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) (compound_statement "{\n      memcpy(param_3,param_4,param_6);\n    }" { (expression_statement "memcpy(param_3,param_4,param_6);" (call_expression "memcpy(param_3,param_4,param_6)" identifier (argument_list "(param_3,param_4,param_6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (__n == 0) {\n      return;\n    }" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "memset(param_3 + param_6,(int)param_2,__n);" (call_expression "memset(param_3 + param_6,(int)param_2,__n)" identifier (argument_list "(param_3 + param_6,(int)param_2,__n)" ( (binary_expression "param_3 + param_6" identifier + identifier) , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" if (parenthesized_expression "(uVar3 == 0x10)" ( (binary_expression "uVar3 == 0x10" identifier == number_literal) )) (compound_statement "{\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }" { (expression_statement "piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);" (assignment_expression "piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c)" identifier = (cast_expression "(int *)FUN_001fbde0(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fbde0(param_1 + 0x6c)" identifier (argument_list "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" if (parenthesized_expression "((char)piVar4[7] == '\0')" ( (binary_expression "(char)piVar4[7] == '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" { (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "cVar2 = '-';" (assignment_expression "cVar2 = '-'" identifier = (char_literal "'-'" ' character ')) ;) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" ( (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }" { (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d)" identifier = (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x2d)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" ( (pointer_expression "**(code **)(*piVar4 + 0x18)" * (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,0x2d)" ( identifier , number_literal )))) ;) })) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" if (parenthesized_expression "(cVar1 != cVar2)" ( (binary_expression "cVar1 != cVar2" identifier != identifier) )) (compound_statement "{\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" { (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff2ab;" goto statement_identifier ;)) (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "cVar2 = '+';" (assignment_expression "cVar2 = '+'" identifier = (char_literal "'+'" ' character ')) ;) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" ( (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }" { (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b)" identifier = (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x2b)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" ( (pointer_expression "**(code **)(*piVar4 + 0x18)" * (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,0x2b)" ( identifier , number_literal )))) ;) })) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" if (parenthesized_expression "(cVar1 != cVar2)" ( (binary_expression "cVar1 != cVar2" identifier != identifier) )) (compound_statement "{\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" { (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff1b0;" goto statement_identifier ;)) (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "cVar2 = '0';" (assignment_expression "cVar2 = '0'" identifier = (char_literal "'0'" ' character ')) ;) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" ( (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }" { (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30)" identifier = (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x30)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" ( (pointer_expression "**(code **)(*piVar4 + 0x18)" * (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,0x30)" ( identifier , number_literal )))) ;) })) (if_statement "if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;" if (parenthesized_expression "((*param_4 != cVar2) || ((int)param_6 < 2))" ( (binary_expression "(*param_4 != cVar2) || ((int)param_6 < 2)" (parenthesized_expression "(*param_4 != cVar2)" ( (binary_expression "*param_4 != cVar2" (pointer_expression "*param_4" * identifier) != identifier) )) || (parenthesized_expression "((int)param_6 < 2)" ( (binary_expression "(int)param_6 < 2" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;)) (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff1bc;" goto statement_identifier ;)) (expression_statement "cVar1 = FUN_001f9220();" (assignment_expression "cVar1 = FUN_001f9220()" identifier = (call_expression "FUN_001f9220()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }" if (parenthesized_expression "(cVar2 != cVar1)" ( (binary_expression "cVar2 != cVar1" identifier != identifier) )) (compound_statement "{\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }" { (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff1d0;" goto statement_identifier ;)) (expression_statement "cVar1 = FUN_001f9220();" (assignment_expression "cVar1 = FUN_001f9220()" identifier = (call_expression "FUN_001f9220()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_001ff1d4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001ff418;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001ff2b4:\n      *param_3 = cVar2;" statement_identifier : (expression_statement "*param_3 = cVar2;" (assignment_expression "*param_3 = cVar2" (pointer_expression "*param_3" * identifier) = identifier) ;)) (expression_statement "param_6 = param_6 - 1;" (assignment_expression "param_6 = param_6 - 1" identifier = (binary_expression "param_6 - 1" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;) })) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" identifier = identifier) ;) (if_statement "if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;" if (parenthesized_expression "(*(char *)((int)piVar4 + 0x4a) == cVar1)" ( (binary_expression "*(char *)((int)piVar4 + 0x4a) == cVar1" (pointer_expression "*(char *)((int)piVar4 + 0x4a)" * (cast_expression "(char *)((int)piVar4 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x4a)" ( (binary_expression "(int)piVar4 + 0x4a" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_001ff2b4;" goto statement_identifier ;)) (labeled_statement "LAB_001ff2ab:\n    cVar2 = cVar1;" statement_identifier : (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" identifier = identifier) ;)) (if_statement "if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;" if (parenthesized_expression "((char)piVar4[0x12] == cVar1)" ( (binary_expression "(char)piVar4[0x12] == cVar1" (cast_expression "(char)piVar4[0x12]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[0x12]" identifier [ number_literal ])) == identifier) )) (goto_statement "goto LAB_001ff2b4;" goto statement_identifier ;)) (labeled_statement "LAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;" statement_identifier : (if_statement "if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;" if (parenthesized_expression "((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2))" ( (binary_expression "(*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)" (parenthesized_expression "(*(char *)((int)piVar4 + 0x4d) != cVar1)" ( (binary_expression "*(char *)((int)piVar4 + 0x4d) != cVar1" (pointer_expression "*(char *)((int)piVar4 + 0x4d)" * (cast_expression "(char *)((int)piVar4 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x4d)" ( (binary_expression "(int)piVar4 + 0x4d" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) || (parenthesized_expression "((int)param_6 < 2)" ( (binary_expression "(int)param_6 < 2" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;))) (labeled_statement "LAB_001ff1bc:\n    cVar2 = param_4[1];" statement_identifier : (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;)) (if_statement "if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" if (parenthesized_expression "(cVar2 == *(char *)((int)piVar4 + 0x95))" ( (binary_expression "cVar2 == *(char *)((int)piVar4 + 0x95)" identifier == (pointer_expression "*(char *)((int)piVar4 + 0x95)" * (cast_expression "(char *)((int)piVar4 + 0x95)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x95)" ( (binary_expression "(int)piVar4 + 0x95" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" { (labeled_statement "LAB_001ff418:\n      *param_3 = *param_4;" statement_identifier : (expression_statement "*param_3 = *param_4;" (assignment_expression "*param_3 = *param_4" (pointer_expression "*param_3" * identifier) = (pointer_expression "*param_4" * identifier)) ;)) (expression_statement "param_3[1] = param_4[1];" (assignment_expression "param_3[1] = param_4[1]" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "param_6 = param_6 - 2;" (assignment_expression "param_6 = param_6 - 2" identifier = (binary_expression "param_6 - 2" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 2;" (assignment_expression "param_3 = param_3 + 2" identifier = (binary_expression "param_3 + 2" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;) })) (labeled_statement "LAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);" statement_identifier : (expression_statement "cVar1 = *(char *)((int)piVar4 + 0x75);" (assignment_expression "cVar1 = *(char *)((int)piVar4 + 0x75)" identifier = (pointer_expression "*(char *)((int)piVar4 + 0x75)" * (cast_expression "(char *)((int)piVar4 + 0x75)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x75)" ( (binary_expression "(int)piVar4 + 0x75" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;" statement_identifier : (if_statement "if (cVar1 == cVar2) goto LAB_001ff418;" if (parenthesized_expression "(cVar1 == cVar2)" ( (binary_expression "cVar1 == cVar2" identifier == identifier) )) (goto_statement "goto LAB_001ff418;" goto statement_identifier ;))) (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" identifier = (binary_expression "param_3 + __n" identifier + identifier)) ;) (if_statement "if (__n == 0) goto LAB_001ff20d;" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (goto_statement "goto LAB_001ff20d;" goto statement_identifier ;)) (labeled_statement "LAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);" statement_identifier : (expression_statement "memset(param_3,(int)param_2,__n);" (call_expression "memset(param_3,(int)param_2,__n)" identifier (argument_list "(param_3,(int)param_2,__n)" ( identifier , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;)) }) (else_clause "else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" else (compound_statement "{\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" { (labeled_statement "LAB_001ff191:\n    __dest = param_3 + __n;" statement_identifier : (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" identifier = (binary_expression "param_3 + __n" identifier + identifier)) ;)) (if_statement "if (__n != 0) goto LAB_001ff1f0;" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (goto_statement "goto LAB_001ff1f0;" goto statement_identifier ;)) }))) (if_statement "if (param_6 == 0) {\n    return;\n  }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_001ff20d:\n  memcpy(__dest,param_4,param_6);" statement_identifier : (expression_statement "memcpy(__dest,param_4,param_6);" (call_expression "memcpy(__dest,param_4,param_6)" identifier (argument_list "(__dest,param_4,param_6)" ( identifier , identifier , identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* std::__pad<char, std::char_traits<char> >::_S_pad(std::ios_base&, char, char*, char const*, int,\n   int) */\n\nvoid std::__pad<char,std::char_traits<char>>::_S_pad\n               (ios_base *param_1,char param_2,char *param_3,char *param_4,int param_5,int param_6)\n\n{\n  ctype cVar1;\n  ctype cVar2;\n  char cVar3;\n  ctype *this;\n  char *__dest;\n  size_t __n;\n  ctype<char> *in_stack_ffffffd4;\n  char in_stack_ffffffd8;\n  \n  __n = param_5 - param_6;\n  if ((*(uint *)(param_1 + 0xc) & 0xb0) == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if ((*(uint *)(param_1 + 0xc) & 0xb0) == 0x10) {\n    this = use_facet<std::ctype<char>>((locale *)(param_1 + 0x6c));\n    if (this[0x1c] == (ctype)0x0) {\n      ctype<char>::_M_widen_init((ctype<char> *)this);\n      cVar2 = (ctype)0x2d;\n      if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);\n      }\n      cVar1 = (ctype)*param_4;\n      if (cVar1 != cVar2) {\n        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;\n        ctype<char>::_M_widen_init((ctype<char> *)this);\n        cVar2 = (ctype)0x2b;\n        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }\n        cVar1 = (ctype)*param_4;\n        if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = (char)cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = (ctype)*param_4;\n    cVar2 = cVar1;\n    if (this[0x4a] == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if (this[0x48] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((this[0x4d] != cVar1) || (param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = *(ctype *)(param_4 + 1);\n    if (cVar2 == this[0x95]) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = this[0x75];\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}\n\n" comment comment (declaration "void std::__pad<char,std::char_traits<char>>::_S_pad\n               (ios_base *param_1,char param_2,char *param_3,char *param_4,int param_5,int param_6)\n\n{\n  ctype cVar1;" primitive_type (ERROR "std::" identifier : :) identifier (ERROR "<char" < primitive_type) , (ERROR "std::char_traits<char>>::_S_pad\n               (ios_base *param_1,char param_2,char *param_3,char *param_4,int param_5,int param_6)\n\n{\n  ctype" identifier : : identifier < primitive_type >> : : (function_declarator "_S_pad\n               (ios_base *param_1,char param_2,char *param_3,char *param_4,int param_5,int param_6)" identifier (parameter_list "(ios_base *param_1,char param_2,char *param_3,char *param_4,int param_5,int param_6)" ( (parameter_declaration "ios_base *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) { identifier) identifier ;) (declaration "ctype cVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "ctype *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (expression_statement "ctype<char> *in_stack_ffffffd4;" (update_expression "ctype<char> *in_stack_ffffffd4" (binary_expression "ctype<char> *in_stack_ffffffd4" (binary_expression "ctype<char" identifier < identifier) > (pointer_expression "*in_stack_ffffffd4" * identifier)) --) ;) (declaration "char in_stack_ffffffd8;" primitive_type identifier ;) (expression_statement "__n = param_5 - param_6;" (assignment_expression "__n = param_5 - param_6" identifier = (binary_expression "param_5 - param_6" identifier - identifier)) ;) (if_statement "if ((*(uint *)(param_1 + 0xc) & 0xb0) == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0xc) & 0xb0) == 0x20)" ( (binary_expression "(*(uint *)(param_1 + 0xc) & 0xb0) == 0x20" (parenthesized_expression "(*(uint *)(param_1 + 0xc) & 0xb0)" ( (binary_expression "*(uint *)(param_1 + 0xc) & 0xb0" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" { (if_statement "if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }" if (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) (compound_statement "{\n      memcpy(param_3,param_4,param_6);\n    }" { (expression_statement "memcpy(param_3,param_4,param_6);" (call_expression "memcpy(param_3,param_4,param_6)" identifier (argument_list "(param_3,param_4,param_6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (__n == 0) {\n      return;\n    }" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "memset(param_3 + param_6,(int)param_2,__n);" (call_expression "memset(param_3 + param_6,(int)param_2,__n)" identifier (argument_list "(param_3 + param_6,(int)param_2,__n)" ( (binary_expression "param_3 + param_6" identifier + identifier) , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((*(uint *)(param_1 + 0xc) & 0xb0) == 0x10) {\n    this = use_facet<std::ctype<char>>((locale *)(param_1 + 0x6c));\n    if (this[0x1c] == (ctype)0x0) {\n      ctype<char>::_M_widen_init((ctype<char> *)this);\n      cVar2 = (ctype)0x2d;\n      if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);\n      }\n      cVar1 = (ctype)*param_4;\n      if (cVar1 != cVar2) {\n        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;\n        ctype<char>::_M_widen_init((ctype<char> *)this);\n        cVar2 = (ctype)0x2b;\n        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }\n        cVar1 = (ctype)*param_4;\n        if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = (char)cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = (ctype)*param_4;\n    cVar2 = cVar1;\n    if (this[0x4a] == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if (this[0x48] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((this[0x4d] != cVar1) || (param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = *(ctype *)(param_4 + 1);\n    if (cVar2 == this[0x95]) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = this[0x75];\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0xc) & 0xb0) == 0x10)" ( (binary_expression "(*(uint *)(param_1 + 0xc) & 0xb0) == 0x10" (parenthesized_expression "(*(uint *)(param_1 + 0xc) & 0xb0)" ( (binary_expression "*(uint *)(param_1 + 0xc) & 0xb0" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    this = use_facet<std::ctype<char>>((locale *)(param_1 + 0x6c));\n    if (this[0x1c] == (ctype)0x0) {\n      ctype<char>::_M_widen_init((ctype<char> *)this);\n      cVar2 = (ctype)0x2d;\n      if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);\n      }\n      cVar1 = (ctype)*param_4;\n      if (cVar1 != cVar2) {\n        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;\n        ctype<char>::_M_widen_init((ctype<char> *)this);\n        cVar2 = (ctype)0x2b;\n        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }\n        cVar1 = (ctype)*param_4;\n        if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = (char)cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = (ctype)*param_4;\n    cVar2 = cVar1;\n    if (this[0x4a] == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if (this[0x48] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((this[0x4d] != cVar1) || (param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = *(ctype *)(param_4 + 1);\n    if (cVar2 == this[0x95]) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = this[0x75];\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }" { (expression_statement "this = use_facet<std::ctype<char>>((locale *)(param_1 + 0x6c));" (binary_expression "this = use_facet<std::ctype<char>>((locale *)(param_1 + 0x6c))" (assignment_expression "this = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "char>>((locale *)(param_1 + 0x6c))" identifier >> (parenthesized_expression "((locale *)(param_1 + 0x6c))" ( (cast_expression "(locale *)(param_1 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))) )))) ;) (if_statement "if (this[0x1c] == (ctype)0x0) {\n      ctype<char>::_M_widen_init((ctype<char> *)this);\n      cVar2 = (ctype)0x2d;\n      if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);\n      }\n      cVar1 = (ctype)*param_4;\n      if (cVar1 != cVar2) {\n        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;\n        ctype<char>::_M_widen_init((ctype<char> *)this);\n        cVar2 = (ctype)0x2b;\n        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }\n        cVar1 = (ctype)*param_4;\n        if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = (char)cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" if (parenthesized_expression "(this[0x1c] == (ctype)0x0)" ( (binary_expression "this[0x1c] == (ctype)0x0" (subscript_expression "this[0x1c]" identifier [ number_literal ]) == (cast_expression "(ctype)0x0" ( (type_descriptor "ctype" type_identifier) ) number_literal)) )) (compound_statement "{\n      ctype<char>::_M_widen_init((ctype<char> *)this);\n      cVar2 = (ctype)0x2d;\n      if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);\n      }\n      cVar1 = (ctype)*param_4;\n      if (cVar1 != cVar2) {\n        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;\n        ctype<char>::_M_widen_init((ctype<char> *)this);\n        cVar2 = (ctype)0x2b;\n        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }\n        cVar1 = (ctype)*param_4;\n        if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = (char)cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" { (expression_statement "ctype<char>::_M_widen_init((ctype<char> *)this);" (binary_expression "ctype<char>::_M_widen_init((ctype<char> *)this)" (binary_expression "ctype<char" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_widen_init((ctype<char> *)this)" identifier (argument_list "((ctype<char> *)this)" ( (parenthesized_expression "(ctype<char> *)this)" ( (binary_expression "ctype<char> *)this" (binary_expression "ctype<char" identifier < identifier) > (pointer_expression "*)this" * (ERROR ")" )) identifier)) )) )))) ;) (expression_statement "cVar2 = (ctype)0x2d;" (assignment_expression "cVar2 = (ctype)0x2d" identifier = (cast_expression "(ctype)0x2d" ( (type_descriptor "ctype" type_identifier) ) number_literal)) ;) (if_statement "if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);\n      }" if (parenthesized_expression "(*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen)" ( (binary_expression "*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen" (pointer_expression "*(code **)(*(int *)this + 0x18)" * (cast_expression "(code **)(*(int *)this + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x18)" ( (binary_expression "*(int *)this + 0x18" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (binary_expression "ctype<char>::do_widen" (binary_expression "ctype<char" identifier < identifier) > (ERROR "::" : :) identifier)) )) (compound_statement "{\n        cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);\n      }" { (expression_statement "cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d);" (assignment_expression "cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d)" identifier = (call_expression "(ctype)(**(code **)(*(int *)this + 0x18))(this,0x2d)" (call_expression "(ctype)(**(code **)(*(int *)this + 0x18))" (parenthesized_expression "(ctype)" ( identifier )) (argument_list "(**(code **)(*(int *)this + 0x18))" ( (pointer_expression "**(code **)(*(int *)this + 0x18)" * (pointer_expression "*(code **)(*(int *)this + 0x18)" * (cast_expression "(code **)(*(int *)this + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x18)" ( (binary_expression "*(int *)this + 0x18" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ))) (argument_list "(this,0x2d)" ( identifier , number_literal )))) ;) })) (expression_statement "cVar1 = (ctype)*param_4;" (assignment_expression "cVar1 = (ctype)*param_4" identifier = (binary_expression "(ctype)*param_4" (parenthesized_expression "(ctype)" ( identifier )) * identifier)) ;) (if_statement "if (cVar1 != cVar2) {\n        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;\n        ctype<char>::_M_widen_init((ctype<char> *)this);\n        cVar2 = (ctype)0x2b;\n        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }\n        cVar1 = (ctype)*param_4;\n        if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" if (parenthesized_expression "(cVar1 != cVar2)" ( (binary_expression "cVar1 != cVar2" identifier != identifier) )) (compound_statement "{\n        if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;\n        ctype<char>::_M_widen_init((ctype<char> *)this);\n        cVar2 = (ctype)0x2b;\n        if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }\n        cVar1 = (ctype)*param_4;\n        if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" { (if_statement "if (this[0x1c] != (ctype)0x0) goto LAB_001ff2ab;" if (parenthesized_expression "(this[0x1c] != (ctype)0x0)" ( (binary_expression "this[0x1c] != (ctype)0x0" (subscript_expression "this[0x1c]" identifier [ number_literal ]) != (cast_expression "(ctype)0x0" ( (type_descriptor "ctype" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_001ff2ab;" goto statement_identifier ;)) (expression_statement "ctype<char>::_M_widen_init((ctype<char> *)this);" (binary_expression "ctype<char>::_M_widen_init((ctype<char> *)this)" (binary_expression "ctype<char" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_widen_init((ctype<char> *)this)" identifier (argument_list "((ctype<char> *)this)" ( (parenthesized_expression "(ctype<char> *)this)" ( (binary_expression "ctype<char> *)this" (binary_expression "ctype<char" identifier < identifier) > (pointer_expression "*)this" * (ERROR ")" )) identifier)) )) )))) ;) (expression_statement "cVar2 = (ctype)0x2b;" (assignment_expression "cVar2 = (ctype)0x2b" identifier = (cast_expression "(ctype)0x2b" ( (type_descriptor "ctype" type_identifier) ) number_literal)) ;) (if_statement "if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }" if (parenthesized_expression "(*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen)" ( (binary_expression "*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen" (pointer_expression "*(code **)(*(int *)this + 0x18)" * (cast_expression "(code **)(*(int *)this + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x18)" ( (binary_expression "*(int *)this + 0x18" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (binary_expression "ctype<char>::do_widen" (binary_expression "ctype<char" identifier < identifier) > (ERROR "::" : :) identifier)) )) (compound_statement "{\n          cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);\n        }" { (expression_statement "cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b);" (assignment_expression "cVar2 = (ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b)" identifier = (call_expression "(ctype)(**(code **)(*(int *)this + 0x18))(this,0x2b)" (call_expression "(ctype)(**(code **)(*(int *)this + 0x18))" (parenthesized_expression "(ctype)" ( identifier )) (argument_list "(**(code **)(*(int *)this + 0x18))" ( (pointer_expression "**(code **)(*(int *)this + 0x18)" * (pointer_expression "*(code **)(*(int *)this + 0x18)" * (cast_expression "(code **)(*(int *)this + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x18)" ( (binary_expression "*(int *)this + 0x18" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) ))) (argument_list "(this,0x2b)" ( identifier , number_literal )))) ;) })) (expression_statement "cVar1 = (ctype)*param_4;" (assignment_expression "cVar1 = (ctype)*param_4" identifier = (binary_expression "(ctype)*param_4" (parenthesized_expression "(ctype)" ( identifier )) * identifier)) ;) (if_statement "if (cVar1 != cVar2) {\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" if (parenthesized_expression "(cVar1 != cVar2)" ( (binary_expression "cVar1 != cVar2" identifier != identifier) )) (compound_statement "{\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;\n          ctype<char>::_M_widen_init((ctype<char> *)this);\n          cVar3 = '0';\n          if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }\n          if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;\n          if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;\n          cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n          cVar2 = *(ctype *)(param_4 + 1);\n          if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" { (if_statement "if (this[0x1c] != (ctype)0x0) goto LAB_001ff1b0;" if (parenthesized_expression "(this[0x1c] != (ctype)0x0)" ( (binary_expression "this[0x1c] != (ctype)0x0" (subscript_expression "this[0x1c]" identifier [ number_literal ]) != (cast_expression "(ctype)0x0" ( (type_descriptor "ctype" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_001ff1b0;" goto statement_identifier ;)) (expression_statement "ctype<char>::_M_widen_init((ctype<char> *)this);" (binary_expression "ctype<char>::_M_widen_init((ctype<char> *)this)" (binary_expression "ctype<char" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_widen_init((ctype<char> *)this)" identifier (argument_list "((ctype<char> *)this)" ( (parenthesized_expression "(ctype<char> *)this)" ( (binary_expression "ctype<char> *)this" (binary_expression "ctype<char" identifier < identifier) > (pointer_expression "*)this" * (ERROR ")" )) identifier)) )) )))) ;) (expression_statement "cVar3 = '0';" (assignment_expression "cVar3 = '0'" identifier = (char_literal "'0'" ' character ')) ;) (if_statement "if (*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen) {\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }" if (parenthesized_expression "(*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen)" ( (binary_expression "*(code **)(*(int *)this + 0x18) != ctype<char>::do_widen" (pointer_expression "*(code **)(*(int *)this + 0x18)" * (cast_expression "(code **)(*(int *)this + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x18)" ( (binary_expression "*(int *)this + 0x18" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (binary_expression "ctype<char>::do_widen" (binary_expression "ctype<char" identifier < identifier) > (ERROR "::" : :) identifier)) )) (compound_statement "{\n            cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);\n          }" { (expression_statement "cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30);" (assignment_expression "cVar3 = (**(code **)(*(int *)this + 0x18))(this,0x30)" identifier = (call_expression "(**(code **)(*(int *)this + 0x18))(this,0x30)" (parenthesized_expression "(**(code **)(*(int *)this + 0x18))" ( (pointer_expression "**(code **)(*(int *)this + 0x18)" * (pointer_expression "*(code **)(*(int *)this + 0x18)" * (cast_expression "(code **)(*(int *)this + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)this + 0x18)" ( (binary_expression "*(int *)this + 0x18" (pointer_expression "*(int *)this" * (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(this,0x30)" ( identifier , number_literal )))) ;) })) (if_statement "if ((*param_4 != cVar3) || (param_6 < 2)) goto LAB_001ff191;" if (parenthesized_expression "((*param_4 != cVar3) || (param_6 < 2))" ( (binary_expression "(*param_4 != cVar3) || (param_6 < 2)" (parenthesized_expression "(*param_4 != cVar3)" ( (binary_expression "*param_4 != cVar3" (pointer_expression "*param_4" * identifier) != identifier) )) || (parenthesized_expression "(param_6 < 2)" ( (binary_expression "param_6 < 2" identifier < number_literal) ))) )) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;)) (if_statement "if (this[0x1c] != (ctype)0x0) goto LAB_001ff1bc;" if (parenthesized_expression "(this[0x1c] != (ctype)0x0)" ( (binary_expression "this[0x1c] != (ctype)0x0" (subscript_expression "this[0x1c]" identifier [ number_literal ]) != (cast_expression "(ctype)0x0" ( (type_descriptor "ctype" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_001ff1bc;" goto statement_identifier ;)) (expression_statement "cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);" (assignment_expression "cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8)" identifier = (binary_expression "(ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8)" (binary_expression "(ctype)ctype<char" (cast_expression "(ctype)ctype" ( (type_descriptor "ctype" type_identifier) ) identifier) < identifier) > (ERROR "::" : :) (call_expression "widen(in_stack_ffffffd4,in_stack_ffffffd8)" identifier (argument_list "(in_stack_ffffffd4,in_stack_ffffffd8)" ( identifier , identifier ))))) ;) (expression_statement "cVar2 = *(ctype *)(param_4 + 1);" (assignment_expression "cVar2 = *(ctype *)(param_4 + 1)" identifier = (pointer_expression "*(ctype *)(param_4 + 1)" * (cast_expression "(ctype *)(param_4 + 1)" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))))) ;) (if_statement "if (cVar2 != cVar1) {\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }" if (parenthesized_expression "(cVar2 != cVar1)" ( (binary_expression "cVar2 != cVar1" identifier != identifier) )) (compound_statement "{\n            if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;\n            cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);\n            cVar2 = *(ctype *)(param_4 + 1);\n            goto LAB_001ff1d4;\n          }" { (if_statement "if (this[0x1c] != (ctype)0x0) goto LAB_001ff1d0;" if (parenthesized_expression "(this[0x1c] != (ctype)0x0)" ( (binary_expression "this[0x1c] != (ctype)0x0" (subscript_expression "this[0x1c]" identifier [ number_literal ]) != (cast_expression "(ctype)0x0" ( (type_descriptor "ctype" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_001ff1d0;" goto statement_identifier ;)) (expression_statement "cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8);" (assignment_expression "cVar1 = (ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8)" identifier = (binary_expression "(ctype)ctype<char>::widen(in_stack_ffffffd4,in_stack_ffffffd8)" (binary_expression "(ctype)ctype<char" (cast_expression "(ctype)ctype" ( (type_descriptor "ctype" type_identifier) ) identifier) < identifier) > (ERROR "::" : :) (call_expression "widen(in_stack_ffffffd4,in_stack_ffffffd8)" identifier (argument_list "(in_stack_ffffffd4,in_stack_ffffffd8)" ( identifier , identifier ))))) ;) (expression_statement "cVar2 = *(ctype *)(param_4 + 1);" (assignment_expression "cVar2 = *(ctype *)(param_4 + 1)" identifier = (pointer_expression "*(ctype *)(param_4 + 1)" * (cast_expression "(ctype *)(param_4 + 1)" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001ff1d4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001ff418;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001ff2b4:\n      *param_3 = (char)cVar2;" statement_identifier : (expression_statement "*param_3 = (char)cVar2;" (assignment_expression "*param_3 = (char)cVar2" (pointer_expression "*param_3" * identifier) = (cast_expression "(char)cVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;)) (expression_statement "param_6 = param_6 - 1;" (assignment_expression "param_6 = param_6 - 1" identifier = (binary_expression "param_6 - 1" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;) })) (expression_statement "cVar1 = (ctype)*param_4;" (assignment_expression "cVar1 = (ctype)*param_4" identifier = (binary_expression "(ctype)*param_4" (parenthesized_expression "(ctype)" ( identifier )) * identifier)) ;) (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" identifier = identifier) ;) (if_statement "if (this[0x4a] == cVar1) goto LAB_001ff2b4;" if (parenthesized_expression "(this[0x4a] == cVar1)" ( (binary_expression "this[0x4a] == cVar1" (subscript_expression "this[0x4a]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_001ff2b4;" goto statement_identifier ;)) (labeled_statement "LAB_001ff2ab:\n    cVar2 = cVar1;" statement_identifier : (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" identifier = identifier) ;)) (if_statement "if (this[0x48] == cVar1) goto LAB_001ff2b4;" if (parenthesized_expression "(this[0x48] == cVar1)" ( (binary_expression "this[0x48] == cVar1" (subscript_expression "this[0x48]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_001ff2b4;" goto statement_identifier ;)) (labeled_statement "LAB_001ff1b0:\n    if ((this[0x4d] != cVar1) || (param_6 < 2)) goto LAB_001ff191;" statement_identifier : (if_statement "if ((this[0x4d] != cVar1) || (param_6 < 2)) goto LAB_001ff191;" if (parenthesized_expression "((this[0x4d] != cVar1) || (param_6 < 2))" ( (binary_expression "(this[0x4d] != cVar1) || (param_6 < 2)" (parenthesized_expression "(this[0x4d] != cVar1)" ( (binary_expression "this[0x4d] != cVar1" (subscript_expression "this[0x4d]" identifier [ number_literal ]) != identifier) )) || (parenthesized_expression "(param_6 < 2)" ( (binary_expression "param_6 < 2" identifier < number_literal) ))) )) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;))) (labeled_statement "LAB_001ff1bc:\n    cVar2 = *(ctype *)(param_4 + 1);" statement_identifier : (expression_statement "cVar2 = *(ctype *)(param_4 + 1);" (assignment_expression "cVar2 = *(ctype *)(param_4 + 1)" identifier = (pointer_expression "*(ctype *)(param_4 + 1)" * (cast_expression "(ctype *)(param_4 + 1)" ( (type_descriptor "ctype *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 1)" ( (binary_expression "param_4 + 1" identifier + number_literal) ))))) ;)) (if_statement "if (cVar2 == this[0x95]) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" if (parenthesized_expression "(cVar2 == this[0x95])" ( (binary_expression "cVar2 == this[0x95]" identifier == (subscript_expression "this[0x95]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" { (labeled_statement "LAB_001ff418:\n      *param_3 = *param_4;" statement_identifier : (expression_statement "*param_3 = *param_4;" (assignment_expression "*param_3 = *param_4" (pointer_expression "*param_3" * identifier) = (pointer_expression "*param_4" * identifier)) ;)) (expression_statement "param_3[1] = param_4[1];" (assignment_expression "param_3[1] = param_4[1]" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "param_6 = param_6 - 2;" (assignment_expression "param_6 = param_6 - 2" identifier = (binary_expression "param_6 - 2" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 2;" (assignment_expression "param_3 = param_3 + 2" identifier = (binary_expression "param_3 + 2" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;) })) (labeled_statement "LAB_001ff1d0:\n    cVar1 = this[0x75];" statement_identifier : (expression_statement "cVar1 = this[0x75];" (assignment_expression "cVar1 = this[0x75]" identifier = (subscript_expression "this[0x75]" identifier [ number_literal ])) ;)) (labeled_statement "LAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;" statement_identifier : (if_statement "if (cVar1 == cVar2) goto LAB_001ff418;" if (parenthesized_expression "(cVar1 == cVar2)" ( (binary_expression "cVar1 == cVar2" identifier == identifier) )) (goto_statement "goto LAB_001ff418;" goto statement_identifier ;))) (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" identifier = (binary_expression "param_3 + __n" identifier + identifier)) ;) (if_statement "if (__n == 0) goto LAB_001ff20d;" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (goto_statement "goto LAB_001ff20d;" goto statement_identifier ;)) (labeled_statement "LAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);" statement_identifier : (expression_statement "memset(param_3,(int)param_2,__n);" (call_expression "memset(param_3,(int)param_2,__n)" identifier (argument_list "(param_3,(int)param_2,__n)" ( identifier , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;)) }) (else_clause "else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" else (compound_statement "{\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" { (labeled_statement "LAB_001ff191:\n    __dest = param_3 + __n;" statement_identifier : (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" identifier = (binary_expression "param_3 + __n" identifier + identifier)) ;)) (if_statement "if (__n != 0) goto LAB_001ff1f0;" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (goto_statement "goto LAB_001ff1f0;" goto statement_identifier ;)) }))) (if_statement "if (param_6 == 0) {\n    return;\n  }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_001ff20d:\n  memcpy(__dest,param_4,param_6);" statement_identifier : (expression_statement "memcpy(__dest,param_4,param_6);" (call_expression "memcpy(__dest,param_4,param_6)" identifier (argument_list "(__dest,param_4,param_6)" ( identifier , identifier , identifier ))) ;)) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)\n\n{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}\n\n" (function_definition "void FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)\n\n{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}" primitive_type (function_declarator "FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)" identifier (parameter_list "(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "size_t param_6" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (expression_statement "__n = param_5 - param_6;" (assignment_expression "__n = param_5 - param_6" identifier = (binary_expression "param_5 - param_6" identifier - identifier)) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xc) & 0xb0" identifier = (binary_expression "*(uint *)(param_1 + 0xc) & 0xb0" (pointer_expression "*(uint *)(param_1 + 0xc)" * (cast_expression "(uint *)(param_1 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" if (parenthesized_expression "(uVar3 == 0x20)" ( (binary_expression "uVar3 == 0x20" identifier == number_literal) )) (compound_statement "{\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" { (if_statement "if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }" if (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) (compound_statement "{\n      memcpy(param_3,param_4,param_6);\n    }" { (expression_statement "memcpy(param_3,param_4,param_6);" (call_expression "memcpy(param_3,param_4,param_6)" identifier (argument_list "(param_3,param_4,param_6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if (__n == 0) {\n      return;\n    }" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "memset(param_3 + param_6,(int)param_2,__n);" (call_expression "memset(param_3 + param_6,(int)param_2,__n)" identifier (argument_list "(param_3 + param_6,(int)param_2,__n)" ( (binary_expression "param_3 + param_6" identifier + identifier) , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" if (parenthesized_expression "(uVar3 == 0x10)" ( (binary_expression "uVar3 == 0x10" identifier == number_literal) )) (compound_statement "{\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }" { (expression_statement "piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);" (assignment_expression "piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c)" identifier = (cast_expression "(int *)FUN_001fbde0(param_1 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001fbde0(param_1 + 0x6c)" identifier (argument_list "(param_1 + 0x6c)" ( (binary_expression "param_1 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" if (parenthesized_expression "((char)piVar4[7] == '\0')" ( (binary_expression "(char)piVar4[7] == '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" { (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "cVar2 = '-';" (assignment_expression "cVar2 = '-'" identifier = (char_literal "'-'" ' character ')) ;) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" ( (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }" { (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d)" identifier = (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x2d)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" ( (pointer_expression "**(code **)(*piVar4 + 0x18)" * (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,0x2d)" ( identifier , number_literal )))) ;) })) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" if (parenthesized_expression "(cVar1 != cVar2)" ( (binary_expression "cVar1 != cVar2" identifier != identifier) )) (compound_statement "{\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" { (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff2ab;" goto statement_identifier ;)) (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "cVar2 = '+';" (assignment_expression "cVar2 = '+'" identifier = (char_literal "'+'" ' character ')) ;) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" ( (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }" { (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b)" identifier = (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x2b)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" ( (pointer_expression "**(code **)(*piVar4 + 0x18)" * (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,0x2b)" ( identifier , number_literal )))) ;) })) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (if_statement "if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" if (parenthesized_expression "(cVar1 != cVar2)" ( (binary_expression "cVar1 != cVar2" identifier != identifier) )) (compound_statement "{\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" { (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff1b0;" goto statement_identifier ;)) (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" identifier (argument_list "(piVar4)" ( identifier ))) ;) (expression_statement "cVar2 = '0';" (assignment_expression "cVar2 = '0'" identifier = (char_literal "'0'" ' character ')) ;) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }" if (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" ( (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }" { (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30)" identifier = (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x30)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" ( (pointer_expression "**(code **)(*piVar4 + 0x18)" * (pointer_expression "*(code **)(*piVar4 + 0x18)" * (cast_expression "(code **)(*piVar4 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x18)" ( (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(piVar4,0x30)" ( identifier , number_literal )))) ;) })) (if_statement "if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;" if (parenthesized_expression "((*param_4 != cVar2) || ((int)param_6 < 2))" ( (binary_expression "(*param_4 != cVar2) || ((int)param_6 < 2)" (parenthesized_expression "(*param_4 != cVar2)" ( (binary_expression "*param_4 != cVar2" (pointer_expression "*param_4" * identifier) != identifier) )) || (parenthesized_expression "((int)param_6 < 2)" ( (binary_expression "(int)param_6 < 2" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;)) (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff1bc;" goto statement_identifier ;)) (expression_statement "cVar1 = FUN_001f9220();" (assignment_expression "cVar1 = FUN_001f9220()" identifier = (call_expression "FUN_001f9220()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }" if (parenthesized_expression "(cVar2 != cVar1)" ( (binary_expression "cVar2 != cVar1" identifier != identifier) )) (compound_statement "{\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }" { (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;" if (parenthesized_expression "((char)piVar4[7] != '\0')" ( (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[7]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001ff1d0;" goto statement_identifier ;)) (expression_statement "cVar1 = FUN_001f9220();" (assignment_expression "cVar1 = FUN_001f9220()" identifier = (call_expression "FUN_001f9220()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_001ff1d4;" goto statement_identifier ;) })) (goto_statement "goto LAB_001ff418;" goto statement_identifier ;) })) })) (labeled_statement "LAB_001ff2b4:\n      *param_3 = cVar2;" statement_identifier : (expression_statement "*param_3 = cVar2;" (assignment_expression "*param_3 = cVar2" (pointer_expression "*param_3" * identifier) = identifier) ;)) (expression_statement "param_6 = param_6 - 1;" (assignment_expression "param_6 = param_6 - 1" identifier = (binary_expression "param_6 - 1" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" identifier = (binary_expression "param_4 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;) })) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" identifier = identifier) ;) (if_statement "if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;" if (parenthesized_expression "(*(char *)((int)piVar4 + 0x4a) == cVar1)" ( (binary_expression "*(char *)((int)piVar4 + 0x4a) == cVar1" (pointer_expression "*(char *)((int)piVar4 + 0x4a)" * (cast_expression "(char *)((int)piVar4 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x4a)" ( (binary_expression "(int)piVar4 + 0x4a" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_001ff2b4;" goto statement_identifier ;)) (labeled_statement "LAB_001ff2ab:\n    cVar2 = cVar1;" statement_identifier : (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" identifier = identifier) ;)) (if_statement "if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;" if (parenthesized_expression "((char)piVar4[0x12] == cVar1)" ( (binary_expression "(char)piVar4[0x12] == cVar1" (cast_expression "(char)piVar4[0x12]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar4[0x12]" identifier [ number_literal ])) == identifier) )) (goto_statement "goto LAB_001ff2b4;" goto statement_identifier ;)) (labeled_statement "LAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;" statement_identifier : (if_statement "if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;" if (parenthesized_expression "((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2))" ( (binary_expression "(*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)" (parenthesized_expression "(*(char *)((int)piVar4 + 0x4d) != cVar1)" ( (binary_expression "*(char *)((int)piVar4 + 0x4d) != cVar1" (pointer_expression "*(char *)((int)piVar4 + 0x4d)" * (cast_expression "(char *)((int)piVar4 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x4d)" ( (binary_expression "(int)piVar4 + 0x4d" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != identifier) )) || (parenthesized_expression "((int)param_6 < 2)" ( (binary_expression "(int)param_6 < 2" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;))) (labeled_statement "LAB_001ff1bc:\n    cVar2 = param_4[1];" statement_identifier : (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" identifier = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;)) (if_statement "if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" if (parenthesized_expression "(cVar2 == *(char *)((int)piVar4 + 0x95))" ( (binary_expression "cVar2 == *(char *)((int)piVar4 + 0x95)" identifier == (pointer_expression "*(char *)((int)piVar4 + 0x95)" * (cast_expression "(char *)((int)piVar4 + 0x95)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x95)" ( (binary_expression "(int)piVar4 + 0x95" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" { (labeled_statement "LAB_001ff418:\n      *param_3 = *param_4;" statement_identifier : (expression_statement "*param_3 = *param_4;" (assignment_expression "*param_3 = *param_4" (pointer_expression "*param_3" * identifier) = (pointer_expression "*param_4" * identifier)) ;)) (expression_statement "param_3[1] = param_4[1];" (assignment_expression "param_3[1] = param_4[1]" (subscript_expression "param_3[1]" identifier [ number_literal ]) = (subscript_expression "param_4[1]" identifier [ number_literal ])) ;) (expression_statement "param_6 = param_6 - 2;" (assignment_expression "param_6 = param_6 - 2" identifier = (binary_expression "param_6 - 2" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 2;" (assignment_expression "param_3 = param_3 + 2" identifier = (binary_expression "param_3 + 2" identifier + number_literal)) ;) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" identifier = (binary_expression "param_4 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_001ff191;" goto statement_identifier ;) })) (labeled_statement "LAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);" statement_identifier : (expression_statement "cVar1 = *(char *)((int)piVar4 + 0x75);" (assignment_expression "cVar1 = *(char *)((int)piVar4 + 0x75)" identifier = (pointer_expression "*(char *)((int)piVar4 + 0x75)" * (cast_expression "(char *)((int)piVar4 + 0x75)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar4 + 0x75)" ( (binary_expression "(int)piVar4 + 0x75" (cast_expression "(int)piVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (labeled_statement "LAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;" statement_identifier : (if_statement "if (cVar1 == cVar2) goto LAB_001ff418;" if (parenthesized_expression "(cVar1 == cVar2)" ( (binary_expression "cVar1 == cVar2" identifier == identifier) )) (goto_statement "goto LAB_001ff418;" goto statement_identifier ;))) (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" identifier = (binary_expression "param_3 + __n" identifier + identifier)) ;) (if_statement "if (__n == 0) goto LAB_001ff20d;" if (parenthesized_expression "(__n == 0)" ( (binary_expression "__n == 0" identifier == number_literal) )) (goto_statement "goto LAB_001ff20d;" goto statement_identifier ;)) (labeled_statement "LAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);" statement_identifier : (expression_statement "memset(param_3,(int)param_2,__n);" (call_expression "memset(param_3,(int)param_2,__n)" identifier (argument_list "(param_3,(int)param_2,__n)" ( identifier , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;)) }) (else_clause "else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" else (compound_statement "{\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" { (labeled_statement "LAB_001ff191:\n    __dest = param_3 + __n;" statement_identifier : (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" identifier = (binary_expression "param_3 + __n" identifier + identifier)) ;)) (if_statement "if (__n != 0) goto LAB_001ff1f0;" if (parenthesized_expression "(__n != 0)" ( (binary_expression "__n != 0" identifier != number_literal) )) (goto_statement "goto LAB_001ff1f0;" goto statement_identifier ;)) }))) (if_statement "if (param_6 == 0) {\n    return;\n  }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_001ff20d:\n  memcpy(__dest,param_4,param_6);" statement_identifier : (expression_statement "memcpy(__dest,param_4,param_6);" (call_expression "memcpy(__dest,param_4,param_6)" identifier (argument_list "(__dest,param_4,param_6)" ( identifier , identifier , identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT ))) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)\n\n{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001ff150(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)" (identifier "FUN_001ff150") (parameter_list "(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char param_2" (primitive_type "char") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "size_t param_6" (primitive_type "size_t") (identifier "param_6")) () ")"))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  uint uVar3;\n  int *piVar4;\n  char *__dest;\n  size_t __n;\n  \n  __n = param_5 - param_6;\n  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;\n  if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }\n  if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }\n  if (param_6 == 0) {\n    return;\n  }\nLAB_001ff20d:\n  memcpy(__dest,param_4,param_6);\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "char *__dest;" (primitive_type "char") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (expression_statement "__n = param_5 - param_6;" (assignment_expression "__n = param_5 - param_6" (identifier "__n") (= "=") (binary_expression "param_5 - param_6" (identifier "param_5") (- "-") (identifier "param_6"))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;" (assignment_expression "uVar3 = *(uint *)(param_1 + 0xc) & 0xb0" (identifier "uVar3") (= "=") (binary_expression "*(uint *)(param_1 + 0xc) & 0xb0" (pointer_expression "*(uint *)(param_1 + 0xc)" (* "*") (cast_expression "(uint *)(param_1 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0xb0"))) (; ";")) (if_statement "if (uVar3 == 0x20) {\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" (if "if") (parenthesized_expression "(uVar3 == 0x20)" (( "(") (binary_expression "uVar3 == 0x20" (identifier "uVar3") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }\n    if (__n == 0) {\n      return;\n    }\n    memset(param_3 + param_6,(int)param_2,__n);\n    return;\n  }" ({ "{") (if_statement "if (param_6 != 0) {\n      memcpy(param_3,param_4,param_6);\n    }" (if "if") (parenthesized_expression "(param_6 != 0)" (( "(") (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      memcpy(param_3,param_4,param_6);\n    }" ({ "{") (expression_statement "memcpy(param_3,param_4,param_6);" (call_expression "memcpy(param_3,param_4,param_6)" (identifier "memcpy") (argument_list "(param_3,param_4,param_6)" (( "(") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_6") () ")"))) (; ";")) (} "}"))) (if_statement "if (__n == 0) {\n      return;\n    }" (if "if") (parenthesized_expression "(__n == 0)" (( "(") (binary_expression "__n == 0" (identifier "__n") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "memset(param_3 + param_6,(int)param_2,__n);" (call_expression "memset(param_3 + param_6,(int)param_2,__n)" (identifier "memset") (argument_list "(param_3 + param_6,(int)param_2,__n)" (( "(") (binary_expression "param_3 + param_6" (identifier "param_3") (+ "+") (identifier "param_6")) (, ",") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (, ",") (identifier "__n") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (uVar3 == 0x10) {\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }\n  else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" (if "if") (parenthesized_expression "(uVar3 == 0x10)" (( "(") (binary_expression "uVar3 == 0x10" (identifier "uVar3") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);\n    if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }\n    cVar1 = *param_4;\n    cVar2 = cVar1;\n    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;\nLAB_001ff2ab:\n    cVar2 = cVar1;\n    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;\nLAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;\nLAB_001ff1bc:\n    cVar2 = param_4[1];\n    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }\nLAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);\nLAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;\n    __dest = param_3 + __n;\n    if (__n == 0) goto LAB_001ff20d;\nLAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);\n  }" ({ "{") (expression_statement "piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);" (assignment_expression "piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_001fbde0(param_1 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001fbde0(param_1 + 0x6c)" (identifier "FUN_001fbde0") (argument_list "(param_1 + 0x6c)" (( "(") (binary_expression "param_1 + 0x6c" (identifier "param_1") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (if_statement "if ((char)piVar4[7] == '\0') {\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" (if "if") (parenthesized_expression "((char)piVar4[7] == '\0')" (( "(") (binary_expression "(char)piVar4[7] == '\0'" (cast_expression "(char)piVar4[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0022ccc0(piVar4);\n      cVar2 = '-';\n      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }\n      cVar1 = *param_4;\n      if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }\nLAB_001ff2b4:\n      *param_3 = cVar2;\n      param_6 = param_6 - 1;\n      param_3 = param_3 + 1;\n      param_4 = param_4 + 1;\n      goto LAB_001ff191;\n    }" ({ "{") (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" (identifier "FUN_0022ccc0") (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")"))) (; ";")) (expression_statement "cVar2 = '-';" (assignment_expression "cVar2 = '-'" (identifier "cVar2") (= "=") (char_literal "'-'" (' "'") (character "-") (' "'"))) (; ";")) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }" (if "if") (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" (( "(") (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" (* "*") (cast_expression "(code **)(*piVar4 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (identifier "FUN_000a4880")) () ")")) (compound_statement "{\n        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);\n      }" ({ "{") (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d)" (identifier "cVar2") (= "=") (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x2d)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x18)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x18)" (* "*") (cast_expression "(code **)(*piVar4 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(piVar4,0x2d)" (( "(") (identifier "piVar4") (, ",") (number_literal "0x2d") () ")")))) (; ";")) (} "}"))) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" (identifier "cVar1") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (if_statement "if (cVar1 != cVar2) {\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" (if "if") (parenthesized_expression "(cVar1 != cVar2)" (( "(") (binary_expression "cVar1 != cVar2" (identifier "cVar1") (!= "!=") (identifier "cVar2")) () ")")) (compound_statement "{\n        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;\n        FUN_0022ccc0(piVar4);\n        cVar2 = '+';\n        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }\n        cVar1 = *param_4;\n        if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }\n      }" ({ "{") (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;" (if "if") (parenthesized_expression "((char)piVar4[7] != '\0')" (( "(") (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ff2ab;" (goto "goto") (statement_identifier "LAB_001ff2ab") (; ";"))) (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" (identifier "FUN_0022ccc0") (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")"))) (; ";")) (expression_statement "cVar2 = '+';" (assignment_expression "cVar2 = '+'" (identifier "cVar2") (= "=") (char_literal "'+'" (' "'") (character "+") (' "'"))) (; ";")) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }" (if "if") (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" (( "(") (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" (* "*") (cast_expression "(code **)(*piVar4 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (identifier "FUN_000a4880")) () ")")) (compound_statement "{\n          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);\n        }" ({ "{") (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b)" (identifier "cVar2") (= "=") (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x2b)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x18)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x18)" (* "*") (cast_expression "(code **)(*piVar4 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(piVar4,0x2b)" (( "(") (identifier "piVar4") (, ",") (number_literal "0x2b") () ")")))) (; ";")) (} "}"))) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" (identifier "cVar1") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (if_statement "if (cVar1 != cVar2) {\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" (if "if") (parenthesized_expression "(cVar1 != cVar2)" (( "(") (binary_expression "cVar1 != cVar2" (identifier "cVar1") (!= "!=") (identifier "cVar2")) () ")")) (compound_statement "{\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;\n          FUN_0022ccc0(piVar4);\n          cVar2 = '0';\n          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }\n          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;\n          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;\n          cVar1 = FUN_001f9220();\n          cVar2 = param_4[1];\n          if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }\n          goto LAB_001ff418;\n        }" ({ "{") (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;" (if "if") (parenthesized_expression "((char)piVar4[7] != '\0')" (( "(") (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ff1b0;" (goto "goto") (statement_identifier "LAB_001ff1b0") (; ";"))) (expression_statement "FUN_0022ccc0(piVar4);" (call_expression "FUN_0022ccc0(piVar4)" (identifier "FUN_0022ccc0") (argument_list "(piVar4)" (( "(") (identifier "piVar4") () ")"))) (; ";")) (expression_statement "cVar2 = '0';" (assignment_expression "cVar2 = '0'" (identifier "cVar2") (= "=") (char_literal "'0'" (' "'") (character "0") (' "'"))) (; ";")) (if_statement "if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }" (if "if") (parenthesized_expression "(*(code **)(*piVar4 + 0x18) != FUN_000a4880)" (( "(") (binary_expression "*(code **)(*piVar4 + 0x18) != FUN_000a4880" (pointer_expression "*(code **)(*piVar4 + 0x18)" (* "*") (cast_expression "(code **)(*piVar4 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (identifier "FUN_000a4880")) () ")")) (compound_statement "{\n            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);\n          }" ({ "{") (expression_statement "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);" (assignment_expression "cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30)" (identifier "cVar2") (= "=") (call_expression "(**(code **)(*piVar4 + 0x18))(piVar4,0x30)" (parenthesized_expression "(**(code **)(*piVar4 + 0x18))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x18)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x18)" (* "*") (cast_expression "(code **)(*piVar4 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x18)" (( "(") (binary_expression "*piVar4 + 0x18" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(piVar4,0x30)" (( "(") (identifier "piVar4") (, ",") (number_literal "0x30") () ")")))) (; ";")) (} "}"))) (if_statement "if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;" (if "if") (parenthesized_expression "((*param_4 != cVar2) || ((int)param_6 < 2))" (( "(") (binary_expression "(*param_4 != cVar2) || ((int)param_6 < 2)" (parenthesized_expression "(*param_4 != cVar2)" (( "(") (binary_expression "*param_4 != cVar2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (!= "!=") (identifier "cVar2")) () ")")) (|| "||") (parenthesized_expression "((int)param_6 < 2)" (( "(") (binary_expression "(int)param_6 < 2" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (< "<") (number_literal "2")) () ")"))) () ")")) (goto_statement "goto LAB_001ff191;" (goto "goto") (statement_identifier "LAB_001ff191") (; ";"))) (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;" (if "if") (parenthesized_expression "((char)piVar4[7] != '\0')" (( "(") (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ff1bc;" (goto "goto") (statement_identifier "LAB_001ff1bc") (; ";"))) (expression_statement "cVar1 = FUN_001f9220();" (assignment_expression "cVar1 = FUN_001f9220()" (identifier "cVar1") (= "=") (call_expression "FUN_001f9220()" (identifier "FUN_001f9220") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" (identifier "cVar2") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (cVar2 != cVar1) {\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }" (if "if") (parenthesized_expression "(cVar2 != cVar1)" (( "(") (binary_expression "cVar2 != cVar1" (identifier "cVar2") (!= "!=") (identifier "cVar1")) () ")")) (compound_statement "{\n            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;\n            cVar1 = FUN_001f9220();\n            cVar2 = param_4[1];\n            goto LAB_001ff1d4;\n          }" ({ "{") (if_statement "if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;" (if "if") (parenthesized_expression "((char)piVar4[7] != '\0')" (( "(") (binary_expression "(char)piVar4[7] != '\0'" (cast_expression "(char)piVar4[7]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar4[7]" (identifier "piVar4") ([ "[") (number_literal "7") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001ff1d0;" (goto "goto") (statement_identifier "LAB_001ff1d0") (; ";"))) (expression_statement "cVar1 = FUN_001f9220();" (assignment_expression "cVar1 = FUN_001f9220()" (identifier "cVar1") (= "=") (call_expression "FUN_001f9220()" (identifier "FUN_001f9220") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" (identifier "cVar2") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto LAB_001ff1d4;" (goto "goto") (statement_identifier "LAB_001ff1d4") (; ";")) (} "}"))) (goto_statement "goto LAB_001ff418;" (goto "goto") (statement_identifier "LAB_001ff418") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_001ff2b4:\n      *param_3 = cVar2;" (statement_identifier "LAB_001ff2b4") (: ":") (expression_statement "*param_3 = cVar2;" (assignment_expression "*param_3 = cVar2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "cVar2")) (; ";"))) (expression_statement "param_6 = param_6 - 1;" (assignment_expression "param_6 = param_6 - 1" (identifier "param_6") (= "=") (binary_expression "param_6 - 1" (identifier "param_6") (- "-") (number_literal "1"))) (; ";")) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_4 = param_4 + 1;" (assignment_expression "param_4 = param_4 + 1" (identifier "param_4") (= "=") (binary_expression "param_4 + 1" (identifier "param_4") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_001ff191;" (goto "goto") (statement_identifier "LAB_001ff191") (; ";")) (} "}"))) (expression_statement "cVar1 = *param_4;" (assignment_expression "cVar1 = *param_4" (identifier "cVar1") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" (identifier "cVar2") (= "=") (identifier "cVar1")) (; ";")) (if_statement "if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;" (if "if") (parenthesized_expression "(*(char *)((int)piVar4 + 0x4a) == cVar1)" (( "(") (binary_expression "*(char *)((int)piVar4 + 0x4a) == cVar1" (pointer_expression "*(char *)((int)piVar4 + 0x4a)" (* "*") (cast_expression "(char *)((int)piVar4 + 0x4a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x4a)" (( "(") (binary_expression "(int)piVar4 + 0x4a" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x4a")) () ")")))) (== "==") (identifier "cVar1")) () ")")) (goto_statement "goto LAB_001ff2b4;" (goto "goto") (statement_identifier "LAB_001ff2b4") (; ";"))) (labeled_statement "LAB_001ff2ab:\n    cVar2 = cVar1;" (statement_identifier "LAB_001ff2ab") (: ":") (expression_statement "cVar2 = cVar1;" (assignment_expression "cVar2 = cVar1" (identifier "cVar2") (= "=") (identifier "cVar1")) (; ";"))) (if_statement "if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;" (if "if") (parenthesized_expression "((char)piVar4[0x12] == cVar1)" (( "(") (binary_expression "(char)piVar4[0x12] == cVar1" (cast_expression "(char)piVar4[0x12]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar4[0x12]" (identifier "piVar4") ([ "[") (number_literal "0x12") (] "]"))) (== "==") (identifier "cVar1")) () ")")) (goto_statement "goto LAB_001ff2b4;" (goto "goto") (statement_identifier "LAB_001ff2b4") (; ";"))) (labeled_statement "LAB_001ff1b0:\n    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;" (statement_identifier "LAB_001ff1b0") (: ":") (if_statement "if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;" (if "if") (parenthesized_expression "((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2))" (( "(") (binary_expression "(*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)" (parenthesized_expression "(*(char *)((int)piVar4 + 0x4d) != cVar1)" (( "(") (binary_expression "*(char *)((int)piVar4 + 0x4d) != cVar1" (pointer_expression "*(char *)((int)piVar4 + 0x4d)" (* "*") (cast_expression "(char *)((int)piVar4 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x4d)" (( "(") (binary_expression "(int)piVar4 + 0x4d" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (identifier "cVar1")) () ")")) (|| "||") (parenthesized_expression "((int)param_6 < 2)" (( "(") (binary_expression "(int)param_6 < 2" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (< "<") (number_literal "2")) () ")"))) () ")")) (goto_statement "goto LAB_001ff191;" (goto "goto") (statement_identifier "LAB_001ff191") (; ";")))) (labeled_statement "LAB_001ff1bc:\n    cVar2 = param_4[1];" (statement_identifier "LAB_001ff1bc") (: ":") (expression_statement "cVar2 = param_4[1];" (assignment_expression "cVar2 = param_4[1]" (identifier "cVar2") (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (if_statement "if (cVar2 == *(char *)((int)piVar4 + 0x95)) {\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" (if "if") (parenthesized_expression "(cVar2 == *(char *)((int)piVar4 + 0x95))" (( "(") (binary_expression "cVar2 == *(char *)((int)piVar4 + 0x95)" (identifier "cVar2") (== "==") (pointer_expression "*(char *)((int)piVar4 + 0x95)" (* "*") (cast_expression "(char *)((int)piVar4 + 0x95)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x95)" (( "(") (binary_expression "(int)piVar4 + 0x95" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x95")) () ")"))))) () ")")) (compound_statement "{\nLAB_001ff418:\n      *param_3 = *param_4;\n      param_3[1] = param_4[1];\n      param_6 = param_6 - 2;\n      param_3 = param_3 + 2;\n      param_4 = param_4 + 2;\n      goto LAB_001ff191;\n    }" ({ "{") (labeled_statement "LAB_001ff418:\n      *param_3 = *param_4;" (statement_identifier "LAB_001ff418") (: ":") (expression_statement "*param_3 = *param_4;" (assignment_expression "*param_3 = *param_4" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";"))) (expression_statement "param_3[1] = param_4[1];" (assignment_expression "param_3[1] = param_4[1]" (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_4[1]" (identifier "param_4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_6 = param_6 - 2;" (assignment_expression "param_6 = param_6 - 2" (identifier "param_6") (= "=") (binary_expression "param_6 - 2" (identifier "param_6") (- "-") (number_literal "2"))) (; ";")) (expression_statement "param_3 = param_3 + 2;" (assignment_expression "param_3 = param_3 + 2" (identifier "param_3") (= "=") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "param_4 = param_4 + 2;" (assignment_expression "param_4 = param_4 + 2" (identifier "param_4") (= "=") (binary_expression "param_4 + 2" (identifier "param_4") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_001ff191;" (goto "goto") (statement_identifier "LAB_001ff191") (; ";")) (} "}"))) (labeled_statement "LAB_001ff1d0:\n    cVar1 = *(char *)((int)piVar4 + 0x75);" (statement_identifier "LAB_001ff1d0") (: ":") (expression_statement "cVar1 = *(char *)((int)piVar4 + 0x75);" (assignment_expression "cVar1 = *(char *)((int)piVar4 + 0x75)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)((int)piVar4 + 0x75)" (* "*") (cast_expression "(char *)((int)piVar4 + 0x75)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar4 + 0x75)" (( "(") (binary_expression "(int)piVar4 + 0x75" (cast_expression "(int)piVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar4")) (+ "+") (number_literal "0x75")) () ")"))))) (; ";"))) (labeled_statement "LAB_001ff1d4:\n    if (cVar1 == cVar2) goto LAB_001ff418;" (statement_identifier "LAB_001ff1d4") (: ":") (if_statement "if (cVar1 == cVar2) goto LAB_001ff418;" (if "if") (parenthesized_expression "(cVar1 == cVar2)" (( "(") (binary_expression "cVar1 == cVar2" (identifier "cVar1") (== "==") (identifier "cVar2")) () ")")) (goto_statement "goto LAB_001ff418;" (goto "goto") (statement_identifier "LAB_001ff418") (; ";")))) (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" (identifier "__dest") (= "=") (binary_expression "param_3 + __n" (identifier "param_3") (+ "+") (identifier "__n"))) (; ";")) (if_statement "if (__n == 0) goto LAB_001ff20d;" (if "if") (parenthesized_expression "(__n == 0)" (( "(") (binary_expression "__n == 0" (identifier "__n") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001ff20d;" (goto "goto") (statement_identifier "LAB_001ff20d") (; ";"))) (labeled_statement "LAB_001ff1f0:\n    memset(param_3,(int)param_2,__n);" (statement_identifier "LAB_001ff1f0") (: ":") (expression_statement "memset(param_3,(int)param_2,__n);" (call_expression "memset(param_3,(int)param_2,__n)" (identifier "memset") (argument_list "(param_3,(int)param_2,__n)" (( "(") (identifier "param_3") (, ",") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (, ",") (identifier "__n") () ")"))) (; ";"))) (} "}")) (else_clause "else {\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" (else "else") (compound_statement "{\nLAB_001ff191:\n    __dest = param_3 + __n;\n    if (__n != 0) goto LAB_001ff1f0;\n  }" ({ "{") (labeled_statement "LAB_001ff191:\n    __dest = param_3 + __n;" (statement_identifier "LAB_001ff191") (: ":") (expression_statement "__dest = param_3 + __n;" (assignment_expression "__dest = param_3 + __n" (identifier "__dest") (= "=") (binary_expression "param_3 + __n" (identifier "param_3") (+ "+") (identifier "__n"))) (; ";"))) (if_statement "if (__n != 0) goto LAB_001ff1f0;" (if "if") (parenthesized_expression "(__n != 0)" (( "(") (binary_expression "__n != 0" (identifier "__n") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001ff1f0;" (goto "goto") (statement_identifier "LAB_001ff1f0") (; ";"))) (} "}")))) (if_statement "if (param_6 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_001ff20d:\n  memcpy(__dest,param_4,param_6);" (statement_identifier "LAB_001ff20d") (: ":") (expression_statement "memcpy(__dest,param_4,param_6);" (call_expression "memcpy(__dest,param_4,param_6)" (identifier "memcpy") (argument_list "(__dest,param_4,param_6)" (( "(") (identifier "__dest") (, ",") (identifier "param_4") (, ",") (identifier "param_6") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* std::__pad<char, std::char_traits<char> >::_S_pad(std::ios_base&, char, char*, char const*, int,
   int) */

void var_10::__pad<char,var_10::char_traits<char>>::_S_pad
               (ios_base *var_4,char param_2,char *var_8,char *var_13,int var_2,int var_3)

{
  type_1 var_14;
  type_1 var_15;
  char var_16;
  type_1 *this;
  char *__dest;
  size_t var_6;
  type_1<var_1> *in_stack_ffffffd4;
  char in_stack_ffffffd8;
  
  var_6 = var_2 - var_3;
  if ((*(type_2 *)(var_4 + 0xc) & 0xb0) == 0x20) {
    if (var_3 != 0) {
      var_5(var_8,var_13,var_3);
    }
    if (var_6 == 0) {
      return;
    }
    var_7(var_8 + var_3,(int)param_2,var_6);
    return;
  }
  if ((*(type_2 *)(var_4 + 0xc) & 0xb0) == 0x10) {
    this = var_9<var_10::type_1<var_1>>((type_3 *)(var_4 + 0x6c));
    if (this[0x1c] == (type_1)0x0) {
      type_1<var_1>::var_11((type_1<var_1> *)this);
      var_15 = (type_1)0x2d;
      if (*(type_4 **)(*(int *)this + 0x18) != type_1<var_1>::var_12) {
        var_15 = (type_1)(**(type_4 **)(*(int *)this + 0x18))(this,0x2d);
      }
      var_14 = (type_1)*var_13;
      if (var_14 != var_15) {
        if (this[0x1c] != (type_1)0x0) goto LAB_001ff2ab;
        type_1<var_1>::var_11((type_1<var_1> *)this);
        var_15 = (type_1)0x2b;
        if (*(type_4 **)(*(int *)this + 0x18) != type_1<var_1>::var_12) {
          var_15 = (type_1)(**(type_4 **)(*(int *)this + 0x18))(this,0x2b);
        }
        var_14 = (type_1)*var_13;
        if (var_14 != var_15) {
          if (this[0x1c] != (type_1)0x0) goto LAB_001ff1b0;
          type_1<var_1>::var_11((type_1<var_1> *)this);
          var_16 = '0';
          if (*(type_4 **)(*(int *)this + 0x18) != type_1<var_1>::var_12) {
            var_16 = (**(type_4 **)(*(int *)this + 0x18))(this,0x30);
          }
          if ((*var_13 != var_16) || (var_3 < 2)) goto LAB_001ff191;
          if (this[0x1c] != (type_1)0x0) goto LAB_001ff1bc;
          var_14 = (type_1)type_1<var_1>::var_17(in_stack_ffffffd4,in_stack_ffffffd8);
          var_15 = *(type_1 *)(var_13 + 1);
          if (var_15 != var_14) {
            if (this[0x1c] != (type_1)0x0) goto LAB_001ff1d0;
            var_14 = (type_1)type_1<var_1>::var_17(in_stack_ffffffd4,in_stack_ffffffd8);
            var_15 = *(type_1 *)(var_13 + 1);
            goto LAB_001ff1d4;
          }
          goto LAB_001ff418;
        }
      }
LAB_001ff2b4:
      *var_8 = (char)var_15;
      var_3 = var_3 - 1;
      var_8 = var_8 + 1;
      var_13 = var_13 + 1;
      goto LAB_001ff191;
    }
    var_14 = (type_1)*var_13;
    var_15 = var_14;
    if (this[0x4a] == var_14) goto LAB_001ff2b4;
LAB_001ff2ab:
    var_15 = var_14;
    if (this[0x48] == var_14) goto LAB_001ff2b4;
LAB_001ff1b0:
    if ((this[0x4d] != var_14) || (var_3 < 2)) goto LAB_001ff191;
LAB_001ff1bc:
    var_15 = *(type_1 *)(var_13 + 1);
    if (var_15 == this[0x95]) {
LAB_001ff418:
      *var_8 = *var_13;
      var_8[1] = var_13[1];
      var_3 = var_3 - 2;
      var_8 = var_8 + 2;
      var_13 = var_13 + 2;
      goto LAB_001ff191;
    }
LAB_001ff1d0:
    var_14 = this[0x75];
LAB_001ff1d4:
    if (var_14 == var_15) goto LAB_001ff418;
    __dest = var_8 + var_6;
    if (var_6 == 0) goto LAB_001ff20d;
LAB_001ff1f0:
    var_7(var_8,(int)param_2,var_6);
  }
  else {
LAB_001ff191:
    __dest = var_8 + var_6;
    if (var_6 != 0) goto LAB_001ff1f0;
  }
  if (var_3 == 0) {
    return;
  }
LAB_001ff20d:
  var_5(__dest,var_13,var_3);
  return;
}


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

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

void MASKED(int param_1,char param_2,char *param_3,char *param_4,int param_5,size_t param_6)

{
  char cVar1;
  char cVar2;
  uint uVar3;
  int *piVar4;
  char *__dest;
  size_t __n;
  
  __n = param_5 - param_6;
  uVar3 = *(uint *)(param_1 + 0xc) & 0xb0;
  if (uVar3 == 0x20) {
    if (param_6 != 0) {
      memcpy(param_3,param_4,param_6);
    }
    if (__n == 0) {
      return;
    }
    memset(param_3 + param_6,(int)param_2,__n);
    return;
  }
  if (uVar3 == 0x10) {
    piVar4 = (int *)FUN_001fbde0(param_1 + 0x6c);
    if ((char)piVar4[7] == '\0') {
      FUN_0022ccc0(piVar4);
      cVar2 = '-';
      if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {
        cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2d);
      }
      cVar1 = *param_4;
      if (cVar1 != cVar2) {
        if ((char)piVar4[7] != '\0') goto LAB_001ff2ab;
        FUN_0022ccc0(piVar4);
        cVar2 = '+';
        if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {
          cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x2b);
        }
        cVar1 = *param_4;
        if (cVar1 != cVar2) {
          if ((char)piVar4[7] != '\0') goto LAB_001ff1b0;
          FUN_0022ccc0(piVar4);
          cVar2 = '0';
          if (*(code **)(*piVar4 + 0x18) != FUN_000a4880) {
            cVar2 = (**(code **)(*piVar4 + 0x18))(piVar4,0x30);
          }
          if ((*param_4 != cVar2) || ((int)param_6 < 2)) goto LAB_001ff191;
          if ((char)piVar4[7] != '\0') goto LAB_001ff1bc;
          cVar1 = FUN_001f9220();
          cVar2 = param_4[1];
          if (cVar2 != cVar1) {
            if ((char)piVar4[7] != '\0') goto LAB_001ff1d0;
            cVar1 = FUN_001f9220();
            cVar2 = param_4[1];
            goto LAB_001ff1d4;
          }
          goto LAB_001ff418;
        }
      }
LAB_001ff2b4:
      *param_3 = cVar2;
      param_6 = param_6 - 1;
      param_3 = param_3 + 1;
      param_4 = param_4 + 1;
      goto LAB_001ff191;
    }
    cVar1 = *param_4;
    cVar2 = cVar1;
    if (*(char *)((int)piVar4 + 0x4a) == cVar1) goto LAB_001ff2b4;
LAB_001ff2ab:
    cVar2 = cVar1;
    if ((char)piVar4[0x12] == cVar1) goto LAB_001ff2b4;
LAB_001ff1b0:
    if ((*(char *)((int)piVar4 + 0x4d) != cVar1) || ((int)param_6 < 2)) goto LAB_001ff191;
LAB_001ff1bc:
    cVar2 = param_4[1];
    if (cVar2 == *(char *)((int)piVar4 + 0x95)) {
LAB_001ff418:
      *param_3 = *param_4;
      param_3[1] = param_4[1];
      param_6 = param_6 - 2;
      param_3 = param_3 + 2;
      param_4 = param_4 + 2;
      goto LAB_001ff191;
    }
LAB_001ff1d0:
    cVar1 = *(char *)((int)piVar4 + 0x75);
LAB_001ff1d4:
    if (cVar1 == cVar2) goto LAB_001ff418;
    __dest = param_3 + __n;
    if (__n == 0) goto LAB_001ff20d;
LAB_001ff1f0:
    memset(param_3,(int)param_2,__n);
  }
  else {
LAB_001ff191:
    __dest = param_3 + __n;
    if (__n != 0) goto LAB_001ff1f0;
  }
  if (param_6 == 0) {
    return;
  }
LAB_001ff20d:
  memcpy(__dest,param_4,param_6);
  return;
}

