
void register_delete_file(char *file)

{
  int iVar1;
  hash_table *phVar2;
  hash_table *phVar3;
  undefined *puVar4;
  char *old_url;
  char *old_file;
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_000b7c68;
  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {
    phVar3 = make_string_hash_table(0);
    *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3;
  }
  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {
    phVar3 = make_string_hash_table(0);
    *(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3;
  }
  phVar3 = *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c);
  iVar1 = hash_table_get_pair(phVar3,file,&old_file,&old_url);
  if (iVar1 != 0) {
    hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file);
    (*(code *)PTR_free_000b7d34)(old_file);
    old_file = (char *)0x0;
    (*(code *)PTR_free_000b7d34)(old_url);
    old_url = (char *)0x0;
    phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4;
    hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),
                        file);
  }
  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {
    return;
  }
  puVar4 = PTR___stack_chk_fail_000b7bfc;
  (*(code *)PTR___stack_chk_fail_000b7bfc)();
  if (**(int **)(puVar4 + 0x9b6c4) == 0) {
    phVar2 = make_string_hash_table(0);
    **(undefined4 **)(puVar4 + 0x9b6c4) = phVar2;
  }
  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),phVar3);
  return;
}



void register_delete_file(undefined4 param_1)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined *puVar4;
  undefined4 local_14;
  undefined4 local_10;
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_000b7c68;
  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {
    uVar3 = make_string_hash_table(0);
    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;
  }
  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {
    uVar3 = make_string_hash_table(0);
    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;
  }
  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);
  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);
  if (iVar1 != 0) {
    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);
    (*(code *)PTR_free_000b7d34)(local_10);
    local_10 = 0;
    (*(code *)PTR_free_000b7d34)(local_14);
    local_14 = 0;
    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;
    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);
  }
  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {
    return;
  }
  puVar4 = PTR___stack_chk_fail_000b7bfc;
  (*(code *)PTR___stack_chk_fail_000b7bfc)();
  if (**(int **)(puVar4 + 0x9b6c4) == 0) {
    uVar2 = make_string_hash_table(0);
    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;
  }
  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);
  return;
}


lui gp,0xa
addiu gp,gp,0x374c
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw s0,0x28(sp)
sw gp,0x10(sp)
or s0,a0,zero
lw v0,-0x77c8(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
lw v0,-0x7fd8(gp)
lw v0,0x7f7c(v0)
beq v0,zero,0x0001bd7c
_or a0,zero,zero
lw v0,-0x7f4c(gp)
lw v0,0x0(v0)
beq v0,zero,0x0001bd98
_or a0,zero,zero
addiu a3,sp,0x1c
addiu a2,sp,0x20
or a1,s0,zero
lw v0,-0x7fd8(gp)
lw a0,0x7f7c(v0)
lw t9,-0x7f48(gp)
bal 0x0002f128
_nop
lw gp,0x10(sp)
bne v0,zero,0x0001bdb4
_or a1,s0,zero
lw v1,0x24(sp)
lw v0,-0x77c8(gp)
lw v0,0x0(v0)
bne v1,v0,0x0001be28
_lw ra,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x30
lw t9,-0x7f58(gp)
bal 0x0002f9fc
_nop
lw gp,0x10(sp)
lw v1,-0x7fd8(gp)
b 0x0001bd20
_sw v0,0x7f7c(v1)
lw t9,-0x7f58(gp)
bal 0x0002f9fc
_nop
lw gp,0x10(sp)
lw v1,-0x7f4c(gp)
b 0x0001bd30
_sw v0,0x0(v1)
lw v0,-0x7fd8(gp)
lw a0,0x7f7c(v0)
lw t9,-0x7f9c(gp)
bal 0x0002f68c
_nop
lw gp,0x10(sp)
lw a0,0x20(sp)
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw zero,0x20(sp)
lw a0,0x1c(sp)
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw zero,0x1c(sp)
or a2,s0,zero
lw a1,-0x7fcc(gp)
addiu a1,a1,-0x4888
lw v0,-0x7f4c(gp)
lw a0,0x0(v0)
lw t9,-0x7f40(gp)
bal 0x0002f8a4
_nop
lw gp,0x10(sp)
b 0x0001bd5c
_nop
lw t9,-0x7834(gp)
jalr t9
_nop
(translation_unit "void register_delete_file(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}\n\n" (function_definition "void register_delete_file(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}" primitive_type (function_declarator "register_delete_file(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(int *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }" { (expression_statement "uVar3 = make_string_hash_table(0);" (assignment_expression "uVar3 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }" if (parenthesized_expression "(*(int *)PTR_dl_url_file_map_000b74e4 == 0)" ( (binary_expression "*(int *)PTR_dl_url_file_map_000b74e4 == 0" (pointer_expression "*(int *)PTR_dl_url_file_map_000b74e4" * (cast_expression "(int *)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }" { (expression_statement "uVar3 = make_string_hash_table(0);" (assignment_expression "uVar3 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;" (assignment_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3" (pointer_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4" * (cast_expression "(undefined4 *)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (expression_statement "uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);" (assignment_expression "uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);" (assignment_expression "iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14)" identifier = (call_expression "hash_table_get_pair(uVar3,param_1,&local_10,&local_14)" identifier (argument_list "(uVar3,param_1,&local_10,&local_14)" ( identifier , identifier , (pointer_expression "&local_10" & identifier) , (pointer_expression "&local_14" & identifier) )))) ;) (if_statement "if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }" { (expression_statement "hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);" (call_expression "hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1)" identifier (argument_list "(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1)" ( (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(local_10);" (call_expression "(*(code *)PTR_free_000b7d34)(local_10)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_10)" ( identifier ))) ;) (expression_statement "local_10 = 0;" (assignment_expression "local_10 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(local_14);" (call_expression "(*(code *)PTR_free_000b7d34)(local_14)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_14)" ( identifier ))) ;) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;" (assignment_expression "uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4" identifier = (pointer_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4" * (cast_expression "(undefined4 *)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);" (call_expression "hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1)" identifier (argument_list "(uVar3,PTR_LAB_000b7464 + -0x4888,param_1)" ( identifier , (binary_expression "PTR_LAB_000b7464 + -0x4888" identifier + number_literal) , identifier ))) ;) })) (if_statement "if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }" if (parenthesized_expression "(local_c == *(int *)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "local_c == *(int *)PTR___stack_chk_guard_000b7c68" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar4 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar4 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }" if (parenthesized_expression "(**(int **)(puVar4 + 0x9b6c4) == 0)" ( (binary_expression "**(int **)(puVar4 + 0x9b6c4) == 0" (pointer_expression "**(int **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(int **)(puVar4 + 0x9b6c4)" * (cast_expression "(int **)(puVar4 + 0x9b6c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }" { (expression_statement "uVar2 = make_string_hash_table(0);" (assignment_expression "uVar2 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "**(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;" (assignment_expression "**(undefined4 **)(puVar4 + 0x9b6c4) = uVar2" (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" * (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);" (call_expression "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3)" (parenthesized_expression "(**(code **)(puVar4 + 0x9b6a8))" ( (pointer_expression "**(code **)(puVar4 + 0x9b6a8)" * (pointer_expression "*(code **)(puVar4 + 0x9b6a8)" * (cast_expression "(code **)(puVar4 + 0x9b6a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6a8)" ( (binary_expression "puVar4 + 0x9b6a8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3)" ( (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" * (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void register_delete_file(char *file)\n\n{\n  int iVar1;\n  hash_table *phVar2;\n  hash_table *phVar3;\n  undefined *puVar4;\n  char *old_url;\n  char *old_file;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3;\n  }\n  phVar3 = *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(phVar3,file,&old_file,&old_url);\n  if (iVar1 != 0) {\n    hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file);\n    (*(code *)PTR_free_000b7d34)(old_file);\n    old_file = (char *)0x0;\n    (*(code *)PTR_free_000b7d34)(old_url);\n    old_url = (char *)0x0;\n    phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    phVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = phVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),phVar3);\n  return;\n}\n\n" (function_definition "void register_delete_file(char *file)\n\n{\n  int iVar1;\n  hash_table *phVar2;\n  hash_table *phVar3;\n  undefined *puVar4;\n  char *old_url;\n  char *old_file;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3;\n  }\n  phVar3 = *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(phVar3,file,&old_file,&old_url);\n  if (iVar1 != 0) {\n    hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file);\n    (*(code *)PTR_free_000b7d34)(old_file);\n    old_file = (char *)0x0;\n    (*(code *)PTR_free_000b7d34)(old_url);\n    old_url = (char *)0x0;\n    phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    phVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = phVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),phVar3);\n  return;\n}" primitive_type (function_declarator "register_delete_file(char *file)" identifier (parameter_list "(char *file)" ( (parameter_declaration "char *file" primitive_type (pointer_declarator "*file" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  hash_table *phVar2;\n  hash_table *phVar3;\n  undefined *puVar4;\n  char *old_url;\n  char *old_file;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3;\n  }\n  phVar3 = *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(phVar3,file,&old_file,&old_url);\n  if (iVar1 != 0) {\n    hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file);\n    (*(code *)PTR_free_000b7d34)(old_file);\n    old_file = (char *)0x0;\n    (*(code *)PTR_free_000b7d34)(old_url);\n    old_url = (char *)0x0;\n    phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    phVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = phVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),phVar3);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "hash_table *phVar2;" type_identifier (pointer_declarator "*phVar2" * identifier) ;) (declaration "hash_table *phVar3;" type_identifier (pointer_declarator "*phVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *old_url;" primitive_type (pointer_declarator "*old_url" * identifier) ;) (declaration "char *old_file;" primitive_type (pointer_declarator "*old_file" * identifier) ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(int *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3;\n  }" { (expression_statement "phVar3 = make_string_hash_table(0);" (assignment_expression "phVar3 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3;" (assignment_expression "*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c) = phVar3" (pointer_expression "*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(hash_table **)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3;\n  }" if (parenthesized_expression "(*(int *)PTR_dl_url_file_map_000b74e4 == 0)" ( (binary_expression "*(int *)PTR_dl_url_file_map_000b74e4 == 0" (pointer_expression "*(int *)PTR_dl_url_file_map_000b74e4" * (cast_expression "(int *)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    phVar3 = make_string_hash_table(0);\n    *(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3;\n  }" { (expression_statement "phVar3 = make_string_hash_table(0);" (assignment_expression "phVar3 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3;" (assignment_expression "*(hash_table **)PTR_dl_url_file_map_000b74e4 = phVar3" (pointer_expression "*(hash_table **)PTR_dl_url_file_map_000b74e4" * (cast_expression "(hash_table **)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (expression_statement "phVar3 = *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c);" (assignment_expression "phVar3 = *(hash_table **)(PTR_DAT_000b7458 + 0x7f7c)" identifier = (pointer_expression "*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(hash_table **)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = hash_table_get_pair(phVar3,file,&old_file,&old_url);" (assignment_expression "iVar1 = hash_table_get_pair(phVar3,file,&old_file,&old_url)" identifier = (call_expression "hash_table_get_pair(phVar3,file,&old_file,&old_url)" identifier (argument_list "(phVar3,file,&old_file,&old_url)" ( identifier , identifier , (pointer_expression "&old_file" & identifier) , (pointer_expression "&old_url" & identifier) )))) ;) (if_statement "if (iVar1 != 0) {\n    hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file);\n    (*(code *)PTR_free_000b7d34)(old_file);\n    old_file = (char *)0x0;\n    (*(code *)PTR_free_000b7d34)(old_url);\n    old_url = (char *)0x0;\n    phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file);\n    (*(code *)PTR_free_000b7d34)(old_file);\n    old_file = (char *)0x0;\n    (*(code *)PTR_free_000b7d34)(old_url);\n    old_url = (char *)0x0;\n    phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file);\n  }" { (expression_statement "hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file);" (call_expression "hash_table_remove(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file)" identifier (argument_list "(*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c),file)" ( (pointer_expression "*(hash_table **)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(hash_table **)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(old_file);" (call_expression "(*(code *)PTR_free_000b7d34)(old_file)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(old_file)" ( identifier ))) ;) (expression_statement "old_file = (char *)0x0;" (assignment_expression "old_file = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(old_url);" (call_expression "(*(code *)PTR_free_000b7d34)(old_url)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(old_url)" ( identifier ))) ;) (expression_statement "old_url = (char *)0x0;" (assignment_expression "old_url = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4;" (assignment_expression "phVar3 = *(hash_table **)PTR_dl_url_file_map_000b74e4" identifier = (pointer_expression "*(hash_table **)PTR_dl_url_file_map_000b74e4" * (cast_expression "(hash_table **)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file);" (call_expression "hash_table_for_each(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file)" identifier (argument_list "(phVar3,(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888),\n                        file)" ( identifier , (cast_expression "(_func_int_void_ptr_void_ptr_void_ptr *)(PTR_LAB_000b7464 + -0x4888)" ( (type_descriptor "_func_int_void_ptr_void_ptr_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000b7464 + -0x4888)" ( (binary_expression "PTR_LAB_000b7464 + -0x4888" identifier + number_literal) ))) , identifier ))) ;) })) (if_statement "if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }" if (parenthesized_expression "(local_c == *(int *)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "local_c == *(int *)PTR___stack_chk_guard_000b7c68" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar4 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar4 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    phVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = phVar2;\n  }" if (parenthesized_expression "(**(int **)(puVar4 + 0x9b6c4) == 0)" ( (binary_expression "**(int **)(puVar4 + 0x9b6c4) == 0" (pointer_expression "**(int **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(int **)(puVar4 + 0x9b6c4)" * (cast_expression "(int **)(puVar4 + 0x9b6c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    phVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = phVar2;\n  }" { (expression_statement "phVar2 = make_string_hash_table(0);" (assignment_expression "phVar2 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "**(undefined4 **)(puVar4 + 0x9b6c4) = phVar2;" (assignment_expression "**(undefined4 **)(puVar4 + 0x9b6c4) = phVar2" (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" * (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),phVar3);" (call_expression "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),phVar3)" (parenthesized_expression "(**(code **)(puVar4 + 0x9b6a8))" ( (pointer_expression "**(code **)(puVar4 + 0x9b6a8)" * (pointer_expression "*(code **)(puVar4 + 0x9b6a8)" * (cast_expression "(code **)(puVar4 + 0x9b6a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6a8)" ( (binary_expression "puVar4 + 0x9b6a8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar4 + 0x9b6c4),phVar3)" ( (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" * (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void register_delete_file(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}\n\n" (function_definition "void register_delete_file(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}" primitive_type (function_declarator "register_delete_file(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 local_14;" type_identifier identifier ;) (declaration "undefined4 local_10;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b7c68" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }" if (parenthesized_expression "(*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0)" ( (binary_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(int *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }" { (expression_statement "uVar3 = make_string_hash_table(0);" (assignment_expression "uVar3 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }" if (parenthesized_expression "(*(int *)PTR_dl_url_file_map_000b74e4 == 0)" ( (binary_expression "*(int *)PTR_dl_url_file_map_000b74e4 == 0" (pointer_expression "*(int *)PTR_dl_url_file_map_000b74e4" * (cast_expression "(int *)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }" { (expression_statement "uVar3 = make_string_hash_table(0);" (assignment_expression "uVar3 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;" (assignment_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3" (pointer_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4" * (cast_expression "(undefined4 *)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (expression_statement "uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);" (assignment_expression "uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" identifier = (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);" (assignment_expression "iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14)" identifier = (call_expression "hash_table_get_pair(uVar3,param_1,&local_10,&local_14)" identifier (argument_list "(uVar3,param_1,&local_10,&local_14)" ( identifier , identifier , (pointer_expression "&local_10" & identifier) , (pointer_expression "&local_14" & identifier) )))) ;) (if_statement "if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }" { (expression_statement "hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);" (call_expression "hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1)" identifier (argument_list "(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1)" ( (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" * (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" ( (binary_expression "PTR_DAT_000b7458 + 0x7f7c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(local_10);" (call_expression "(*(code *)PTR_free_000b7d34)(local_10)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_10)" ( identifier ))) ;) (expression_statement "local_10 = 0;" (assignment_expression "local_10 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(local_14);" (call_expression "(*(code *)PTR_free_000b7d34)(local_14)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_14)" ( identifier ))) ;) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;" (assignment_expression "uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4" identifier = (pointer_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4" * (cast_expression "(undefined4 *)PTR_dl_url_file_map_000b74e4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);" (call_expression "hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1)" identifier (argument_list "(uVar3,PTR_LAB_000b7464 + -0x4888,param_1)" ( identifier , (binary_expression "PTR_LAB_000b7464 + -0x4888" identifier + number_literal) , identifier ))) ;) })) (if_statement "if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }" if (parenthesized_expression "(local_c == *(int *)PTR___stack_chk_guard_000b7c68)" ( (binary_expression "local_c == *(int *)PTR___stack_chk_guard_000b7c68" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" * (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar4 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar4 = PTR___stack_chk_fail_000b7bfc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" * (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }" if (parenthesized_expression "(**(int **)(puVar4 + 0x9b6c4) == 0)" ( (binary_expression "**(int **)(puVar4 + 0x9b6c4) == 0" (pointer_expression "**(int **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(int **)(puVar4 + 0x9b6c4)" * (cast_expression "(int **)(puVar4 + 0x9b6c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) == number_literal) )) (compound_statement "{\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }" { (expression_statement "uVar2 = make_string_hash_table(0);" (assignment_expression "uVar2 = make_string_hash_table(0)" identifier = (call_expression "make_string_hash_table(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "**(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;" (assignment_expression "**(undefined4 **)(puVar4 + 0x9b6c4) = uVar2" (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" * (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);" (call_expression "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3)" (parenthesized_expression "(**(code **)(puVar4 + 0x9b6a8))" ( (pointer_expression "**(code **)(puVar4 + 0x9b6a8)" * (pointer_expression "*(code **)(puVar4 + 0x9b6a8)" * (cast_expression "(code **)(puVar4 + 0x9b6a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6a8)" ( (binary_expression "puVar4 + 0x9b6a8" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3)" ( (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" * (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" * (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 0x9b6c4)" ( (binary_expression "puVar4 + 0x9b6c4" identifier + number_literal) ))))) , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void register_delete_file(undefined4 param_1)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}" (primitive_type "void") (function_declarator "register_delete_file(undefined4 param_1)" (identifier "register_delete_file") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  undefined *puVar4;\n  undefined4 local_14;\n  undefined4 local_10;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b7c68;\n  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }\n  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }\n  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);\n  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);\n  if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }\n  puVar4 = PTR___stack_chk_fail_000b7bfc;\n  (*(code *)PTR___stack_chk_fail_000b7bfc)();\n  if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }\n  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 local_14;" (type_identifier "undefined4") (identifier "local_14") (; ";")) (declaration "undefined4 local_10;" (type_identifier "undefined4") (identifier "local_10") (; ";")) (declaration "int local_c;" (primitive_type "int") (identifier "local_c") (; ";")) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b7c68;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b7c68" (identifier "local_c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b7c68")))) (; ";")) (if_statement "if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0)" (( "(") (binary_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0" (pointer_expression "*(int *)(PTR_DAT_000b7458 + 0x7f7c)" (* "*") (cast_expression "(int *)(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (binary_expression "PTR_DAT_000b7458 + 0x7f7c" (identifier "PTR_DAT_000b7458") (+ "+") (number_literal "0x7f7c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;\n  }" ({ "{") (expression_statement "uVar3 = make_string_hash_table(0);" (assignment_expression "uVar3 = make_string_hash_table(0)" (identifier "uVar3") (= "=") (call_expression "make_string_hash_table(0)" (identifier "make_string_hash_table") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;" (assignment_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3" (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (binary_expression "PTR_DAT_000b7458 + 0x7f7c" (identifier "PTR_DAT_000b7458") (+ "+") (number_literal "0x7f7c")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (if_statement "if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }" (if "if") (parenthesized_expression "(*(int *)PTR_dl_url_file_map_000b74e4 == 0)" (( "(") (binary_expression "*(int *)PTR_dl_url_file_map_000b74e4 == 0" (pointer_expression "*(int *)PTR_dl_url_file_map_000b74e4" (* "*") (cast_expression "(int *)PTR_dl_url_file_map_000b74e4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dl_url_file_map_000b74e4"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar3 = make_string_hash_table(0);\n    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;\n  }" ({ "{") (expression_statement "uVar3 = make_string_hash_table(0);" (assignment_expression "uVar3 = make_string_hash_table(0)" (identifier "uVar3") (= "=") (call_expression "make_string_hash_table(0)" (identifier "make_string_hash_table") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;" (assignment_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3" (pointer_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4" (* "*") (cast_expression "(undefined4 *)PTR_dl_url_file_map_000b74e4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dl_url_file_map_000b74e4"))) (= "=") (identifier "uVar3")) (; ";")) (} "}"))) (expression_statement "uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);" (assignment_expression "uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (binary_expression "PTR_DAT_000b7458 + 0x7f7c" (identifier "PTR_DAT_000b7458") (+ "+") (number_literal "0x7f7c")) () ")"))))) (; ";")) (expression_statement "iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);" (assignment_expression "iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14)" (identifier "iVar1") (= "=") (call_expression "hash_table_get_pair(uVar3,param_1,&local_10,&local_14)" (identifier "hash_table_get_pair") (argument_list "(uVar3,param_1,&local_10,&local_14)" (( "(") (identifier "uVar3") (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_10" (& "&") (identifier "local_10")) (, ",") (pointer_expression "&local_14" (& "&") (identifier "local_14")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);\n    (*(code *)PTR_free_000b7d34)(local_10);\n    local_10 = 0;\n    (*(code *)PTR_free_000b7d34)(local_14);\n    local_14 = 0;\n    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;\n    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);\n  }" ({ "{") (expression_statement "hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);" (call_expression "hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1)" (identifier "hash_table_remove") (argument_list "(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1)" (( "(") (pointer_expression "*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" (* "*") (cast_expression "(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b7458 + 0x7f7c)" (( "(") (binary_expression "PTR_DAT_000b7458 + 0x7f7c" (identifier "PTR_DAT_000b7458") (+ "+") (number_literal "0x7f7c")) () ")")))) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000b7d34)(local_10);" (call_expression "(*(code *)PTR_free_000b7d34)(local_10)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(local_10)" (( "(") (identifier "local_10") () ")"))) (; ";")) (expression_statement "local_10 = 0;" (assignment_expression "local_10 = 0" (identifier "local_10") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_free_000b7d34)(local_14);" (call_expression "(*(code *)PTR_free_000b7d34)(local_14)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(local_14)" (( "(") (identifier "local_14") () ")"))) (; ";")) (expression_statement "local_14 = 0;" (assignment_expression "local_14 = 0" (identifier "local_14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;" (assignment_expression "uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)PTR_dl_url_file_map_000b74e4" (* "*") (cast_expression "(undefined4 *)PTR_dl_url_file_map_000b74e4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dl_url_file_map_000b74e4")))) (; ";")) (expression_statement "hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);" (call_expression "hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1)" (identifier "hash_table_for_each") (argument_list "(uVar3,PTR_LAB_000b7464 + -0x4888,param_1)" (( "(") (identifier "uVar3") (, ",") (binary_expression "PTR_LAB_000b7464 + -0x4888" (identifier "PTR_LAB_000b7464") (+ "+") (number_literal "-0x4888")) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_c == *(int *)PTR___stack_chk_guard_000b7c68)" (( "(") (binary_expression "local_c == *(int *)PTR___stack_chk_guard_000b7c68" (identifier "local_c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000b7c68" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b7c68" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b7c68")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar4 = PTR___stack_chk_fail_000b7bfc;" (assignment_expression "puVar4 = PTR___stack_chk_fail_000b7bfc" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_fail_000b7bfc")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b7bfc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b7bfc)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b7bfc" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b7bfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b7bfc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (**(int **)(puVar4 + 0x9b6c4) == 0) {\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }" (if "if") (parenthesized_expression "(**(int **)(puVar4 + 0x9b6c4) == 0)" (( "(") (binary_expression "**(int **)(puVar4 + 0x9b6c4) == 0" (pointer_expression "**(int **)(puVar4 + 0x9b6c4)" (* "*") (pointer_expression "*(int **)(puVar4 + 0x9b6c4)" (* "*") (cast_expression "(int **)(puVar4 + 0x9b6c4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x9b6c4)" (( "(") (binary_expression "puVar4 + 0x9b6c4" (identifier "puVar4") (+ "+") (number_literal "0x9b6c4")) () ")"))))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = make_string_hash_table(0);\n    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;\n  }" ({ "{") (expression_statement "uVar2 = make_string_hash_table(0);" (assignment_expression "uVar2 = make_string_hash_table(0)" (identifier "uVar2") (= "=") (call_expression "make_string_hash_table(0)" (identifier "make_string_hash_table") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "**(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;" (assignment_expression "**(undefined4 **)(puVar4 + 0x9b6c4) = uVar2" (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" (* "*") (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" (* "*") (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x9b6c4)" (( "(") (binary_expression "puVar4 + 0x9b6c4" (identifier "puVar4") (+ "+") (number_literal "0x9b6c4")) () ")"))))) (= "=") (identifier "uVar2")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);" (call_expression "(**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3)" (parenthesized_expression "(**(code **)(puVar4 + 0x9b6a8))" (( "(") (pointer_expression "**(code **)(puVar4 + 0x9b6a8)" (* "*") (pointer_expression "*(code **)(puVar4 + 0x9b6a8)" (* "*") (cast_expression "(code **)(puVar4 + 0x9b6a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x9b6a8)" (( "(") (binary_expression "puVar4 + 0x9b6a8" (identifier "puVar4") (+ "+") (number_literal "0x9b6a8")) () ")"))))) () ")")) (argument_list "(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3)" (( "(") (pointer_expression "**(undefined4 **)(puVar4 + 0x9b6c4)" (* "*") (pointer_expression "*(undefined4 **)(puVar4 + 0x9b6c4)" (* "*") (cast_expression "(undefined4 **)(puVar4 + 0x9b6c4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar4 + 0x9b6c4)" (( "(") (binary_expression "puVar4 + 0x9b6c4" (identifier "puVar4") (+ "+") (number_literal "0x9b6c4")) () ")"))))) (, ",") (identifier "uVar3") () ")"))) (; ";")) (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)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (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))))) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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))))) (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_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: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (identifier)))) (return_statement))))

void MASKED(undefined4 param_1)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  undefined *puVar4;
  undefined4 local_14;
  undefined4 local_10;
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_000b7c68;
  if (*(int *)(PTR_DAT_000b7458 + 0x7f7c) == 0) {
    uVar3 = make_string_hash_table(0);
    *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c) = uVar3;
  }
  if (*(int *)PTR_dl_url_file_map_000b74e4 == 0) {
    uVar3 = make_string_hash_table(0);
    *(undefined4 *)PTR_dl_url_file_map_000b74e4 = uVar3;
  }
  uVar3 = *(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c);
  iVar1 = hash_table_get_pair(uVar3,param_1,&local_10,&local_14);
  if (iVar1 != 0) {
    hash_table_remove(*(undefined4 *)(PTR_DAT_000b7458 + 0x7f7c),param_1);
    (*(code *)PTR_free_000b7d34)(local_10);
    local_10 = 0;
    (*(code *)PTR_free_000b7d34)(local_14);
    local_14 = 0;
    uVar3 = *(undefined4 *)PTR_dl_url_file_map_000b74e4;
    hash_table_for_each(uVar3,PTR_LAB_000b7464 + -0x4888,param_1);
  }
  if (local_c == *(int *)PTR___stack_chk_guard_000b7c68) {
    return;
  }
  puVar4 = PTR___stack_chk_fail_000b7bfc;
  (*(code *)PTR___stack_chk_fail_000b7bfc)();
  if (**(int **)(puVar4 + 0x9b6c4) == 0) {
    uVar2 = make_string_hash_table(0);
    **(undefined4 **)(puVar4 + 0x9b6c4) = uVar2;
  }
  (**(code **)(puVar4 + 0x9b6a8))(**(undefined4 **)(puVar4 + 0x9b6c4),uVar3);
  return;
}

