
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void share_disconnect(ssh_sharing_connstate *cs,char *message)

{
  int iVar1;
  undefined1 *puVar2;
  
  iVar1 = (*(code *)PTR_strlen_000b8c40)(message);
  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);
  *puVar2 = 0;
  puVar2[1] = 0;
  puVar2[2] = 0;
  puVar2[3] = 2;
  puVar2[4] = (char)((uint)iVar1 >> 0x18);
  puVar2[5] = (char)((uint)iVar1 >> 0x10);
  puVar2[6] = (char)((uint)iVar1 >> 8);
  puVar2[7] = (char)iVar1;
  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,message,iVar1);
  return;
}



void FUN_00077910(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  undefined1 *puVar2;
  
  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);
  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);
  *puVar2 = 0;
  puVar2[1] = 0;
  puVar2[2] = 0;
  puVar2[3] = 2;
  puVar2[4] = (char)((uint)iVar1 >> 0x18);
  puVar2[5] = (char)((uint)iVar1 >> 0x10);
  puVar2[6] = (char)((uint)iVar1 >> 8);
  puVar2[7] = (char)iVar1;
  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);
  puVar2[iVar1 + 8] = 0;
  puVar2[iVar1 + 9] = 0;
  puVar2[iVar1 + 10] = 0;
  puVar2[iVar1 + 0xb] = 2;
  puVar2[iVar1 + 0xc] = 0x65;
  (puVar2 + iVar1 + 0xc)[1] = 0x6e;
  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);
  FUN_000778ac(param_1);
  return;
}


lui gp,0x5
addiu gp,gp,-0x7680
addu gp,gp,t9
addiu sp,sp,-0x38
sw ra,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw gp,0x18(sp)
or s2,a0,zero
or s4,a1,zero
or a0,a1,zero
lw t9,-0x7650(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s1,v0,zero
li a1,0x1
addiu a0,v0,0x100
lw t9,-0x7f98(gp)
jalr t9
_nop
lw gp,0x18(sp)
or s0,v0,zero
sb zero,0x0(v0)
sb zero,0x1(v0)
sb zero,0x2(v0)
li s3,0x2
sb s3,0x3(v0)
sra v0,s1,0x18
sb v0,0x4(s0)
sra v0,s1,0x10
sb v0,0x5(s0)
sra v0,s1,0x8
sb v0,0x6(s0)
sb s1,0x7(s0)
or a2,s1,zero
or a1,s4,zero
addiu a0,s0,0x8
lw t9,-0x75a4(gp)
jalr t9
_nop
lw gp,0x18(sp)
addu v0,s0,s1
sb zero,0x8(v0)
sb zero,0x9(v0)
sb zero,0xa(v0)
sb s3,0xb(v0)
addiu v0,s1,0xc
addu v0,s0,v0
li v1,0x65
sb v1,0x0(v0)
li v1,0x6e
sb v1,0x1(v0)
sw zero,0x10(sp)
addiu a3,s1,0xe
or a2,s0,zero
li a1,0x1
or a0,s2,zero
lw t9,-0x7a10(gp)
addiu t9,t9,0x6910
bal 0x00076910
_nop
lw gp,0x18(sp)
or a0,s2,zero
lw t9,-0x7a10(gp)
addiu t9,t9,0x78ac
bal 0x000778ac
_nop
lw gp,0x18(sp)
lw ra,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x38
(translation_unit "void FUN_00077910(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}\n\n" (function_definition "void FUN_00077910(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00077910(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  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);" (assignment_expression "iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_000b8c40)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_000b8c40)" ( (pointer_expression "*(code *)PTR_strlen_000b8c40" * (cast_expression "(code *)PTR_strlen_000b8c40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);" (assignment_expression "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b82f8)" ( (pointer_expression "*(code *)PTR_safemalloc_000b82f8" * (cast_expression "(code *)PTR_safemalloc_000b82f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1 + 0x100,1)" ( (binary_expression "iVar1 + 0x100" identifier + number_literal) , number_literal ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 2;" (assignment_expression "puVar2[3] = 2" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[4] = (char)((uint)iVar1 >> 0x18);" (assignment_expression "puVar2[4] = (char)((uint)iVar1 >> 0x18)" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 0x18)" ( (binary_expression "(uint)iVar1 >> 0x18" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[5] = (char)((uint)iVar1 >> 0x10);" (assignment_expression "puVar2[5] = (char)((uint)iVar1 >> 0x10)" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 0x10)" ( (binary_expression "(uint)iVar1 >> 0x10" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[6] = (char)((uint)iVar1 >> 8);" (assignment_expression "puVar2[6] = (char)((uint)iVar1 >> 8)" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 8)" ( (binary_expression "(uint)iVar1 >> 8" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[7] = (char)iVar1;" (assignment_expression "puVar2[7] = (char)iVar1" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (cast_expression "(char)iVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);" (call_expression "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1)" (parenthesized_expression "(*(code *)PTR_memcpy_000b8cec)" ( (pointer_expression "*(code *)PTR_memcpy_000b8cec" * (cast_expression "(code *)PTR_memcpy_000b8cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 8,param_2,iVar1)" ( (binary_expression "puVar2 + 8" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "puVar2[iVar1 + 8] = 0;" (assignment_expression "puVar2[iVar1 + 8] = 0" (subscript_expression "puVar2[iVar1 + 8]" identifier [ (binary_expression "iVar1 + 8" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 9] = 0;" (assignment_expression "puVar2[iVar1 + 9] = 0" (subscript_expression "puVar2[iVar1 + 9]" identifier [ (binary_expression "iVar1 + 9" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 10] = 0;" (assignment_expression "puVar2[iVar1 + 10] = 0" (subscript_expression "puVar2[iVar1 + 10]" identifier [ (binary_expression "iVar1 + 10" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 0xb] = 2;" (assignment_expression "puVar2[iVar1 + 0xb] = 2" (subscript_expression "puVar2[iVar1 + 0xb]" identifier [ (binary_expression "iVar1 + 0xb" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 0xc] = 0x65;" (assignment_expression "puVar2[iVar1 + 0xc] = 0x65" (subscript_expression "puVar2[iVar1 + 0xc]" identifier [ (binary_expression "iVar1 + 0xc" identifier + number_literal) ]) = number_literal) ;) (expression_statement "(puVar2 + iVar1 + 0xc)[1] = 0x6e;" (assignment_expression "(puVar2 + iVar1 + 0xc)[1] = 0x6e" (subscript_expression "(puVar2 + iVar1 + 0xc)[1]" (parenthesized_expression "(puVar2 + iVar1 + 0xc)" ( (binary_expression "puVar2 + iVar1 + 0xc" (binary_expression "puVar2 + iVar1" identifier + identifier) + number_literal) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);" (call_expression "FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0)" identifier (argument_list "(param_1,1,puVar2,iVar1 + 0xe,0)" ( identifier , number_literal , identifier , (binary_expression "iVar1 + 0xe" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_000778ac(param_1);" (call_expression "FUN_000778ac(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid share_disconnect(ssh_sharing_connstate *cs,char *message)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(message);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,message,iVar1);\n  return;\n}\n\n" comment (function_definition "void share_disconnect(ssh_sharing_connstate *cs,char *message)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(message);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,message,iVar1);\n  return;\n}" primitive_type (function_declarator "share_disconnect(ssh_sharing_connstate *cs,char *message)" identifier (parameter_list "(ssh_sharing_connstate *cs,char *message)" ( (parameter_declaration "ssh_sharing_connstate *cs" type_identifier (pointer_declarator "*cs" * identifier)) , (parameter_declaration "char *message" primitive_type (pointer_declarator "*message" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(message);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,message,iVar1);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_strlen_000b8c40)(message);" (assignment_expression "iVar1 = (*(code *)PTR_strlen_000b8c40)(message)" identifier = (call_expression "(*(code *)PTR_strlen_000b8c40)(message)" (parenthesized_expression "(*(code *)PTR_strlen_000b8c40)" ( (pointer_expression "*(code *)PTR_strlen_000b8c40" * (cast_expression "(code *)PTR_strlen_000b8c40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(message)" ( identifier )))) ;) (expression_statement "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);" (assignment_expression "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b82f8)" ( (pointer_expression "*(code *)PTR_safemalloc_000b82f8" * (cast_expression "(code *)PTR_safemalloc_000b82f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1 + 0x100,1)" ( (binary_expression "iVar1 + 0x100" identifier + number_literal) , number_literal ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 2;" (assignment_expression "puVar2[3] = 2" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[4] = (char)((uint)iVar1 >> 0x18);" (assignment_expression "puVar2[4] = (char)((uint)iVar1 >> 0x18)" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 0x18)" ( (binary_expression "(uint)iVar1 >> 0x18" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[5] = (char)((uint)iVar1 >> 0x10);" (assignment_expression "puVar2[5] = (char)((uint)iVar1 >> 0x10)" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 0x10)" ( (binary_expression "(uint)iVar1 >> 0x10" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[6] = (char)((uint)iVar1 >> 8);" (assignment_expression "puVar2[6] = (char)((uint)iVar1 >> 8)" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 8)" ( (binary_expression "(uint)iVar1 >> 8" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[7] = (char)iVar1;" (assignment_expression "puVar2[7] = (char)iVar1" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (cast_expression "(char)iVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,message,iVar1);" (call_expression "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,message,iVar1)" (parenthesized_expression "(*(code *)PTR_memcpy_000b8cec)" ( (pointer_expression "*(code *)PTR_memcpy_000b8cec" * (cast_expression "(code *)PTR_memcpy_000b8cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 8,message,iVar1)" ( (binary_expression "puVar2 + 8" identifier + number_literal) , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00077910(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}\n\n" (function_definition "void FUN_00077910(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}" primitive_type (function_declarator "FUN_00077910(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  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (expression_statement "iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);" (assignment_expression "iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_000b8c40)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_000b8c40)" ( (pointer_expression "*(code *)PTR_strlen_000b8c40" * (cast_expression "(code *)PTR_strlen_000b8c40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);" (assignment_expression "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b82f8)" ( (pointer_expression "*(code *)PTR_safemalloc_000b82f8" * (cast_expression "(code *)PTR_safemalloc_000b82f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar1 + 0x100,1)" ( (binary_expression "iVar1 + 0x100" identifier + number_literal) , number_literal ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[3] = 2;" (assignment_expression "puVar2[3] = 2" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar2[4] = (char)((uint)iVar1 >> 0x18);" (assignment_expression "puVar2[4] = (char)((uint)iVar1 >> 0x18)" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 0x18)" ( (binary_expression "(uint)iVar1 >> 0x18" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[5] = (char)((uint)iVar1 >> 0x10);" (assignment_expression "puVar2[5] = (char)((uint)iVar1 >> 0x10)" (subscript_expression "puVar2[5]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 0x10)" ( (binary_expression "(uint)iVar1 >> 0x10" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[6] = (char)((uint)iVar1 >> 8);" (assignment_expression "puVar2[6] = (char)((uint)iVar1 >> 8)" (subscript_expression "puVar2[6]" identifier [ number_literal ]) = (cast_expression "(char)((uint)iVar1 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar1 >> 8)" ( (binary_expression "(uint)iVar1 >> 8" (cast_expression "(uint)iVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar2[7] = (char)iVar1;" (assignment_expression "puVar2[7] = (char)iVar1" (subscript_expression "puVar2[7]" identifier [ number_literal ]) = (cast_expression "(char)iVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);" (call_expression "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1)" (parenthesized_expression "(*(code *)PTR_memcpy_000b8cec)" ( (pointer_expression "*(code *)PTR_memcpy_000b8cec" * (cast_expression "(code *)PTR_memcpy_000b8cec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2 + 8,param_2,iVar1)" ( (binary_expression "puVar2 + 8" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "puVar2[iVar1 + 8] = 0;" (assignment_expression "puVar2[iVar1 + 8] = 0" (subscript_expression "puVar2[iVar1 + 8]" identifier [ (binary_expression "iVar1 + 8" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 9] = 0;" (assignment_expression "puVar2[iVar1 + 9] = 0" (subscript_expression "puVar2[iVar1 + 9]" identifier [ (binary_expression "iVar1 + 9" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 10] = 0;" (assignment_expression "puVar2[iVar1 + 10] = 0" (subscript_expression "puVar2[iVar1 + 10]" identifier [ (binary_expression "iVar1 + 10" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 0xb] = 2;" (assignment_expression "puVar2[iVar1 + 0xb] = 2" (subscript_expression "puVar2[iVar1 + 0xb]" identifier [ (binary_expression "iVar1 + 0xb" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar2[iVar1 + 0xc] = 0x65;" (assignment_expression "puVar2[iVar1 + 0xc] = 0x65" (subscript_expression "puVar2[iVar1 + 0xc]" identifier [ (binary_expression "iVar1 + 0xc" identifier + number_literal) ]) = number_literal) ;) (expression_statement "(puVar2 + iVar1 + 0xc)[1] = 0x6e;" (assignment_expression "(puVar2 + iVar1 + 0xc)[1] = 0x6e" (subscript_expression "(puVar2 + iVar1 + 0xc)[1]" (parenthesized_expression "(puVar2 + iVar1 + 0xc)" ( (binary_expression "puVar2 + iVar1 + 0xc" (binary_expression "puVar2 + iVar1" identifier + identifier) + number_literal) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);" (call_expression "FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0)" identifier (argument_list "(param_1,1,puVar2,iVar1 + 0xe,0)" ( identifier , number_literal , identifier , (binary_expression "iVar1 + 0xe" identifier + number_literal) , number_literal ))) ;) (expression_statement "FUN_000778ac(param_1);" (call_expression "FUN_000778ac(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )) [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00077910(undefined4 param_1,undefined4 param_2)\n\n{\n  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00077910(undefined4 param_1,undefined4 param_2)" (identifier "FUN_00077910") (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  int iVar1;\n  undefined1 *puVar2;\n  \n  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);\n  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);\n  *puVar2 = 0;\n  puVar2[1] = 0;\n  puVar2[2] = 0;\n  puVar2[3] = 2;\n  puVar2[4] = (char)((uint)iVar1 >> 0x18);\n  puVar2[5] = (char)((uint)iVar1 >> 0x10);\n  puVar2[6] = (char)((uint)iVar1 >> 8);\n  puVar2[7] = (char)iVar1;\n  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);\n  puVar2[iVar1 + 8] = 0;\n  puVar2[iVar1 + 9] = 0;\n  puVar2[iVar1 + 10] = 0;\n  puVar2[iVar1 + 0xb] = 2;\n  puVar2[iVar1 + 0xc] = 0x65;\n  (puVar2 + iVar1 + 0xc)[1] = 0x6e;\n  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);\n  FUN_000778ac(param_1);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (expression_statement "iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);" (assignment_expression "iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2)" (identifier "iVar1") (= "=") (call_expression "(*(code *)PTR_strlen_000b8c40)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_000b8c40)" (( "(") (pointer_expression "*(code *)PTR_strlen_000b8c40" (* "*") (cast_expression "(code *)PTR_strlen_000b8c40" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000b8c40"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);" (assignment_expression "puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" (identifier "puVar2") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1)" (parenthesized_expression "(*(code *)PTR_safemalloc_000b82f8)" (( "(") (pointer_expression "*(code *)PTR_safemalloc_000b82f8" (* "*") (cast_expression "(code *)PTR_safemalloc_000b82f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safemalloc_000b82f8"))) () ")")) (argument_list "(iVar1 + 0x100,1)" (( "(") (binary_expression "iVar1 + 0x100" (identifier "iVar1") (+ "+") (number_literal "0x100")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[1] = 0;" (assignment_expression "puVar2[1] = 0" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[2] = 0;" (assignment_expression "puVar2[2] = 0" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[3] = 2;" (assignment_expression "puVar2[3] = 2" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar2[4] = (char)((uint)iVar1 >> 0x18);" (assignment_expression "puVar2[4] = (char)((uint)iVar1 >> 0x18)" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(char)((uint)iVar1 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar1 >> 0x18)" (( "(") (binary_expression "(uint)iVar1 >> 0x18" (cast_expression "(uint)iVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar2[5] = (char)((uint)iVar1 >> 0x10);" (assignment_expression "puVar2[5] = (char)((uint)iVar1 >> 0x10)" (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(char)((uint)iVar1 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar1 >> 0x10)" (( "(") (binary_expression "(uint)iVar1 >> 0x10" (cast_expression "(uint)iVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar2[6] = (char)((uint)iVar1 >> 8);" (assignment_expression "puVar2[6] = (char)((uint)iVar1 >> 8)" (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(char)((uint)iVar1 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)iVar1 >> 8)" (( "(") (binary_expression "(uint)iVar1 >> 8" (cast_expression "(uint)iVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "iVar1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar2[7] = (char)iVar1;" (assignment_expression "puVar2[7] = (char)iVar1" (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")) (= "=") (cast_expression "(char)iVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar1"))) (; ";")) (expression_statement "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);" (call_expression "(*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1)" (parenthesized_expression "(*(code *)PTR_memcpy_000b8cec)" (( "(") (pointer_expression "*(code *)PTR_memcpy_000b8cec" (* "*") (cast_expression "(code *)PTR_memcpy_000b8cec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_000b8cec"))) () ")")) (argument_list "(puVar2 + 8,param_2,iVar1)" (( "(") (binary_expression "puVar2 + 8" (identifier "puVar2") (+ "+") (number_literal "8")) (, ",") (identifier "param_2") (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "puVar2[iVar1 + 8] = 0;" (assignment_expression "puVar2[iVar1 + 8] = 0" (subscript_expression "puVar2[iVar1 + 8]" (identifier "puVar2") ([ "[") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[iVar1 + 9] = 0;" (assignment_expression "puVar2[iVar1 + 9] = 0" (subscript_expression "puVar2[iVar1 + 9]" (identifier "puVar2") ([ "[") (binary_expression "iVar1 + 9" (identifier "iVar1") (+ "+") (number_literal "9")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[iVar1 + 10] = 0;" (assignment_expression "puVar2[iVar1 + 10] = 0" (subscript_expression "puVar2[iVar1 + 10]" (identifier "puVar2") ([ "[") (binary_expression "iVar1 + 10" (identifier "iVar1") (+ "+") (number_literal "10")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2[iVar1 + 0xb] = 2;" (assignment_expression "puVar2[iVar1 + 0xb] = 2" (subscript_expression "puVar2[iVar1 + 0xb]" (identifier "puVar2") ([ "[") (binary_expression "iVar1 + 0xb" (identifier "iVar1") (+ "+") (number_literal "0xb")) (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar2[iVar1 + 0xc] = 0x65;" (assignment_expression "puVar2[iVar1 + 0xc] = 0x65" (subscript_expression "puVar2[iVar1 + 0xc]" (identifier "puVar2") ([ "[") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) (] "]")) (= "=") (number_literal "0x65")) (; ";")) (expression_statement "(puVar2 + iVar1 + 0xc)[1] = 0x6e;" (assignment_expression "(puVar2 + iVar1 + 0xc)[1] = 0x6e" (subscript_expression "(puVar2 + iVar1 + 0xc)[1]" (parenthesized_expression "(puVar2 + iVar1 + 0xc)" (( "(") (binary_expression "puVar2 + iVar1 + 0xc" (binary_expression "puVar2 + iVar1" (identifier "puVar2") (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0xc")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x6e")) (; ";")) (expression_statement "FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);" (call_expression "FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0)" (identifier "FUN_00076910") (argument_list "(param_1,1,puVar2,iVar1 + 0xe,0)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (identifier "puVar2") (, ",") (binary_expression "iVar1 + 0xe" (identifier "iVar1") (+ "+") (number_literal "0xe")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_000778ac(param_1);" (call_expression "FUN_000778ac(param_1)" (identifier "FUN_000778ac") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(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 (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (return_statement))))

void MASKED(undefined4 param_1,undefined4 param_2)

{
  int iVar1;
  undefined1 *puVar2;
  
  iVar1 = (*(code *)PTR_strlen_000b8c40)(param_2);
  puVar2 = (undefined1 *)(*(code *)PTR_safemalloc_000b82f8)(iVar1 + 0x100,1);
  *puVar2 = 0;
  puVar2[1] = 0;
  puVar2[2] = 0;
  puVar2[3] = 2;
  puVar2[4] = (char)((uint)iVar1 >> 0x18);
  puVar2[5] = (char)((uint)iVar1 >> 0x10);
  puVar2[6] = (char)((uint)iVar1 >> 8);
  puVar2[7] = (char)iVar1;
  (*(code *)PTR_memcpy_000b8cec)(puVar2 + 8,param_2,iVar1);
  puVar2[iVar1 + 8] = 0;
  puVar2[iVar1 + 9] = 0;
  puVar2[iVar1 + 10] = 0;
  puVar2[iVar1 + 0xb] = 2;
  puVar2[iVar1 + 0xc] = 0x65;
  (puVar2 + iVar1 + 0xc)[1] = 0x6e;
  FUN_00076910(param_1,1,puVar2,iVar1 + 0xe,0);
  FUN_000778ac(param_1);
  return;
}

