
ulong yytnamerr(char *yyres,char *yystr)

{
  char *pcVar1;
  char cVar2;
  char *pcVar3;
  ulong uVar4;
  size_t sVar5;
  
  if (*yystr == '\"') {
    uVar4 = 0;
    pcVar3 = yystr;
    while (cVar2 = pcVar3[1], cVar2 != '\'') {
      if (cVar2 < '(') {
        if (cVar2 == '\"') {
          if (yyres == (char *)0x0) {
            return uVar4;
          }
          yyres[uVar4] = '\0';
          return uVar4;
        }
LAB_00231360:
        pcVar3 = pcVar3 + 1;
      }
      else {
        if (cVar2 == ',') break;
        if (cVar2 != '\\') goto LAB_00231360;
        pcVar1 = pcVar3 + 2;
        pcVar3 = pcVar3 + 2;
        if (*pcVar1 != '\\') break;
      }
      if (yyres != (char *)0x0) {
        yyres[uVar4] = *pcVar3;
      }
      uVar4 = uVar4 + 1;
    }
  }
  if (yyres == (char *)0x0) {
    sVar5 = strlen(yystr);
    return sVar5;
  }
  pcVar3 = stpcpy(yyres,yystr);
  return (long)pcVar3 - (long)yyres;
}



size_t FUN_002312e0(char *param_1,char *param_2)

{
  char *pcVar1;
  char cVar2;
  char *pcVar3;
  size_t sVar4;
  
  if (*param_2 == '\"') {
    sVar4 = 0;
    pcVar3 = param_2;
    while (cVar2 = pcVar3[1], cVar2 != '\'') {
      if (cVar2 < '(') {
        if (cVar2 == '\"') {
          if (param_1 == (char *)0x0) {
            return sVar4;
          }
          param_1[sVar4] = '\0';
          return sVar4;
        }
LAB_00231360:
        pcVar3 = pcVar3 + 1;
      }
      else {
        if (cVar2 == ',') break;
        if (cVar2 != '\\') goto LAB_00231360;
        pcVar1 = pcVar3 + 2;
        pcVar3 = pcVar3 + 2;
        if (*pcVar1 != '\\') break;
      }
      if (param_1 != (char *)0x0) {
        param_1[sVar4] = *pcVar3;
      }
      sVar4 = sVar4 + 1;
    }
  }
  if (param_1 == (char *)0x0) {
    sVar4 = strlen(param_2);
    return sVar4;
  }
  pcVar3 = stpcpy(param_1,param_2);
  return (long)pcVar3 - (long)param_1;
}


CMP byte ptr [RSI],0x22
JZ 0x00231300
TEST RDI,RDI
JZ 0x00231358
PUSH RBX
MOV RBX,RDI
CALL 0x0013e1c0
SUB RAX,RBX
POP RBX
RET
MOV RCX,RSI
XOR EAX,EAX
MOVZX EDX,byte ptr [RCX + 0x1]
CMP DL,0x27
JZ 0x002312e5
JLE 0x00231340
CMP DL,0x2c
JZ 0x002312e5
CMP DL,0x5c
JNZ 0x00231360
CMP byte ptr [RCX + 0x2],0x5c
LEA RDX,[RCX + 0x2]
JNZ 0x002312e5
MOV RCX,RDX
TEST RDI,RDI
JZ 0x00231332
MOVZX EDX,byte ptr [RCX]
MOV byte ptr [RDI + RAX*0x1],DL
ADD RAX,0x1
JMP 0x00231305
CMP DL,0x22
JNZ 0x00231360
TEST RDI,RDI
JZ 0x00231350
MOV byte ptr [RDI + RAX*0x1],0x0
RET
RET
MOV RDI,RSI
JMP 0x0013e490
ADD RCX,0x1
JMP 0x00231327
(translation_unit "size_t FUN_002312e0(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}\n\n" (function_definition "size_t FUN_002312e0(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}" primitive_type (function_declarator "FUN_002312e0(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (if_statement "if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }" if (parenthesized_expression "(*param_2 == '\"')" ( (binary_expression "*param_2 == '\"'" (pointer_expression "*param_2" * identifier) == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar3 = param_2;" (assignment_expression "pcVar3 = param_2" identifier = identifier) ;) (while_statement "while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }" while (parenthesized_expression "(cVar2 = pcVar3[1], cVar2 != '\'')" ( (comma_expression "cVar2 = pcVar3[1], cVar2 != '\''" (assignment_expression "cVar2 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) , (binary_expression "cVar2 != '\''" identifier != (char_literal "'\''" ' escape_sequence '))) )) (compound_statement "{\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }" { (if_statement "if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" if (parenthesized_expression "(cVar2 < '(')" ( (binary_expression "cVar2 < '('" identifier < (char_literal "'('" ' character ')) )) (compound_statement "{\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }" { (if_statement "if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }" { (if_statement "if (param_1 == (char *)0x0) {\n            return sVar4;\n          }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return sVar4;\n          }" { (return_statement "return sVar4;" return identifier ;) })) (expression_statement "param_1[sVar4] = '\0';" (assignment_expression "param_1[sVar4] = '\0'" (subscript_expression "param_1[sVar4]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return sVar4;" return identifier ;) })) (labeled_statement "LAB_00231360:\n        pcVar3 = pcVar3 + 1;" statement_identifier : (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;)) }) (else_clause "else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" else (compound_statement "{\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" { (if_statement "if (cVar2 == ',') break;" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (cVar2 != '\\') goto LAB_00231360;" if (parenthesized_expression "(cVar2 != '\\')" ( (binary_expression "cVar2 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (goto_statement "goto LAB_00231360;" goto statement_identifier ;)) (expression_statement "pcVar1 = pcVar3 + 2;" (assignment_expression "pcVar1 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (if_statement "if (*pcVar1 != '\\') break;" if (parenthesized_expression "(*pcVar1 != '\\')" ( (binary_expression "*pcVar1 != '\\'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\\'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }))) (if_statement "if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_1[sVar4] = *pcVar3;\n      }" { (expression_statement "param_1[sVar4] = *pcVar3;" (assignment_expression "param_1[sVar4] = *pcVar3" (subscript_expression "param_1[sVar4]" identifier [ identifier ]) = (pointer_expression "*pcVar3" * identifier)) ;) })) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }" { (expression_statement "sVar4 = strlen(param_2);" (assignment_expression "sVar4 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return sVar4;" return identifier ;) })) (expression_statement "pcVar3 = stpcpy(param_1,param_2);" (assignment_expression "pcVar3 = stpcpy(param_1,param_2)" identifier = (call_expression "stpcpy(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (return_statement "return (long)pcVar3 - (long)param_1;" return (binary_expression "(long)pcVar3 - (long)param_1" (cast_expression "(long)pcVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })))
(translation_unit "ulong yytnamerr(char *yyres,char *yystr)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  size_t sVar5;\n  \n  if (*yystr == '\"') {\n    uVar4 = 0;\n    pcVar3 = yystr;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }\n      uVar4 = uVar4 + 1;\n    }\n  }\n  if (yyres == (char *)0x0) {\n    sVar5 = strlen(yystr);\n    return sVar5;\n  }\n  pcVar3 = stpcpy(yyres,yystr);\n  return (long)pcVar3 - (long)yyres;\n}\n\n" (function_definition "ulong yytnamerr(char *yyres,char *yystr)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  size_t sVar5;\n  \n  if (*yystr == '\"') {\n    uVar4 = 0;\n    pcVar3 = yystr;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }\n      uVar4 = uVar4 + 1;\n    }\n  }\n  if (yyres == (char *)0x0) {\n    sVar5 = strlen(yystr);\n    return sVar5;\n  }\n  pcVar3 = stpcpy(yyres,yystr);\n  return (long)pcVar3 - (long)yyres;\n}" type_identifier (function_declarator "yytnamerr(char *yyres,char *yystr)" identifier (parameter_list "(char *yyres,char *yystr)" ( (parameter_declaration "char *yyres" primitive_type (pointer_declarator "*yyres" * identifier)) , (parameter_declaration "char *yystr" primitive_type (pointer_declarator "*yystr" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  ulong uVar4;\n  size_t sVar5;\n  \n  if (*yystr == '\"') {\n    uVar4 = 0;\n    pcVar3 = yystr;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }\n      uVar4 = uVar4 + 1;\n    }\n  }\n  if (yyres == (char *)0x0) {\n    sVar5 = strlen(yystr);\n    return sVar5;\n  }\n  pcVar3 = stpcpy(yyres,yystr);\n  return (long)pcVar3 - (long)yyres;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (if_statement "if (*yystr == '\"') {\n    uVar4 = 0;\n    pcVar3 = yystr;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }\n      uVar4 = uVar4 + 1;\n    }\n  }" if (parenthesized_expression "(*yystr == '\"')" ( (binary_expression "*yystr == '\"'" (pointer_expression "*yystr" * identifier) == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    uVar4 = 0;\n    pcVar3 = yystr;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }\n      uVar4 = uVar4 + 1;\n    }\n  }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar3 = yystr;" (assignment_expression "pcVar3 = yystr" identifier = identifier) ;) (while_statement "while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }\n      uVar4 = uVar4 + 1;\n    }" while (parenthesized_expression "(cVar2 = pcVar3[1], cVar2 != '\'')" ( (comma_expression "cVar2 = pcVar3[1], cVar2 != '\''" (assignment_expression "cVar2 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) , (binary_expression "cVar2 != '\''" identifier != (char_literal "'\''" ' escape_sequence '))) )) (compound_statement "{\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }\n      uVar4 = uVar4 + 1;\n    }" { (if_statement "if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" if (parenthesized_expression "(cVar2 < '(')" ( (binary_expression "cVar2 < '('" identifier < (char_literal "'('" ' character ')) )) (compound_statement "{\n        if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }" { (if_statement "if (cVar2 == '\"') {\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n          if (yyres == (char *)0x0) {\n            return uVar4;\n          }\n          yyres[uVar4] = '\0';\n          return uVar4;\n        }" { (if_statement "if (yyres == (char *)0x0) {\n            return uVar4;\n          }" if (parenthesized_expression "(yyres == (char *)0x0)" ( (binary_expression "yyres == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return uVar4;\n          }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "yyres[uVar4] = '\0';" (assignment_expression "yyres[uVar4] = '\0'" (subscript_expression "yyres[uVar4]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return uVar4;" return identifier ;) })) (labeled_statement "LAB_00231360:\n        pcVar3 = pcVar3 + 1;" statement_identifier : (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;)) }) (else_clause "else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" else (compound_statement "{\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" { (if_statement "if (cVar2 == ',') break;" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (cVar2 != '\\') goto LAB_00231360;" if (parenthesized_expression "(cVar2 != '\\')" ( (binary_expression "cVar2 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (goto_statement "goto LAB_00231360;" goto statement_identifier ;)) (expression_statement "pcVar1 = pcVar3 + 2;" (assignment_expression "pcVar1 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (if_statement "if (*pcVar1 != '\\') break;" if (parenthesized_expression "(*pcVar1 != '\\')" ( (binary_expression "*pcVar1 != '\\'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\\'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }))) (if_statement "if (yyres != (char *)0x0) {\n        yyres[uVar4] = *pcVar3;\n      }" if (parenthesized_expression "(yyres != (char *)0x0)" ( (binary_expression "yyres != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        yyres[uVar4] = *pcVar3;\n      }" { (expression_statement "yyres[uVar4] = *pcVar3;" (assignment_expression "yyres[uVar4] = *pcVar3" (subscript_expression "yyres[uVar4]" identifier [ identifier ]) = (pointer_expression "*pcVar3" * identifier)) ;) })) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (yyres == (char *)0x0) {\n    sVar5 = strlen(yystr);\n    return sVar5;\n  }" if (parenthesized_expression "(yyres == (char *)0x0)" ( (binary_expression "yyres == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar5 = strlen(yystr);\n    return sVar5;\n  }" { (expression_statement "sVar5 = strlen(yystr);" (assignment_expression "sVar5 = strlen(yystr)" identifier = (call_expression "strlen(yystr)" identifier (argument_list "(yystr)" ( identifier )))) ;) (return_statement "return sVar5;" return identifier ;) })) (expression_statement "pcVar3 = stpcpy(yyres,yystr);" (assignment_expression "pcVar3 = stpcpy(yyres,yystr)" identifier = (call_expression "stpcpy(yyres,yystr)" identifier (argument_list "(yyres,yystr)" ( identifier , identifier )))) ;) (return_statement "return (long)pcVar3 - (long)yyres;" return (binary_expression "(long)pcVar3 - (long)yyres" (cast_expression "(long)pcVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)yyres" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })))
(translation_unit "size_t FUN_002312e0(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}\n\n" (function_definition "size_t FUN_002312e0(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}" primitive_type (function_declarator "FUN_002312e0(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (if_statement "if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }" if (parenthesized_expression "(*param_2 == '\"')" ( (binary_expression "*param_2 == '\"'" (pointer_expression "*param_2" * identifier) == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }" { (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar3 = param_2;" (assignment_expression "pcVar3 = param_2" identifier = identifier) ;) (while_statement "while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }" while (parenthesized_expression "(cVar2 = pcVar3[1], cVar2 != '\'')" ( (comma_expression "cVar2 = pcVar3[1], cVar2 != '\''" (assignment_expression "cVar2 = pcVar3[1]" identifier = (subscript_expression "pcVar3[1]" identifier [ number_literal ])) , (binary_expression "cVar2 != '\''" identifier != (char_literal "'\''" ' escape_sequence '))) )) (compound_statement "{\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }" { (if_statement "if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" if (parenthesized_expression "(cVar2 < '(')" ( (binary_expression "cVar2 < '('" identifier < (char_literal "'('" ' character ')) )) (compound_statement "{\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }" { (if_statement "if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }" if (parenthesized_expression "(cVar2 == '\"')" ( (binary_expression "cVar2 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }" { (if_statement "if (param_1 == (char *)0x0) {\n            return sVar4;\n          }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            return sVar4;\n          }" { (return_statement "return sVar4;" return identifier ;) })) (expression_statement "param_1[sVar4] = '\0';" (assignment_expression "param_1[sVar4] = '\0'" (subscript_expression "param_1[sVar4]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (return_statement "return sVar4;" return identifier ;) })) (labeled_statement "LAB_00231360:\n        pcVar3 = pcVar3 + 1;" statement_identifier : (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" identifier = (binary_expression "pcVar3 + 1" identifier + number_literal)) ;)) }) (else_clause "else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" else (compound_statement "{\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" { (if_statement "if (cVar2 == ',') break;" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (cVar2 != '\\') goto LAB_00231360;" if (parenthesized_expression "(cVar2 != '\\')" ( (binary_expression "cVar2 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (goto_statement "goto LAB_00231360;" goto statement_identifier ;)) (expression_statement "pcVar1 = pcVar3 + 2;" (assignment_expression "pcVar1 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" identifier = (binary_expression "pcVar3 + 2" identifier + number_literal)) ;) (if_statement "if (*pcVar1 != '\\') break;" if (parenthesized_expression "(*pcVar1 != '\\')" ( (binary_expression "*pcVar1 != '\\'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\\'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }))) (if_statement "if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }" if (parenthesized_expression "(param_1 != (char *)0x0)" ( (binary_expression "param_1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_1[sVar4] = *pcVar3;\n      }" { (expression_statement "param_1[sVar4] = *pcVar3;" (assignment_expression "param_1[sVar4] = *pcVar3" (subscript_expression "param_1[sVar4]" identifier [ identifier ]) = (pointer_expression "*pcVar3" * identifier)) ;) })) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" identifier = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) })) })) (if_statement "if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }" if (parenthesized_expression "(param_1 == (char *)0x0)" ( (binary_expression "param_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }" { (expression_statement "sVar4 = strlen(param_2);" (assignment_expression "sVar4 = strlen(param_2)" identifier = (call_expression "strlen(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return sVar4;" return identifier ;) })) (expression_statement "pcVar3 = stpcpy(param_1,param_2);" (assignment_expression "pcVar3 = stpcpy(param_1,param_2)" identifier = (call_expression "stpcpy(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (return_statement "return (long)pcVar3 - (long)param_1;" return (binary_expression "(long)pcVar3 - (long)param_1" (cast_expression "(long)pcVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT != (char_literal ' escape_sequence '))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (char_literal ' escape_sequence ')) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (break_statement break ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (return_statement return (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) })))
(function_definition "size_t FUN_002312e0(char *param_1,char *param_2)\n\n{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}" (primitive_type "size_t") (function_declarator "FUN_002312e0(char *param_1,char *param_2)" (identifier "FUN_002312e0") (parameter_list "(char *param_1,char *param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  char *pcVar1;\n  char cVar2;\n  char *pcVar3;\n  size_t sVar4;\n  \n  if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }\n  if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }\n  pcVar3 = stpcpy(param_1,param_2);\n  return (long)pcVar3 - (long)param_1;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (if_statement "if (*param_2 == '\"') {\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }" (if "if") (parenthesized_expression "(*param_2 == '\"')" (( "(") (binary_expression "*param_2 == '\"'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n    sVar4 = 0;\n    pcVar3 = param_2;\n    while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }\n  }" ({ "{") (expression_statement "sVar4 = 0;" (assignment_expression "sVar4 = 0" (identifier "sVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar3 = param_2;" (assignment_expression "pcVar3 = param_2" (identifier "pcVar3") (= "=") (identifier "param_2")) (; ";")) (while_statement "while (cVar2 = pcVar3[1], cVar2 != '\'') {\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }" (while "while") (parenthesized_expression "(cVar2 = pcVar3[1], cVar2 != '\'')" (( "(") (comma_expression "cVar2 = pcVar3[1], cVar2 != '\''" (assignment_expression "cVar2 = pcVar3[1]" (identifier "cVar2") (= "=") (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]"))) (, ",") (binary_expression "cVar2 != '\''" (identifier "cVar2") (!= "!=") (char_literal "'\''" (' "'") (escape_sequence "\'") (' "'")))) () ")")) (compound_statement "{\n      if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }\n      if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }\n      sVar4 = sVar4 + 1;\n    }" ({ "{") (if_statement "if (cVar2 < '(') {\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }\n      else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" (if "if") (parenthesized_expression "(cVar2 < '(')" (( "(") (binary_expression "cVar2 < '('" (identifier "cVar2") (< "<") (char_literal "'('" (' "'") (character "(") (' "'"))) () ")")) (compound_statement "{\n        if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }\nLAB_00231360:\n        pcVar3 = pcVar3 + 1;\n      }" ({ "{") (if_statement "if (cVar2 == '\"') {\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }" (if "if") (parenthesized_expression "(cVar2 == '\"')" (( "(") (binary_expression "cVar2 == '\"'" (identifier "cVar2") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n          if (param_1 == (char *)0x0) {\n            return sVar4;\n          }\n          param_1[sVar4] = '\0';\n          return sVar4;\n        }" ({ "{") (if_statement "if (param_1 == (char *)0x0) {\n            return sVar4;\n          }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            return sVar4;\n          }" ({ "{") (return_statement "return sVar4;" (return "return") (identifier "sVar4") (; ";")) (} "}"))) (expression_statement "param_1[sVar4] = '\0';" (assignment_expression "param_1[sVar4] = '\0'" (subscript_expression "param_1[sVar4]" (identifier "param_1") ([ "[") (identifier "sVar4") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (return_statement "return sVar4;" (return "return") (identifier "sVar4") (; ";")) (} "}"))) (labeled_statement "LAB_00231360:\n        pcVar3 = pcVar3 + 1;" (statement_identifier "LAB_00231360") (: ":") (expression_statement "pcVar3 = pcVar3 + 1;" (assignment_expression "pcVar3 = pcVar3 + 1" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 1" (identifier "pcVar3") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (else_clause "else {\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" (else "else") (compound_statement "{\n        if (cVar2 == ',') break;\n        if (cVar2 != '\\') goto LAB_00231360;\n        pcVar1 = pcVar3 + 2;\n        pcVar3 = pcVar3 + 2;\n        if (*pcVar1 != '\\') break;\n      }" ({ "{") (if_statement "if (cVar2 == ',') break;" (if "if") (parenthesized_expression "(cVar2 == ',')" (( "(") (binary_expression "cVar2 == ','" (identifier "cVar2") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (cVar2 != '\\') goto LAB_00231360;" (if "if") (parenthesized_expression "(cVar2 != '\\')" (( "(") (binary_expression "cVar2 != '\\'" (identifier "cVar2") (!= "!=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) () ")")) (goto_statement "goto LAB_00231360;" (goto "goto") (statement_identifier "LAB_00231360") (; ";"))) (expression_statement "pcVar1 = pcVar3 + 2;" (assignment_expression "pcVar1 = pcVar3 + 2" (identifier "pcVar1") (= "=") (binary_expression "pcVar3 + 2" (identifier "pcVar3") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar3 = pcVar3 + 2;" (assignment_expression "pcVar3 = pcVar3 + 2" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + 2" (identifier "pcVar3") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (*pcVar1 != '\\') break;" (if "if") (parenthesized_expression "(*pcVar1 != '\\')" (( "(") (binary_expression "*pcVar1 != '\\'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (!= "!=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")))) (if_statement "if (param_1 != (char *)0x0) {\n        param_1[sVar4] = *pcVar3;\n      }" (if "if") (parenthesized_expression "(param_1 != (char *)0x0)" (( "(") (binary_expression "param_1 != (char *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        param_1[sVar4] = *pcVar3;\n      }" ({ "{") (expression_statement "param_1[sVar4] = *pcVar3;" (assignment_expression "param_1[sVar4] = *pcVar3" (subscript_expression "param_1[sVar4]" (identifier "param_1") ([ "[") (identifier "sVar4") (] "]")) (= "=") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3"))) (; ";")) (} "}"))) (expression_statement "sVar4 = sVar4 + 1;" (assignment_expression "sVar4 = sVar4 + 1" (identifier "sVar4") (= "=") (binary_expression "sVar4 + 1" (identifier "sVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (param_1 == (char *)0x0) {\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }" (if "if") (parenthesized_expression "(param_1 == (char *)0x0)" (( "(") (binary_expression "param_1 == (char *)0x0" (identifier "param_1") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    sVar4 = strlen(param_2);\n    return sVar4;\n  }" ({ "{") (expression_statement "sVar4 = strlen(param_2);" (assignment_expression "sVar4 = strlen(param_2)" (identifier "sVar4") (= "=") (call_expression "strlen(param_2)" (identifier "strlen") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (return_statement "return sVar4;" (return "return") (identifier "sVar4") (; ";")) (} "}"))) (expression_statement "pcVar3 = stpcpy(param_1,param_2);" (assignment_expression "pcVar3 = stpcpy(param_1,param_2)" (identifier "pcVar3") (= "=") (call_expression "stpcpy(param_1,param_2)" (identifier "stpcpy") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (return_statement "return (long)pcVar3 - (long)param_1;" (return "return") (binary_expression "(long)pcVar3 - (long)param_1" (cast_expression "(long)pcVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar3")) (- "-") (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1"))) (; ";")) (} "}")))

type_1 function_1(char *var_2,char *yystr)

{
  char *pcVar1;
  char var_1;
  char *var_3;
  type_1 var_4;
  size_t sVar5;
  
  if (*yystr == '\"') {
    var_4 = 0;
    var_3 = yystr;
    while (var_1 = var_3[1], var_1 != '\'') {
      if (var_1 < '(') {
        if (var_1 == '\"') {
          if (var_2 == (char *)0x0) {
            return var_4;
          }
          var_2[var_4] = '\0';
          return var_4;
        }
LAB_00231360:
        var_3 = var_3 + 1;
      }
      else {
        if (var_1 == ',') break;
        if (var_1 != '\\') goto LAB_00231360;
        pcVar1 = var_3 + 2;
        var_3 = var_3 + 2;
        if (*pcVar1 != '\\') break;
      }
      if (var_2 != (char *)0x0) {
        var_2[var_4] = *var_3;
      }
      var_4 = var_4 + 1;
    }
  }
  if (var_2 == (char *)0x0) {
    sVar5 = var_5(yystr);
    return sVar5;
  }
  var_3 = var_6(var_2,yystr);
  return (long)var_3 - (long)var_2;
}


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

size_t MASKED(char *param_1,char *param_2)

{
  char *pcVar1;
  char cVar2;
  char *pcVar3;
  size_t sVar4;
  
  if (*param_2 == '\"') {
    sVar4 = 0;
    pcVar3 = param_2;
    while (cVar2 = pcVar3[1], cVar2 != '\'') {
      if (cVar2 < '(') {
        if (cVar2 == '\"') {
          if (param_1 == (char *)0x0) {
            return sVar4;
          }
          param_1[sVar4] = '\0';
          return sVar4;
        }
LAB_00231360:
        pcVar3 = pcVar3 + 1;
      }
      else {
        if (cVar2 == ',') break;
        if (cVar2 != '\\') goto LAB_00231360;
        pcVar1 = pcVar3 + 2;
        pcVar3 = pcVar3 + 2;
        if (*pcVar1 != '\\') break;
      }
      if (param_1 != (char *)0x0) {
        param_1[sVar4] = *pcVar3;
      }
      sVar4 = sVar4 + 1;
    }
  }
  if (param_1 == (char *)0x0) {
    sVar4 = strlen(param_2);
    return sVar4;
  }
  pcVar3 = stpcpy(param_1,param_2);
  return (long)pcVar3 - (long)param_1;
}

