
char __regparm3 sqlite3CompareAffinity(Expr *pExpr,char aff2)

{
  char cVar1;
  char cVar2;
  
  cVar1 = sqlite3ExprAffinity(pExpr);
  if ((cVar1 == '\0') || (aff2 == '\0')) {
    cVar2 = 'A';
    if (cVar1 != '\0' || aff2 != '\0') {
      cVar2 = cVar1 + aff2;
    }
    return cVar2;
  }
  if ((cVar1 < 'C') && (aff2 < 'C')) {
    return 'A';
  }
  return 'C';
}



int __regparm3 FUN_00022930(undefined4 param_1,int param_2)

{
  char cVar1;
  int iVar2;
  int iVar3;
  char cVar4;
  
  iVar2 = FUN_00022860();
  cVar1 = (char)iVar2;
  cVar4 = (char)param_2;
  if ((cVar1 == '\0') || (cVar4 == '\0')) {
    iVar3 = 0x41;
    if (cVar1 != '\0' || cVar4 != '\0') {
      iVar3 = iVar2 + param_2;
    }
    return iVar3;
  }
  if ((cVar1 < 'C') && (cVar4 < 'C')) {
    return 0x41;
  }
  return 0x43;
}


PUSH EBX
MOV EBX,EDX
SUB ESP,0x8
CALL 0x00022860
TEST AL,AL
JZ 0x00022960
TEST BL,BL
JZ 0x00022960
CMP AL,0x42
JG 0x00022978
MOV EAX,0x41
CMP BL,0x42
JG 0x00022978
ADD ESP,0x8
POP EBX
RET
LEA ECX,[EAX + EBX*0x1]
OR AL,BL
MOV EAX,0x41
CMOVNZ EAX,ECX
ADD ESP,0x8
POP EBX
RET
ADD ESP,0x8
MOV EAX,0x43
POP EBX
RET
(translation_unit "int __regparm3 FUN_00022930(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}\n\n" (function_definition "int __regparm3 FUN_00022930(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00022930(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (expression_statement "iVar2 = FUN_00022860();" (assignment_expression "iVar2 = FUN_00022860()" identifier = (call_expression "FUN_00022860()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar1 = (char)iVar2;" (assignment_expression "cVar1 = (char)iVar2" identifier = (cast_expression "(char)iVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "cVar4 = (char)param_2;" (assignment_expression "cVar4 = (char)param_2" identifier = (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }" if (parenthesized_expression "((cVar1 == '\0') || (cVar4 == '\0'))" ( (binary_expression "(cVar1 == '\0') || (cVar4 == '\0')" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }" { (expression_statement "iVar3 = 0x41;" (assignment_expression "iVar3 = 0x41" identifier = number_literal) ;) (if_statement "if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }" if (parenthesized_expression "(cVar1 != '\0' || cVar4 != '\0')" ( (binary_expression "cVar1 != '\0' || cVar4 != '\0'" (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      iVar3 = iVar2 + param_2;\n    }" { (expression_statement "iVar3 = iVar2 + param_2;" (assignment_expression "iVar3 = iVar2 + param_2" identifier = (binary_expression "iVar2 + param_2" identifier + identifier)) ;) })) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }" if (parenthesized_expression "((cVar1 < 'C') && (cVar4 < 'C'))" ( (binary_expression "(cVar1 < 'C') && (cVar4 < 'C')" (parenthesized_expression "(cVar1 < 'C')" ( (binary_expression "cVar1 < 'C'" identifier < (char_literal "'C'" ' character ')) )) && (parenthesized_expression "(cVar4 < 'C')" ( (binary_expression "cVar4 < 'C'" identifier < (char_literal "'C'" ' character ')) ))) )) (compound_statement "{\n    return 0x41;\n  }" { (return_statement "return 0x41;" return number_literal ;) })) (return_statement "return 0x43;" return number_literal ;) })))
(translation_unit "char __regparm3 sqlite3CompareAffinity(Expr *pExpr,char aff2)\n\n{\n  char cVar1;\n  char cVar2;\n  \n  cVar1 = sqlite3ExprAffinity(pExpr);\n  if ((cVar1 == '\0') || (aff2 == '\0')) {\n    cVar2 = 'A';\n    if (cVar1 != '\0' || aff2 != '\0') {\n      cVar2 = cVar1 + aff2;\n    }\n    return cVar2;\n  }\n  if ((cVar1 < 'C') && (aff2 < 'C')) {\n    return 'A';\n  }\n  return 'C';\n}\n\n" (function_definition "char __regparm3 sqlite3CompareAffinity(Expr *pExpr,char aff2)\n\n{\n  char cVar1;\n  char cVar2;\n  \n  cVar1 = sqlite3ExprAffinity(pExpr);\n  if ((cVar1 == '\0') || (aff2 == '\0')) {\n    cVar2 = 'A';\n    if (cVar1 != '\0' || aff2 != '\0') {\n      cVar2 = cVar1 + aff2;\n    }\n    return cVar2;\n  }\n  if ((cVar1 < 'C') && (aff2 < 'C')) {\n    return 'A';\n  }\n  return 'C';\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sqlite3CompareAffinity(Expr *pExpr,char aff2)" identifier (parameter_list "(Expr *pExpr,char aff2)" ( (parameter_declaration "Expr *pExpr" type_identifier (pointer_declarator "*pExpr" * identifier)) , (parameter_declaration "char aff2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  \n  cVar1 = sqlite3ExprAffinity(pExpr);\n  if ((cVar1 == '\0') || (aff2 == '\0')) {\n    cVar2 = 'A';\n    if (cVar1 != '\0' || aff2 != '\0') {\n      cVar2 = cVar1 + aff2;\n    }\n    return cVar2;\n  }\n  if ((cVar1 < 'C') && (aff2 < 'C')) {\n    return 'A';\n  }\n  return 'C';\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (expression_statement "cVar1 = sqlite3ExprAffinity(pExpr);" (assignment_expression "cVar1 = sqlite3ExprAffinity(pExpr)" identifier = (call_expression "sqlite3ExprAffinity(pExpr)" identifier (argument_list "(pExpr)" ( identifier )))) ;) (if_statement "if ((cVar1 == '\0') || (aff2 == '\0')) {\n    cVar2 = 'A';\n    if (cVar1 != '\0' || aff2 != '\0') {\n      cVar2 = cVar1 + aff2;\n    }\n    return cVar2;\n  }" if (parenthesized_expression "((cVar1 == '\0') || (aff2 == '\0'))" ( (binary_expression "(cVar1 == '\0') || (aff2 == '\0')" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(aff2 == '\0')" ( (binary_expression "aff2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    cVar2 = 'A';\n    if (cVar1 != '\0' || aff2 != '\0') {\n      cVar2 = cVar1 + aff2;\n    }\n    return cVar2;\n  }" { (expression_statement "cVar2 = 'A';" (assignment_expression "cVar2 = 'A'" identifier = (char_literal "'A'" ' character ')) ;) (if_statement "if (cVar1 != '\0' || aff2 != '\0') {\n      cVar2 = cVar1 + aff2;\n    }" if (parenthesized_expression "(cVar1 != '\0' || aff2 != '\0')" ( (binary_expression "cVar1 != '\0' || aff2 != '\0'" (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (binary_expression "aff2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      cVar2 = cVar1 + aff2;\n    }" { (expression_statement "cVar2 = cVar1 + aff2;" (assignment_expression "cVar2 = cVar1 + aff2" identifier = (binary_expression "cVar1 + aff2" identifier + identifier)) ;) })) (return_statement "return cVar2;" return identifier ;) })) (if_statement "if ((cVar1 < 'C') && (aff2 < 'C')) {\n    return 'A';\n  }" if (parenthesized_expression "((cVar1 < 'C') && (aff2 < 'C'))" ( (binary_expression "(cVar1 < 'C') && (aff2 < 'C')" (parenthesized_expression "(cVar1 < 'C')" ( (binary_expression "cVar1 < 'C'" identifier < (char_literal "'C'" ' character ')) )) && (parenthesized_expression "(aff2 < 'C')" ( (binary_expression "aff2 < 'C'" identifier < (char_literal "'C'" ' character ')) ))) )) (compound_statement "{\n    return 'A';\n  }" { (return_statement "return 'A';" return (char_literal "'A'" ' character ') ;) })) (return_statement "return 'C';" return (char_literal "'C'" ' character ') ;) })))
(translation_unit "int __regparm3 FUN_00022930(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}\n\n" (function_definition "int __regparm3 FUN_00022930(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00022930(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (expression_statement "iVar2 = FUN_00022860();" (assignment_expression "iVar2 = FUN_00022860()" identifier = (call_expression "FUN_00022860()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar1 = (char)iVar2;" (assignment_expression "cVar1 = (char)iVar2" identifier = (cast_expression "(char)iVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "cVar4 = (char)param_2;" (assignment_expression "cVar4 = (char)param_2" identifier = (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }" if (parenthesized_expression "((cVar1 == '\0') || (cVar4 == '\0'))" ( (binary_expression "(cVar1 == '\0') || (cVar4 == '\0')" (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }" { (expression_statement "iVar3 = 0x41;" (assignment_expression "iVar3 = 0x41" identifier = number_literal) ;) (if_statement "if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }" if (parenthesized_expression "(cVar1 != '\0' || cVar4 != '\0')" ( (binary_expression "cVar1 != '\0' || cVar4 != '\0'" (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) || (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      iVar3 = iVar2 + param_2;\n    }" { (expression_statement "iVar3 = iVar2 + param_2;" (assignment_expression "iVar3 = iVar2 + param_2" identifier = (binary_expression "iVar2 + param_2" identifier + identifier)) ;) })) (return_statement "return iVar3;" return identifier ;) })) (if_statement "if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }" if (parenthesized_expression "((cVar1 < 'C') && (cVar4 < 'C'))" ( (binary_expression "(cVar1 < 'C') && (cVar4 < 'C')" (parenthesized_expression "(cVar1 < 'C')" ( (binary_expression "cVar1 < 'C'" identifier < (char_literal "'C'" ' character ')) )) && (parenthesized_expression "(cVar4 < 'C')" ( (binary_expression "cVar4 < 'C'" identifier < (char_literal "'C'" ' character ')) ))) )) (compound_statement "{\n    return 0x41;\n  }" { (return_statement "return 0x41;" return number_literal ;) })) (return_statement "return 0x43;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' escape_sequence ')) || (binary_expression IDENT != (char_literal ' escape_sequence '))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) ))) )) (compound_statement { (return_statement return LIT ;) })) (return_statement return LIT ;) })))
(function_definition "int __regparm3 FUN_00022930(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00022930(undefined4 param_1,int param_2)" (identifier "FUN_00022930") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  int iVar2;\n  int iVar3;\n  char cVar4;\n  \n  iVar2 = FUN_00022860();\n  cVar1 = (char)iVar2;\n  cVar4 = (char)param_2;\n  if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }\n  if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }\n  return 0x43;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (expression_statement "iVar2 = FUN_00022860();" (assignment_expression "iVar2 = FUN_00022860()" (identifier "iVar2") (= "=") (call_expression "FUN_00022860()" (identifier "FUN_00022860") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar1 = (char)iVar2;" (assignment_expression "cVar1 = (char)iVar2" (identifier "cVar1") (= "=") (cast_expression "(char)iVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar2"))) (; ";")) (expression_statement "cVar4 = (char)param_2;" (assignment_expression "cVar4 = (char)param_2" (identifier "cVar4") (= "=") (cast_expression "(char)param_2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_2"))) (; ";")) (if_statement "if ((cVar1 == '\0') || (cVar4 == '\0')) {\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }" (if "if") (parenthesized_expression "((cVar1 == '\0') || (cVar4 == '\0'))" (( "(") (binary_expression "(cVar1 == '\0') || (cVar4 == '\0')" (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    iVar3 = 0x41;\n    if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }\n    return iVar3;\n  }" ({ "{") (expression_statement "iVar3 = 0x41;" (assignment_expression "iVar3 = 0x41" (identifier "iVar3") (= "=") (number_literal "0x41")) (; ";")) (if_statement "if (cVar1 != '\0' || cVar4 != '\0') {\n      iVar3 = iVar2 + param_2;\n    }" (if "if") (parenthesized_expression "(cVar1 != '\0' || cVar4 != '\0')" (( "(") (binary_expression "cVar1 != '\0' || cVar4 != '\0'" (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n      iVar3 = iVar2 + param_2;\n    }" ({ "{") (expression_statement "iVar3 = iVar2 + param_2;" (assignment_expression "iVar3 = iVar2 + param_2" (identifier "iVar3") (= "=") (binary_expression "iVar2 + param_2" (identifier "iVar2") (+ "+") (identifier "param_2"))) (; ";")) (} "}"))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}"))) (if_statement "if ((cVar1 < 'C') && (cVar4 < 'C')) {\n    return 0x41;\n  }" (if "if") (parenthesized_expression "((cVar1 < 'C') && (cVar4 < 'C'))" (( "(") (binary_expression "(cVar1 < 'C') && (cVar4 < 'C')" (parenthesized_expression "(cVar1 < 'C')" (( "(") (binary_expression "cVar1 < 'C'" (identifier "cVar1") (< "<") (char_literal "'C'" (' "'") (character "C") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar4 < 'C')" (( "(") (binary_expression "cVar4 < 'C'" (identifier "cVar4") (< "<") (char_literal "'C'" (' "'") (character "C") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    return 0x41;\n  }" ({ "{") (return_statement "return 0x41;" (return "return") (number_literal "0x41") (; ";")) (} "}"))) (return_statement "return 0x43;" (return "return") (number_literal "0x43") (; ";")) (} "}")))

char __regparm3 function_1(type_1 *pExpr,char var_3)

{
  char var_2;
  char cVar2;
  
  var_2 = var_1(pExpr);
  if ((var_2 == '\0') || (var_3 == '\0')) {
    cVar2 = 'A';
    if (var_2 != '\0' || var_3 != '\0') {
      cVar2 = var_2 + var_3;
    }
    return cVar2;
  }
  if ((var_2 < 'C') && (var_3 < 'C')) {
    return 'A';
  }
  return 'C';
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (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: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (char_literal (escape_sequence))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))))) consequence: (compound_statement (return_statement (number_literal)))) (return_statement (number_literal)))))

int __regparm3 MASKED(undefined4 param_1,int param_2)

{
  char cVar1;
  int iVar2;
  int iVar3;
  char cVar4;
  
  iVar2 = FUN_00022860();
  cVar1 = (char)iVar2;
  cVar4 = (char)param_2;
  if ((cVar1 == '\0') || (cVar4 == '\0')) {
    iVar3 = 0x41;
    if (cVar1 != '\0' || cVar4 != '\0') {
      iVar3 = iVar2 + param_2;
    }
    return iVar3;
  }
  if ((cVar1 < 'C') && (cVar4 < 'C')) {
    return 0x41;
  }
  return 0x43;
}

