
bool __regparm3 anon_unknown.dwarf_6462d4::ok_lo_toc_insn(uint32_t insn,uint r_type)

{
  uint uVar1;
  uint uVar2;
  bool bVar3;
  bool bVar4;
  bool bVar5;
  
  uVar2 = insn & 0xe4000000;
  uVar1 = insn & 0xfc000000;
  bVar3 = (insn & 0x74000000) == 0x30000000;
  bVar4 = (insn & 0xf4000000) == 0xa0000000;
  bVar5 = ((((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000
          ) || uVar1 == 0xe0000000;
  if (((((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000)
      && uVar1 != 0xe0000000) {
    if (uVar1 == 0xe4000000) {
      bVar5 = r_type != 0x30 && r_type != 0xf;
      if (bVar5) {
        return bVar5;
      }
    }
    else {
      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;
      if (bVar5) {
        return bVar5;
      }
      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {
        return bVar5;
      }
    }
    bVar5 = (insn & 0xfc000001) == 0xf8000000;
  }
  return bVar5;
}



undefined4 __regparm3 FUN_000aa940(uint param_1,int param_2)

{
  byte bVar1;
  bool bVar2;
  uint uVar3;
  undefined3 uVar5;
  uint uVar6;
  undefined4 uVar4;
  
  uVar6 = param_1 & 0xfc000000;
  uVar5 = (undefined3)((uint)param_2 >> 8);
  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |
          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |
          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)
          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);
  uVar5 = (undefined3)(uVar3 >> 8);
  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;
  uVar4 = CONCAT31(uVar5,bVar1);
  if (bVar1 == 0) {
    if (uVar6 == 0xe4000000) {
      bVar2 = param_2 != 0x30 && param_2 != 0xf;
      uVar4 = CONCAT31(uVar5,bVar2);
      if (bVar2) {
        return uVar4;
      }
    }
    else {
      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;
      uVar4 = CONCAT31(uVar5,bVar2);
      if (bVar2) {
        return uVar4;
      }
      if ((uVar6 == 0xf4000000) &&
         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {
        return uVar4;
      }
    }
    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);
  }
  return uVar4;
}


MOV ECX,EAX
PUSH EBP
MOV EBP,EDX
PUSH EDI
AND ECX,0x74000000
PUSH ESI
MOV ESI,EAX
PUSH EBX
MOV EBX,EAX
AND ESI,0xe4000000
AND EBX,0xfc000000
CMP ECX,0x30000000
SETZ CL
CMP ESI,0x80000000
SETZ DL
MOV EDI,EDX
OR ECX,EDI
MOV EDI,EAX
AND EDI,0xf4000000
CMP EDI,0xa0000000
SETZ DL
MOV EDI,EDX
OR ECX,EDI
CMP EBX,0xbc000000
SETZ DL
MOV EDI,EDX
OR ECX,EDI
CMP ESI,0xc0000000
SETZ DL
MOV ESI,EDX
OR ECX,ESI
CMP EBX,0xe0000000
SETZ DL
OR CL,DL
JZ 0x000aa9b7
POP EBX
MOV EAX,ECX
POP ESI
POP EDI
POP EBP
RET
CMP EBX,0xe4000000
JZ 0x000aa9fb
AND EAX,0xfc000001
CMP EBX,0xf0000000
SETZ CL
CMP EAX,0xe8000000
SETZ DL
OR CL,DL
JNZ 0x000aa9b0
CMP EBX,0xf4000000
JNZ 0x000aa9f1
CMP EBP,0x30
SETNZ CL
CMP EBP,0xf
SETNZ DL
AND CL,DL
JNZ 0x000aa9b0
CMP EAX,0xf8000000
SETZ CL
JMP 0x000aa9b0
CMP EBP,0x30
SETNZ CL
CMP EBP,0xf
SETNZ DL
AND CL,DL
JNZ 0x000aa9b0
AND EAX,0xfc000001
JMP 0x000aa9f1
(translation_unit "undefined4 __regparm3 FUN_000aa940(uint param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_000aa940(uint param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000aa940(uint param_1,int param_2)" identifier (parameter_list "(uint param_1,int param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined3 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "uVar6 = param_1 & 0xfc000000;" (assignment_expression "uVar6 = param_1 & 0xfc000000" identifier = (binary_expression "param_1 & 0xfc000000" identifier & number_literal)) ;) (expression_statement "uVar5 = (undefined3)((uint)param_2 >> 8);" (assignment_expression "uVar5 = (undefined3)((uint)param_2 >> 8)" identifier = (call_expression "(undefined3)((uint)param_2 >> 8)" (parenthesized_expression "(undefined3)" ( identifier )) (argument_list "((uint)param_2 >> 8)" ( (binary_expression "(uint)param_2 >> 8" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);" (assignment_expression "uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" identifier = (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000)" (call_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000)" identifier (argument_list "((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000)" ( (call_expression "(int3)((param_1 & 0x74000000) >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((param_1 & 0x74000000) >> 8)" ( (binary_expression "(param_1 & 0x74000000) >> 8" (parenthesized_expression "(param_1 & 0x74000000)" ( (binary_expression "param_1 & 0x74000000" identifier & number_literal) )) >> number_literal) ))) , (binary_expression "(param_1 & 0x74000000) == 0x30000000" (parenthesized_expression "(param_1 & 0x74000000)" ( (binary_expression "param_1 & 0x74000000" identifier & number_literal) )) == number_literal) ))) | (call_expression "CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000)" identifier (argument_list "(uVar5,(param_1 & 0xe4000000) == 0x80000000)" ( identifier , (binary_expression "(param_1 & 0xe4000000) == 0x80000000" (parenthesized_expression "(param_1 & 0xe4000000)" ( (binary_expression "param_1 & 0xe4000000" identifier & number_literal) )) == number_literal) )))) | (call_expression "CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" identifier (argument_list "(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" ( identifier , (binary_expression "(param_1 & 0xf4000000) == 0xa0000000" (parenthesized_expression "(param_1 & 0xf4000000)" ( (binary_expression "param_1 & 0xf4000000" identifier & number_literal) )) == number_literal) )))) | (call_expression "CONCAT31(uVar5,uVar6 == 0xbc000000)" identifier (argument_list "(uVar5,uVar6 == 0xbc000000)" ( identifier , (binary_expression "uVar6 == 0xbc000000" identifier == number_literal) )))) | (call_expression "CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" identifier (argument_list "(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" ( identifier , (binary_expression "(param_1 & 0xe4000000) == 0xc0000000" (parenthesized_expression "(param_1 & 0xe4000000)" ( (binary_expression "param_1 & 0xe4000000" identifier & number_literal) )) == number_literal) ))))) ;) (expression_statement "uVar5 = (undefined3)(uVar3 >> 8);" (assignment_expression "uVar5 = (undefined3)(uVar3 >> 8)" identifier = (call_expression "(undefined3)(uVar3 >> 8)" (parenthesized_expression "(undefined3)" ( identifier )) (argument_list "(uVar3 >> 8)" ( (binary_expression "uVar3 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;" (assignment_expression "bVar1 = (byte)uVar3 | uVar6 == 0xe0000000" identifier = (binary_expression "(byte)uVar3 | uVar6 == 0xe0000000" (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) | (binary_expression "uVar6 == 0xe0000000" identifier == number_literal))) ;) (expression_statement "uVar4 = CONCAT31(uVar5,bVar1);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar1)" identifier = (call_expression "CONCAT31(uVar5,bVar1)" identifier (argument_list "(uVar5,bVar1)" ( identifier , identifier )))) ;) (if_statement "if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }" { (if_statement "if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" if (parenthesized_expression "(uVar6 == 0xe4000000)" ( (binary_expression "uVar6 == 0xe4000000" identifier == number_literal) )) (compound_statement "{\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }" { (expression_statement "bVar2 = param_2 != 0x30 && param_2 != 0xf;" (assignment_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf" identifier = (binary_expression "param_2 != 0x30 && param_2 != 0xf" (binary_expression "param_2 != 0x30" identifier != number_literal) && (binary_expression "param_2 != 0xf" identifier != number_literal))) ;) (expression_statement "uVar4 = CONCAT31(uVar5,bVar2);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" identifier = (call_expression "CONCAT31(uVar5,bVar2)" identifier (argument_list "(uVar5,bVar2)" ( identifier , identifier )))) ;) (if_statement "if (bVar2) {\n        return uVar4;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" else (compound_statement "{\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" { (expression_statement "bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;" (assignment_expression "bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000" identifier = (binary_expression "uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000" (binary_expression "uVar6 == 0xf0000000" identifier == number_literal) || (binary_expression "(param_1 & 0xfc000001) == 0xe8000000" (parenthesized_expression "(param_1 & 0xfc000001)" ( (binary_expression "param_1 & 0xfc000001" identifier & number_literal) )) == number_literal))) ;) (expression_statement "uVar4 = CONCAT31(uVar5,bVar2);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" identifier = (call_expression "CONCAT31(uVar5,bVar2)" identifier (argument_list "(uVar5,bVar2)" ( identifier , identifier )))) ;) (if_statement "if (bVar2) {\n        return uVar4;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) (if_statement "if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }" if (parenthesized_expression "((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2))" ( (binary_expression "(uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)" (parenthesized_expression "(uVar6 == 0xf4000000)" ( (binary_expression "uVar6 == 0xf4000000" identifier == number_literal) )) && (parenthesized_expression "(bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)" ( (comma_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2" (assignment_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf" identifier = (binary_expression "param_2 != 0x30 && param_2 != 0xf" (binary_expression "param_2 != 0x30" identifier != number_literal) && (binary_expression "param_2 != 0xf" identifier != number_literal))) , (comma_expression "uVar4 = CONCAT31(uVar5,bVar2), bVar2" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" identifier = (call_expression "CONCAT31(uVar5,bVar2)" identifier (argument_list "(uVar5,bVar2)" ( identifier , identifier )))) , identifier)) ))) )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) }))) (expression_statement "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" identifier = (call_expression "CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" identifier (argument_list "((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" ( (call_expression "(int3)((uint)uVar4 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)uVar4 >> 8)" ( (binary_expression "(uint)uVar4 >> 8" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "(param_1 & 0xfc000001) == 0xf8000000" (parenthesized_expression "(param_1 & 0xfc000001)" ( (binary_expression "param_1 & 0xfc000001" identifier & number_literal) )) == number_literal) )))) ;) })) (return_statement "return uVar4;" return identifier ;) })))
(translation_unit "bool __regparm3 anon_unknown.dwarf_6462d4::ok_lo_toc_insn(uint32_t insn,uint r_type)\n\n{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  \n  uVar2 = insn & 0xe4000000;\n  uVar1 = insn & 0xfc000000;\n  bVar3 = (insn & 0x74000000) == 0x30000000;\n  bVar4 = (insn & 0xf4000000) == 0xa0000000;\n  bVar5 = ((((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000\n          ) || uVar1 == 0xe0000000;\n  if (((((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000)\n      && uVar1 != 0xe0000000) {\n    if (uVar1 == 0xe4000000) {\n      bVar5 = r_type != 0x30 && r_type != 0xf;\n      if (bVar5) {\n        return bVar5;\n      }\n    }\n    else {\n      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;\n      if (bVar5) {\n        return bVar5;\n      }\n      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }\n    }\n    bVar5 = (insn & 0xfc000001) == 0xf8000000;\n  }\n  return bVar5;\n}\n\n" (declaration "bool __regparm3" primitive_type identifier ;) (ERROR "anon_unknown.dwarf_6462d4::ok_lo_toc_insn(uint32_t insn,uint r_type)" (field_expression "anon_unknown.dwarf_6462d4" identifier . field_identifier) : : (macro_type_specifier "ok_lo_toc_insn(uint32_t" identifier ( (type_descriptor "uint32_t" primitive_type) )) identifier , identifier identifier )) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  bool bVar3;\n  bool bVar4;\n  bool bVar5;\n  \n  uVar2 = insn & 0xe4000000;\n  uVar1 = insn & 0xfc000000;\n  bVar3 = (insn & 0x74000000) == 0x30000000;\n  bVar4 = (insn & 0xf4000000) == 0xa0000000;\n  bVar5 = ((((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000\n          ) || uVar1 == 0xe0000000;\n  if (((((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000)\n      && uVar1 != 0xe0000000) {\n    if (uVar1 == 0xe4000000) {\n      bVar5 = r_type != 0x30 && r_type != 0xf;\n      if (bVar5) {\n        return bVar5;\n      }\n    }\n    else {\n      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;\n      if (bVar5) {\n        return bVar5;\n      }\n      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }\n    }\n    bVar5 = (insn & 0xfc000001) == 0xf8000000;\n  }\n  return bVar5;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (expression_statement "uVar2 = insn & 0xe4000000;" (assignment_expression "uVar2 = insn & 0xe4000000" identifier = (binary_expression "insn & 0xe4000000" identifier & number_literal)) ;) (expression_statement "uVar1 = insn & 0xfc000000;" (assignment_expression "uVar1 = insn & 0xfc000000" identifier = (binary_expression "insn & 0xfc000000" identifier & number_literal)) ;) (expression_statement "bVar3 = (insn & 0x74000000) == 0x30000000;" (assignment_expression "bVar3 = (insn & 0x74000000) == 0x30000000" identifier = (binary_expression "(insn & 0x74000000) == 0x30000000" (parenthesized_expression "(insn & 0x74000000)" ( (binary_expression "insn & 0x74000000" identifier & number_literal) )) == number_literal)) ;) (expression_statement "bVar4 = (insn & 0xf4000000) == 0xa0000000;" (assignment_expression "bVar4 = (insn & 0xf4000000) == 0xa0000000" identifier = (binary_expression "(insn & 0xf4000000) == 0xa0000000" (parenthesized_expression "(insn & 0xf4000000)" ( (binary_expression "insn & 0xf4000000" identifier & number_literal) )) == number_literal)) ;) (expression_statement "bVar5 = ((((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000\n          ) || uVar1 == 0xe0000000;" (assignment_expression "bVar5 = ((((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000\n          ) || uVar1 == 0xe0000000" identifier = (binary_expression "((((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000\n          ) || uVar1 == 0xe0000000" (parenthesized_expression "((((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000\n          )" ( (binary_expression "(((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000) || uVar2 == 0xc0000000" (parenthesized_expression "(((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000)" ( (binary_expression "((bVar3 || uVar2 == 0x80000000) || bVar4) || uVar1 == 0xbc000000" (parenthesized_expression "((bVar3 || uVar2 == 0x80000000) || bVar4)" ( (binary_expression "(bVar3 || uVar2 == 0x80000000) || bVar4" (parenthesized_expression "(bVar3 || uVar2 == 0x80000000)" ( (binary_expression "bVar3 || uVar2 == 0x80000000" identifier || (binary_expression "uVar2 == 0x80000000" identifier == number_literal)) )) || identifier) )) || (binary_expression "uVar1 == 0xbc000000" identifier == number_literal)) )) || (binary_expression "uVar2 == 0xc0000000" identifier == number_literal)) )) || (binary_expression "uVar1 == 0xe0000000" identifier == number_literal))) ;) (if_statement "if (((((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000)\n      && uVar1 != 0xe0000000) {\n    if (uVar1 == 0xe4000000) {\n      bVar5 = r_type != 0x30 && r_type != 0xf;\n      if (bVar5) {\n        return bVar5;\n      }\n    }\n    else {\n      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;\n      if (bVar5) {\n        return bVar5;\n      }\n      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }\n    }\n    bVar5 = (insn & 0xfc000001) == 0xf8000000;\n  }" if (parenthesized_expression "(((((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000)\n      && uVar1 != 0xe0000000)" ( (binary_expression "((((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000)\n      && uVar1 != 0xe0000000" (parenthesized_expression "((((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000)" ( (binary_expression "(((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000) && uVar2 != 0xc0000000" (parenthesized_expression "(((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000)" ( (binary_expression "((!bVar3 && uVar2 != 0x80000000) && !bVar4) && uVar1 != 0xbc000000" (parenthesized_expression "((!bVar3 && uVar2 != 0x80000000) && !bVar4)" ( (binary_expression "(!bVar3 && uVar2 != 0x80000000) && !bVar4" (parenthesized_expression "(!bVar3 && uVar2 != 0x80000000)" ( (binary_expression "!bVar3 && uVar2 != 0x80000000" (unary_expression "!bVar3" ! identifier) && (binary_expression "uVar2 != 0x80000000" identifier != number_literal)) )) && (unary_expression "!bVar4" ! identifier)) )) && (binary_expression "uVar1 != 0xbc000000" identifier != number_literal)) )) && (binary_expression "uVar2 != 0xc0000000" identifier != number_literal)) )) && (binary_expression "uVar1 != 0xe0000000" identifier != number_literal)) )) (compound_statement "{\n    if (uVar1 == 0xe4000000) {\n      bVar5 = r_type != 0x30 && r_type != 0xf;\n      if (bVar5) {\n        return bVar5;\n      }\n    }\n    else {\n      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;\n      if (bVar5) {\n        return bVar5;\n      }\n      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }\n    }\n    bVar5 = (insn & 0xfc000001) == 0xf8000000;\n  }" { (if_statement "if (uVar1 == 0xe4000000) {\n      bVar5 = r_type != 0x30 && r_type != 0xf;\n      if (bVar5) {\n        return bVar5;\n      }\n    }\n    else {\n      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;\n      if (bVar5) {\n        return bVar5;\n      }\n      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }\n    }" if (parenthesized_expression "(uVar1 == 0xe4000000)" ( (binary_expression "uVar1 == 0xe4000000" identifier == number_literal) )) (compound_statement "{\n      bVar5 = r_type != 0x30 && r_type != 0xf;\n      if (bVar5) {\n        return bVar5;\n      }\n    }" { (expression_statement "bVar5 = r_type != 0x30 && r_type != 0xf;" (assignment_expression "bVar5 = r_type != 0x30 && r_type != 0xf" identifier = (binary_expression "r_type != 0x30 && r_type != 0xf" (binary_expression "r_type != 0x30" identifier != number_literal) && (binary_expression "r_type != 0xf" identifier != number_literal))) ;) (if_statement "if (bVar5) {\n        return bVar5;\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        return bVar5;\n      }" { (return_statement "return bVar5;" return identifier ;) })) }) (else_clause "else {\n      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;\n      if (bVar5) {\n        return bVar5;\n      }\n      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }\n    }" else (compound_statement "{\n      bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;\n      if (bVar5) {\n        return bVar5;\n      }\n      if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }\n    }" { (expression_statement "bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000;" (assignment_expression "bVar5 = uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000" identifier = (binary_expression "uVar1 == 0xf0000000 || (insn & 0xfc000001) == 0xe8000000" (binary_expression "uVar1 == 0xf0000000" identifier == number_literal) || (binary_expression "(insn & 0xfc000001) == 0xe8000000" (parenthesized_expression "(insn & 0xfc000001)" ( (binary_expression "insn & 0xfc000001" identifier & number_literal) )) == number_literal))) ;) (if_statement "if (bVar5) {\n        return bVar5;\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n        return bVar5;\n      }" { (return_statement "return bVar5;" return identifier ;) })) (if_statement "if ((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)) {\n        return bVar5;\n      }" if (parenthesized_expression "((uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5))" ( (binary_expression "(uVar1 == 0xf4000000) && (bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)" (parenthesized_expression "(uVar1 == 0xf4000000)" ( (binary_expression "uVar1 == 0xf4000000" identifier == number_literal) )) && (parenthesized_expression "(bVar5 = r_type != 0x30 && r_type != 0xf, bVar5)" ( (comma_expression "bVar5 = r_type != 0x30 && r_type != 0xf, bVar5" (assignment_expression "bVar5 = r_type != 0x30 && r_type != 0xf" identifier = (binary_expression "r_type != 0x30 && r_type != 0xf" (binary_expression "r_type != 0x30" identifier != number_literal) && (binary_expression "r_type != 0xf" identifier != number_literal))) , identifier) ))) )) (compound_statement "{\n        return bVar5;\n      }" { (return_statement "return bVar5;" return identifier ;) })) }))) (expression_statement "bVar5 = (insn & 0xfc000001) == 0xf8000000;" (assignment_expression "bVar5 = (insn & 0xfc000001) == 0xf8000000" identifier = (binary_expression "(insn & 0xfc000001) == 0xf8000000" (parenthesized_expression "(insn & 0xfc000001)" ( (binary_expression "insn & 0xfc000001" identifier & number_literal) )) == number_literal)) ;) })) (return_statement "return bVar5;" return identifier ;) }))
(translation_unit "undefined4 __regparm3 FUN_000aa940(uint param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_000aa940(uint param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000aa940(uint param_1,int param_2)" identifier (parameter_list "(uint param_1,int param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined3 uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "uVar6 = param_1 & 0xfc000000;" (assignment_expression "uVar6 = param_1 & 0xfc000000" identifier = (binary_expression "param_1 & 0xfc000000" identifier & number_literal)) ;) (expression_statement "uVar5 = (undefined3)((uint)param_2 >> 8);" (assignment_expression "uVar5 = (undefined3)((uint)param_2 >> 8)" identifier = (call_expression "(undefined3)((uint)param_2 >> 8)" (parenthesized_expression "(undefined3)" ( identifier )) (argument_list "((uint)param_2 >> 8)" ( (binary_expression "(uint)param_2 >> 8" (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);" (assignment_expression "uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" identifier = (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000)" (call_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000)" identifier (argument_list "((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000)" ( (call_expression "(int3)((param_1 & 0x74000000) >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((param_1 & 0x74000000) >> 8)" ( (binary_expression "(param_1 & 0x74000000) >> 8" (parenthesized_expression "(param_1 & 0x74000000)" ( (binary_expression "param_1 & 0x74000000" identifier & number_literal) )) >> number_literal) ))) , (binary_expression "(param_1 & 0x74000000) == 0x30000000" (parenthesized_expression "(param_1 & 0x74000000)" ( (binary_expression "param_1 & 0x74000000" identifier & number_literal) )) == number_literal) ))) | (call_expression "CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000)" identifier (argument_list "(uVar5,(param_1 & 0xe4000000) == 0x80000000)" ( identifier , (binary_expression "(param_1 & 0xe4000000) == 0x80000000" (parenthesized_expression "(param_1 & 0xe4000000)" ( (binary_expression "param_1 & 0xe4000000" identifier & number_literal) )) == number_literal) )))) | (call_expression "CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" identifier (argument_list "(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" ( identifier , (binary_expression "(param_1 & 0xf4000000) == 0xa0000000" (parenthesized_expression "(param_1 & 0xf4000000)" ( (binary_expression "param_1 & 0xf4000000" identifier & number_literal) )) == number_literal) )))) | (call_expression "CONCAT31(uVar5,uVar6 == 0xbc000000)" identifier (argument_list "(uVar5,uVar6 == 0xbc000000)" ( identifier , (binary_expression "uVar6 == 0xbc000000" identifier == number_literal) )))) | (call_expression "CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" identifier (argument_list "(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" ( identifier , (binary_expression "(param_1 & 0xe4000000) == 0xc0000000" (parenthesized_expression "(param_1 & 0xe4000000)" ( (binary_expression "param_1 & 0xe4000000" identifier & number_literal) )) == number_literal) ))))) ;) (expression_statement "uVar5 = (undefined3)(uVar3 >> 8);" (assignment_expression "uVar5 = (undefined3)(uVar3 >> 8)" identifier = (call_expression "(undefined3)(uVar3 >> 8)" (parenthesized_expression "(undefined3)" ( identifier )) (argument_list "(uVar3 >> 8)" ( (binary_expression "uVar3 >> 8" identifier >> number_literal) )))) ;) (expression_statement "bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;" (assignment_expression "bVar1 = (byte)uVar3 | uVar6 == 0xe0000000" identifier = (binary_expression "(byte)uVar3 | uVar6 == 0xe0000000" (cast_expression "(byte)uVar3" ( (type_descriptor "byte" type_identifier) ) identifier) | (binary_expression "uVar6 == 0xe0000000" identifier == number_literal))) ;) (expression_statement "uVar4 = CONCAT31(uVar5,bVar1);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar1)" identifier = (call_expression "CONCAT31(uVar5,bVar1)" identifier (argument_list "(uVar5,bVar1)" ( identifier , identifier )))) ;) (if_statement "if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }" { (if_statement "if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" if (parenthesized_expression "(uVar6 == 0xe4000000)" ( (binary_expression "uVar6 == 0xe4000000" identifier == number_literal) )) (compound_statement "{\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }" { (expression_statement "bVar2 = param_2 != 0x30 && param_2 != 0xf;" (assignment_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf" identifier = (binary_expression "param_2 != 0x30 && param_2 != 0xf" (binary_expression "param_2 != 0x30" identifier != number_literal) && (binary_expression "param_2 != 0xf" identifier != number_literal))) ;) (expression_statement "uVar4 = CONCAT31(uVar5,bVar2);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" identifier = (call_expression "CONCAT31(uVar5,bVar2)" identifier (argument_list "(uVar5,bVar2)" ( identifier , identifier )))) ;) (if_statement "if (bVar2) {\n        return uVar4;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) }) (else_clause "else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" else (compound_statement "{\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" { (expression_statement "bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;" (assignment_expression "bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000" identifier = (binary_expression "uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000" (binary_expression "uVar6 == 0xf0000000" identifier == number_literal) || (binary_expression "(param_1 & 0xfc000001) == 0xe8000000" (parenthesized_expression "(param_1 & 0xfc000001)" ( (binary_expression "param_1 & 0xfc000001" identifier & number_literal) )) == number_literal))) ;) (expression_statement "uVar4 = CONCAT31(uVar5,bVar2);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" identifier = (call_expression "CONCAT31(uVar5,bVar2)" identifier (argument_list "(uVar5,bVar2)" ( identifier , identifier )))) ;) (if_statement "if (bVar2) {\n        return uVar4;\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) (if_statement "if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }" if (parenthesized_expression "((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2))" ( (binary_expression "(uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)" (parenthesized_expression "(uVar6 == 0xf4000000)" ( (binary_expression "uVar6 == 0xf4000000" identifier == number_literal) )) && (parenthesized_expression "(bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)" ( (comma_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2" (assignment_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf" identifier = (binary_expression "param_2 != 0x30 && param_2 != 0xf" (binary_expression "param_2 != 0x30" identifier != number_literal) && (binary_expression "param_2 != 0xf" identifier != number_literal))) , (comma_expression "uVar4 = CONCAT31(uVar5,bVar2), bVar2" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" identifier = (call_expression "CONCAT31(uVar5,bVar2)" identifier (argument_list "(uVar5,bVar2)" ( identifier , identifier )))) , identifier)) ))) )) (compound_statement "{\n        return uVar4;\n      }" { (return_statement "return uVar4;" return identifier ;) })) }))) (expression_statement "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" identifier = (call_expression "CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" identifier (argument_list "((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" ( (call_expression "(int3)((uint)uVar4 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)uVar4 >> 8)" ( (binary_expression "(uint)uVar4 >> 8" (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "(param_1 & 0xfc000001) == 0xf8000000" (parenthesized_expression "(param_1 & 0xfc000001)" ( (binary_expression "param_1 & 0xfc000001" identifier & number_literal) )) == number_literal) )))) ;) })) (return_statement "return uVar4;" 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 ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) ))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) | (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) | (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) | (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT == LIT) )))) | (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | (binary_expression IDENT == LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) || (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT))) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , IDENT)) ))) )) (compound_statement { (return_statement return IDENT ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm3 FUN_000aa940(uint param_1,int param_2)\n\n{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000aa940(uint param_1,int param_2)" (identifier "FUN_000aa940") (parameter_list "(uint param_1,int param_2)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  uint uVar3;\n  undefined3 uVar5;\n  uint uVar6;\n  undefined4 uVar4;\n  \n  uVar6 = param_1 & 0xfc000000;\n  uVar5 = (undefined3)((uint)param_2 >> 8);\n  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);\n  uVar5 = (undefined3)(uVar3 >> 8);\n  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;\n  uVar4 = CONCAT31(uVar5,bVar1);\n  if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }\n  return uVar4;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined3 uVar5;" (type_identifier "undefined3") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (expression_statement "uVar6 = param_1 & 0xfc000000;" (assignment_expression "uVar6 = param_1 & 0xfc000000" (identifier "uVar6") (= "=") (binary_expression "param_1 & 0xfc000000" (identifier "param_1") (& "&") (number_literal "0xfc000000"))) (; ";")) (expression_statement "uVar5 = (undefined3)((uint)param_2 >> 8);" (assignment_expression "uVar5 = (undefined3)((uint)param_2 >> 8)" (identifier "uVar5") (= "=") (call_expression "(undefined3)((uint)param_2 >> 8)" (parenthesized_expression "(undefined3)" (( "(") (identifier "undefined3") () ")")) (argument_list "((uint)param_2 >> 8)" (( "(") (binary_expression "(uint)param_2 >> 8" (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);" (assignment_expression "uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" (identifier "uVar3") (= "=") (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)\n          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |\n          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" (binary_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |\n          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000)" (call_expression "CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000)" (identifier "CONCAT31") (argument_list "((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000)" (( "(") (call_expression "(int3)((param_1 & 0x74000000) >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((param_1 & 0x74000000) >> 8)" (( "(") (binary_expression "(param_1 & 0x74000000) >> 8" (parenthesized_expression "(param_1 & 0x74000000)" (( "(") (binary_expression "param_1 & 0x74000000" (identifier "param_1") (& "&") (number_literal "0x74000000")) () ")")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "(param_1 & 0x74000000) == 0x30000000" (parenthesized_expression "(param_1 & 0x74000000)" (( "(") (binary_expression "param_1 & 0x74000000" (identifier "param_1") (& "&") (number_literal "0x74000000")) () ")")) (== "==") (number_literal "0x30000000")) () ")"))) (| "|") (call_expression "CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000)" (identifier "CONCAT31") (argument_list "(uVar5,(param_1 & 0xe4000000) == 0x80000000)" (( "(") (identifier "uVar5") (, ",") (binary_expression "(param_1 & 0xe4000000) == 0x80000000" (parenthesized_expression "(param_1 & 0xe4000000)" (( "(") (binary_expression "param_1 & 0xe4000000" (identifier "param_1") (& "&") (number_literal "0xe4000000")) () ")")) (== "==") (number_literal "0x80000000")) () ")")))) (| "|") (call_expression "CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" (identifier "CONCAT31") (argument_list "(uVar5,(param_1 & 0xf4000000) == 0xa0000000)" (( "(") (identifier "uVar5") (, ",") (binary_expression "(param_1 & 0xf4000000) == 0xa0000000" (parenthesized_expression "(param_1 & 0xf4000000)" (( "(") (binary_expression "param_1 & 0xf4000000" (identifier "param_1") (& "&") (number_literal "0xf4000000")) () ")")) (== "==") (number_literal "0xa0000000")) () ")")))) (| "|") (call_expression "CONCAT31(uVar5,uVar6 == 0xbc000000)" (identifier "CONCAT31") (argument_list "(uVar5,uVar6 == 0xbc000000)" (( "(") (identifier "uVar5") (, ",") (binary_expression "uVar6 == 0xbc000000" (identifier "uVar6") (== "==") (number_literal "0xbc000000")) () ")")))) (| "|") (call_expression "CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" (identifier "CONCAT31") (argument_list "(uVar5,(param_1 & 0xe4000000) == 0xc0000000)" (( "(") (identifier "uVar5") (, ",") (binary_expression "(param_1 & 0xe4000000) == 0xc0000000" (parenthesized_expression "(param_1 & 0xe4000000)" (( "(") (binary_expression "param_1 & 0xe4000000" (identifier "param_1") (& "&") (number_literal "0xe4000000")) () ")")) (== "==") (number_literal "0xc0000000")) () ")"))))) (; ";")) (expression_statement "uVar5 = (undefined3)(uVar3 >> 8);" (assignment_expression "uVar5 = (undefined3)(uVar3 >> 8)" (identifier "uVar5") (= "=") (call_expression "(undefined3)(uVar3 >> 8)" (parenthesized_expression "(undefined3)" (( "(") (identifier "undefined3") () ")")) (argument_list "(uVar3 >> 8)" (( "(") (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;" (assignment_expression "bVar1 = (byte)uVar3 | uVar6 == 0xe0000000" (identifier "bVar1") (= "=") (binary_expression "(byte)uVar3 | uVar6 == 0xe0000000" (cast_expression "(byte)uVar3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar3")) (| "|") (binary_expression "uVar6 == 0xe0000000" (identifier "uVar6") (== "==") (number_literal "0xe0000000")))) (; ";")) (expression_statement "uVar4 = CONCAT31(uVar5,bVar1);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar1)" (identifier "uVar4") (= "=") (call_expression "CONCAT31(uVar5,bVar1)" (identifier "CONCAT31") (argument_list "(uVar5,bVar1)" (( "(") (identifier "uVar5") (, ",") (identifier "bVar1") () ")")))) (; ";")) (if_statement "if (bVar1 == 0) {\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }" (if "if") (parenthesized_expression "(bVar1 == 0)" (( "(") (binary_expression "bVar1 == 0" (identifier "bVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }\n    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);\n  }" ({ "{") (if_statement "if (uVar6 == 0xe4000000) {\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }\n    else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" (if "if") (parenthesized_expression "(uVar6 == 0xe4000000)" (( "(") (binary_expression "uVar6 == 0xe4000000" (identifier "uVar6") (== "==") (number_literal "0xe4000000")) () ")")) (compound_statement "{\n      bVar2 = param_2 != 0x30 && param_2 != 0xf;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n    }" ({ "{") (expression_statement "bVar2 = param_2 != 0x30 && param_2 != 0xf;" (assignment_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf" (identifier "bVar2") (= "=") (binary_expression "param_2 != 0x30 && param_2 != 0xf" (binary_expression "param_2 != 0x30" (identifier "param_2") (!= "!=") (number_literal "0x30")) (&& "&&") (binary_expression "param_2 != 0xf" (identifier "param_2") (!= "!=") (number_literal "0xf")))) (; ";")) (expression_statement "uVar4 = CONCAT31(uVar5,bVar2);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" (identifier "uVar4") (= "=") (call_expression "CONCAT31(uVar5,bVar2)" (identifier "CONCAT31") (argument_list "(uVar5,bVar2)" (( "(") (identifier "uVar5") (, ",") (identifier "bVar2") () ")")))) (; ";")) (if_statement "if (bVar2) {\n        return uVar4;\n      }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n        return uVar4;\n      }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" (else "else") (compound_statement "{\n      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;\n      uVar4 = CONCAT31(uVar5,bVar2);\n      if (bVar2) {\n        return uVar4;\n      }\n      if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }\n    }" ({ "{") (expression_statement "bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;" (assignment_expression "bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000" (identifier "bVar2") (= "=") (binary_expression "uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000" (binary_expression "uVar6 == 0xf0000000" (identifier "uVar6") (== "==") (number_literal "0xf0000000")) (|| "||") (binary_expression "(param_1 & 0xfc000001) == 0xe8000000" (parenthesized_expression "(param_1 & 0xfc000001)" (( "(") (binary_expression "param_1 & 0xfc000001" (identifier "param_1") (& "&") (number_literal "0xfc000001")) () ")")) (== "==") (number_literal "0xe8000000")))) (; ";")) (expression_statement "uVar4 = CONCAT31(uVar5,bVar2);" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" (identifier "uVar4") (= "=") (call_expression "CONCAT31(uVar5,bVar2)" (identifier "CONCAT31") (argument_list "(uVar5,bVar2)" (( "(") (identifier "uVar5") (, ",") (identifier "bVar2") () ")")))) (; ";")) (if_statement "if (bVar2) {\n        return uVar4;\n      }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n        return uVar4;\n      }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (if_statement "if ((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {\n        return uVar4;\n      }" (if "if") (parenthesized_expression "((uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2))" (( "(") (binary_expression "(uVar6 == 0xf4000000) &&\n         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)" (parenthesized_expression "(uVar6 == 0xf4000000)" (( "(") (binary_expression "uVar6 == 0xf4000000" (identifier "uVar6") (== "==") (number_literal "0xf4000000")) () ")")) (&& "&&") (parenthesized_expression "(bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)" (( "(") (comma_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2" (assignment_expression "bVar2 = param_2 != 0x30 && param_2 != 0xf" (identifier "bVar2") (= "=") (binary_expression "param_2 != 0x30 && param_2 != 0xf" (binary_expression "param_2 != 0x30" (identifier "param_2") (!= "!=") (number_literal "0x30")) (&& "&&") (binary_expression "param_2 != 0xf" (identifier "param_2") (!= "!=") (number_literal "0xf")))) (, ",") (comma_expression "uVar4 = CONCAT31(uVar5,bVar2), bVar2" (assignment_expression "uVar4 = CONCAT31(uVar5,bVar2)" (identifier "uVar4") (= "=") (call_expression "CONCAT31(uVar5,bVar2)" (identifier "CONCAT31") (argument_list "(uVar5,bVar2)" (( "(") (identifier "uVar5") (, ",") (identifier "bVar2") () ")")))) (, ",") (identifier "bVar2"))) () ")"))) () ")")) (compound_statement "{\n        return uVar4;\n      }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);" (assignment_expression "uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" (identifier "uVar4") (= "=") (call_expression "CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" (identifier "CONCAT31") (argument_list "((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000)" (( "(") (call_expression "(int3)((uint)uVar4 >> 8)" (parenthesized_expression "(int3)" (( "(") (identifier "int3") () ")")) (argument_list "((uint)uVar4 >> 8)" (( "(") (binary_expression "(uint)uVar4 >> 8" (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4")) (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "(param_1 & 0xfc000001) == 0xf8000000" (parenthesized_expression "(param_1 & 0xfc000001)" (( "(") (binary_expression "param_1 & 0xfc000001" (identifier "param_1") (& "&") (number_literal "0xfc000001")) () ")")) (== "==") (number_literal "0xf8000000")) () ")")))) (; ";")) (} "}"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}")))

bool __regparm3 anon_unknown.dwarf_6462d4::ok_lo_toc_insn(uint32_t var_1,type_1 var_6)

{
  type_1 var_5;
  type_1 var_3;
  bool var_2;
  bool var_4;
  bool bVar5;
  
  var_3 = var_1 & 0xe4000000;
  var_5 = var_1 & 0xfc000000;
  var_2 = (var_1 & 0x74000000) == 0x30000000;
  var_4 = (var_1 & 0xf4000000) == 0xa0000000;
  bVar5 = ((((var_2 || var_3 == 0x80000000) || var_4) || var_5 == 0xbc000000) || var_3 == 0xc0000000
          ) || var_5 == 0xe0000000;
  if (((((!var_2 && var_3 != 0x80000000) && !var_4) && var_5 != 0xbc000000) && var_3 != 0xc0000000)
      && var_5 != 0xe0000000) {
    if (var_5 == 0xe4000000) {
      bVar5 = var_6 != 0x30 && var_6 != 0xf;
      if (bVar5) {
        return bVar5;
      }
    }
    else {
      bVar5 = var_5 == 0xf0000000 || (var_1 & 0xfc000001) == 0xe8000000;
      if (bVar5) {
        return bVar5;
      }
      if ((var_5 == 0xf4000000) && (bVar5 = var_6 != 0x30 && var_6 != 0xf, bVar5)) {
        return bVar5;
      }
    }
    bVar5 = (var_1 & 0xfc000001) == 0xf8000000;
  }
  return bVar5;
}


(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: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (return_statement (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (identifier)))))) consequence: (compound_statement (return_statement (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))))) (return_statement (identifier)))))

undefined4 __regparm3 MASKED(uint param_1,int param_2)

{
  byte bVar1;
  bool bVar2;
  uint uVar3;
  undefined3 uVar5;
  uint uVar6;
  undefined4 uVar4;
  
  uVar6 = param_1 & 0xfc000000;
  uVar5 = (undefined3)((uint)param_2 >> 8);
  uVar3 = CONCAT31((int3)((param_1 & 0x74000000) >> 8),(param_1 & 0x74000000) == 0x30000000) |
          CONCAT31(uVar5,(param_1 & 0xe4000000) == 0x80000000) |
          CONCAT31(uVar5,(param_1 & 0xf4000000) == 0xa0000000) | CONCAT31(uVar5,uVar6 == 0xbc000000)
          | CONCAT31(uVar5,(param_1 & 0xe4000000) == 0xc0000000);
  uVar5 = (undefined3)(uVar3 >> 8);
  bVar1 = (byte)uVar3 | uVar6 == 0xe0000000;
  uVar4 = CONCAT31(uVar5,bVar1);
  if (bVar1 == 0) {
    if (uVar6 == 0xe4000000) {
      bVar2 = param_2 != 0x30 && param_2 != 0xf;
      uVar4 = CONCAT31(uVar5,bVar2);
      if (bVar2) {
        return uVar4;
      }
    }
    else {
      bVar2 = uVar6 == 0xf0000000 || (param_1 & 0xfc000001) == 0xe8000000;
      uVar4 = CONCAT31(uVar5,bVar2);
      if (bVar2) {
        return uVar4;
      }
      if ((uVar6 == 0xf4000000) &&
         (bVar2 = param_2 != 0x30 && param_2 != 0xf, uVar4 = CONCAT31(uVar5,bVar2), bVar2)) {
        return uVar4;
      }
    }
    uVar4 = CONCAT31((int3)((uint)uVar4 >> 8),(param_1 & 0xfc000001) == 0xf8000000);
  }
  return uVar4;
}

