
BlowfishContext * bcrypt_setup(uchar *key,int keybytes,uchar *salt,int saltbytes)

{
  BlowfishContext *ctx;
  int iVar1;
  
  ctx = (BlowfishContext *)blowfish_make_context();
  blowfish_initkey(ctx);
  blowfish_expandkey(ctx,key,(short)keybytes,salt,(short)saltbytes);
  iVar1 = 0x40;
  do {
    blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0);
    blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0);
    iVar1 = iVar1 + -1;
  } while (iVar1 != 0);
  return ctx;
}



undefined4 bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)

{
  undefined4 uVar1;
  int iVar2;
  
  uVar1 = blowfish_make_context();
  blowfish_initkey(uVar1);
  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);
  iVar2 = 0x40;
  do {
    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);
    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);
    iVar2 = iVar2 + -1;
  } while (iVar2 != 0);
  return uVar1;
}


lui gp,0x5
addiu gp,gp,0x20e0
addu gp,gp,t9
addiu sp,sp,-0x40
sw ra,0x3c(sp)
sw s5,0x38(sp)
sw s4,0x34(sp)
sw s3,0x30(sp)
sw s2,0x2c(sp)
sw s1,0x28(sp)
sw s0,0x24(sp)
sw gp,0x18(sp)
or s4,a0,zero
or s2,a1,zero
or s5,a2,zero
or s3,a3,zero
lw t9,-0x7db0(gp)
bal 0x00026930
_nop
lw gp,0x18(sp)
or s1,v0,zero
or a0,v0,zero
lw t9,-0x7dac(gp)
bal 0x00026b60
_nop
lw gp,0x18(sp)
seh s2,s2
seh s3,s3
sw s3,0x10(sp)
or a3,s5,zero
or a2,s2,zero
or a1,s4,zero
or a0,s1,zero
lw t9,-0x7da8(gp)
bal 0x00026bf4
_nop
lw gp,0x18(sp)
li s0,0x40
sw zero,0x10(sp)
or a3,zero,zero
or a2,s3,zero
or a1,s5,zero
or a0,s1,zero
lw t9,-0x7da8(gp)
bal 0x00026bf4
_nop
lw gp,0x18(sp)
sw zero,0x10(sp)
or a3,zero,zero
or a2,s2,zero
or a1,s4,zero
or a0,s1,zero
lw t9,-0x7da8(gp)
bal 0x00026bf4
_nop
lw gp,0x18(sp)
addiu s0,s0,-0x1
bne s0,zero,0x00024fe8
_or v0,s1,zero
lw ra,0x3c(sp)
lw s5,0x38(sp)
lw s4,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x40
(translation_unit "undefined4 bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}\n\n" (function_definition "undefined4 bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}" type_identifier (function_declarator "bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)" identifier (parameter_list "(undefined4 param_1,short param_2,undefined4 param_3,short param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "short param_2" (sized_type_specifier "short" short) identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "short param_4" (sized_type_specifier "short" short) identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "uVar1 = blowfish_make_context();" (assignment_expression "uVar1 = blowfish_make_context()" identifier = (call_expression "blowfish_make_context()" identifier (argument_list "()" ( )))) ;) (expression_statement "blowfish_initkey(uVar1);" (call_expression "blowfish_initkey(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (expression_statement "blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);" (call_expression "blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4)" identifier (argument_list "(uVar1,param_1,(int)param_2,param_3,(int)param_4)" ( identifier , identifier , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar2 = 0x40;" (assignment_expression "iVar2 = 0x40" identifier = number_literal) ;) (do_statement "do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);" do (compound_statement "{\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  }" { (expression_statement "blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);" (call_expression "blowfish_expandkey(uVar1,param_3,(int)param_4,0,0)" identifier (argument_list "(uVar1,param_3,(int)param_4,0,0)" ( identifier , identifier , (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , number_literal ))) ;) (expression_statement "blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);" (call_expression "blowfish_expandkey(uVar1,param_1,(int)param_2,0,0)" identifier (argument_list "(uVar1,param_1,(int)param_2,0,0)" ( identifier , identifier , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , number_literal ))) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "BlowfishContext * bcrypt_setup(uchar *key,int keybytes,uchar *salt,int saltbytes)\n\n{\n  BlowfishContext *ctx;\n  int iVar1;\n  \n  ctx = (BlowfishContext *)blowfish_make_context();\n  blowfish_initkey(ctx);\n  blowfish_expandkey(ctx,key,(short)keybytes,salt,(short)saltbytes);\n  iVar1 = 0x40;\n  do {\n    blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0);\n    blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0);\n    iVar1 = iVar1 + -1;\n  } while (iVar1 != 0);\n  return ctx;\n}\n\n" (function_definition "BlowfishContext * bcrypt_setup(uchar *key,int keybytes,uchar *salt,int saltbytes)\n\n{\n  BlowfishContext *ctx;\n  int iVar1;\n  \n  ctx = (BlowfishContext *)blowfish_make_context();\n  blowfish_initkey(ctx);\n  blowfish_expandkey(ctx,key,(short)keybytes,salt,(short)saltbytes);\n  iVar1 = 0x40;\n  do {\n    blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0);\n    blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0);\n    iVar1 = iVar1 + -1;\n  } while (iVar1 != 0);\n  return ctx;\n}" type_identifier (pointer_declarator "* bcrypt_setup(uchar *key,int keybytes,uchar *salt,int saltbytes)" * (function_declarator "bcrypt_setup(uchar *key,int keybytes,uchar *salt,int saltbytes)" identifier (parameter_list "(uchar *key,int keybytes,uchar *salt,int saltbytes)" ( (parameter_declaration "uchar *key" type_identifier (pointer_declarator "*key" * identifier)) , (parameter_declaration "int keybytes" primitive_type identifier) , (parameter_declaration "uchar *salt" type_identifier (pointer_declarator "*salt" * identifier)) , (parameter_declaration "int saltbytes" primitive_type identifier) )))) (compound_statement "{\n  BlowfishContext *ctx;\n  int iVar1;\n  \n  ctx = (BlowfishContext *)blowfish_make_context();\n  blowfish_initkey(ctx);\n  blowfish_expandkey(ctx,key,(short)keybytes,salt,(short)saltbytes);\n  iVar1 = 0x40;\n  do {\n    blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0);\n    blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0);\n    iVar1 = iVar1 + -1;\n  } while (iVar1 != 0);\n  return ctx;\n}" { (declaration "BlowfishContext *ctx;" type_identifier (pointer_declarator "*ctx" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "ctx = (BlowfishContext *)blowfish_make_context();" (assignment_expression "ctx = (BlowfishContext *)blowfish_make_context()" identifier = (cast_expression "(BlowfishContext *)blowfish_make_context()" ( (type_descriptor "BlowfishContext *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "blowfish_make_context()" identifier (argument_list "()" ( ))))) ;) (expression_statement "blowfish_initkey(ctx);" (call_expression "blowfish_initkey(ctx)" identifier (argument_list "(ctx)" ( identifier ))) ;) (expression_statement "blowfish_expandkey(ctx,key,(short)keybytes,salt,(short)saltbytes);" (call_expression "blowfish_expandkey(ctx,key,(short)keybytes,salt,(short)saltbytes)" identifier (argument_list "(ctx,key,(short)keybytes,salt,(short)saltbytes)" ( identifier , identifier , (cast_expression "(short)keybytes" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , identifier , (cast_expression "(short)saltbytes" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) ))) ;) (expression_statement "iVar1 = 0x40;" (assignment_expression "iVar1 = 0x40" identifier = number_literal) ;) (do_statement "do {\n    blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0);\n    blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0);\n    iVar1 = iVar1 + -1;\n  } while (iVar1 != 0);" do (compound_statement "{\n    blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0);\n    blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0);\n    iVar1 = iVar1 + -1;\n  }" { (expression_statement "blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0);" (call_expression "blowfish_expandkey(ctx,salt,(short)saltbytes,(uchar *)0x0,0)" identifier (argument_list "(ctx,salt,(short)saltbytes,(uchar *)0x0,0)" ( identifier , identifier , (cast_expression "(short)saltbytes" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0);" (call_expression "blowfish_expandkey(ctx,key,(short)keybytes,(uchar *)0x0,0)" identifier (argument_list "(ctx,key,(short)keybytes,(uchar *)0x0,0)" ( identifier , identifier , (cast_expression "(short)keybytes" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal ))) ;) (expression_statement "iVar1 = iVar1 + -1;" (assignment_expression "iVar1 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) (return_statement "return ctx;" return identifier ;) })))
(translation_unit "undefined4 bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}\n\n" (function_definition "undefined4 bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}" type_identifier (function_declarator "bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)" identifier (parameter_list "(undefined4 param_1,short param_2,undefined4 param_3,short param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "short param_2" (sized_type_specifier "short" short) identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "short param_4" (sized_type_specifier "short" short) identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "uVar1 = blowfish_make_context();" (assignment_expression "uVar1 = blowfish_make_context()" identifier = (call_expression "blowfish_make_context()" identifier (argument_list "()" ( )))) ;) (expression_statement "blowfish_initkey(uVar1);" (call_expression "blowfish_initkey(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (expression_statement "blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);" (call_expression "blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4)" identifier (argument_list "(uVar1,param_1,(int)param_2,param_3,(int)param_4)" ( identifier , identifier , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "iVar2 = 0x40;" (assignment_expression "iVar2 = 0x40" identifier = number_literal) ;) (do_statement "do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);" do (compound_statement "{\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  }" { (expression_statement "blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);" (call_expression "blowfish_expandkey(uVar1,param_3,(int)param_4,0,0)" identifier (argument_list "(uVar1,param_3,(int)param_4,0,0)" ( identifier , identifier , (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , number_literal ))) ;) (expression_statement "blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);" (call_expression "blowfish_expandkey(uVar1,param_1,(int)param_2,0,0)" identifier (argument_list "(uVar1,param_1,(int)param_2,0,0)" ( identifier , identifier , (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , number_literal ))) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier short) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier short) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}" (type_identifier "undefined4") (function_declarator "bcrypt_setup(undefined4 param_1,short param_2,undefined4 param_3,short param_4)" (identifier "bcrypt_setup") (parameter_list "(undefined4 param_1,short param_2,undefined4 param_3,short param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "short param_2" (sized_type_specifier "short" (short "short")) (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "short param_4" (sized_type_specifier "short" (short "short")) (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  uVar1 = blowfish_make_context();\n  blowfish_initkey(uVar1);\n  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);\n  iVar2 = 0x40;\n  do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);\n  return uVar1;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (expression_statement "uVar1 = blowfish_make_context();" (assignment_expression "uVar1 = blowfish_make_context()" (identifier "uVar1") (= "=") (call_expression "blowfish_make_context()" (identifier "blowfish_make_context") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "blowfish_initkey(uVar1);" (call_expression "blowfish_initkey(uVar1)" (identifier "blowfish_initkey") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (expression_statement "blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);" (call_expression "blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4)" (identifier "blowfish_expandkey") (argument_list "(uVar1,param_1,(int)param_2,param_3,(int)param_4)" (( "(") (identifier "uVar1") (, ",") (identifier "param_1") (, ",") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (, ",") (identifier "param_3") (, ",") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) () ")"))) (; ";")) (expression_statement "iVar2 = 0x40;" (assignment_expression "iVar2 = 0x40" (identifier "iVar2") (= "=") (number_literal "0x40")) (; ";")) (do_statement "do {\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  } while (iVar2 != 0);" (do "do") (compound_statement "{\n    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);\n    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);\n    iVar2 = iVar2 + -1;\n  }" ({ "{") (expression_statement "blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);" (call_expression "blowfish_expandkey(uVar1,param_3,(int)param_4,0,0)" (identifier "blowfish_expandkey") (argument_list "(uVar1,param_3,(int)param_4,0,0)" (( "(") (identifier "uVar1") (, ",") (identifier "param_3") (, ",") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);" (call_expression "blowfish_expandkey(uVar1,param_1,(int)param_2,0,0)" (identifier "blowfish_expandkey") (argument_list "(uVar1,param_1,(int)param_2,0,0)" (( "(") (identifier "uVar1") (, ",") (identifier "param_1") (, ",") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (return_statement (identifier)))))

undefined4 MASKED(undefined4 param_1,short param_2,undefined4 param_3,short param_4)

{
  undefined4 uVar1;
  int iVar2;
  
  uVar1 = blowfish_make_context();
  blowfish_initkey(uVar1);
  blowfish_expandkey(uVar1,param_1,(int)param_2,param_3,(int)param_4);
  iVar2 = 0x40;
  do {
    blowfish_expandkey(uVar1,param_3,(int)param_4,0,0);
    blowfish_expandkey(uVar1,param_1,(int)param_2,0,0);
    iVar2 = iVar2 + -1;
  } while (iVar2 != 0);
  return uVar1;
}

