
/* std::money_base::_S_construct_pattern(char, char, char) */

undefined4 std::money_base::_S_construct_pattern(char param_1,char param_2,char param_3)

{
  char cVar1;
  char cVar2;
  char cVar3;
  
  cVar1 = param_3;
  cVar2 = param_3;
  switch(param_3) {
  case '\0':
  case '\x01':
    if (param_2 == '\0') {
      cVar3 = (-(param_1 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;
    }
    else {
      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;
      cVar3 = (-(param_1 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = '\x01';
    }
    break;
  case '\x02':
    if (param_2 == '\0') {
      if (param_1 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = '\x03';
      cVar3 = param_3;
    }
    else {
      param_2 = '\x03';
      if (param_1 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = param_3;
      cVar3 = '\x01';
    }
    break;
  case '\x03':
    if (param_1 == '\0') {
      cVar3 = '\x01';
      if (param_2 == '\0') {
        cVar2 = '\x02';
        cVar3 = param_3;
      }
      cVar1 = '\x04';
      if (param_2 != '\0') {
        param_2 = '\x02';
      }
    }
    else {
      cVar3 = '\x02';
      cVar2 = (-(param_2 == '\0') & 3U) + 1;
      if (param_2 != '\0') {
        param_2 = '\x04';
      }
    }
    break;
  case '\x04':
    if (param_1 == '\0') {
      cVar2 = ~-(param_2 == '\0') + 3;
      cVar3 = ~-(param_2 == '\0') + 2;
      if (param_2 != '\0') {
        param_2 = '\x03';
      }
    }
    else {
      cVar3 = '\x03';
      cVar1 = '\x02';
      if (param_2 != '\0') {
        cVar2 = '\x01';
        param_2 = param_3;
      }
    }
    break;
  default:
    param_2 = '\0';
    cVar1 = '\0';
    cVar2 = '\0';
    cVar3 = '\0';
  }
  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));
}



undefined4 FUN_0031fac0(char param_1,char param_2,char param_3)

{
  char cVar1;
  char cVar2;
  char cVar3;
  
  cVar1 = param_3;
  cVar2 = param_3;
  switch(param_3) {
  case '\0':
  case '\x01':
    if (param_2 == '\0') {
      cVar3 = (-(param_1 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;
    }
    else {
      cVar3 = (-(param_1 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = '\x01';
      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;
    }
    break;
  case '\x02':
    if (param_2 == '\0') {
      if (param_1 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = '\x03';
      cVar3 = param_3;
    }
    else {
      if (param_1 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = param_3;
      cVar3 = '\x01';
      param_2 = '\x03';
    }
    break;
  case '\x03':
    if (param_1 == '\0') {
      cVar3 = '\x01';
      if (param_2 == '\0') {
        cVar2 = '\x02';
        cVar3 = param_3;
      }
      cVar1 = '\x04';
      if (param_2 != '\0') {
        param_2 = '\x02';
      }
    }
    else {
      cVar3 = '\x02';
      cVar2 = (-(param_2 == '\0') & 3U) + 1;
      if (param_2 != '\0') {
        param_2 = '\x04';
      }
    }
    break;
  case '\x04':
    if (param_1 == '\0') {
      cVar2 = ~-(param_2 == '\0') + 3;
      cVar3 = ~-(param_2 == '\0') + 2;
      if (param_2 != '\0') {
        param_2 = '\x03';
      }
    }
    else {
      cVar3 = '\x03';
      cVar1 = '\x02';
      if (param_2 != '\0') {
        cVar2 = '\x01';
        param_2 = param_3;
      }
    }
    break;
  default:
    cVar1 = '\0';
    cVar2 = '\0';
    cVar3 = '\0';
    param_2 = '\0';
  }
  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));
}


PUSH RBX
CMP DL,0x4
JA 0x0031fc43
LEA R10,[0x393ee8]
MOVZX R9D,DL
MOV R8D,ESI
MOV EAX,EDX
MOVSXD RCX,dword ptr [R10 + R9*0x4]
ADD RCX,R10
JMP RCX
TEST DIL,DIL
JZ 0x0031fc20
CMP SIL,0x1
MOV EDX,0x4
MOV EBX,0x2
SBB ECX,ECX
AND ECX,0x3
ADD ECX,0x1
TEST SIL,SIL
CMOVNZ R8D,EDX
JMP 0x0031fb97
TEST SIL,SIL
JZ 0x0031fc00
MOV ESI,0x4
TEST DIL,DIL
MOV ECX,EDX
MOV R8D,0x3
CMOVNZ ECX,ESI
CMOVZ EAX,ESI
MOV EBX,0x1
JMP 0x0031fb97
TEST SIL,SIL
JZ 0x0031fbd8
CMP DIL,0x1
MOV ECX,0x1
MOV EAX,0x3
SBB R8D,R8D
AND R8D,0xfffffffe
ADD R8D,0x4
CMP DIL,0x1
SBB EBX,EBX
AND EBX,0x2
ADD EBX,0x2
JMP 0x0031fb97
TEST DIL,DIL
JNZ 0x0031fbb8
CMP SIL,0x1
MOV EDX,0x3
SBB ECX,ECX
NOT ECX
ADD ECX,0x3
CMP SIL,0x1
SBB EBX,EBX
NOT EBX
ADD EBX,0x2
TEST SIL,SIL
CMOVNZ R8D,EDX
XOR EDX,EDX
SHL R8D,0x18
MOV DL,AL
MOVZX EAX,CL
MOV DH,BL
SHL EAX,0x10
POP RBX
MOV ECX,EAX
MOVZX EAX,DX
OR EAX,ECX
OR EAX,R8D
RET
TEST SIL,SIL
MOV ECX,0x1
MOV EBX,0x3
MOV EAX,0x2
CMOVZ ECX,EDX
CMOVNZ R8D,EDX
JMP 0x0031fb97
CMP DIL,0x1
MOV EAX,0x3
SBB ECX,ECX
AND ECX,0xfffffffe
ADD ECX,0x4
CMP DIL,0x1
SBB EBX,EBX
AND EBX,0x2
ADD EBX,0x2
JMP 0x0031fb97
MOV ECX,0x4
TEST DIL,DIL
MOV EBX,EDX
CMOVNZ EBX,ECX
CMOVZ EAX,ECX
MOV ECX,0x3
JMP 0x0031fb97
TEST SIL,SIL
MOV EDI,0x2
MOV EBX,0x1
MOV ECX,EDX
CMOVZ EBX,EDX
CMOVZ ECX,EDI
MOV EAX,0x4
CMOVNZ R8D,EDI
JMP 0x0031fb97
XOR R8D,R8D
XOR ECX,ECX
XOR EBX,EBX
XOR EAX,EAX
JMP 0x0031fb97
(translation_unit "undefined4 FUN_0031fac0(char param_1,char param_2,char param_3)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}\n\n" (function_definition "undefined4 FUN_0031fac0(char param_1,char param_2,char param_3)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" type_identifier (function_declarator "FUN_0031fac0(char param_1,char param_2,char param_3)" identifier (parameter_list "(char param_1,char param_2,char param_3)" ( (parameter_declaration "char param_1" primitive_type identifier) , (parameter_declaration "char param_2" primitive_type identifier) , (parameter_declaration "char param_3" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (expression_statement "cVar1 = param_3;" (assignment_expression "cVar1 = param_3" identifier = identifier) ;) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" identifier = identifier) ;) (switch_statement "switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }" switch (parenthesized_expression "(param_3)" ( identifier )) (compound_statement "{\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;" case (char_literal "'\x01'" ' escape_sequence ') : (if_statement "if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" { (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" identifier = (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" ( (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4" identifier = (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" ( (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" else (compound_statement "{\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" { (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" identifier = (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" ( (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "param_2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "param_2 = (-(param_1 == '\0') & 0xfeU) + 4" identifier = (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" ( (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) }))) (break_statement "break;" break ;)) (case_statement "case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;" case (char_literal "'\x02'" ' escape_sequence ') : (if_statement "if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }" { (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar1 = '\x04';\n      }" { (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }) (else_clause "else {\n        param_3 = '\x04';\n      }" else (compound_statement "{\n        param_3 = '\x04';\n      }" { (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }))) (expression_statement "cVar2 = '\x03';" (assignment_expression "cVar2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" identifier = identifier) ;) }) (else_clause "else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" else (compound_statement "{\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" { (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar1 = '\x04';\n      }" { (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }) (else_clause "else {\n        param_3 = '\x04';\n      }" else (compound_statement "{\n        param_3 = '\x04';\n      }" { (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }))) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" identifier = identifier) ;) (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) }))) (break_statement "break;" break ;)) (case_statement "case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;" case (char_literal "'\x03'" ' escape_sequence ') : (if_statement "if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }" { (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" { (expression_statement "cVar2 = '\x02';" (assignment_expression "cVar2 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" identifier = identifier) ;) })) (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x02';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x02';\n      }" { (expression_statement "param_2 = '\x02';" (assignment_expression "param_2 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) })) }) (else_clause "else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" else (compound_statement "{\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" { (expression_statement "cVar3 = '\x02';" (assignment_expression "cVar3 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "cVar2 = (-(param_2 == '\0') & 3U) + 1;" (assignment_expression "cVar2 = (-(param_2 == '\0') & 3U) + 1" identifier = (binary_expression "(-(param_2 == '\0') & 3U) + 1" (parenthesized_expression "(-(param_2 == '\0') & 3U)" ( (binary_expression "-(param_2 == '\0') & 3U" (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x04';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x04';\n      }" { (expression_statement "param_2 = '\x04';" (assignment_expression "param_2 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;" case (char_literal "'\x04'" ' escape_sequence ') : (if_statement "if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }" { (expression_statement "cVar2 = ~-(param_2 == '\0') + 3;" (assignment_expression "cVar2 = ~-(param_2 == '\0') + 3" identifier = (binary_expression "~-(param_2 == '\0') + 3" (unary_expression "~-(param_2 == '\0')" ~ (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) + number_literal)) ;) (expression_statement "cVar3 = ~-(param_2 == '\0') + 2;" (assignment_expression "cVar3 = ~-(param_2 == '\0') + 2" identifier = (binary_expression "~-(param_2 == '\0') + 2" (unary_expression "~-(param_2 == '\0')" ~ (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) + number_literal)) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x03';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x03';\n      }" { (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) })) }) (else_clause "else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" else (compound_statement "{\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" { (expression_statement "cVar3 = '\x03';" (assignment_expression "cVar3 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar1 = '\x02';" (assignment_expression "cVar1 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (if_statement "if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" { (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) })) }))) (break_statement "break;" break ;)) (case_statement "default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';" default : (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_2 = '\0';" (assignment_expression "param_2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) })) (return_statement "return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));" return (call_expression "CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" identifier (argument_list "(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" ( identifier , (call_expression "CONCAT12(cVar2,CONCAT11(cVar3,cVar1))" identifier (argument_list "(cVar2,CONCAT11(cVar3,cVar1))" ( identifier , (call_expression "CONCAT11(cVar3,cVar1)" identifier (argument_list "(cVar3,cVar1)" ( identifier , identifier ))) ))) ))) ;) })))
(translation_unit "/* std::money_base::_S_construct_pattern(char, char, char) */\n\nundefined4 std::money_base::_S_construct_pattern(char param_1,char param_2,char param_3)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    param_2 = '\0';\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}\n\n" comment (function_definition "undefined4 std::money_base::_S_construct_pattern(char param_1,char param_2,char param_3)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    param_2 = '\0';\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" type_identifier (ERROR "std::money_base::" identifier : : identifier : :) (function_declarator "_S_construct_pattern(char param_1,char param_2,char param_3)" identifier (parameter_list "(char param_1,char param_2,char param_3)" ( (parameter_declaration "char param_1" primitive_type identifier) , (parameter_declaration "char param_2" primitive_type identifier) , (parameter_declaration "char param_3" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    param_2 = '\0';\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (expression_statement "cVar1 = param_3;" (assignment_expression "cVar1 = param_3" identifier = identifier) ;) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" identifier = identifier) ;) (switch_statement "switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    param_2 = '\0';\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n  }" switch (parenthesized_expression "(param_3)" ( identifier )) (compound_statement "{\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    param_2 = '\0';\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }\n    break;" case (char_literal "'\x01'" ' escape_sequence ') : (if_statement "if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" { (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" identifier = (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" ( (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4" identifier = (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" ( (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }" else (compound_statement "{\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n    }" { (expression_statement "param_2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "param_2 = (-(param_1 == '\0') & 0xfeU) + 4" identifier = (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" ( (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" identifier = (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" ( (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (break_statement "break;" break ;)) (case_statement "case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }\n    break;" case (char_literal "'\x02'" ' escape_sequence ') : (if_statement "if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }" { (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar1 = '\x04';\n      }" { (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }) (else_clause "else {\n        param_3 = '\x04';\n      }" else (compound_statement "{\n        param_3 = '\x04';\n      }" { (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }))) (expression_statement "cVar2 = '\x03';" (assignment_expression "cVar2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" identifier = identifier) ;) }) (else_clause "else {\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }" else (compound_statement "{\n      param_2 = '\x03';\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n    }" { (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar1 = '\x04';\n      }" { (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }) (else_clause "else {\n        param_3 = '\x04';\n      }" else (compound_statement "{\n        param_3 = '\x04';\n      }" { (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }))) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" identifier = identifier) ;) (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }))) (break_statement "break;" break ;)) (case_statement "case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;" case (char_literal "'\x03'" ' escape_sequence ') : (if_statement "if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }" { (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" { (expression_statement "cVar2 = '\x02';" (assignment_expression "cVar2 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" identifier = identifier) ;) })) (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x02';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x02';\n      }" { (expression_statement "param_2 = '\x02';" (assignment_expression "param_2 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) })) }) (else_clause "else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" else (compound_statement "{\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" { (expression_statement "cVar3 = '\x02';" (assignment_expression "cVar3 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "cVar2 = (-(param_2 == '\0') & 3U) + 1;" (assignment_expression "cVar2 = (-(param_2 == '\0') & 3U) + 1" identifier = (binary_expression "(-(param_2 == '\0') & 3U) + 1" (parenthesized_expression "(-(param_2 == '\0') & 3U)" ( (binary_expression "-(param_2 == '\0') & 3U" (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x04';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x04';\n      }" { (expression_statement "param_2 = '\x04';" (assignment_expression "param_2 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;" case (char_literal "'\x04'" ' escape_sequence ') : (if_statement "if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }" { (expression_statement "cVar2 = ~-(param_2 == '\0') + 3;" (assignment_expression "cVar2 = ~-(param_2 == '\0') + 3" identifier = (binary_expression "~-(param_2 == '\0') + 3" (unary_expression "~-(param_2 == '\0')" ~ (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) + number_literal)) ;) (expression_statement "cVar3 = ~-(param_2 == '\0') + 2;" (assignment_expression "cVar3 = ~-(param_2 == '\0') + 2" identifier = (binary_expression "~-(param_2 == '\0') + 2" (unary_expression "~-(param_2 == '\0')" ~ (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) + number_literal)) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x03';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x03';\n      }" { (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) })) }) (else_clause "else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" else (compound_statement "{\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" { (expression_statement "cVar3 = '\x03';" (assignment_expression "cVar3 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar1 = '\x02';" (assignment_expression "cVar1 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (if_statement "if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" { (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) })) }))) (break_statement "break;" break ;)) (case_statement "default:\n    param_2 = '\0';\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';" default : (expression_statement "param_2 = '\0';" (assignment_expression "param_2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) })) (return_statement "return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));" return (call_expression "CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" identifier (argument_list "(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" ( identifier , (call_expression "CONCAT12(cVar2,CONCAT11(cVar3,cVar1))" identifier (argument_list "(cVar2,CONCAT11(cVar3,cVar1))" ( identifier , (call_expression "CONCAT11(cVar3,cVar1)" identifier (argument_list "(cVar3,cVar1)" ( identifier , identifier ))) ))) ))) ;) })))
(translation_unit "undefined4 FUN_0031fac0(char param_1,char param_2,char param_3)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}\n\n" (function_definition "undefined4 FUN_0031fac0(char param_1,char param_2,char param_3)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" type_identifier (function_declarator "FUN_0031fac0(char param_1,char param_2,char param_3)" identifier (parameter_list "(char param_1,char param_2,char param_3)" ( (parameter_declaration "char param_1" primitive_type identifier) , (parameter_declaration "char param_2" primitive_type identifier) , (parameter_declaration "char param_3" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (expression_statement "cVar1 = param_3;" (assignment_expression "cVar1 = param_3" identifier = identifier) ;) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" identifier = identifier) ;) (switch_statement "switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }" switch (parenthesized_expression "(param_3)" ( identifier )) (compound_statement "{\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;" case (char_literal "'\x01'" ' escape_sequence ') : (if_statement "if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" { (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" identifier = (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" ( (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4" identifier = (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" ( (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" else (compound_statement "{\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" { (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" identifier = (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" ( (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "param_2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "param_2 = (-(param_1 == '\0') & 0xfeU) + 4" identifier = (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" ( (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" - (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) }))) (break_statement "break;" break ;)) (case_statement "case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;" case (char_literal "'\x02'" ' escape_sequence ') : (if_statement "if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }" { (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar1 = '\x04';\n      }" { (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }) (else_clause "else {\n        param_3 = '\x04';\n      }" else (compound_statement "{\n        param_3 = '\x04';\n      }" { (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }))) (expression_statement "cVar2 = '\x03';" (assignment_expression "cVar2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" identifier = identifier) ;) }) (else_clause "else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" else (compound_statement "{\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" { (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar1 = '\x04';\n      }" { (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }) (else_clause "else {\n        param_3 = '\x04';\n      }" else (compound_statement "{\n        param_3 = '\x04';\n      }" { (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) }))) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" identifier = identifier) ;) (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) }))) (break_statement "break;" break ;)) (case_statement "case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;" case (char_literal "'\x03'" ' escape_sequence ') : (if_statement "if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }" { (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" if (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" { (expression_statement "cVar2 = '\x02';" (assignment_expression "cVar2 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" identifier = identifier) ;) })) (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x02';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x02';\n      }" { (expression_statement "param_2 = '\x02';" (assignment_expression "param_2 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) })) }) (else_clause "else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" else (compound_statement "{\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" { (expression_statement "cVar3 = '\x02';" (assignment_expression "cVar3 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (expression_statement "cVar2 = (-(param_2 == '\0') & 3U) + 1;" (assignment_expression "cVar2 = (-(param_2 == '\0') & 3U) + 1" identifier = (binary_expression "(-(param_2 == '\0') & 3U) + 1" (parenthesized_expression "(-(param_2 == '\0') & 3U)" ( (binary_expression "-(param_2 == '\0') & 3U" (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) & number_literal) )) + number_literal)) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x04';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x04';\n      }" { (expression_statement "param_2 = '\x04';" (assignment_expression "param_2 = '\x04'" identifier = (char_literal "'\x04'" ' escape_sequence ')) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;" case (char_literal "'\x04'" ' escape_sequence ') : (if_statement "if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" if (parenthesized_expression "(param_1 == '\0')" ( (binary_expression "param_1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }" { (expression_statement "cVar2 = ~-(param_2 == '\0') + 3;" (assignment_expression "cVar2 = ~-(param_2 == '\0') + 3" identifier = (binary_expression "~-(param_2 == '\0') + 3" (unary_expression "~-(param_2 == '\0')" ~ (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) + number_literal)) ;) (expression_statement "cVar3 = ~-(param_2 == '\0') + 2;" (assignment_expression "cVar3 = ~-(param_2 == '\0') + 2" identifier = (binary_expression "~-(param_2 == '\0') + 2" (unary_expression "~-(param_2 == '\0')" ~ (unary_expression "-(param_2 == '\0')" - (parenthesized_expression "(param_2 == '\0')" ( (binary_expression "param_2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) + number_literal)) ;) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x03';\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        param_2 = '\x03';\n      }" { (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) })) }) (else_clause "else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" else (compound_statement "{\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" { (expression_statement "cVar3 = '\x03';" (assignment_expression "cVar3 = '\x03'" identifier = (char_literal "'\x03'" ' escape_sequence ')) ;) (expression_statement "cVar1 = '\x02';" (assignment_expression "cVar1 = '\x02'" identifier = (char_literal "'\x02'" ' escape_sequence ')) ;) (if_statement "if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" if (parenthesized_expression "(param_2 != '\0')" ( (binary_expression "param_2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" { (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) })) }))) (break_statement "break;" break ;)) (case_statement "default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';" default : (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "param_2 = '\0';" (assignment_expression "param_2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;)) })) (return_statement "return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));" return (call_expression "CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" identifier (argument_list "(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" ( identifier , (call_expression "CONCAT12(cVar2,CONCAT11(cVar3,cVar1))" identifier (argument_list "(cVar2,CONCAT11(cVar3,cVar1))" ( identifier , (call_expression "CONCAT11(cVar3,cVar1)" identifier (argument_list "(cVar3,cVar1)" ( identifier , identifier ))) ))) ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' escape_sequence ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) & LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) & LIT) )) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) & LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) & LIT) )) + LIT)) ;) }))) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }))) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) & LIT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) }))) (break_statement break ;)) (case_statement case (char_literal ' escape_sequence ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (unary_expression - (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;)) })) (return_statement return (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , (call_expression IDENT (argument_list ( IDENT , IDENT ))) ))) ))) ;) })))
(function_definition "undefined4 FUN_0031fac0(char param_1,char param_2,char param_3)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" (type_identifier "undefined4") (function_declarator "FUN_0031fac0(char param_1,char param_2,char param_3)" (identifier "FUN_0031fac0") (parameter_list "(char param_1,char param_2,char param_3)" (( "(") (parameter_declaration "char param_1" (primitive_type "char") (identifier "param_1")) (, ",") (parameter_declaration "char param_2" (primitive_type "char") (identifier "param_2")) (, ",") (parameter_declaration "char param_3" (primitive_type "char") (identifier "param_3")) () ")"))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  \n  cVar1 = param_3;\n  cVar2 = param_3;\n  switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }\n  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (expression_statement "cVar1 = param_3;" (assignment_expression "cVar1 = param_3" (identifier "cVar1") (= "=") (identifier "param_3")) (; ";")) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" (identifier "cVar2") (= "=") (identifier "param_3")) (; ";")) (switch_statement "switch(param_3) {\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }" (switch "switch") (parenthesized_expression "(param_3)" (( "(") (identifier "param_3") () ")")) (compound_statement "{\n  case '\0':\n  case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;\n  case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;\n  case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;\n  case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;\n  default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';\n  }" ({ "{") (case_statement "case '\0':" (case "case") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")) (: ":")) (case_statement "case '\x01':\n    if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    break;" (case "case") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'")) (: ":") (if_statement "if (param_2 == '\0') {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }\n    else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" (if "if") (parenthesized_expression "(param_2 == '\0')" (( "(") (binary_expression "param_2 == '\0'" (identifier "param_2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" ({ "{") (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" (identifier "cVar3") (= "=") (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" (( "(") (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" (- "-") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (& "&") (number_literal "2U")) () ")")) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" (identifier "cVar1") (= "=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (; ";")) (expression_statement "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "cVar2 = (-(param_1 == '\0') & 0xfeU) + 4" (identifier "cVar2") (= "=") (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" (( "(") (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" (- "-") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (& "&") (number_literal "0xfeU")) () ")")) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" (else "else") (compound_statement "{\n      cVar3 = (-(param_1 == '\0') & 2U) + 2;\n      cVar1 = '\x03';\n      cVar2 = '\x01';\n      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;\n    }" ({ "{") (expression_statement "cVar3 = (-(param_1 == '\0') & 2U) + 2;" (assignment_expression "cVar3 = (-(param_1 == '\0') & 2U) + 2" (identifier "cVar3") (= "=") (binary_expression "(-(param_1 == '\0') & 2U) + 2" (parenthesized_expression "(-(param_1 == '\0') & 2U)" (( "(") (binary_expression "-(param_1 == '\0') & 2U" (unary_expression "-(param_1 == '\0')" (- "-") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (& "&") (number_literal "2U")) () ")")) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "cVar1 = '\x03';" (assignment_expression "cVar1 = '\x03'" (identifier "cVar1") (= "=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (; ";")) (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" (identifier "cVar2") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "param_2 = (-(param_1 == '\0') & 0xfeU) + 4;" (assignment_expression "param_2 = (-(param_1 == '\0') & 0xfeU) + 4" (identifier "param_2") (= "=") (binary_expression "(-(param_1 == '\0') & 0xfeU) + 4" (parenthesized_expression "(-(param_1 == '\0') & 0xfeU)" (( "(") (binary_expression "-(param_1 == '\0') & 0xfeU" (unary_expression "-(param_1 == '\0')" (- "-") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (& "&") (number_literal "0xfeU")) () ")")) (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x02':\n    if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }\n    break;" (case "case") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'")) (: ":") (if_statement "if (param_2 == '\0') {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }\n    else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" (if "if") (parenthesized_expression "(param_2 == '\0')" (( "(") (binary_expression "param_2 == '\0'" (identifier "param_2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = '\x03';\n      cVar3 = param_3;\n    }" ({ "{") (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" (if "if") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar1 = '\x04';\n      }" ({ "{") (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" (identifier "cVar1") (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n        param_3 = '\x04';\n      }" (else "else") (compound_statement "{\n        param_3 = '\x04';\n      }" ({ "{") (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" (identifier "param_3") (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (} "}")))) (expression_statement "cVar2 = '\x03';" (assignment_expression "cVar2 = '\x03'" (identifier "cVar2") (= "=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (; ";")) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" (identifier "cVar3") (= "=") (identifier "param_3")) (; ";")) (} "}")) (else_clause "else {\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" (else "else") (compound_statement "{\n      if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }\n      cVar2 = param_3;\n      cVar3 = '\x01';\n      param_2 = '\x03';\n    }" ({ "{") (if_statement "if (param_1 == '\0') {\n        cVar1 = '\x04';\n      }\n      else {\n        param_3 = '\x04';\n      }" (if "if") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar1 = '\x04';\n      }" ({ "{") (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" (identifier "cVar1") (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n        param_3 = '\x04';\n      }" (else "else") (compound_statement "{\n        param_3 = '\x04';\n      }" ({ "{") (expression_statement "param_3 = '\x04';" (assignment_expression "param_3 = '\x04'" (identifier "param_3") (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (} "}")))) (expression_statement "cVar2 = param_3;" (assignment_expression "cVar2 = param_3" (identifier "cVar2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" (identifier "cVar3") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" (identifier "param_2") (= "=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x03':\n    if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }\n    break;" (case "case") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'")) (: ":") (if_statement "if (param_1 == '\0') {\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }\n    else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" (if "if") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar3 = '\x01';\n      if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }\n      cVar1 = '\x04';\n      if (param_2 != '\0') {\n        param_2 = '\x02';\n      }\n    }" ({ "{") (expression_statement "cVar3 = '\x01';" (assignment_expression "cVar3 = '\x01'" (identifier "cVar3") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (if_statement "if (param_2 == '\0') {\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" (if "if") (parenthesized_expression "(param_2 == '\0')" (( "(") (binary_expression "param_2 == '\0'" (identifier "param_2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar2 = '\x02';\n        cVar3 = param_3;\n      }" ({ "{") (expression_statement "cVar2 = '\x02';" (assignment_expression "cVar2 = '\x02'" (identifier "cVar2") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "cVar3 = param_3;" (assignment_expression "cVar3 = param_3" (identifier "cVar3") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "cVar1 = '\x04';" (assignment_expression "cVar1 = '\x04'" (identifier "cVar1") (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x02';\n      }" (if "if") (parenthesized_expression "(param_2 != '\0')" (( "(") (binary_expression "param_2 != '\0'" (identifier "param_2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        param_2 = '\x02';\n      }" ({ "{") (expression_statement "param_2 = '\x02';" (assignment_expression "param_2 = '\x02'" (identifier "param_2") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" (else "else") (compound_statement "{\n      cVar3 = '\x02';\n      cVar2 = (-(param_2 == '\0') & 3U) + 1;\n      if (param_2 != '\0') {\n        param_2 = '\x04';\n      }\n    }" ({ "{") (expression_statement "cVar3 = '\x02';" (assignment_expression "cVar3 = '\x02'" (identifier "cVar3") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (expression_statement "cVar2 = (-(param_2 == '\0') & 3U) + 1;" (assignment_expression "cVar2 = (-(param_2 == '\0') & 3U) + 1" (identifier "cVar2") (= "=") (binary_expression "(-(param_2 == '\0') & 3U) + 1" (parenthesized_expression "(-(param_2 == '\0') & 3U)" (( "(") (binary_expression "-(param_2 == '\0') & 3U" (unary_expression "-(param_2 == '\0')" (- "-") (parenthesized_expression "(param_2 == '\0')" (( "(") (binary_expression "param_2 == '\0'" (identifier "param_2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (& "&") (number_literal "3U")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x04';\n      }" (if "if") (parenthesized_expression "(param_2 != '\0')" (( "(") (binary_expression "param_2 != '\0'" (identifier "param_2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        param_2 = '\x04';\n      }" ({ "{") (expression_statement "param_2 = '\x04';" (assignment_expression "param_2 = '\x04'" (identifier "param_2") (= "=") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'"))) (; ";")) (} "}"))) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '\x04':\n    if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }\n    break;" (case "case") (char_literal "'\x04'" (' "'") (escape_sequence "\x04") (' "'")) (: ":") (if_statement "if (param_1 == '\0') {\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }\n    else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" (if "if") (parenthesized_expression "(param_1 == '\0')" (( "(") (binary_expression "param_1 == '\0'" (identifier "param_1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar2 = ~-(param_2 == '\0') + 3;\n      cVar3 = ~-(param_2 == '\0') + 2;\n      if (param_2 != '\0') {\n        param_2 = '\x03';\n      }\n    }" ({ "{") (expression_statement "cVar2 = ~-(param_2 == '\0') + 3;" (assignment_expression "cVar2 = ~-(param_2 == '\0') + 3" (identifier "cVar2") (= "=") (binary_expression "~-(param_2 == '\0') + 3" (unary_expression "~-(param_2 == '\0')" (~ "~") (unary_expression "-(param_2 == '\0')" (- "-") (parenthesized_expression "(param_2 == '\0')" (( "(") (binary_expression "param_2 == '\0'" (identifier "param_2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) (+ "+") (number_literal "3"))) (; ";")) (expression_statement "cVar3 = ~-(param_2 == '\0') + 2;" (assignment_expression "cVar3 = ~-(param_2 == '\0') + 2" (identifier "cVar3") (= "=") (binary_expression "~-(param_2 == '\0') + 2" (unary_expression "~-(param_2 == '\0')" (~ "~") (unary_expression "-(param_2 == '\0')" (- "-") (parenthesized_expression "(param_2 == '\0')" (( "(") (binary_expression "param_2 == '\0'" (identifier "param_2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (param_2 != '\0') {\n        param_2 = '\x03';\n      }" (if "if") (parenthesized_expression "(param_2 != '\0')" (( "(") (binary_expression "param_2 != '\0'" (identifier "param_2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        param_2 = '\x03';\n      }" ({ "{") (expression_statement "param_2 = '\x03';" (assignment_expression "param_2 = '\x03'" (identifier "param_2") (= "=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" (else "else") (compound_statement "{\n      cVar3 = '\x03';\n      cVar1 = '\x02';\n      if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }\n    }" ({ "{") (expression_statement "cVar3 = '\x03';" (assignment_expression "cVar3 = '\x03'" (identifier "cVar3") (= "=") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) (; ";")) (expression_statement "cVar1 = '\x02';" (assignment_expression "cVar1 = '\x02'" (identifier "cVar1") (= "=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) (; ";")) (if_statement "if (param_2 != '\0') {\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" (if "if") (parenthesized_expression "(param_2 != '\0')" (( "(") (binary_expression "param_2 != '\0'" (identifier "param_2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar2 = '\x01';\n        param_2 = param_3;\n      }" ({ "{") (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" (identifier "cVar2") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" (identifier "param_2") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    cVar1 = '\0';\n    cVar2 = '\0';\n    cVar3 = '\0';\n    param_2 = '\0';" (default "default") (: ":") (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" (identifier "cVar1") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" (identifier "cVar2") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar3 = '\0';" (assignment_expression "cVar3 = '\0'" (identifier "cVar3") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "param_2 = '\0';" (assignment_expression "param_2 = '\0'" (identifier "param_2") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (} "}"))) (return_statement "return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));" (return "return") (call_expression "CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" (identifier "CONCAT13") (argument_list "(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)))" (( "(") (identifier "param_2") (, ",") (call_expression "CONCAT12(cVar2,CONCAT11(cVar3,cVar1))" (identifier "CONCAT12") (argument_list "(cVar2,CONCAT11(cVar3,cVar1))" (( "(") (identifier "cVar2") (, ",") (call_expression "CONCAT11(cVar3,cVar1)" (identifier "CONCAT11") (argument_list "(cVar3,cVar1)" (( "(") (identifier "cVar3") (, ",") (identifier "cVar1") () ")"))) () ")"))) () ")"))) (; ";")) (} "}")))

/* std::money_base::_S_construct_pattern(char, char, char) */

type_1 std::money_base::function_1(char var_2,char var_1,char param_3)

{
  char cVar1;
  char cVar2;
  char cVar3;
  
  cVar1 = param_3;
  cVar2 = param_3;
  switch(param_3) {
  case '\0':
  case '\x01':
    if (var_1 == '\0') {
      cVar3 = (-(var_2 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = (-(var_2 == '\0') & 0xfeU) + 4;
    }
    else {
      var_1 = (-(var_2 == '\0') & 0xfeU) + 4;
      cVar3 = (-(var_2 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = '\x01';
    }
    break;
  case '\x02':
    if (var_1 == '\0') {
      if (var_2 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = '\x03';
      cVar3 = param_3;
    }
    else {
      var_1 = '\x03';
      if (var_2 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = param_3;
      cVar3 = '\x01';
    }
    break;
  case '\x03':
    if (var_2 == '\0') {
      cVar3 = '\x01';
      if (var_1 == '\0') {
        cVar2 = '\x02';
        cVar3 = param_3;
      }
      cVar1 = '\x04';
      if (var_1 != '\0') {
        var_1 = '\x02';
      }
    }
    else {
      cVar3 = '\x02';
      cVar2 = (-(var_1 == '\0') & 3U) + 1;
      if (var_1 != '\0') {
        var_1 = '\x04';
      }
    }
    break;
  case '\x04':
    if (var_2 == '\0') {
      cVar2 = ~-(var_1 == '\0') + 3;
      cVar3 = ~-(var_1 == '\0') + 2;
      if (var_1 != '\0') {
        var_1 = '\x03';
      }
    }
    else {
      cVar3 = '\x03';
      cVar1 = '\x02';
      if (var_1 != '\0') {
        cVar2 = '\x01';
        var_1 = param_3;
      }
    }
    break;
  default:
    var_1 = '\0';
    cVar1 = '\0';
    cVar2 = '\0';
    cVar3 = '\0';
  }
  return var_3(var_1,var_4(cVar2,var_5(cVar3,cVar1)));
}


(translation_unit (function_definition type: (type_identifier) 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: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (char_literal (escape_sequence))) (case_statement value: (char_literal (escape_sequence)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) right: (number_literal))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) right: (number_literal))) right: (number_literal))))))) (break_statement)) (case_statement value: (char_literal (escape_sequence)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))))) (break_statement)) (case_statement value: (char_literal (escape_sequence)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))))))) (break_statement)) (case_statement value: (char_literal (escape_sequence)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (unary_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (escape_sequence))))))) (return_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (identifier) (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))))))

undefined4 MASKED(char param_1,char param_2,char param_3)

{
  char cVar1;
  char cVar2;
  char cVar3;
  
  cVar1 = param_3;
  cVar2 = param_3;
  switch(param_3) {
  case '\0':
  case '\x01':
    if (param_2 == '\0') {
      cVar3 = (-(param_1 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = (-(param_1 == '\0') & 0xfeU) + 4;
    }
    else {
      cVar3 = (-(param_1 == '\0') & 2U) + 2;
      cVar1 = '\x03';
      cVar2 = '\x01';
      param_2 = (-(param_1 == '\0') & 0xfeU) + 4;
    }
    break;
  case '\x02':
    if (param_2 == '\0') {
      if (param_1 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = '\x03';
      cVar3 = param_3;
    }
    else {
      if (param_1 == '\0') {
        cVar1 = '\x04';
      }
      else {
        param_3 = '\x04';
      }
      cVar2 = param_3;
      cVar3 = '\x01';
      param_2 = '\x03';
    }
    break;
  case '\x03':
    if (param_1 == '\0') {
      cVar3 = '\x01';
      if (param_2 == '\0') {
        cVar2 = '\x02';
        cVar3 = param_3;
      }
      cVar1 = '\x04';
      if (param_2 != '\0') {
        param_2 = '\x02';
      }
    }
    else {
      cVar3 = '\x02';
      cVar2 = (-(param_2 == '\0') & 3U) + 1;
      if (param_2 != '\0') {
        param_2 = '\x04';
      }
    }
    break;
  case '\x04':
    if (param_1 == '\0') {
      cVar2 = ~-(param_2 == '\0') + 3;
      cVar3 = ~-(param_2 == '\0') + 2;
      if (param_2 != '\0') {
        param_2 = '\x03';
      }
    }
    else {
      cVar3 = '\x03';
      cVar1 = '\x02';
      if (param_2 != '\0') {
        cVar2 = '\x01';
        param_2 = param_3;
      }
    }
    break;
  default:
    cVar1 = '\0';
    cVar2 = '\0';
    cVar3 = '\0';
    param_2 = '\0';
  }
  return CONCAT13(param_2,CONCAT12(cVar2,CONCAT11(cVar3,cVar1)));
}

