
void bcrypt_hash(uchar *key,int keybytes,uchar *salt,int saltbytes,uchar *output)

{
                    /* WARNING: Subroutine does not return */
  bcrypt_setup(key,keybytes,salt,saltbytes);
}



void bcrypt_hash(void)

{
  undefined *puVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *in_stack_00000010;
  
  iVar6 = 0x40;
  uVar2 = bcrypt_setup();
  puVar1 = PTR_DAT_0006a068;
  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);
  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);
  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);
  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);
  in_stack_00000010[1] = uVar5;
  in_stack_00000010[2] = uVar4;
  in_stack_00000010[3] = uVar3;
  uVar5 = *(undefined4 *)(puVar1 + 0x1264);
  uVar4 = *(undefined4 *)(puVar1 + 0x1268);
  uVar3 = *(undefined4 *)(puVar1 + 0x126c);
  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);
  in_stack_00000010[5] = uVar5;
  in_stack_00000010[6] = uVar4;
  in_stack_00000010[7] = uVar3;
  do {
    iVar6 = iVar6 + -1;
    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);
  } while (iVar6 != 0);
  blowfish_free_context(uVar2);
  return;
}


lui gp,0x5
addiu gp,gp,-0x1b9c
addu gp,gp,t9
addiu sp,sp,-0x28
lw t9,-0x7db0(gp)
sw gp,0x10(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
li s0,0x40
sw ra,0x24(sp)
bal 0x00023ad0
_lw s1,0x38(sp)
lw gp,0x10(sp)
or s2,v0,zero
lw v1,-0x7fc8(gp)
addiu v0,v1,0x1250
lw a2,0x1250(v1)
lw a1,0x4(v0)
lw a0,0x8(v0)
lw v1,0xc(v0)
swl a2,0x0(s1)
swr a2,0x3(s1)
swl a1,0x4(s1)
swr a1,0x7(s1)
swl a0,0x8(s1)
swr a0,0xb(s1)
swl v1,0xc(s1)
swr v1,0xf(s1)
lw a1,0x10(v0)
lw a0,0x14(v0)
lw v1,0x18(v0)
lw v0,0x1c(v0)
swl a1,0x10(s1)
swr a1,0x13(s1)
swl a0,0x14(s1)
swr a0,0x17(s1)
swl v1,0x18(s1)
swr v1,0x1b(s1)
swl v0,0x1c(s1)
swr v0,0x1f(s1)
lw t9,-0x7dac(gp)
li a1,0x20
addiu s0,s0,-0x1
or a2,s2,zero
bal 0x0002533c
_or a0,s1,zero
bne s0,zero,0x00023c70
_lw gp,0x10(sp)
lw ra,0x24(sp)
or a0,s2,zero
lw s1,0x1c(sp)
lw s2,0x20(sp)
lw s0,0x18(sp)
lw t9,-0x7da8(gp)
b 0x00025324
_addiu sp,sp,0x28
(translation_unit "void bcrypt_hash(void)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}\n\n" (function_definition "void bcrypt_hash(void)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}" primitive_type (function_declarator "bcrypt_hash(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *in_stack_00000010;" type_identifier (pointer_declarator "*in_stack_00000010" * identifier) ;) (expression_statement "iVar6 = 0x40;" (assignment_expression "iVar6 = 0x40" identifier = number_literal) ;) (expression_statement "uVar2 = bcrypt_setup();" (assignment_expression "uVar2 = bcrypt_setup()" identifier = (call_expression "bcrypt_setup()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_DAT_0006a068;" (assignment_expression "puVar1 = PTR_DAT_0006a068" identifier = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);" (assignment_expression "uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x1254)" ( (binary_expression "PTR_DAT_0006a068 + 0x1254" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);" (assignment_expression "uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x1258)" ( (binary_expression "PTR_DAT_0006a068 + 0x1258" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);" (assignment_expression "uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x125c)" ( (binary_expression "PTR_DAT_0006a068 + 0x125c" identifier + number_literal) ))))) ;) (expression_statement "*in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);" (assignment_expression "*in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" (pointer_expression "*in_stack_00000010" * identifier) = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x1250)" ( (binary_expression "PTR_DAT_0006a068 + 0x1250" identifier + number_literal) ))))) ;) (expression_statement "in_stack_00000010[1] = uVar5;" (assignment_expression "in_stack_00000010[1] = uVar5" (subscript_expression "in_stack_00000010[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[2] = uVar4;" (assignment_expression "in_stack_00000010[2] = uVar4" (subscript_expression "in_stack_00000010[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[3] = uVar3;" (assignment_expression "in_stack_00000010[3] = uVar3" (subscript_expression "in_stack_00000010[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar1 + 0x1264);" (assignment_expression "uVar5 = *(undefined4 *)(puVar1 + 0x1264)" identifier = (pointer_expression "*(undefined4 *)(puVar1 + 0x1264)" * (cast_expression "(undefined4 *)(puVar1 + 0x1264)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1264)" ( (binary_expression "puVar1 + 0x1264" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar1 + 0x1268);" (assignment_expression "uVar4 = *(undefined4 *)(puVar1 + 0x1268)" identifier = (pointer_expression "*(undefined4 *)(puVar1 + 0x1268)" * (cast_expression "(undefined4 *)(puVar1 + 0x1268)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1268)" ( (binary_expression "puVar1 + 0x1268" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(puVar1 + 0x126c);" (assignment_expression "uVar3 = *(undefined4 *)(puVar1 + 0x126c)" identifier = (pointer_expression "*(undefined4 *)(puVar1 + 0x126c)" * (cast_expression "(undefined4 *)(puVar1 + 0x126c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x126c)" ( (binary_expression "puVar1 + 0x126c" identifier + number_literal) ))))) ;) (expression_statement "in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);" (assignment_expression "in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260)" (subscript_expression "in_stack_00000010[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(puVar1 + 0x1260)" * (cast_expression "(undefined4 *)(puVar1 + 0x1260)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1260)" ( (binary_expression "puVar1 + 0x1260" identifier + number_literal) ))))) ;) (expression_statement "in_stack_00000010[5] = uVar5;" (assignment_expression "in_stack_00000010[5] = uVar5" (subscript_expression "in_stack_00000010[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[6] = uVar4;" (assignment_expression "in_stack_00000010[6] = uVar4" (subscript_expression "in_stack_00000010[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[7] = uVar3;" (assignment_expression "in_stack_00000010[7] = uVar3" (subscript_expression "in_stack_00000010[7]" identifier [ number_literal ]) = identifier) ;) (do_statement "do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);" do (compound_statement "{\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  }" { (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);" (call_expression "blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2)" identifier (argument_list "(in_stack_00000010,0x20,uVar2)" ( identifier , number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) (expression_statement "blowfish_free_context(uVar2);" (call_expression "blowfish_free_context(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void bcrypt_hash(uchar *key,int keybytes,uchar *salt,int saltbytes,uchar *output)\n\n{\n                    /* WARNING: Subroutine does not return */\n  bcrypt_setup(key,keybytes,salt,saltbytes);\n}\n\n" (function_definition "void bcrypt_hash(uchar *key,int keybytes,uchar *salt,int saltbytes,uchar *output)\n\n{\n                    /* WARNING: Subroutine does not return */\n  bcrypt_setup(key,keybytes,salt,saltbytes);\n}" primitive_type (function_declarator "bcrypt_hash(uchar *key,int keybytes,uchar *salt,int saltbytes,uchar *output)" identifier (parameter_list "(uchar *key,int keybytes,uchar *salt,int saltbytes,uchar *output)" ( (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) , (parameter_declaration "uchar *output" type_identifier (pointer_declarator "*output" * identifier)) ))) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n  bcrypt_setup(key,keybytes,salt,saltbytes);\n}" { comment (expression_statement "bcrypt_setup(key,keybytes,salt,saltbytes);" (call_expression "bcrypt_setup(key,keybytes,salt,saltbytes)" identifier (argument_list "(key,keybytes,salt,saltbytes)" ( identifier , identifier , identifier , identifier ))) ;) })))
(translation_unit "void bcrypt_hash(void)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}\n\n" (function_definition "void bcrypt_hash(void)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}" primitive_type (function_declarator "bcrypt_hash(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *in_stack_00000010;" type_identifier (pointer_declarator "*in_stack_00000010" * identifier) ;) (expression_statement "iVar6 = 0x40;" (assignment_expression "iVar6 = 0x40" identifier = number_literal) ;) (expression_statement "uVar2 = bcrypt_setup();" (assignment_expression "uVar2 = bcrypt_setup()" identifier = (call_expression "bcrypt_setup()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar1 = PTR_DAT_0006a068;" (assignment_expression "puVar1 = PTR_DAT_0006a068" identifier = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);" (assignment_expression "uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x1254)" ( (binary_expression "PTR_DAT_0006a068 + 0x1254" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);" (assignment_expression "uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x1258)" ( (binary_expression "PTR_DAT_0006a068 + 0x1258" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);" (assignment_expression "uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x125c)" ( (binary_expression "PTR_DAT_0006a068 + 0x125c" identifier + number_literal) ))))) ;) (expression_statement "*in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);" (assignment_expression "*in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" (pointer_expression "*in_stack_00000010" * identifier) = (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" * (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0006a068 + 0x1250)" ( (binary_expression "PTR_DAT_0006a068 + 0x1250" identifier + number_literal) ))))) ;) (expression_statement "in_stack_00000010[1] = uVar5;" (assignment_expression "in_stack_00000010[1] = uVar5" (subscript_expression "in_stack_00000010[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[2] = uVar4;" (assignment_expression "in_stack_00000010[2] = uVar4" (subscript_expression "in_stack_00000010[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[3] = uVar3;" (assignment_expression "in_stack_00000010[3] = uVar3" (subscript_expression "in_stack_00000010[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar1 + 0x1264);" (assignment_expression "uVar5 = *(undefined4 *)(puVar1 + 0x1264)" identifier = (pointer_expression "*(undefined4 *)(puVar1 + 0x1264)" * (cast_expression "(undefined4 *)(puVar1 + 0x1264)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1264)" ( (binary_expression "puVar1 + 0x1264" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined4 *)(puVar1 + 0x1268);" (assignment_expression "uVar4 = *(undefined4 *)(puVar1 + 0x1268)" identifier = (pointer_expression "*(undefined4 *)(puVar1 + 0x1268)" * (cast_expression "(undefined4 *)(puVar1 + 0x1268)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1268)" ( (binary_expression "puVar1 + 0x1268" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(puVar1 + 0x126c);" (assignment_expression "uVar3 = *(undefined4 *)(puVar1 + 0x126c)" identifier = (pointer_expression "*(undefined4 *)(puVar1 + 0x126c)" * (cast_expression "(undefined4 *)(puVar1 + 0x126c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x126c)" ( (binary_expression "puVar1 + 0x126c" identifier + number_literal) ))))) ;) (expression_statement "in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);" (assignment_expression "in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260)" (subscript_expression "in_stack_00000010[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(puVar1 + 0x1260)" * (cast_expression "(undefined4 *)(puVar1 + 0x1260)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x1260)" ( (binary_expression "puVar1 + 0x1260" identifier + number_literal) ))))) ;) (expression_statement "in_stack_00000010[5] = uVar5;" (assignment_expression "in_stack_00000010[5] = uVar5" (subscript_expression "in_stack_00000010[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[6] = uVar4;" (assignment_expression "in_stack_00000010[6] = uVar4" (subscript_expression "in_stack_00000010[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "in_stack_00000010[7] = uVar3;" (assignment_expression "in_stack_00000010[7] = uVar3" (subscript_expression "in_stack_00000010[7]" identifier [ number_literal ]) = identifier) ;) (do_statement "do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);" do (compound_statement "{\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  }" { (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);" (call_expression "blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2)" identifier (argument_list "(in_stack_00000010,0x20,uVar2)" ( identifier , number_literal , identifier ))) ;) }) while (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) ;) (expression_statement "blowfish_free_context(uVar2);" (call_expression "blowfish_free_context(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT = (pointer_expression * (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 * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 IDENT = (pointer_expression * (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void bcrypt_hash(void)\n\n{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}" (primitive_type "void") (function_declarator "bcrypt_hash(void)" (identifier "bcrypt_hash") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  int iVar6;\n  undefined4 *in_stack_00000010;\n  \n  iVar6 = 0x40;\n  uVar2 = bcrypt_setup();\n  puVar1 = PTR_DAT_0006a068;\n  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);\n  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);\n  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);\n  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);\n  in_stack_00000010[1] = uVar5;\n  in_stack_00000010[2] = uVar4;\n  in_stack_00000010[3] = uVar3;\n  uVar5 = *(undefined4 *)(puVar1 + 0x1264);\n  uVar4 = *(undefined4 *)(puVar1 + 0x1268);\n  uVar3 = *(undefined4 *)(puVar1 + 0x126c);\n  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);\n  in_stack_00000010[5] = uVar5;\n  in_stack_00000010[6] = uVar4;\n  in_stack_00000010[7] = uVar3;\n  do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);\n  blowfish_free_context(uVar2);\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *in_stack_00000010;" (type_identifier "undefined4") (pointer_declarator "*in_stack_00000010" (* "*") (identifier "in_stack_00000010")) (; ";")) (expression_statement "iVar6 = 0x40;" (assignment_expression "iVar6 = 0x40" (identifier "iVar6") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "uVar2 = bcrypt_setup();" (assignment_expression "uVar2 = bcrypt_setup()" (identifier "uVar2") (= "=") (call_expression "bcrypt_setup()" (identifier "bcrypt_setup") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar1 = PTR_DAT_0006a068;" (assignment_expression "puVar1 = PTR_DAT_0006a068" (identifier "puVar1") (= "=") (identifier "PTR_DAT_0006a068")) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);" (assignment_expression "uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1254)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0006a068 + 0x1254)" (( "(") (binary_expression "PTR_DAT_0006a068 + 0x1254" (identifier "PTR_DAT_0006a068") (+ "+") (number_literal "0x1254")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);" (assignment_expression "uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1258)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0006a068 + 0x1258)" (( "(") (binary_expression "PTR_DAT_0006a068 + 0x1258" (identifier "PTR_DAT_0006a068") (+ "+") (number_literal "0x1258")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);" (assignment_expression "uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x125c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0006a068 + 0x125c)" (( "(") (binary_expression "PTR_DAT_0006a068 + 0x125c" (identifier "PTR_DAT_0006a068") (+ "+") (number_literal "0x125c")) () ")"))))) (; ";")) (expression_statement "*in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);" (assignment_expression "*in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" (pointer_expression "*in_stack_00000010" (* "*") (identifier "in_stack_00000010")) (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_0006a068 + 0x1250)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0006a068 + 0x1250)" (( "(") (binary_expression "PTR_DAT_0006a068 + 0x1250" (identifier "PTR_DAT_0006a068") (+ "+") (number_literal "0x1250")) () ")"))))) (; ";")) (expression_statement "in_stack_00000010[1] = uVar5;" (assignment_expression "in_stack_00000010[1] = uVar5" (subscript_expression "in_stack_00000010[1]" (identifier "in_stack_00000010") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "in_stack_00000010[2] = uVar4;" (assignment_expression "in_stack_00000010[2] = uVar4" (subscript_expression "in_stack_00000010[2]" (identifier "in_stack_00000010") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "in_stack_00000010[3] = uVar3;" (assignment_expression "in_stack_00000010[3] = uVar3" (subscript_expression "in_stack_00000010[3]" (identifier "in_stack_00000010") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(puVar1 + 0x1264);" (assignment_expression "uVar5 = *(undefined4 *)(puVar1 + 0x1264)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(puVar1 + 0x1264)" (* "*") (cast_expression "(undefined4 *)(puVar1 + 0x1264)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1264)" (( "(") (binary_expression "puVar1 + 0x1264" (identifier "puVar1") (+ "+") (number_literal "0x1264")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)(puVar1 + 0x1268);" (assignment_expression "uVar4 = *(undefined4 *)(puVar1 + 0x1268)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)(puVar1 + 0x1268)" (* "*") (cast_expression "(undefined4 *)(puVar1 + 0x1268)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1268)" (( "(") (binary_expression "puVar1 + 0x1268" (identifier "puVar1") (+ "+") (number_literal "0x1268")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(puVar1 + 0x126c);" (assignment_expression "uVar3 = *(undefined4 *)(puVar1 + 0x126c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(puVar1 + 0x126c)" (* "*") (cast_expression "(undefined4 *)(puVar1 + 0x126c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x126c)" (( "(") (binary_expression "puVar1 + 0x126c" (identifier "puVar1") (+ "+") (number_literal "0x126c")) () ")"))))) (; ";")) (expression_statement "in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);" (assignment_expression "in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260)" (subscript_expression "in_stack_00000010[4]" (identifier "in_stack_00000010") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(puVar1 + 0x1260)" (* "*") (cast_expression "(undefined4 *)(puVar1 + 0x1260)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x1260)" (( "(") (binary_expression "puVar1 + 0x1260" (identifier "puVar1") (+ "+") (number_literal "0x1260")) () ")"))))) (; ";")) (expression_statement "in_stack_00000010[5] = uVar5;" (assignment_expression "in_stack_00000010[5] = uVar5" (subscript_expression "in_stack_00000010[5]" (identifier "in_stack_00000010") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "in_stack_00000010[6] = uVar4;" (assignment_expression "in_stack_00000010[6] = uVar4" (subscript_expression "in_stack_00000010[6]" (identifier "in_stack_00000010") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "in_stack_00000010[7] = uVar3;" (assignment_expression "in_stack_00000010[7] = uVar3" (subscript_expression "in_stack_00000010[7]" (identifier "in_stack_00000010") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (do_statement "do {\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  } while (iVar6 != 0);" (do "do") (compound_statement "{\n    iVar6 = iVar6 + -1;\n    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);\n  }" ({ "{") (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);" (call_expression "blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2)" (identifier "blowfish_lsb_encrypt_ecb") (argument_list "(in_stack_00000010,0x20,uVar2)" (( "(") (identifier "in_stack_00000010") (, ",") (number_literal "0x20") (, ",") (identifier "uVar2") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "blowfish_free_context(uVar2);" (call_expression "blowfish_free_context(uVar2)" (identifier "blowfish_free_context") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *key,int keybytes,type_1 *salt,int saltbytes,type_1 *output)

{
                    /* WARNING: Subroutine does not return */
  var_1(key,keybytes,salt,saltbytes);
}


(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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement))))

void MASKED(void)

{
  undefined *puVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 *in_stack_00000010;
  
  iVar6 = 0x40;
  uVar2 = bcrypt_setup();
  puVar1 = PTR_DAT_0006a068;
  uVar5 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1254);
  uVar4 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1258);
  uVar3 = *(undefined4 *)(PTR_DAT_0006a068 + 0x125c);
  *in_stack_00000010 = *(undefined4 *)(PTR_DAT_0006a068 + 0x1250);
  in_stack_00000010[1] = uVar5;
  in_stack_00000010[2] = uVar4;
  in_stack_00000010[3] = uVar3;
  uVar5 = *(undefined4 *)(puVar1 + 0x1264);
  uVar4 = *(undefined4 *)(puVar1 + 0x1268);
  uVar3 = *(undefined4 *)(puVar1 + 0x126c);
  in_stack_00000010[4] = *(undefined4 *)(puVar1 + 0x1260);
  in_stack_00000010[5] = uVar5;
  in_stack_00000010[6] = uVar4;
  in_stack_00000010[7] = uVar3;
  do {
    iVar6 = iVar6 + -1;
    blowfish_lsb_encrypt_ecb(in_stack_00000010,0x20,uVar2);
  } while (iVar6 != 0);
  blowfish_free_context(uVar2);
  return;
}

