
char __regparm3 sqlite3CompareAffinity(Expr *pExpr,char aff2)

{
  byte bVar1;
  
  bVar1 = sqlite3ExprAffinity(pExpr);
  if (((char)bVar1 < 'A') || (aff2 < 'A')) {
    if ((char)bVar1 < 'A') {
      bVar1 = aff2 | 0x40;
    }
  }
  else if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)) {
    return 'C';
  }
  return bVar1;
}



uint __regparm3 FUN_00021c30(undefined4 param_1,uint param_2)

{
  char cVar1;
  uint uVar2;
  
  uVar2 = thunk_FUN_00021b7b();
  cVar1 = (char)uVar2;
  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {
    if (cVar1 < 'A') {
      uVar2 = param_2 | 0x40;
    }
  }
  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {
    return 0x43;
  }
  return uVar2;
}


PUSH EBX
MOV EBX,EDX
SUB ESP,0x8
CALL 0x00021b70
CMP AL,0x40
JLE 0x00021c60
CMP BL,0x40
JLE 0x00021c60
CMP AL,0x42
JG 0x00021c52
CMP BL,0x42
MOV EAX,0x41
JLE 0x00021c68
ADD ESP,0x8
MOV EAX,0x43
POP EBX
RET
OR EBX,0x40
CMP AL,0x41
CMOVL EAX,EBX
ADD ESP,0x8
POP EBX
RET
(translation_unit "uint __regparm3 FUN_00021c30(undefined4 param_1,uint param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}\n\n" (function_definition "uint __regparm3 FUN_00021c30(undefined4 param_1,uint param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00021c30(undefined4 param_1,uint param_2)" identifier (parameter_list "(undefined4 param_1,uint param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = thunk_FUN_00021b7b();" (assignment_expression "uVar2 = thunk_FUN_00021b7b()" identifier = (call_expression "thunk_FUN_00021b7b()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar1 = (char)uVar2;" (assignment_expression "cVar1 = (char)uVar2" identifier = (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" if (parenthesized_expression "((cVar1 < 'A') || ((char)param_2 < 'A'))" ( (binary_expression "(cVar1 < 'A') || ((char)param_2 < 'A')" (parenthesized_expression "(cVar1 < 'A')" ( (binary_expression "cVar1 < 'A'" identifier < (char_literal "'A'" ' character ')) )) || (parenthesized_expression "((char)param_2 < 'A')" ( (binary_expression "(char)param_2 < 'A'" (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'A'" ' character ')) ))) )) (compound_statement "{\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }" { (if_statement "if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }" if (parenthesized_expression "(cVar1 < 'A')" ( (binary_expression "cVar1 < 'A'" identifier < (char_literal "'A'" ' character ')) )) (compound_statement "{\n      uVar2 = param_2 | 0x40;\n    }" { (expression_statement "uVar2 = param_2 | 0x40;" (assignment_expression "uVar2 = param_2 | 0x40" identifier = (binary_expression "param_2 | 0x40" identifier | number_literal)) ;) })) }) (else_clause "else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" else (if_statement "if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" if (parenthesized_expression "(('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2))" ( (binary_expression "('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)" (parenthesized_expression "('B' < cVar1)" ( (binary_expression "'B' < cVar1" (char_literal "'B'" ' character ') < identifier) )) || (parenthesized_expression "(uVar2 = 0x41, 'B' < (char)param_2)" ( (comma_expression "uVar2 = 0x41, 'B' < (char)param_2" (assignment_expression "uVar2 = 0x41" identifier = number_literal) , (binary_expression "'B' < (char)param_2" (char_literal "'B'" ' character ') < (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    return 0x43;\n  }" { (return_statement "return 0x43;" return number_literal ;) })))) (return_statement "return uVar2;" return identifier ;) })))
(translation_unit "char __regparm3 sqlite3CompareAffinity(Expr *pExpr,char aff2)\n\n{\n  byte bVar1;\n  \n  bVar1 = sqlite3ExprAffinity(pExpr);\n  if (((char)bVar1 < 'A') || (aff2 < 'A')) {\n    if ((char)bVar1 < 'A') {\n      bVar1 = aff2 | 0x40;\n    }\n  }\n  else if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)) {\n    return 'C';\n  }\n  return bVar1;\n}\n\n" (function_definition "char __regparm3 sqlite3CompareAffinity(Expr *pExpr,char aff2)\n\n{\n  byte bVar1;\n  \n  bVar1 = sqlite3ExprAffinity(pExpr);\n  if (((char)bVar1 < 'A') || (aff2 < 'A')) {\n    if ((char)bVar1 < 'A') {\n      bVar1 = aff2 | 0x40;\n    }\n  }\n  else if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)) {\n    return 'C';\n  }\n  return bVar1;\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  byte bVar1;\n  \n  bVar1 = sqlite3ExprAffinity(pExpr);\n  if (((char)bVar1 < 'A') || (aff2 < 'A')) {\n    if ((char)bVar1 < 'A') {\n      bVar1 = aff2 | 0x40;\n    }\n  }\n  else if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)) {\n    return 'C';\n  }\n  return bVar1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (expression_statement "bVar1 = sqlite3ExprAffinity(pExpr);" (assignment_expression "bVar1 = sqlite3ExprAffinity(pExpr)" identifier = (call_expression "sqlite3ExprAffinity(pExpr)" identifier (argument_list "(pExpr)" ( identifier )))) ;) (if_statement "if (((char)bVar1 < 'A') || (aff2 < 'A')) {\n    if ((char)bVar1 < 'A') {\n      bVar1 = aff2 | 0x40;\n    }\n  }\n  else if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)) {\n    return 'C';\n  }" if (parenthesized_expression "(((char)bVar1 < 'A') || (aff2 < 'A'))" ( (binary_expression "((char)bVar1 < 'A') || (aff2 < 'A')" (parenthesized_expression "((char)bVar1 < 'A')" ( (binary_expression "(char)bVar1 < 'A'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'A'" ' character ')) )) || (parenthesized_expression "(aff2 < 'A')" ( (binary_expression "aff2 < 'A'" identifier < (char_literal "'A'" ' character ')) ))) )) (compound_statement "{\n    if ((char)bVar1 < 'A') {\n      bVar1 = aff2 | 0x40;\n    }\n  }" { (if_statement "if ((char)bVar1 < 'A') {\n      bVar1 = aff2 | 0x40;\n    }" if (parenthesized_expression "((char)bVar1 < 'A')" ( (binary_expression "(char)bVar1 < 'A'" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'A'" ' character ')) )) (compound_statement "{\n      bVar1 = aff2 | 0x40;\n    }" { (expression_statement "bVar1 = aff2 | 0x40;" (assignment_expression "bVar1 = aff2 | 0x40" identifier = (binary_expression "aff2 | 0x40" identifier | number_literal)) ;) })) }) (else_clause "else if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)) {\n    return 'C';\n  }" else (if_statement "if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)) {\n    return 'C';\n  }" if (parenthesized_expression "(('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2))" ( (binary_expression "('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < aff2)" (parenthesized_expression "('B' < (char)bVar1)" ( (binary_expression "'B' < (char)bVar1" (char_literal "'B'" ' character ') < (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) )) || (parenthesized_expression "(bVar1 = 0x41, 'B' < aff2)" ( (comma_expression "bVar1 = 0x41, 'B' < aff2" (assignment_expression "bVar1 = 0x41" identifier = number_literal) , (binary_expression "'B' < aff2" (char_literal "'B'" ' character ') < identifier)) ))) )) (compound_statement "{\n    return 'C';\n  }" { (return_statement "return 'C';" return (char_literal "'C'" ' character ') ;) })))) (return_statement "return bVar1;" return identifier ;) })))
(translation_unit "uint __regparm3 FUN_00021c30(undefined4 param_1,uint param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}\n\n" (function_definition "uint __regparm3 FUN_00021c30(undefined4 param_1,uint param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00021c30(undefined4 param_1,uint param_2)" identifier (parameter_list "(undefined4 param_1,uint param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = thunk_FUN_00021b7b();" (assignment_expression "uVar2 = thunk_FUN_00021b7b()" identifier = (call_expression "thunk_FUN_00021b7b()" identifier (argument_list "()" ( )))) ;) (expression_statement "cVar1 = (char)uVar2;" (assignment_expression "cVar1 = (char)uVar2" identifier = (cast_expression "(char)uVar2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" if (parenthesized_expression "((cVar1 < 'A') || ((char)param_2 < 'A'))" ( (binary_expression "(cVar1 < 'A') || ((char)param_2 < 'A')" (parenthesized_expression "(cVar1 < 'A')" ( (binary_expression "cVar1 < 'A'" identifier < (char_literal "'A'" ' character ')) )) || (parenthesized_expression "((char)param_2 < 'A')" ( (binary_expression "(char)param_2 < 'A'" (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'A'" ' character ')) ))) )) (compound_statement "{\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }" { (if_statement "if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }" if (parenthesized_expression "(cVar1 < 'A')" ( (binary_expression "cVar1 < 'A'" identifier < (char_literal "'A'" ' character ')) )) (compound_statement "{\n      uVar2 = param_2 | 0x40;\n    }" { (expression_statement "uVar2 = param_2 | 0x40;" (assignment_expression "uVar2 = param_2 | 0x40" identifier = (binary_expression "param_2 | 0x40" identifier | number_literal)) ;) })) }) (else_clause "else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" else (if_statement "if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" if (parenthesized_expression "(('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2))" ( (binary_expression "('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)" (parenthesized_expression "('B' < cVar1)" ( (binary_expression "'B' < cVar1" (char_literal "'B'" ' character ') < identifier) )) || (parenthesized_expression "(uVar2 = 0x41, 'B' < (char)param_2)" ( (comma_expression "uVar2 = 0x41, 'B' < (char)param_2" (assignment_expression "uVar2 = 0x41" identifier = number_literal) , (binary_expression "'B' < (char)param_2" (char_literal "'B'" ' character ') < (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    return 0x43;\n  }" { (return_statement "return 0x43;" return number_literal ;) })))) (return_statement "return uVar2;" return identifier ;) })))
(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 ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (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 ' character ')) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' character ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (char_literal ' character ') < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (char_literal ' character ') < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (return_statement return LIT ;) })))) (return_statement return IDENT ;) })))
(function_definition "uint __regparm3 FUN_00021c30(undefined4 param_1,uint param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00021c30(undefined4 param_1,uint param_2)" (identifier "FUN_00021c30") (parameter_list "(undefined4 param_1,uint param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  \n  uVar2 = thunk_FUN_00021b7b();\n  cVar1 = (char)uVar2;\n  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }\n  return uVar2;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (expression_statement "uVar2 = thunk_FUN_00021b7b();" (assignment_expression "uVar2 = thunk_FUN_00021b7b()" (identifier "uVar2") (= "=") (call_expression "thunk_FUN_00021b7b()" (identifier "thunk_FUN_00021b7b") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar1 = (char)uVar2;" (assignment_expression "cVar1 = (char)uVar2" (identifier "cVar1") (= "=") (cast_expression "(char)uVar2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar2"))) (; ";")) (if_statement "if ((cVar1 < 'A') || ((char)param_2 < 'A')) {\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }\n  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" (if "if") (parenthesized_expression "((cVar1 < 'A') || ((char)param_2 < 'A'))" (( "(") (binary_expression "(cVar1 < 'A') || ((char)param_2 < 'A')" (parenthesized_expression "(cVar1 < 'A')" (( "(") (binary_expression "cVar1 < 'A'" (identifier "cVar1") (< "<") (char_literal "'A'" (' "'") (character "A") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((char)param_2 < 'A')" (( "(") (binary_expression "(char)param_2 < 'A'" (cast_expression "(char)param_2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_2")) (< "<") (char_literal "'A'" (' "'") (character "A") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }\n  }" ({ "{") (if_statement "if (cVar1 < 'A') {\n      uVar2 = param_2 | 0x40;\n    }" (if "if") (parenthesized_expression "(cVar1 < 'A')" (( "(") (binary_expression "cVar1 < 'A'" (identifier "cVar1") (< "<") (char_literal "'A'" (' "'") (character "A") (' "'"))) () ")")) (compound_statement "{\n      uVar2 = param_2 | 0x40;\n    }" ({ "{") (expression_statement "uVar2 = param_2 | 0x40;" (assignment_expression "uVar2 = param_2 | 0x40" (identifier "uVar2") (= "=") (binary_expression "param_2 | 0x40" (identifier "param_2") (| "|") (number_literal "0x40"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" (else "else") (if_statement "if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {\n    return 0x43;\n  }" (if "if") (parenthesized_expression "(('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2))" (( "(") (binary_expression "('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)" (parenthesized_expression "('B' < cVar1)" (( "(") (binary_expression "'B' < cVar1" (char_literal "'B'" (' "'") (character "B") (' "'")) (< "<") (identifier "cVar1")) () ")")) (|| "||") (parenthesized_expression "(uVar2 = 0x41, 'B' < (char)param_2)" (( "(") (comma_expression "uVar2 = 0x41, 'B' < (char)param_2" (assignment_expression "uVar2 = 0x41" (identifier "uVar2") (= "=") (number_literal "0x41")) (, ",") (binary_expression "'B' < (char)param_2" (char_literal "'B'" (' "'") (character "B") (' "'")) (< "<") (cast_expression "(char)param_2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_2")))) () ")"))) () ")")) (compound_statement "{\n    return 0x43;\n  }" ({ "{") (return_statement "return 0x43;" (return "return") (number_literal "0x43") (; ";")) (} "}"))))) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))

char __regparm3 function_1(type_1 *pExpr,char var_2)

{
  type_2 bVar1;
  
  bVar1 = var_1(pExpr);
  if (((char)bVar1 < 'A') || (var_2 < 'A')) {
    if ((char)bVar1 < 'A') {
      bVar1 = var_2 | 0x40;
    }
  }
  else if (('B' < (char)bVar1) || (bVar1 = 0x41, 'B' < var_2)) {
    return 'C';
  }
  return bVar1;
}


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

uint __regparm3 MASKED(undefined4 param_1,uint param_2)

{
  char cVar1;
  uint uVar2;
  
  uVar2 = thunk_FUN_00021b7b();
  cVar1 = (char)uVar2;
  if ((cVar1 < 'A') || ((char)param_2 < 'A')) {
    if (cVar1 < 'A') {
      uVar2 = param_2 | 0x40;
    }
  }
  else if (('B' < cVar1) || (uVar2 = 0x41, 'B' < (char)param_2)) {
    return 0x43;
  }
  return uVar2;
}

