
uint sha1_end(sha1_ctx_t *ctx,void *resbuf)

{
  int iVar1;
  
  common64_end(ctx,0);
  iVar1 = 8;
  if (ctx->process_block == (_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8)) {
    iVar1 = 5;
  }
  (*(code *)PTR_memcpy_00132168)(resbuf,ctx->hash,iVar1 << 2);
  return iVar1 << 2;
}



int FUN_000f3f20(int param_1,undefined4 param_2)

{
  int iVar1;
  
  FUN_000f39bc(param_1,0);
  iVar1 = 8;
  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {
    iVar1 = 5;
  }
  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);
  return iVar1 << 2;
}


lui gp,0x4
addiu gp,gp,0x5230
addu gp,gp,t9
addiu sp,sp,-0x28
sw ra,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
sw gp,0x10(sp)
or s1,a0,zero
or s2,a1,zero
or a1,zero,zero
lw t9,-0x7540(gp)
addiu t9,t9,0x39bc
bal 0x000f39bc
_nop
lw gp,0x10(sp)
lw s0,0x40(s1)
lw v0,-0x7540(gp)
addiu v0,v0,0x2bc8
xor s0,s0,v0
li v1,0x5
li v0,0x8
movz v0,v1,s0
sll s0,v0,0x2
or a2,s0,zero
addiu a1,s1,0x50
or a0,s2,zero
lw t9,-0x6fe8(gp)
jalr t9
_nop
lw gp,0x10(sp)
or v0,s0,zero
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x28
(translation_unit "int FUN_000f3f20(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}\n\n" (function_definition "int FUN_000f3f20(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}" primitive_type (function_declarator "FUN_000f3f20(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "FUN_000f39bc(param_1,0);" (call_expression "FUN_000f39bc(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar1 = 8;" (assignment_expression "iVar1 = 8" identifier = number_literal) ;) (if_statement "if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }" if (parenthesized_expression "(*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8)" ( (binary_expression "*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8" (pointer_expression "*(undefined **)(param_1 + 0x40)" * (cast_expression "(undefined **)(param_1 + 0x40)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) == (binary_expression "PTR_LAB_00131c10 + 0x2bc8" identifier + number_literal)) )) (compound_statement "{\n    iVar1 = 5;\n  }" { (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);" (call_expression "(*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_00132168)" ( (pointer_expression "*(code *)PTR_memcpy_00132168" * (cast_expression "(code *)PTR_memcpy_00132168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_1 + 0x50,iVar1 << 2)" ( identifier , (binary_expression "param_1 + 0x50" identifier + number_literal) , (binary_expression "iVar1 << 2" identifier << number_literal) ))) ;) (return_statement "return iVar1 << 2;" return (binary_expression "iVar1 << 2" identifier << number_literal) ;) })))
(translation_unit "uint sha1_end(sha1_ctx_t *ctx,void *resbuf)\n\n{\n  int iVar1;\n  \n  common64_end(ctx,0);\n  iVar1 = 8;\n  if (ctx->process_block == (_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8)) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(resbuf,ctx->hash,iVar1 << 2);\n  return iVar1 << 2;\n}\n\n" (function_definition "uint sha1_end(sha1_ctx_t *ctx,void *resbuf)\n\n{\n  int iVar1;\n  \n  common64_end(ctx,0);\n  iVar1 = 8;\n  if (ctx->process_block == (_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8)) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(resbuf,ctx->hash,iVar1 << 2);\n  return iVar1 << 2;\n}" type_identifier (function_declarator "sha1_end(sha1_ctx_t *ctx,void *resbuf)" identifier (parameter_list "(sha1_ctx_t *ctx,void *resbuf)" ( (parameter_declaration "sha1_ctx_t *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) , (parameter_declaration "void *resbuf" primitive_type (pointer_declarator "*resbuf" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  common64_end(ctx,0);\n  iVar1 = 8;\n  if (ctx->process_block == (_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8)) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(resbuf,ctx->hash,iVar1 << 2);\n  return iVar1 << 2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "common64_end(ctx,0);" (call_expression "common64_end(ctx,0)" identifier (argument_list "(ctx,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar1 = 8;" (assignment_expression "iVar1 = 8" identifier = number_literal) ;) (if_statement "if (ctx->process_block == (_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8)) {\n    iVar1 = 5;\n  }" if (parenthesized_expression "(ctx->process_block == (_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8))" ( (binary_expression "ctx->process_block == (_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8)" (field_expression "ctx->process_block" identifier -> field_identifier) == (cast_expression "(_func_void_md5_ctx_t_ptr *)(PTR_LAB_00131c10 + 0x2bc8)" ( (type_descriptor "_func_void_md5_ctx_t_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00131c10 + 0x2bc8)" ( (binary_expression "PTR_LAB_00131c10 + 0x2bc8" identifier + number_literal) )))) )) (compound_statement "{\n    iVar1 = 5;\n  }" { (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_memcpy_00132168)(resbuf,ctx->hash,iVar1 << 2);" (call_expression "(*(code *)PTR_memcpy_00132168)(resbuf,ctx->hash,iVar1 << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_00132168)" ( (pointer_expression "*(code *)PTR_memcpy_00132168" * (cast_expression "(code *)PTR_memcpy_00132168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(resbuf,ctx->hash,iVar1 << 2)" ( identifier , (field_expression "ctx->hash" identifier -> field_identifier) , (binary_expression "iVar1 << 2" identifier << number_literal) ))) ;) (return_statement "return iVar1 << 2;" return (binary_expression "iVar1 << 2" identifier << number_literal) ;) })))
(translation_unit "int FUN_000f3f20(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}\n\n" (function_definition "int FUN_000f3f20(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}" primitive_type (function_declarator "FUN_000f3f20(int param_1,undefined4 param_2)" identifier (parameter_list "(int param_1,undefined4 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "FUN_000f39bc(param_1,0);" (call_expression "FUN_000f39bc(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar1 = 8;" (assignment_expression "iVar1 = 8" identifier = number_literal) ;) (if_statement "if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }" if (parenthesized_expression "(*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8)" ( (binary_expression "*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8" (pointer_expression "*(undefined **)(param_1 + 0x40)" * (cast_expression "(undefined **)(param_1 + 0x40)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) == (binary_expression "PTR_LAB_00131c10 + 0x2bc8" identifier + number_literal)) )) (compound_statement "{\n    iVar1 = 5;\n  }" { (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" identifier = number_literal) ;) })) (expression_statement "(*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);" (call_expression "(*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_00132168)" ( (pointer_expression "*(code *)PTR_memcpy_00132168" * (cast_expression "(code *)PTR_memcpy_00132168" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,param_1 + 0x50,iVar1 << 2)" ( identifier , (binary_expression "param_1 + 0x50" identifier + number_literal) , (binary_expression "iVar1 << 2" identifier << number_literal) ))) ;) (return_statement "return iVar1 << 2;" return (binary_expression "iVar1 << 2" identifier << number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT << LIT) ))) ;) (return_statement return (binary_expression IDENT << LIT) ;) })))
(function_definition "int FUN_000f3f20(int param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}" (primitive_type "int") (function_declarator "FUN_000f3f20(int param_1,undefined4 param_2)" (identifier "FUN_000f3f20") (parameter_list "(int param_1,undefined4 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  FUN_000f39bc(param_1,0);\n  iVar1 = 8;\n  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }\n  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);\n  return iVar1 << 2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "FUN_000f39bc(param_1,0);" (call_expression "FUN_000f39bc(param_1,0)" (identifier "FUN_000f39bc") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar1 = 8;" (assignment_expression "iVar1 = 8" (identifier "iVar1") (= "=") (number_literal "8")) (; ";")) (if_statement "if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {\n    iVar1 = 5;\n  }" (if "if") (parenthesized_expression "(*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8)" (( "(") (binary_expression "*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8" (pointer_expression "*(undefined **)(param_1 + 0x40)" (* "*") (cast_expression "(undefined **)(param_1 + 0x40)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (== "==") (binary_expression "PTR_LAB_00131c10 + 0x2bc8" (identifier "PTR_LAB_00131c10") (+ "+") (number_literal "0x2bc8"))) () ")")) (compound_statement "{\n    iVar1 = 5;\n  }" ({ "{") (expression_statement "iVar1 = 5;" (assignment_expression "iVar1 = 5" (identifier "iVar1") (= "=") (number_literal "5")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);" (call_expression "(*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_00132168)" (( "(") (pointer_expression "*(code *)PTR_memcpy_00132168" (* "*") (cast_expression "(code *)PTR_memcpy_00132168" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_00132168"))) () ")")) (argument_list "(param_2,param_1 + 0x50,iVar1 << 2)" (( "(") (identifier "param_2") (, ",") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) (, ",") (binary_expression "iVar1 << 2" (identifier "iVar1") (<< "<<") (number_literal "2")) () ")"))) (; ";")) (return_statement "return iVar1 << 2;" (return "return") (binary_expression "iVar1 << 2" (identifier "iVar1") (<< "<<") (number_literal "2")) (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (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 (identifier) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (binary_expression left: (identifier) right: (number_literal))))))

int MASKED(int param_1,undefined4 param_2)

{
  int iVar1;
  
  FUN_000f39bc(param_1,0);
  iVar1 = 8;
  if (*(undefined **)(param_1 + 0x40) == PTR_LAB_00131c10 + 0x2bc8) {
    iVar1 = 5;
  }
  (*(code *)PTR_memcpy_00132168)(param_2,param_1 + 0x50,iVar1 << 2);
  return iVar1 << 2;
}

