
/* WARNING: Unknown calling convention */

char * default_emul_bfd_name(void)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  undefined *puVar4;
  
  puVar4 = PTR_as_abort_000b5cec;
  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);
  iVar2 = **(int **)(puVar4 + 0x97eac);
  uVar1 = (uint)*(byte *)(iVar2 + 0x10);
  iVar3 = *(int *)(iVar2 + 0x18);
  **(int **)(puVar4 + 0x97eb0) = iVar3;
  if ((uVar1 & 0x30) == 0x20) {
    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;
    *(char *)(iVar2 + 0x10) = (char)uVar1;
  }
  if ((uVar1 & 6) != 4) {
    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;
  }
  if (*(int *)(iVar2 + 0x14) != 0) {
    return (char *)(uVar1 & 0x30);
  }
  iVar3 = *(int *)(puVar4 + 0x97e74);
  if ((char *)(uVar1 & 0x30) != (char *)0x0) {
    iVar3 = *(int *)(puVar4 + 0x97e74);
    *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088);
    return (char *)(iVar3 + 0x2088);
  }
  *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x208c);
  return (char *)(iVar3 + 0x208c);
}



void FUN_0001de10(void)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  undefined *puVar4;
  
  puVar4 = PTR_as_abort_000b5cec;
  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);
  iVar2 = **(int **)(puVar4 + 0x97eac);
  uVar1 = (uint)*(byte *)(iVar2 + 0x10);
  iVar3 = *(int *)(iVar2 + 0x18);
  **(int **)(puVar4 + 0x97eb0) = iVar3;
  if ((uVar1 & 0x30) == 0x20) {
    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;
    *(char *)(iVar2 + 0x10) = (char)uVar1;
  }
  if ((uVar1 & 6) != 4) {
    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;
  }
  if (*(int *)(iVar2 + 0x14) != 0) {
    return;
  }
  if ((uVar1 & 0x30) != 0) {
    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;
    return;
  }
  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;
  return;
}


lui gp,0xa
addiu gp,gp,-0x190
addu gp,gp,t9
lw a2,-0x7fc8(gp)
addiu sp,sp,-0x20
lw a0,-0x7fc8(gp)
li a1,0xbe
lw t9,-0x7f94(gp)
addiu a2,a2,0x3e18
sw gp,0x10(sp)
sw ra,0x1c(sp)
jalr t9
_addiu a0,a0,0x2078
(translation_unit "void FUN_0001de10(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}\n\n" (function_definition "void FUN_0001de10(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}" primitive_type (function_declarator "FUN_0001de10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "puVar4 = PTR_as_abort_000b5cec;" (assignment_expression "puVar4 = PTR_as_abort_000b5cec" identifier = identifier) ;) (expression_statement "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);" (call_expression "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" ( (pointer_expression "*(code *)PTR_as_abort_000b5cec" * (cast_expression "(code *)PTR_as_abort_000b5cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" ( (binary_expression "PTR_LAB_000b5cb8 + 0x2078" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_000b5cb8 + 0x3e18" identifier + number_literal) ))) ;) (expression_statement "iVar2 = **(int **)(puVar4 + 0x97eac);" (assignment_expression "iVar2 = **(int **)(puVar4 + 0x97eac)" identifier = (pointer_expression "**(int **)(puVar4 + 0x97eac)" * (pointer_expression "*(int **)(puVar4 + 0x97eac)" * (cast_expression "(int **)(puVar4 + 0x97eac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eac)" ( (binary_expression "puVar4 + 0x97eac" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (uint)*(byte *)(iVar2 + 0x10);" (assignment_expression "uVar1 = (uint)*(byte *)(iVar2 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar2 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar2 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar2 + 0x18);" (assignment_expression "iVar3 = *(int *)(iVar2 + 0x18)" identifier = (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "**(int **)(puVar4 + 0x97eb0) = iVar3;" (assignment_expression "**(int **)(puVar4 + 0x97eb0) = iVar3" (pointer_expression "**(int **)(puVar4 + 0x97eb0)" * (pointer_expression "*(int **)(puVar4 + 0x97eb0)" * (cast_expression "(int **)(puVar4 + 0x97eb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eb0)" ( (binary_expression "puVar4 + 0x97eb0" identifier + number_literal) ))))) = identifier) ;) (if_statement "if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" if (parenthesized_expression "((uVar1 & 0x30) == 0x20)" ( (binary_expression "(uVar1 & 0x30) == 0x20" (parenthesized_expression "(uVar1 & 0x30)" ( (binary_expression "uVar1 & 0x30" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" { (expression_statement "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;" (assignment_expression "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" identifier = (binary_expression "uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" (binary_expression "uVar1 & 0xffffffcf" identifier & number_literal) | (binary_expression "(*(uint *)(iVar3 + 4) >> 0x1f) << 4" (parenthesized_expression "(*(uint *)(iVar3 + 4) >> 0x1f)" ( (binary_expression "*(uint *)(iVar3 + 4) >> 0x1f" (pointer_expression "*(uint *)(iVar3 + 4)" * (cast_expression "(uint *)(iVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) >> number_literal) )) << number_literal))) ;) (expression_statement "*(char *)(iVar2 + 0x10) = (char)uVar1;" (assignment_expression "*(char *)(iVar2 + 0x10) = (char)uVar1" (pointer_expression "*(char *)(iVar2 + 0x10)" * (cast_expression "(char *)(iVar2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (if_statement "if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" if (parenthesized_expression "((uVar1 & 6) != 4)" ( (binary_expression "(uVar1 & 6) != 4" (parenthesized_expression "(uVar1 & 6)" ( (binary_expression "uVar1 & 6" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" { (expression_statement "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;" (assignment_expression "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (pointer_expression "**(uint **)(puVar4 + 0x97eb4)" * (pointer_expression "*(uint **)(puVar4 + 0x97eb4)" * (cast_expression "(uint **)(puVar4 + 0x97eb4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eb4)" ( (binary_expression "puVar4 + 0x97eb4" identifier + number_literal) ))))) = (binary_expression "(uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x10) << 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x10) << 5)" ( (binary_expression "*(int *)(iVar2 + 0x10) << 5" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) })) (if_statement "if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x14) != 0" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }" if (parenthesized_expression "((uVar1 & 0x30) != 0)" ( (binary_expression "(uVar1 & 0x30) != 0" (parenthesized_expression "(uVar1 & 0x30)" ( (binary_expression "uVar1 & 0x30" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }" { (expression_statement "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;" (assignment_expression "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar4 + 0x97e74) + 0x2088" (pointer_expression "*(int *)(puVar4 + 0x97e74)" * (cast_expression "(int *)(puVar4 + 0x97e74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x97e74)" ( (binary_expression "puVar4 + 0x97e74" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;" (assignment_expression "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar4 + 0x97e74) + 0x208c" (pointer_expression "*(int *)(puVar4 + 0x97e74)" * (cast_expression "(int *)(puVar4 + 0x97e74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x97e74)" ( (binary_expression "puVar4 + 0x97e74" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nchar * default_emul_bfd_name(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return (char *)(uVar1 & 0x30);\n  }\n  iVar3 = *(int *)(puVar4 + 0x97e74);\n  if ((char *)(uVar1 & 0x30) != (char *)0x0) {\n    iVar3 = *(int *)(puVar4 + 0x97e74);\n    *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088);\n    return (char *)(iVar3 + 0x2088);\n  }\n  *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x208c);\n  return (char *)(iVar3 + 0x208c);\n}\n\n" comment (function_definition "char * default_emul_bfd_name(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return (char *)(uVar1 & 0x30);\n  }\n  iVar3 = *(int *)(puVar4 + 0x97e74);\n  if ((char *)(uVar1 & 0x30) != (char *)0x0) {\n    iVar3 = *(int *)(puVar4 + 0x97e74);\n    *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088);\n    return (char *)(iVar3 + 0x2088);\n  }\n  *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x208c);\n  return (char *)(iVar3 + 0x208c);\n}" primitive_type (pointer_declarator "* default_emul_bfd_name(void)" * (function_declarator "default_emul_bfd_name(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) )))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return (char *)(uVar1 & 0x30);\n  }\n  iVar3 = *(int *)(puVar4 + 0x97e74);\n  if ((char *)(uVar1 & 0x30) != (char *)0x0) {\n    iVar3 = *(int *)(puVar4 + 0x97e74);\n    *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088);\n    return (char *)(iVar3 + 0x2088);\n  }\n  *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x208c);\n  return (char *)(iVar3 + 0x208c);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "puVar4 = PTR_as_abort_000b5cec;" (assignment_expression "puVar4 = PTR_as_abort_000b5cec" identifier = identifier) ;) (expression_statement "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);" (call_expression "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" ( (pointer_expression "*(code *)PTR_as_abort_000b5cec" * (cast_expression "(code *)PTR_as_abort_000b5cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" ( (binary_expression "PTR_LAB_000b5cb8 + 0x2078" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_000b5cb8 + 0x3e18" identifier + number_literal) ))) ;) (expression_statement "iVar2 = **(int **)(puVar4 + 0x97eac);" (assignment_expression "iVar2 = **(int **)(puVar4 + 0x97eac)" identifier = (pointer_expression "**(int **)(puVar4 + 0x97eac)" * (pointer_expression "*(int **)(puVar4 + 0x97eac)" * (cast_expression "(int **)(puVar4 + 0x97eac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eac)" ( (binary_expression "puVar4 + 0x97eac" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (uint)*(byte *)(iVar2 + 0x10);" (assignment_expression "uVar1 = (uint)*(byte *)(iVar2 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar2 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar2 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar2 + 0x18);" (assignment_expression "iVar3 = *(int *)(iVar2 + 0x18)" identifier = (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "**(int **)(puVar4 + 0x97eb0) = iVar3;" (assignment_expression "**(int **)(puVar4 + 0x97eb0) = iVar3" (pointer_expression "**(int **)(puVar4 + 0x97eb0)" * (pointer_expression "*(int **)(puVar4 + 0x97eb0)" * (cast_expression "(int **)(puVar4 + 0x97eb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eb0)" ( (binary_expression "puVar4 + 0x97eb0" identifier + number_literal) ))))) = identifier) ;) (if_statement "if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" if (parenthesized_expression "((uVar1 & 0x30) == 0x20)" ( (binary_expression "(uVar1 & 0x30) == 0x20" (parenthesized_expression "(uVar1 & 0x30)" ( (binary_expression "uVar1 & 0x30" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" { (expression_statement "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;" (assignment_expression "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" identifier = (binary_expression "uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" (binary_expression "uVar1 & 0xffffffcf" identifier & number_literal) | (binary_expression "(*(uint *)(iVar3 + 4) >> 0x1f) << 4" (parenthesized_expression "(*(uint *)(iVar3 + 4) >> 0x1f)" ( (binary_expression "*(uint *)(iVar3 + 4) >> 0x1f" (pointer_expression "*(uint *)(iVar3 + 4)" * (cast_expression "(uint *)(iVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) >> number_literal) )) << number_literal))) ;) (expression_statement "*(char *)(iVar2 + 0x10) = (char)uVar1;" (assignment_expression "*(char *)(iVar2 + 0x10) = (char)uVar1" (pointer_expression "*(char *)(iVar2 + 0x10)" * (cast_expression "(char *)(iVar2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (if_statement "if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" if (parenthesized_expression "((uVar1 & 6) != 4)" ( (binary_expression "(uVar1 & 6) != 4" (parenthesized_expression "(uVar1 & 6)" ( (binary_expression "uVar1 & 6" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" { (expression_statement "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;" (assignment_expression "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (pointer_expression "**(uint **)(puVar4 + 0x97eb4)" * (pointer_expression "*(uint **)(puVar4 + 0x97eb4)" * (cast_expression "(uint **)(puVar4 + 0x97eb4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eb4)" ( (binary_expression "puVar4 + 0x97eb4" identifier + number_literal) ))))) = (binary_expression "(uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x10) << 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x10) << 5)" ( (binary_expression "*(int *)(iVar2 + 0x10) << 5" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) })) (if_statement "if (*(int *)(iVar2 + 0x14) != 0) {\n    return (char *)(uVar1 & 0x30);\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x14) != 0" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return (char *)(uVar1 & 0x30);\n  }" { (return_statement "return (char *)(uVar1 & 0x30);" return (cast_expression "(char *)(uVar1 & 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 & 0x30)" ( (binary_expression "uVar1 & 0x30" identifier & number_literal) ))) ;) })) (expression_statement "iVar3 = *(int *)(puVar4 + 0x97e74);" (assignment_expression "iVar3 = *(int *)(puVar4 + 0x97e74)" identifier = (pointer_expression "*(int *)(puVar4 + 0x97e74)" * (cast_expression "(int *)(puVar4 + 0x97e74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x97e74)" ( (binary_expression "puVar4 + 0x97e74" identifier + number_literal) ))))) ;) (if_statement "if ((char *)(uVar1 & 0x30) != (char *)0x0) {\n    iVar3 = *(int *)(puVar4 + 0x97e74);\n    *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088);\n    return (char *)(iVar3 + 0x2088);\n  }" if (parenthesized_expression "((char *)(uVar1 & 0x30) != (char *)0x0)" ( (binary_expression "(char *)(uVar1 & 0x30) != (char *)0x0" (cast_expression "(char *)(uVar1 & 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 & 0x30)" ( (binary_expression "uVar1 & 0x30" identifier & number_literal) ))) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar3 = *(int *)(puVar4 + 0x97e74);\n    *(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088);\n    return (char *)(iVar3 + 0x2088);\n  }" { (expression_statement "iVar3 = *(int *)(puVar4 + 0x97e74);" (assignment_expression "iVar3 = *(int *)(puVar4 + 0x97e74)" identifier = (pointer_expression "*(int *)(puVar4 + 0x97e74)" * (cast_expression "(int *)(puVar4 + 0x97e74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x97e74)" ( (binary_expression "puVar4 + 0x97e74" identifier + number_literal) ))))) ;) (expression_statement "*(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088);" (assignment_expression "*(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x2088)" (pointer_expression "*(char **)(iVar2 + 0x14)" * (cast_expression "(char **)(iVar2 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (cast_expression "(char *)(iVar3 + 0x2088)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2088)" ( (binary_expression "iVar3 + 0x2088" identifier + number_literal) )))) ;) (return_statement "return (char *)(iVar3 + 0x2088);" return (cast_expression "(char *)(iVar3 + 0x2088)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2088)" ( (binary_expression "iVar3 + 0x2088" identifier + number_literal) ))) ;) })) (expression_statement "*(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x208c);" (assignment_expression "*(char **)(iVar2 + 0x14) = (char *)(iVar3 + 0x208c)" (pointer_expression "*(char **)(iVar2 + 0x14)" * (cast_expression "(char **)(iVar2 + 0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (cast_expression "(char *)(iVar3 + 0x208c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x208c)" ( (binary_expression "iVar3 + 0x208c" identifier + number_literal) )))) ;) (return_statement "return (char *)(iVar3 + 0x208c);" return (cast_expression "(char *)(iVar3 + 0x208c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x208c)" ( (binary_expression "iVar3 + 0x208c" identifier + number_literal) ))) ;) })))
(translation_unit "void FUN_0001de10(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}\n\n" (function_definition "void FUN_0001de10(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}" primitive_type (function_declarator "FUN_0001de10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "puVar4 = PTR_as_abort_000b5cec;" (assignment_expression "puVar4 = PTR_as_abort_000b5cec" identifier = identifier) ;) (expression_statement "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);" (call_expression "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" ( (pointer_expression "*(code *)PTR_as_abort_000b5cec" * (cast_expression "(code *)PTR_as_abort_000b5cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" ( (binary_expression "PTR_LAB_000b5cb8 + 0x2078" identifier + number_literal) , number_literal , (binary_expression "PTR_LAB_000b5cb8 + 0x3e18" identifier + number_literal) ))) ;) (expression_statement "iVar2 = **(int **)(puVar4 + 0x97eac);" (assignment_expression "iVar2 = **(int **)(puVar4 + 0x97eac)" identifier = (pointer_expression "**(int **)(puVar4 + 0x97eac)" * (pointer_expression "*(int **)(puVar4 + 0x97eac)" * (cast_expression "(int **)(puVar4 + 0x97eac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eac)" ( (binary_expression "puVar4 + 0x97eac" identifier + number_literal) )))))) ;) (expression_statement "uVar1 = (uint)*(byte *)(iVar2 + 0x10);" (assignment_expression "uVar1 = (uint)*(byte *)(iVar2 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar2 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar2 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar2 + 0x18);" (assignment_expression "iVar3 = *(int *)(iVar2 + 0x18)" identifier = (pointer_expression "*(int *)(iVar2 + 0x18)" * (cast_expression "(int *)(iVar2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x18)" ( (binary_expression "iVar2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "**(int **)(puVar4 + 0x97eb0) = iVar3;" (assignment_expression "**(int **)(puVar4 + 0x97eb0) = iVar3" (pointer_expression "**(int **)(puVar4 + 0x97eb0)" * (pointer_expression "*(int **)(puVar4 + 0x97eb0)" * (cast_expression "(int **)(puVar4 + 0x97eb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eb0)" ( (binary_expression "puVar4 + 0x97eb0" identifier + number_literal) ))))) = identifier) ;) (if_statement "if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" if (parenthesized_expression "((uVar1 & 0x30) == 0x20)" ( (binary_expression "(uVar1 & 0x30) == 0x20" (parenthesized_expression "(uVar1 & 0x30)" ( (binary_expression "uVar1 & 0x30" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" { (expression_statement "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;" (assignment_expression "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" identifier = (binary_expression "uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" (binary_expression "uVar1 & 0xffffffcf" identifier & number_literal) | (binary_expression "(*(uint *)(iVar3 + 4) >> 0x1f) << 4" (parenthesized_expression "(*(uint *)(iVar3 + 4) >> 0x1f)" ( (binary_expression "*(uint *)(iVar3 + 4) >> 0x1f" (pointer_expression "*(uint *)(iVar3 + 4)" * (cast_expression "(uint *)(iVar3 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) >> number_literal) )) << number_literal))) ;) (expression_statement "*(char *)(iVar2 + 0x10) = (char)uVar1;" (assignment_expression "*(char *)(iVar2 + 0x10) = (char)uVar1" (pointer_expression "*(char *)(iVar2 + 0x10)" * (cast_expression "(char *)(iVar2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) })) (if_statement "if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" if (parenthesized_expression "((uVar1 & 6) != 4)" ( (binary_expression "(uVar1 & 6) != 4" (parenthesized_expression "(uVar1 & 6)" ( (binary_expression "uVar1 & 6" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" { (expression_statement "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;" (assignment_expression "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (pointer_expression "**(uint **)(puVar4 + 0x97eb4)" * (pointer_expression "*(uint **)(puVar4 + 0x97eb4)" * (cast_expression "(uint **)(puVar4 + 0x97eb4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x97eb4)" ( (binary_expression "puVar4 + 0x97eb4" identifier + number_literal) ))))) = (binary_expression "(uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x10) << 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(int *)(iVar2 + 0x10) << 5)" ( (binary_expression "*(int *)(iVar2 + 0x10) << 5" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) << number_literal) ))) >> number_literal)) ;) })) (if_statement "if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x14) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x14) != 0" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }" if (parenthesized_expression "((uVar1 & 0x30) != 0)" ( (binary_expression "(uVar1 & 0x30) != 0" (parenthesized_expression "(uVar1 & 0x30)" ( (binary_expression "uVar1 & 0x30" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }" { (expression_statement "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;" (assignment_expression "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar4 + 0x97e74) + 0x2088" (pointer_expression "*(int *)(puVar4 + 0x97e74)" * (cast_expression "(int *)(puVar4 + 0x97e74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x97e74)" ( (binary_expression "puVar4 + 0x97e74" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })) (expression_statement "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;" (assignment_expression "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c" (pointer_expression "*(int *)(iVar2 + 0x14)" * (cast_expression "(int *)(iVar2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar4 + 0x97e74) + 0x208c" (pointer_expression "*(int *)(puVar4 + 0x97e74)" * (cast_expression "(int *)(puVar4 + 0x97e74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x97e74)" ( (binary_expression "puVar4 + 0x97e74" identifier + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )) << LIT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))) >> LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (return_statement return ;) })))
(function_definition "void FUN_0001de10(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001de10(void)" (identifier "FUN_0001de10") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int iVar3;\n  undefined *puVar4;\n  \n  puVar4 = PTR_as_abort_000b5cec;\n  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);\n  iVar2 = **(int **)(puVar4 + 0x97eac);\n  uVar1 = (uint)*(byte *)(iVar2 + 0x10);\n  iVar3 = *(int *)(iVar2 + 0x18);\n  **(int **)(puVar4 + 0x97eb0) = iVar3;\n  if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }\n  if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }\n  if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }\n  if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }\n  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (expression_statement "puVar4 = PTR_as_abort_000b5cec;" (assignment_expression "puVar4 = PTR_as_abort_000b5cec" (identifier "puVar4") (= "=") (identifier "PTR_as_abort_000b5cec")) (; ";")) (expression_statement "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);" (call_expression "(*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" (parenthesized_expression "(*(code *)PTR_as_abort_000b5cec)" (( "(") (pointer_expression "*(code *)PTR_as_abort_000b5cec" (* "*") (cast_expression "(code *)PTR_as_abort_000b5cec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_as_abort_000b5cec"))) () ")")) (argument_list "(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18)" (( "(") (binary_expression "PTR_LAB_000b5cb8 + 0x2078" (identifier "PTR_LAB_000b5cb8") (+ "+") (number_literal "0x2078")) (, ",") (number_literal "0xbe") (, ",") (binary_expression "PTR_LAB_000b5cb8 + 0x3e18" (identifier "PTR_LAB_000b5cb8") (+ "+") (number_literal "0x3e18")) () ")"))) (; ";")) (expression_statement "iVar2 = **(int **)(puVar4 + 0x97eac);" (assignment_expression "iVar2 = **(int **)(puVar4 + 0x97eac)" (identifier "iVar2") (= "=") (pointer_expression "**(int **)(puVar4 + 0x97eac)" (* "*") (pointer_expression "*(int **)(puVar4 + 0x97eac)" (* "*") (cast_expression "(int **)(puVar4 + 0x97eac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x97eac)" (( "(") (binary_expression "puVar4 + 0x97eac" (identifier "puVar4") (+ "+") (number_literal "0x97eac")) () ")")))))) (; ";")) (expression_statement "uVar1 = (uint)*(byte *)(iVar2 + 0x10);" (assignment_expression "uVar1 = (uint)*(byte *)(iVar2 + 0x10)" (identifier "uVar1") (= "=") (binary_expression "(uint)*(byte *)(iVar2 + 0x10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar2 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar2 + 0x18);" (assignment_expression "iVar3 = *(int *)(iVar2 + 0x18)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar2 + 0x18)" (* "*") (cast_expression "(int *)(iVar2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x18)" (( "(") (binary_expression "iVar2 + 0x18" (identifier "iVar2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "**(int **)(puVar4 + 0x97eb0) = iVar3;" (assignment_expression "**(int **)(puVar4 + 0x97eb0) = iVar3" (pointer_expression "**(int **)(puVar4 + 0x97eb0)" (* "*") (pointer_expression "*(int **)(puVar4 + 0x97eb0)" (* "*") (cast_expression "(int **)(puVar4 + 0x97eb0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x97eb0)" (( "(") (binary_expression "puVar4 + 0x97eb0" (identifier "puVar4") (+ "+") (number_literal "0x97eb0")) () ")"))))) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if ((uVar1 & 0x30) == 0x20) {\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" (if "if") (parenthesized_expression "((uVar1 & 0x30) == 0x20)" (( "(") (binary_expression "(uVar1 & 0x30) == 0x20" (parenthesized_expression "(uVar1 & 0x30)" (( "(") (binary_expression "uVar1 & 0x30" (identifier "uVar1") (& "&") (number_literal "0x30")) () ")")) (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;\n    *(char *)(iVar2 + 0x10) = (char)uVar1;\n  }" ({ "{") (expression_statement "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;" (assignment_expression "uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" (identifier "uVar1") (= "=") (binary_expression "uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4" (binary_expression "uVar1 & 0xffffffcf" (identifier "uVar1") (& "&") (number_literal "0xffffffcf")) (| "|") (binary_expression "(*(uint *)(iVar3 + 4) >> 0x1f) << 4" (parenthesized_expression "(*(uint *)(iVar3 + 4) >> 0x1f)" (( "(") (binary_expression "*(uint *)(iVar3 + 4) >> 0x1f" (pointer_expression "*(uint *)(iVar3 + 4)" (* "*") (cast_expression "(uint *)(iVar3 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "0x1f")) () ")")) (<< "<<") (number_literal "4")))) (; ";")) (expression_statement "*(char *)(iVar2 + 0x10) = (char)uVar1;" (assignment_expression "*(char *)(iVar2 + 0x10) = (char)uVar1" (pointer_expression "*(char *)(iVar2 + 0x10)" (* "*") (cast_expression "(char *)(iVar2 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (cast_expression "(char)uVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar1"))) (; ";")) (} "}"))) (if_statement "if ((uVar1 & 6) != 4) {\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" (if "if") (parenthesized_expression "((uVar1 & 6) != 4)" (( "(") (binary_expression "(uVar1 & 6) != 4" (parenthesized_expression "(uVar1 & 6)" (( "(") (binary_expression "uVar1 & 6" (identifier "uVar1") (& "&") (number_literal "6")) () ")")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;\n  }" ({ "{") (expression_statement "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;" (assignment_expression "**(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (pointer_expression "**(uint **)(puVar4 + 0x97eb4)" (* "*") (pointer_expression "*(uint **)(puVar4 + 0x97eb4)" (* "*") (cast_expression "(uint **)(puVar4 + 0x97eb4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x97eb4)" (( "(") (binary_expression "puVar4 + 0x97eb4" (identifier "puVar4") (+ "+") (number_literal "0x97eb4")) () ")"))))) (= "=") (binary_expression "(uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e" (call_expression "(uint)(*(int *)(iVar2 + 0x10) << 5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(int *)(iVar2 + 0x10) << 5)" (( "(") (binary_expression "*(int *)(iVar2 + 0x10) << 5" (pointer_expression "*(int *)(iVar2 + 0x10)" (* "*") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (<< "<<") (number_literal "5")) () ")"))) (>> ">>") (number_literal "0x1e"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar2 + 0x14) != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x14) != 0" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((uVar1 & 0x30) != 0) {\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }" (if "if") (parenthesized_expression "((uVar1 & 0x30) != 0)" (( "(") (binary_expression "(uVar1 & 0x30) != 0" (parenthesized_expression "(uVar1 & 0x30)" (( "(") (binary_expression "uVar1 & 0x30" (identifier "uVar1") (& "&") (number_literal "0x30")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;\n    return;\n  }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;" (assignment_expression "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)(puVar4 + 0x97e74) + 0x2088" (pointer_expression "*(int *)(puVar4 + 0x97e74)" (* "*") (cast_expression "(int *)(puVar4 + 0x97e74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0x97e74)" (( "(") (binary_expression "puVar4 + 0x97e74" (identifier "puVar4") (+ "+") (number_literal "0x97e74")) () ")")))) (+ "+") (number_literal "0x2088"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;" (assignment_expression "*(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c" (pointer_expression "*(int *)(iVar2 + 0x14)" (* "*") (cast_expression "(int *)(iVar2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)(puVar4 + 0x97e74) + 0x208c" (pointer_expression "*(int *)(puVar4 + 0x97e74)" (* "*") (cast_expression "(int *)(puVar4 + 0x97e74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 0x97e74)" (( "(") (binary_expression "puVar4 + 0x97e74" (identifier "puVar4") (+ "+") (number_literal "0x97e74")) () ")")))) (+ "+") (number_literal "0x208c"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (return_statement))))

void MASKED(void)

{
  uint uVar1;
  int iVar2;
  int iVar3;
  undefined *puVar4;
  
  puVar4 = PTR_as_abort_000b5cec;
  (*(code *)PTR_as_abort_000b5cec)(PTR_LAB_000b5cb8 + 0x2078,0xbe,PTR_LAB_000b5cb8 + 0x3e18);
  iVar2 = **(int **)(puVar4 + 0x97eac);
  uVar1 = (uint)*(byte *)(iVar2 + 0x10);
  iVar3 = *(int *)(iVar2 + 0x18);
  **(int **)(puVar4 + 0x97eb0) = iVar3;
  if ((uVar1 & 0x30) == 0x20) {
    uVar1 = uVar1 & 0xffffffcf | (*(uint *)(iVar3 + 4) >> 0x1f) << 4;
    *(char *)(iVar2 + 0x10) = (char)uVar1;
  }
  if ((uVar1 & 6) != 4) {
    **(uint **)(puVar4 + 0x97eb4) = (uint)(*(int *)(iVar2 + 0x10) << 5) >> 0x1e;
  }
  if (*(int *)(iVar2 + 0x14) != 0) {
    return;
  }
  if ((uVar1 & 0x30) != 0) {
    *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x2088;
    return;
  }
  *(int *)(iVar2 + 0x14) = *(int *)(puVar4 + 0x97e74) + 0x208c;
  return;
}

