
void move_register(int dest,int source)

{
  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&
     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {
                    /* WARNING: Subroutine does not return */
    macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00
                ,dest,source);
  }
                    /* WARNING: Subroutine does not return */
  macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,
              dest,source,0);
}



void FUN_0006c070(undefined4 param_1,undefined4 param_2)

{
  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&
     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {
    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2
                );
    return;
  }
  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0
              );
  return;
}


lui gp,0x5
addiu gp,gp,0x1c10
addu gp,gp,t9
lw v0,-0x7fd8(gp)
addiu sp,sp,-0x28
or a3,a0,zero
addiu v0,v0,0x53a8
sw gp,0x18(sp)
sw ra,0x24(sp)
lw v1,0xc(v0)
beq v1,zero,0x0006c0ac
_or t0,a1,zero
lw v0,0x28(v0)
beq v0,zero,0x0006c0e0
_lw v0,-0x7fb0(gp)
lw a2,-0x7e34(gp)
or a0,zero,zero
lw a1,-0x7e34(gp)
lw t9,-0x787c(gp)
addiu a2,a2,-0x4de0
sw t0,0x10(sp)
addiu a1,a1,-0x6df8
addiu t9,t9,-0x4874
bal 0x0006b78c
_sw zero,0x14(sp)
lw ra,0x24(sp)
jr ra
_addiu sp,sp,0x28
lw v0,-0xa3c(v0)
lw v0,0x14(v0)
andi v0,v0,0x40
bne v0,zero,0x0006c0b0
_lw a2,-0x7e34(gp)
lw a2,-0x7e34(gp)
or a0,zero,zero
lw t9,-0x787c(gp)
sw a1,0x10(sp)
lw a1,-0x7e34(gp)
addiu a2,a2,-0x4d00
addiu t9,t9,-0x4874
bal 0x0006b78c
_addiu a1,a1,-0x57f0
lw ra,0x24(sp)
jr ra
_addiu sp,sp,0x28
(translation_unit "void FUN_0006c070(undefined4 param_1,undefined4 param_2)\n\n{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}\n\n" (function_definition "void FUN_0006c070(undefined4 param_1,undefined4 param_2)\n\n{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}" primitive_type (function_declarator "FUN_0006c070(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}" { (if_statement "if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }" if (parenthesized_expression "(((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0))" ( (binary_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" (parenthesized_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0))" ( (binary_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b4)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53b4" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53d0)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53d0" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" ( (binary_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0" (parenthesized_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40)" ( (binary_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40" (pointer_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" * (cast_expression "(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" ( (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" * (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0xa3c)" ( (binary_expression "PTR_mips_opcodes_000b5cd0 + -0xa3c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }" { (expression_statement "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );" (call_expression "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                )" identifier (argument_list "(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                )" ( number_literal , (binary_expression "PTR_s_operand_000b5e4c + -0x57f0" identifier + number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x4d00" identifier + number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );" (call_expression "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              )" identifier (argument_list "(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              )" ( number_literal , (binary_expression "PTR_s_operand_000b5e4c + -0x6df8" identifier + number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x4de0" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void move_register(int dest,int source)\n\n{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source);\n  }\n                    /* WARNING: Subroutine does not return */\n  macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,\n              dest,source,0);\n}\n\n" (function_definition "void move_register(int dest,int source)\n\n{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source);\n  }\n                    /* WARNING: Subroutine does not return */\n  macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,\n              dest,source,0);\n}" primitive_type (function_declarator "move_register(int dest,int source)" identifier (parameter_list "(int dest,int source)" ( (parameter_declaration "int dest" primitive_type identifier) , (parameter_declaration "int source" primitive_type identifier) ))) (compound_statement "{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source);\n  }\n                    /* WARNING: Subroutine does not return */\n  macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,\n              dest,source,0);\n}" { (if_statement "if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n                    /* WARNING: Subroutine does not return */\n    macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source);\n  }" if (parenthesized_expression "(((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0))" ( (binary_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" (parenthesized_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0))" ( (binary_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b4)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53b4" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53d0)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53d0" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" ( (binary_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0" (parenthesized_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40)" ( (binary_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40" (pointer_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" * (cast_expression "(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" ( (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" * (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0xa3c)" ( (binary_expression "PTR_mips_opcodes_000b5cd0 + -0xa3c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source);\n  }" { comment (expression_statement "macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source);" (call_expression "macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source)" identifier (argument_list "((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00\n                ,dest,source)" ( (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x57f0" identifier + number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x4d00" identifier + number_literal) , identifier , identifier ))) ;) })) comment (expression_statement "macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,\n              dest,source,0);" (call_expression "macro_build((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,\n              dest,source,0)" identifier (argument_list "((expressionS *)0x0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,\n              dest,source,0)" ( (cast_expression "(expressionS *)0x0" ( (type_descriptor "expressionS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x6df8" identifier + number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x4de0" identifier + number_literal) , identifier , identifier , number_literal ))) ;) })))
(translation_unit "void FUN_0006c070(undefined4 param_1,undefined4 param_2)\n\n{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}\n\n" (function_definition "void FUN_0006c070(undefined4 param_1,undefined4 param_2)\n\n{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}" primitive_type (function_declarator "FUN_0006c070(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}" { (if_statement "if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }" if (parenthesized_expression "(((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0))" ( (binary_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" (parenthesized_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0))" ( (binary_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b4)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53b4" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0)" * (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53d0)" ( (binary_expression "PTR_DAT_000b5ca8 + 0x53d0" identifier + number_literal) )))) == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" ( (binary_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0" (parenthesized_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40)" ( (binary_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40" (pointer_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" * (cast_expression "(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" ( (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" * (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0xa3c)" ( (binary_expression "PTR_mips_opcodes_000b5cd0 + -0xa3c" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }" { (expression_statement "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );" (call_expression "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                )" identifier (argument_list "(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                )" ( number_literal , (binary_expression "PTR_s_operand_000b5e4c + -0x57f0" identifier + number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x4d00" identifier + number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );" (call_expression "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              )" identifier (argument_list "(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              )" ( number_literal , (binary_expression "PTR_s_operand_000b5e4c + -0x6df8" identifier + number_literal) , (binary_expression "PTR_s_operand_000b5e4c + -0x4de0" identifier + number_literal) , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0006c070(undefined4 param_1,undefined4 param_2)\n\n{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0006c070(undefined4 param_1,undefined4 param_2)" (identifier "FUN_0006c070") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }\n  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );\n  return;\n}" ({ "{") (if_statement "if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }" (if "if") (parenthesized_expression "(((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0))" (( "(") (binary_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&\n     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" (parenthesized_expression "((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0))" (( "(") (binary_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53b4)" (* "*") (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53b4)" (( "(") (binary_expression "PTR_DAT_000b5ca8 + 0x53b4" (identifier "PTR_DAT_000b5ca8") (+ "+") (number_literal "0x53b4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0" (pointer_expression "*(int *)(PTR_DAT_000b5ca8 + 0x53d0)" (* "*") (cast_expression "(int *)(PTR_DAT_000b5ca8 + 0x53d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b5ca8 + 0x53d0)" (( "(") (binary_expression "PTR_DAT_000b5ca8 + 0x53d0" (identifier "PTR_DAT_000b5ca8") (+ "+") (number_literal "0x53d0")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)" (( "(") (binary_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0" (parenthesized_expression "(*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40)" (( "(") (binary_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40" (pointer_expression "*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" (* "*") (cast_expression "(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14)" (( "(") (binary_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14" (pointer_expression "*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" (* "*") (cast_expression "(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_mips_opcodes_000b5cd0 + -0xa3c)" (( "(") (binary_expression "PTR_mips_opcodes_000b5cd0 + -0xa3c" (identifier "PTR_mips_opcodes_000b5cd0") (+ "+") (number_literal "-0xa3c")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );\n    return;\n  }" ({ "{") (expression_statement "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                );" (call_expression "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                )" (identifier "FUN_0006b78c") (argument_list "(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2\n                )" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_operand_000b5e4c + -0x57f0" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x57f0")) (, ",") (binary_expression "PTR_s_operand_000b5e4c + -0x4d00" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x4d00")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              );" (call_expression "FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              )" (identifier "FUN_0006b78c") (argument_list "(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0\n              )" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_s_operand_000b5e4c + -0x6df8" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x6df8")) (, ",") (binary_expression "PTR_s_operand_000b5e4c + -0x4de0" (identifier "PTR_s_operand_000b5e4c") (+ "+") (number_literal "-0x4de0")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(int dest,int source)

{
  if (((*(int *)(var_1 + 0x53b4) != 0) && (*(int *)(var_1 + 0x53d0) == 0)) &&
     ((*(type_1 *)(*(int *)(var_2 + -0xa3c) + 0x14) & 0x40) == 0)) {
                    /* WARNING: Subroutine does not return */
    var_3((type_2 *)0x0,var_4 + -0x57f0,var_4 + -0x4d00
                ,dest,source);
  }
                    /* WARNING: Subroutine does not return */
  var_3((type_2 *)0x0,var_4 + -0x6df8,var_4 + -0x4de0,
              dest,source,0);
}


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

void MASKED(undefined4 param_1,undefined4 param_2)

{
  if (((*(int *)(PTR_DAT_000b5ca8 + 0x53b4) != 0) && (*(int *)(PTR_DAT_000b5ca8 + 0x53d0) == 0)) &&
     ((*(uint *)(*(int *)(PTR_mips_opcodes_000b5cd0 + -0xa3c) + 0x14) & 0x40) == 0)) {
    FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x57f0,PTR_s_operand_000b5e4c + -0x4d00,param_1,param_2
                );
    return;
  }
  FUN_0006b78c(0,PTR_s_operand_000b5e4c + -0x6df8,PTR_s_operand_000b5e4c + -0x4de0,param_1,param_2,0
              );
  return;
}

