
void hsts_store_save(hsts_store_t store,char *filename)

{
  int iVar1;
  int iVar2;
  FILE *fp;
  undefined4 uVar3;
  int iVar4;
  FILE *ht;
  int *piVar5;
  int in_t9;
  code *pcVar6;
  hash_table_iterator it;
  stat st;
  
  piVar5 = *(int **)(in_t9 + 0x7ec58);
  iVar1 = *piVar5;
  ht = (FILE *)store;
  if (filename == (char *)0x0) goto LAB_0003103c;
  ht = (FILE *)store->table;
  iVar2 = hash_table_count((hash_table *)ht);
  if (iVar2 < 1) goto LAB_0003103c;
  ht = (FILE *)filename;
  fp = (FILE *)(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c);
  if (fp == (FILE *)0x0) goto LAB_0003103c;
  uVar3 = (**(code **)(in_t9 + 0x7eebc))(fp);
  (**(code **)(in_t9 + 0x7eb5c))(uVar3,2);
  if (store->last_mtime == 0) {
LAB_000310b8:
    pcVar6 = *(code **)(in_t9 + 0x7e82c);
  }
  else {
    iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);
    if (iVar2 != 0) goto LAB_000310b8;
    pcVar6 = *(code **)(in_t9 + 0x7e82c);
    if (store->last_mtime < st.st_mtim.tv_sec) {
      hsts_read_database(store,fp,true);
      goto LAB_000310b8;
    }
  }
  (*pcVar6)(fp,0,0);
  (**(code **)(in_t9 + 0x7ecd4))(uVar3);
  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb58,1,0x2e,fp);
  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb28,1,0x19,fp);
  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb0c,1,0x3b,fp);
  hash_table_iterate(store->table,&it);
  iVar2 = *(int *)(in_t9 + 0x7e488);
  while( true ) {
    iVar4 = hash_table_iter_next(&it);
    if (iVar4 == 0) break;
                    /* WARNING: Load size is inaccurate */
                    /* WARNING: Load size is inaccurate */
    iVar4 = (**(code **)(in_t9 + 0x7ee28))
                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),
                       *(undefined1 *)((int)it.value + 8),*it.value,
                       *(undefined4 *)((int)it.value + 4));
    if (iVar4 < 0) {
                    /* WARNING: Subroutine does not return */
      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));
    }
  }
  (**(code **)(in_t9 + 0x7eca8))();
  ht = fp;
LAB_0003103c:
  if (iVar1 == *piVar5) {
    return;
  }
  (**(code **)(in_t9 + 0x7ebf0))();
  if (ht != (FILE *)0x0) {
    return;
  }
  return;
}



uint hsts_store_save(int *param_1,int *param_2)

{
  undefined *puVar1;
  int iVar2;
  int *piVar3;
  undefined4 uVar4;
  int *piVar5;
  undefined *puVar6;
  undefined4 *local_d0;
  undefined4 *local_cc;
  undefined1 auStack_c0 [72];
  int local_78;
  uint local_1c;
  
  puVar1 = PTR___stack_chk_guard_000afc3c;
  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;
  piVar5 = param_1;
  if (param_2 != (int *)0x0) {
    piVar5 = (int *)*param_1;
    iVar2 = hash_table_count();
    if ((0 < iVar2) &&
       (piVar5 = param_2,
       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),
       piVar3 != (int *)0x0)) {
      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);
      (*(code *)PTR_flock_000afb40)(uVar4,2);
      if ((param_1[1] != 0) &&
         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&
          (param_1[1] < local_78)))) {
        FUN_00030588(param_1,piVar3,1);
      }
      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);
      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);
      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);
      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);
      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);
      hash_table_iterate(*param_1,&local_d0);
      puVar6 = PTR_s_hallenge__000af46c + -0xad0;
      do {
        iVar2 = hash_table_iter_next(&local_d0);
        if (iVar2 == 0) goto LAB_000311c8;
        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)
                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),
                           *local_cc,local_cc[1]);
      } while (-1 < iVar2);
      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);
LAB_000311c8:
      (*(code *)PTR_fclose_000afc8c)();
      piVar5 = piVar3;
    }
  }
  if (local_1c == *(uint *)puVar1) {
    return *(uint *)puVar1;
  }
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  if (piVar5 == (int *)0x0) {
    return 0;
  }
  return (uint)*(byte *)(piVar5 + 2);
}


lui gp,0x8
addiu gp,gp,0x644c
addu gp,gp,t9
addiu sp,sp,-0xf8
sw s0,0xe0(sp)
lw s0,-0x77f4(gp)
sw gp,0x20(sp)
sw ra,0xf4(sp)
sw s4,0xf0(sp)
sw s3,0xec(sp)
sw s2,0xe8(sp)
sw s1,0xe4(sp)
lw v0,0x0(s0)
sw v0,0xdc(sp)
beq a1,zero,0x0003103c
_lw t9,-0x7de8(gp)
or s4,a0,zero
lw a0,0x0(a0)
bal 0x0002f264
_or s1,a1,zero
bgtz v0,0x00031068
_lw gp,0x20(sp)
lw v1,0xdc(sp)
lw v0,0x0(s0)
bne v1,v0,0x00031248
_lw ra,0xf4(sp)
lw s4,0xf0(sp)
lw s3,0xec(sp)
lw s2,0xe8(sp)
lw s1,0xe4(sp)
lw s0,0xe0(sp)
jr ra
_addiu sp,sp,0xf8
lw a1,-0x7fc4(gp)
or a0,s1,zero
lw t9,-0x7984(gp)
jalr t9
_addiu a1,a1,-0xb5c
lw gp,0x20(sp)
beq v0,zero,0x0003103c
_or s2,v0,zero
lw t9,-0x7590(gp)
jalr t9
_or a0,v0,zero
li a1,0x2
lw gp,0x20(sp)
or a0,v0,zero
lw t9,-0x78f0(gp)
jalr t9
_or s3,v0,zero
lw v0,0x4(s4)
bne v0,zero,0x000311f8
_lw gp,0x20(sp)
lw t9,-0x7c20(gp)
or a1,zero,zero
or a2,zero,zero
jalr t9
_or a0,s2,zero
or a3,zero,zero
lw gp,0x20(sp)
or a2,zero,zero
or a0,s3,zero
lw t9,-0x7778(gp)
jalr t9
_addiu s3,sp,0x28
li a2,0x2e
lw gp,0x20(sp)
li a1,0x1
or a3,s2,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7834(gp)
jalr t9
_addiu a0,a0,-0xb58
li a2,0x19
lw gp,0x20(sp)
li a1,0x1
or a3,s2,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7834(gp)
jalr t9
_addiu a0,a0,-0xb28
li a2,0x3b
lw gp,0x20(sp)
li a1,0x1
or a3,s2,zero
lw a0,-0x7fc4(gp)
lw t9,-0x7834(gp)
jalr t9
_addiu a0,a0,-0xb0c
or a1,s3,zero
lw gp,0x20(sp)
lw t9,-0x7df4(gp)
bal 0x0002f1d8
_lw a0,0x0(s4)
lw gp,0x20(sp)
lw s1,-0x7fc4(gp)
b 0x000311b4
_addiu s1,s1,-0xad0
lw v0,0x2c(sp)
li a1,0x1
lw v1,0x28(sp)
or a2,s1,zero
lw t9,-0x7624(gp)
or a0,s2,zero
lw t0,0x4(v0)
lw a3,0x0(v1)
sw t0,0x1c(sp)
lw t0,0x0(v0)
sw t0,0x18(sp)
lbu v0,0x8(v0)
sw v0,0x14(sp)
lw v0,0x4(v1)
jalr t9
_sw v0,0x10(sp)
bltz v0,0x000311dc
_lw gp,0x20(sp)
lw t9,-0x7df0(gp)
bal 0x0002f1f4
_or a0,s3,zero
bne v0,zero,0x0003116c
_lw gp,0x20(sp)
lw t9,-0x77a4(gp)
jalr t9
_or a0,s2,zero
b 0x0003103c
_lw gp,0x20(sp)
lw a1,-0x7fc4(gp)
li a0,0x3
lw t9,-0x7ef0(gp)
bal 0x000435b8
_addiu a1,a1,-0xabc
b 0x000311c8
_lw gp,0x20(sp)
lw t9,-0x7654(gp)
addiu a2,sp,0x38
li a0,0x3
jalr t9
_or a1,s1,zero
bne v0,zero,0x000310b8
_lw gp,0x20(sp)
lw v1,0x4(s4)
lw v0,0x80(sp)
slt v0,v1,v0
beq v0,zero,0x000310bc
_lw t9,-0x7c20(gp)
lw t9,-0x7c70(gp)
li a2,0x1
or a1,s2,zero
addiu t9,t9,0x588
bal 0x00030588
_or a0,s4,zero
b 0x000310b8
_lw gp,0x20(sp)
lw t9,-0x785c(gp)
jalr t9
_nop
(translation_unit "uint hsts_store_save(int *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}\n\n" (function_definition "uint hsts_store_save(int *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}" type_identifier (function_declarator "hsts_store_save(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "undefined4 *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "undefined1 auStack_c0 [72];" type_identifier (array_declarator "auStack_c0 [72]" identifier [ number_literal ]) ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "uint local_1c;" type_identifier identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000afc3c" * (cast_expression "(uint *)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar5 = param_1;" (assignment_expression "piVar5 = param_1" identifier = identifier) ;) (if_statement "if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }" { (expression_statement "piVar5 = (int *)*param_1;" (assignment_expression "piVar5 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar2 = hash_table_count();" (assignment_expression "iVar2 = hash_table_count()" identifier = (call_expression "hash_table_count()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }" if (parenthesized_expression "((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0))" ( (binary_expression "(0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)" (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) && (parenthesized_expression "(piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)" ( (comma_expression "piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0" (assignment_expression "piVar5 = param_2" identifier = identifier) , (comma_expression "piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0" (assignment_expression "piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" identifier = (cast_expression "(int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" (parenthesized_expression "(*(code *)PTR_fopen64_000afaac)" ( (pointer_expression "*(code *)PTR_fopen64_000afaac" * (cast_expression "(code *)PTR_fopen64_000afaac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,PTR_s_hallenge__000af46c + -0xb5c)" ( identifier , (binary_expression "PTR_s_hallenge__000af46c + -0xb5c" identifier + number_literal) ))))) , (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);" (assignment_expression "uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3)" identifier = (call_expression "(*(code *)PTR_fileno_000afea0)(piVar3)" (parenthesized_expression "(*(code *)PTR_fileno_000afea0)" ( (pointer_expression "*(code *)PTR_fileno_000afea0" * (cast_expression "(code *)PTR_fileno_000afea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_flock_000afb40)(uVar4,2);" (call_expression "(*(code *)PTR_flock_000afb40)(uVar4,2)" (parenthesized_expression "(*(code *)PTR_flock_000afb40)" ( (pointer_expression "*(code *)PTR_flock_000afb40" * (cast_expression "(code *)PTR_flock_000afb40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,2)" ( identifier , number_literal ))) ;) (if_statement "if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }" if (parenthesized_expression "((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78))))" ( (binary_expression "(param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))" (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))" ( (parenthesized_expression "(iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78))" ( (comma_expression "iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0)" identifier = (call_expression "(*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0)" (parenthesized_expression "(*(code *)PTR___xstat64_000afddc)" ( (pointer_expression "*(code *)PTR___xstat64_000afddc" * (cast_expression "(code *)PTR___xstat64_000afddc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,param_2,auStack_c0)" ( number_literal , identifier , identifier )))) , (binary_expression "iVar2 == 0 &&\n          (param_1[1] < local_78)" (binary_expression "iVar2 == 0" identifier == number_literal) && (parenthesized_expression "(param_1[1] < local_78)" ( (binary_expression "param_1[1] < local_78" (subscript_expression "param_1[1]" identifier [ number_literal ]) < identifier) )))) )) ))) )) (compound_statement "{\n        FUN_00030588(param_1,piVar3,1);\n      }" { (expression_statement "FUN_00030588(param_1,piVar3,1);" (call_expression "FUN_00030588(param_1,piVar3,1)" identifier (argument_list "(param_1,piVar3,1)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);" (call_expression "(*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0)" (parenthesized_expression "(*(code *)PTR_rpl_fseek_000af810)" ( (pointer_expression "*(code *)PTR_rpl_fseek_000af810" * (cast_expression "(code *)PTR_rpl_fseek_000af810" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_ftruncate64_000afcb8)(uVar4);" (call_expression "(*(code *)PTR_ftruncate64_000afcb8)(uVar4)" (parenthesized_expression "(*(code *)PTR_ftruncate64_000afcb8)" ( (pointer_expression "*(code *)PTR_ftruncate64_000afcb8" * (cast_expression "(code *)PTR_ftruncate64_000afcb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" ( (pointer_expression "*(code *)PTR_fwrite_000afbfc" * (cast_expression "(code *)PTR_fwrite_000afbfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3)" ( (binary_expression "PTR_s_hallenge__000af46c + -0xb58" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" ( (pointer_expression "*(code *)PTR_fwrite_000afbfc" * (cast_expression "(code *)PTR_fwrite_000afbfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3)" ( (binary_expression "PTR_s_hallenge__000af46c + -0xb28" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" ( (pointer_expression "*(code *)PTR_fwrite_000afbfc" * (cast_expression "(code *)PTR_fwrite_000afbfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3)" ( (binary_expression "PTR_s_hallenge__000af46c + -0xb0c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "hash_table_iterate(*param_1,&local_d0);" (call_expression "hash_table_iterate(*param_1,&local_d0)" identifier (argument_list "(*param_1,&local_d0)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&local_d0" & identifier) ))) ;) (expression_statement "puVar6 = PTR_s_hallenge__000af46c + -0xad0;" (assignment_expression "puVar6 = PTR_s_hallenge__000af46c + -0xad0" identifier = (binary_expression "PTR_s_hallenge__000af46c + -0xad0" identifier + number_literal)) ;) (do_statement "do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);" do (compound_statement "{\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      }" { (expression_statement "iVar2 = hash_table_iter_next(&local_d0);" (assignment_expression "iVar2 = hash_table_iter_next(&local_d0)" identifier = (call_expression "hash_table_iter_next(&local_d0)" identifier (argument_list "(&local_d0)" ( (pointer_expression "&local_d0" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_000311c8;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000311c8;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);" (assignment_expression "iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" identifier = (call_expression "(*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000afe0c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000afe0c" * (cast_expression "(code *)PTR___fprintf_chk_000afe0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" ( identifier , number_literal , identifier , (pointer_expression "*local_d0" * identifier) , (subscript_expression "local_d0[1]" identifier [ number_literal ]) , (pointer_expression "*(undefined1 *)(local_cc + 2)" * (cast_expression "(undefined1 *)(local_cc + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_cc + 2)" ( (binary_expression "local_cc + 2" identifier + number_literal) )))) , (pointer_expression "*local_cc" * identifier) , (subscript_expression "local_cc[1]" identifier [ number_literal ]) )))) ;) }) while (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) ;) (expression_statement "logprintf(3,PTR_s_hallenge__000af46c + -0xabc);" (call_expression "logprintf(3,PTR_s_hallenge__000af46c + -0xabc)" identifier (argument_list "(3,PTR_s_hallenge__000af46c + -0xabc)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + -0xabc" identifier + number_literal) ))) ;) (labeled_statement "LAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();" statement_identifier : (expression_statement "(*(code *)PTR_fclose_000afc8c)();" (call_expression "(*(code *)PTR_fclose_000afc8c)()" (parenthesized_expression "(*(code *)PTR_fclose_000afc8c)" ( (pointer_expression "*(code *)PTR_fclose_000afc8c" * (cast_expression "(code *)PTR_fclose_000afc8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (expression_statement "piVar5 = piVar3;" (assignment_expression "piVar5 = piVar3" identifier = identifier) ;) })) })) (if_statement "if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }" if (parenthesized_expression "(local_1c == *(uint *)puVar1)" ( (binary_expression "local_1c == *(uint *)puVar1" identifier == (pointer_expression "*(uint *)puVar1" * (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(uint *)puVar1;\n  }" { (return_statement "return *(uint *)puVar1;" return (pointer_expression "*(uint *)puVar1" * (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (return_statement "return (uint)*(byte *)(piVar5 + 2);" return (binary_expression "(uint)*(byte *)(piVar5 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(piVar5 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 2)" ( (binary_expression "piVar5 + 2" identifier + number_literal) )))) ;) })))
(translation_unit "void hsts_store_save(hsts_store_t store,char *filename)\n\n{\n  int iVar1;\n  int iVar2;\n  FILE *fp;\n  undefined4 uVar3;\n  int iVar4;\n  FILE *ht;\n  int *piVar5;\n  int in_t9;\n  code *pcVar6;\n  hash_table_iterator it;\n  stat st;\n  \n  piVar5 = *(int **)(in_t9 + 0x7ec58);\n  iVar1 = *piVar5;\n  ht = (FILE *)store;\n  if (filename == (char *)0x0) goto LAB_0003103c;\n  ht = (FILE *)store->table;\n  iVar2 = hash_table_count((hash_table *)ht);\n  if (iVar2 < 1) goto LAB_0003103c;\n  ht = (FILE *)filename;\n  fp = (FILE *)(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c);\n  if (fp == (FILE *)0x0) goto LAB_0003103c;\n  uVar3 = (**(code **)(in_t9 + 0x7eebc))(fp);\n  (**(code **)(in_t9 + 0x7eb5c))(uVar3,2);\n  if (store->last_mtime == 0) {\nLAB_000310b8:\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n  }\n  else {\n    iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);\n    if (iVar2 != 0) goto LAB_000310b8;\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n    if (store->last_mtime < st.st_mtim.tv_sec) {\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }\n  }\n  (*pcVar6)(fp,0,0);\n  (**(code **)(in_t9 + 0x7ecd4))(uVar3);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb58,1,0x2e,fp);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb28,1,0x19,fp);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb0c,1,0x3b,fp);\n  hash_table_iterate(store->table,&it);\n  iVar2 = *(int *)(in_t9 + 0x7e488);\n  while( true ) {\n    iVar4 = hash_table_iter_next(&it);\n    if (iVar4 == 0) break;\n                    /* WARNING: Load size is inaccurate */\n                    /* WARNING: Load size is inaccurate */\n    iVar4 = (**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4));\n    if (iVar4 < 0) {\n                    /* WARNING: Subroutine does not return */\n      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));\n    }\n  }\n  (**(code **)(in_t9 + 0x7eca8))();\n  ht = fp;\nLAB_0003103c:\n  if (iVar1 == *piVar5) {\n    return;\n  }\n  (**(code **)(in_t9 + 0x7ebf0))();\n  if (ht != (FILE *)0x0) {\n    return;\n  }\n  return;\n}\n\n" (function_definition "void hsts_store_save(hsts_store_t store,char *filename)\n\n{\n  int iVar1;\n  int iVar2;\n  FILE *fp;\n  undefined4 uVar3;\n  int iVar4;\n  FILE *ht;\n  int *piVar5;\n  int in_t9;\n  code *pcVar6;\n  hash_table_iterator it;\n  stat st;\n  \n  piVar5 = *(int **)(in_t9 + 0x7ec58);\n  iVar1 = *piVar5;\n  ht = (FILE *)store;\n  if (filename == (char *)0x0) goto LAB_0003103c;\n  ht = (FILE *)store->table;\n  iVar2 = hash_table_count((hash_table *)ht);\n  if (iVar2 < 1) goto LAB_0003103c;\n  ht = (FILE *)filename;\n  fp = (FILE *)(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c);\n  if (fp == (FILE *)0x0) goto LAB_0003103c;\n  uVar3 = (**(code **)(in_t9 + 0x7eebc))(fp);\n  (**(code **)(in_t9 + 0x7eb5c))(uVar3,2);\n  if (store->last_mtime == 0) {\nLAB_000310b8:\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n  }\n  else {\n    iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);\n    if (iVar2 != 0) goto LAB_000310b8;\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n    if (store->last_mtime < st.st_mtim.tv_sec) {\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }\n  }\n  (*pcVar6)(fp,0,0);\n  (**(code **)(in_t9 + 0x7ecd4))(uVar3);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb58,1,0x2e,fp);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb28,1,0x19,fp);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb0c,1,0x3b,fp);\n  hash_table_iterate(store->table,&it);\n  iVar2 = *(int *)(in_t9 + 0x7e488);\n  while( true ) {\n    iVar4 = hash_table_iter_next(&it);\n    if (iVar4 == 0) break;\n                    /* WARNING: Load size is inaccurate */\n                    /* WARNING: Load size is inaccurate */\n    iVar4 = (**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4));\n    if (iVar4 < 0) {\n                    /* WARNING: Subroutine does not return */\n      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));\n    }\n  }\n  (**(code **)(in_t9 + 0x7eca8))();\n  ht = fp;\nLAB_0003103c:\n  if (iVar1 == *piVar5) {\n    return;\n  }\n  (**(code **)(in_t9 + 0x7ebf0))();\n  if (ht != (FILE *)0x0) {\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "hsts_store_save(hsts_store_t store,char *filename)" identifier (parameter_list "(hsts_store_t store,char *filename)" ( (parameter_declaration "hsts_store_t store" type_identifier identifier) , (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  FILE *fp;\n  undefined4 uVar3;\n  int iVar4;\n  FILE *ht;\n  int *piVar5;\n  int in_t9;\n  code *pcVar6;\n  hash_table_iterator it;\n  stat st;\n  \n  piVar5 = *(int **)(in_t9 + 0x7ec58);\n  iVar1 = *piVar5;\n  ht = (FILE *)store;\n  if (filename == (char *)0x0) goto LAB_0003103c;\n  ht = (FILE *)store->table;\n  iVar2 = hash_table_count((hash_table *)ht);\n  if (iVar2 < 1) goto LAB_0003103c;\n  ht = (FILE *)filename;\n  fp = (FILE *)(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c);\n  if (fp == (FILE *)0x0) goto LAB_0003103c;\n  uVar3 = (**(code **)(in_t9 + 0x7eebc))(fp);\n  (**(code **)(in_t9 + 0x7eb5c))(uVar3,2);\n  if (store->last_mtime == 0) {\nLAB_000310b8:\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n  }\n  else {\n    iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);\n    if (iVar2 != 0) goto LAB_000310b8;\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n    if (store->last_mtime < st.st_mtim.tv_sec) {\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }\n  }\n  (*pcVar6)(fp,0,0);\n  (**(code **)(in_t9 + 0x7ecd4))(uVar3);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb58,1,0x2e,fp);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb28,1,0x19,fp);\n  (**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb0c,1,0x3b,fp);\n  hash_table_iterate(store->table,&it);\n  iVar2 = *(int *)(in_t9 + 0x7e488);\n  while( true ) {\n    iVar4 = hash_table_iter_next(&it);\n    if (iVar4 == 0) break;\n                    /* WARNING: Load size is inaccurate */\n                    /* WARNING: Load size is inaccurate */\n    iVar4 = (**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4));\n    if (iVar4 < 0) {\n                    /* WARNING: Subroutine does not return */\n      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));\n    }\n  }\n  (**(code **)(in_t9 + 0x7eca8))();\n  ht = fp;\nLAB_0003103c:\n  if (iVar1 == *piVar5) {\n    return;\n  }\n  (**(code **)(in_t9 + 0x7ebf0))();\n  if (ht != (FILE *)0x0) {\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "FILE *fp;" type_identifier (pointer_declarator "*fp" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "FILE *ht;" type_identifier (pointer_declarator "*ht" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "hash_table_iterator it;" type_identifier identifier ;) (declaration "stat st;" type_identifier identifier ;) (expression_statement "piVar5 = *(int **)(in_t9 + 0x7ec58);" (assignment_expression "piVar5 = *(int **)(in_t9 + 0x7ec58)" identifier = (pointer_expression "*(int **)(in_t9 + 0x7ec58)" * (cast_expression "(int **)(in_t9 + 0x7ec58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ec58)" ( (binary_expression "in_t9 + 0x7ec58" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar5;" (assignment_expression "iVar1 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "ht = (FILE *)store;" (assignment_expression "ht = (FILE *)store" identifier = (cast_expression "(FILE *)store" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (filename == (char *)0x0) goto LAB_0003103c;" if (parenthesized_expression "(filename == (char *)0x0)" ( (binary_expression "filename == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003103c;" goto statement_identifier ;)) (expression_statement "ht = (FILE *)store->table;" (assignment_expression "ht = (FILE *)store->table" identifier = (cast_expression "(FILE *)store->table" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "store->table" identifier -> field_identifier))) ;) (expression_statement "iVar2 = hash_table_count((hash_table *)ht);" (assignment_expression "iVar2 = hash_table_count((hash_table *)ht)" identifier = (call_expression "hash_table_count((hash_table *)ht)" identifier (argument_list "((hash_table *)ht)" ( (cast_expression "(hash_table *)ht" ( (type_descriptor "hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar2 < 1) goto LAB_0003103c;" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (goto_statement "goto LAB_0003103c;" goto statement_identifier ;)) (expression_statement "ht = (FILE *)filename;" (assignment_expression "ht = (FILE *)filename" identifier = (cast_expression "(FILE *)filename" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "fp = (FILE *)(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c);" (assignment_expression "fp = (FILE *)(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c)" identifier = (cast_expression "(FILE *)(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c)" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x7eac8))(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c)" (parenthesized_expression "(**(code **)(in_t9 + 0x7eac8))" ( (pointer_expression "**(code **)(in_t9 + 0x7eac8)" * (pointer_expression "*(code **)(in_t9 + 0x7eac8)" * (cast_expression "(code **)(in_t9 + 0x7eac8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7eac8)" ( (binary_expression "in_t9 + 0x7eac8" identifier + number_literal) ))))) )) (argument_list "(filename,*(int *)(in_t9 + 0x7e488) + -0xb5c)" ( identifier , (binary_expression "*(int *)(in_t9 + 0x7e488) + -0xb5c" (pointer_expression "*(int *)(in_t9 + 0x7e488)" * (cast_expression "(int *)(in_t9 + 0x7e488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7e488)" ( (binary_expression "in_t9 + 0x7e488" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (fp == (FILE *)0x0) goto LAB_0003103c;" if (parenthesized_expression "(fp == (FILE *)0x0)" ( (binary_expression "fp == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003103c;" goto statement_identifier ;)) (expression_statement "uVar3 = (**(code **)(in_t9 + 0x7eebc))(fp);" (assignment_expression "uVar3 = (**(code **)(in_t9 + 0x7eebc))(fp)" identifier = (call_expression "(**(code **)(in_t9 + 0x7eebc))(fp)" (parenthesized_expression "(**(code **)(in_t9 + 0x7eebc))" ( (pointer_expression "**(code **)(in_t9 + 0x7eebc)" * (pointer_expression "*(code **)(in_t9 + 0x7eebc)" * (cast_expression "(code **)(in_t9 + 0x7eebc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7eebc)" ( (binary_expression "in_t9 + 0x7eebc" identifier + number_literal) ))))) )) (argument_list "(fp)" ( identifier )))) ;) (expression_statement "(**(code **)(in_t9 + 0x7eb5c))(uVar3,2);" (call_expression "(**(code **)(in_t9 + 0x7eb5c))(uVar3,2)" (parenthesized_expression "(**(code **)(in_t9 + 0x7eb5c))" ( (pointer_expression "**(code **)(in_t9 + 0x7eb5c)" * (pointer_expression "*(code **)(in_t9 + 0x7eb5c)" * (cast_expression "(code **)(in_t9 + 0x7eb5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7eb5c)" ( (binary_expression "in_t9 + 0x7eb5c" identifier + number_literal) ))))) )) (argument_list "(uVar3,2)" ( identifier , number_literal ))) ;) (if_statement "if (store->last_mtime == 0) {\nLAB_000310b8:\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n  }\n  else {\n    iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);\n    if (iVar2 != 0) goto LAB_000310b8;\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n    if (store->last_mtime < st.st_mtim.tv_sec) {\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }\n  }" if (parenthesized_expression "(store->last_mtime == 0)" ( (binary_expression "store->last_mtime == 0" (field_expression "store->last_mtime" identifier -> field_identifier) == number_literal) )) (compound_statement "{\nLAB_000310b8:\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n  }" { (labeled_statement "LAB_000310b8:\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);" statement_identifier : (expression_statement "pcVar6 = *(code **)(in_t9 + 0x7e82c);" (assignment_expression "pcVar6 = *(code **)(in_t9 + 0x7e82c)" identifier = (pointer_expression "*(code **)(in_t9 + 0x7e82c)" * (cast_expression "(code **)(in_t9 + 0x7e82c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7e82c)" ( (binary_expression "in_t9 + 0x7e82c" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n    iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);\n    if (iVar2 != 0) goto LAB_000310b8;\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n    if (store->last_mtime < st.st_mtim.tv_sec) {\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }\n  }" else (compound_statement "{\n    iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);\n    if (iVar2 != 0) goto LAB_000310b8;\n    pcVar6 = *(code **)(in_t9 + 0x7e82c);\n    if (store->last_mtime < st.st_mtim.tv_sec) {\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }\n  }" { (expression_statement "iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st);" (assignment_expression "iVar2 = (**(code **)(in_t9 + 0x7edf8))(3,filename,&st)" identifier = (call_expression "(**(code **)(in_t9 + 0x7edf8))(3,filename,&st)" (parenthesized_expression "(**(code **)(in_t9 + 0x7edf8))" ( (pointer_expression "**(code **)(in_t9 + 0x7edf8)" * (pointer_expression "*(code **)(in_t9 + 0x7edf8)" * (cast_expression "(code **)(in_t9 + 0x7edf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7edf8)" ( (binary_expression "in_t9 + 0x7edf8" identifier + number_literal) ))))) )) (argument_list "(3,filename,&st)" ( number_literal , identifier , (pointer_expression "&st" & identifier) )))) ;) (if_statement "if (iVar2 != 0) goto LAB_000310b8;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000310b8;" goto statement_identifier ;)) (expression_statement "pcVar6 = *(code **)(in_t9 + 0x7e82c);" (assignment_expression "pcVar6 = *(code **)(in_t9 + 0x7e82c)" identifier = (pointer_expression "*(code **)(in_t9 + 0x7e82c)" * (cast_expression "(code **)(in_t9 + 0x7e82c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7e82c)" ( (binary_expression "in_t9 + 0x7e82c" identifier + number_literal) ))))) ;) (if_statement "if (store->last_mtime < st.st_mtim.tv_sec) {\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }" if (parenthesized_expression "(store->last_mtime < st.st_mtim.tv_sec)" ( (binary_expression "store->last_mtime < st.st_mtim.tv_sec" (field_expression "store->last_mtime" identifier -> field_identifier) < (field_expression "st.st_mtim.tv_sec" (field_expression "st.st_mtim" identifier . field_identifier) . field_identifier)) )) (compound_statement "{\n      hsts_read_database(store,fp,true);\n      goto LAB_000310b8;\n    }" { (expression_statement "hsts_read_database(store,fp,true);" (call_expression "hsts_read_database(store,fp,true)" identifier (argument_list "(store,fp,true)" ( identifier , identifier , true ))) ;) (goto_statement "goto LAB_000310b8;" goto statement_identifier ;) })) }))) (expression_statement "(*pcVar6)(fp,0,0);" (call_expression "(*pcVar6)(fp,0,0)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(fp,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "(**(code **)(in_t9 + 0x7ecd4))(uVar3);" (call_expression "(**(code **)(in_t9 + 0x7ecd4))(uVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x7ecd4))" ( (pointer_expression "**(code **)(in_t9 + 0x7ecd4)" * (pointer_expression "*(code **)(in_t9 + 0x7ecd4)" * (cast_expression "(code **)(in_t9 + 0x7ecd4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ecd4)" ( (binary_expression "in_t9 + 0x7ecd4" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "(**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb58,1,0x2e,fp);" (call_expression "(**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb58,1,0x2e,fp)" (parenthesized_expression "(**(code **)(in_t9 + 0x7ec18))" ( (pointer_expression "**(code **)(in_t9 + 0x7ec18)" * (pointer_expression "*(code **)(in_t9 + 0x7ec18)" * (cast_expression "(code **)(in_t9 + 0x7ec18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ec18)" ( (binary_expression "in_t9 + 0x7ec18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x7e488) + -0xb58,1,0x2e,fp)" ( (binary_expression "*(int *)(in_t9 + 0x7e488) + -0xb58" (pointer_expression "*(int *)(in_t9 + 0x7e488)" * (cast_expression "(int *)(in_t9 + 0x7e488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7e488)" ( (binary_expression "in_t9 + 0x7e488" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb28,1,0x19,fp);" (call_expression "(**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb28,1,0x19,fp)" (parenthesized_expression "(**(code **)(in_t9 + 0x7ec18))" ( (pointer_expression "**(code **)(in_t9 + 0x7ec18)" * (pointer_expression "*(code **)(in_t9 + 0x7ec18)" * (cast_expression "(code **)(in_t9 + 0x7ec18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ec18)" ( (binary_expression "in_t9 + 0x7ec18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x7e488) + -0xb28,1,0x19,fp)" ( (binary_expression "*(int *)(in_t9 + 0x7e488) + -0xb28" (pointer_expression "*(int *)(in_t9 + 0x7e488)" * (cast_expression "(int *)(in_t9 + 0x7e488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7e488)" ( (binary_expression "in_t9 + 0x7e488" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb0c,1,0x3b,fp);" (call_expression "(**(code **)(in_t9 + 0x7ec18))(*(int *)(in_t9 + 0x7e488) + -0xb0c,1,0x3b,fp)" (parenthesized_expression "(**(code **)(in_t9 + 0x7ec18))" ( (pointer_expression "**(code **)(in_t9 + 0x7ec18)" * (pointer_expression "*(code **)(in_t9 + 0x7ec18)" * (cast_expression "(code **)(in_t9 + 0x7ec18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ec18)" ( (binary_expression "in_t9 + 0x7ec18" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x7e488) + -0xb0c,1,0x3b,fp)" ( (binary_expression "*(int *)(in_t9 + 0x7e488) + -0xb0c" (pointer_expression "*(int *)(in_t9 + 0x7e488)" * (cast_expression "(int *)(in_t9 + 0x7e488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7e488)" ( (binary_expression "in_t9 + 0x7e488" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "hash_table_iterate(store->table,&it);" (call_expression "hash_table_iterate(store->table,&it)" identifier (argument_list "(store->table,&it)" ( (field_expression "store->table" identifier -> field_identifier) , (pointer_expression "&it" & identifier) ))) ;) (expression_statement "iVar2 = *(int *)(in_t9 + 0x7e488);" (assignment_expression "iVar2 = *(int *)(in_t9 + 0x7e488)" identifier = (pointer_expression "*(int *)(in_t9 + 0x7e488)" * (cast_expression "(int *)(in_t9 + 0x7e488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7e488)" ( (binary_expression "in_t9 + 0x7e488" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n    iVar4 = hash_table_iter_next(&it);\n    if (iVar4 == 0) break;\n                    /* WARNING: Load size is inaccurate */\n                    /* WARNING: Load size is inaccurate */\n    iVar4 = (**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4));\n    if (iVar4 < 0) {\n                    /* WARNING: Subroutine does not return */\n      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));\n    }\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar4 = hash_table_iter_next(&it);\n    if (iVar4 == 0) break;\n                    /* WARNING: Load size is inaccurate */\n                    /* WARNING: Load size is inaccurate */\n    iVar4 = (**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4));\n    if (iVar4 < 0) {\n                    /* WARNING: Subroutine does not return */\n      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));\n    }\n  }" { (expression_statement "iVar4 = hash_table_iter_next(&it);" (assignment_expression "iVar4 = hash_table_iter_next(&it)" identifier = (call_expression "hash_table_iter_next(&it)" identifier (argument_list "(&it)" ( (pointer_expression "&it" & identifier) )))) ;) (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) comment comment (expression_statement "iVar4 = (**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4));" (assignment_expression "iVar4 = (**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4))" identifier = (call_expression "(**(code **)(in_t9 + 0x7ee28))\n                      (fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4))" (parenthesized_expression "(**(code **)(in_t9 + 0x7ee28))" ( (pointer_expression "**(code **)(in_t9 + 0x7ee28)" * (pointer_expression "*(code **)(in_t9 + 0x7ee28)" * (cast_expression "(code **)(in_t9 + 0x7ee28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ee28)" ( (binary_expression "in_t9 + 0x7ee28" identifier + number_literal) ))))) )) (argument_list "(fp,1,iVar2 + -0xad0,*it.key,*(undefined4 *)((int)it.key + 4),\n                       *(undefined1 *)((int)it.value + 8),*it.value,\n                       *(undefined4 *)((int)it.value + 4))" ( identifier , number_literal , (binary_expression "iVar2 + -0xad0" identifier + number_literal) , (pointer_expression "*it.key" * (field_expression "it.key" identifier . field_identifier)) , (pointer_expression "*(undefined4 *)((int)it.key + 4)" * (cast_expression "(undefined4 *)((int)it.key + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)it.key + 4)" ( (binary_expression "(int)it.key + 4" (cast_expression "(int)it.key" ( (type_descriptor "int" primitive_type) ) (field_expression "it.key" identifier . field_identifier)) + number_literal) )))) , (pointer_expression "*(undefined1 *)((int)it.value + 8)" * (cast_expression "(undefined1 *)((int)it.value + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)it.value + 8)" ( (binary_expression "(int)it.value + 8" (cast_expression "(int)it.value" ( (type_descriptor "int" primitive_type) ) (field_expression "it.value" identifier . field_identifier)) + number_literal) )))) , (pointer_expression "*it.value" * (field_expression "it.value" identifier . field_identifier)) , (pointer_expression "*(undefined4 *)((int)it.value + 4)" * (cast_expression "(undefined4 *)((int)it.value + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)it.value + 4)" ( (binary_expression "(int)it.value + 4" (cast_expression "(int)it.value" ( (type_descriptor "int" primitive_type) ) (field_expression "it.value" identifier . field_identifier)) + number_literal) )))) )))) ;) (if_statement "if (iVar4 < 0) {\n                    /* WARNING: Subroutine does not return */\n      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));\n    }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));\n    }" { comment (expression_statement "logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc));" (call_expression "logprintf(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc))" identifier (argument_list "(LOG_ALWAYS,(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc))" ( identifier , (cast_expression "(char *)(*(int *)(in_t9 + 0x7e488) + -0xabc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x7e488) + -0xabc)" ( (binary_expression "*(int *)(in_t9 + 0x7e488) + -0xabc" (pointer_expression "*(int *)(in_t9 + 0x7e488)" * (cast_expression "(int *)(in_t9 + 0x7e488)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x7e488)" ( (binary_expression "in_t9 + 0x7e488" identifier + number_literal) )))) + number_literal) ))) ))) ;) })) })) (expression_statement "(**(code **)(in_t9 + 0x7eca8))();" (call_expression "(**(code **)(in_t9 + 0x7eca8))()" (parenthesized_expression "(**(code **)(in_t9 + 0x7eca8))" ( (pointer_expression "**(code **)(in_t9 + 0x7eca8)" * (pointer_expression "*(code **)(in_t9 + 0x7eca8)" * (cast_expression "(code **)(in_t9 + 0x7eca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7eca8)" ( (binary_expression "in_t9 + 0x7eca8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ht = fp;" (assignment_expression "ht = fp" identifier = identifier) ;) (labeled_statement "LAB_0003103c:\n  if (iVar1 == *piVar5) {\n    return;\n  }" statement_identifier : (if_statement "if (iVar1 == *piVar5) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *piVar5)" ( (binary_expression "iVar1 == *piVar5" identifier == (pointer_expression "*piVar5" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "(**(code **)(in_t9 + 0x7ebf0))();" (call_expression "(**(code **)(in_t9 + 0x7ebf0))()" (parenthesized_expression "(**(code **)(in_t9 + 0x7ebf0))" ( (pointer_expression "**(code **)(in_t9 + 0x7ebf0)" * (pointer_expression "*(code **)(in_t9 + 0x7ebf0)" * (cast_expression "(code **)(in_t9 + 0x7ebf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x7ebf0)" ( (binary_expression "in_t9 + 0x7ebf0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if (ht != (FILE *)0x0) {\n    return;\n  }" if (parenthesized_expression "(ht != (FILE *)0x0)" ( (binary_expression "ht != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "uint hsts_store_save(int *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}\n\n" (function_definition "uint hsts_store_save(int *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}" type_identifier (function_declarator "hsts_store_save(int *param_1,int *param_2)" identifier (parameter_list "(int *param_1,int *param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 *local_d0;" type_identifier (pointer_declarator "*local_d0" * identifier) ;) (declaration "undefined4 *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "undefined1 auStack_c0 [72];" type_identifier (array_declarator "auStack_c0 [72]" identifier [ number_literal ]) ;) (declaration "int local_78;" primitive_type identifier ;) (declaration "uint local_1c;" type_identifier identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000afc3c" identifier = identifier) ;) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_000afc3c" identifier = (pointer_expression "*(uint *)PTR___stack_chk_guard_000afc3c" * (cast_expression "(uint *)PTR___stack_chk_guard_000afc3c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar5 = param_1;" (assignment_expression "piVar5 = param_1" identifier = identifier) ;) (if_statement "if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }" { (expression_statement "piVar5 = (int *)*param_1;" (assignment_expression "piVar5 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar2 = hash_table_count();" (assignment_expression "iVar2 = hash_table_count()" identifier = (call_expression "hash_table_count()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }" if (parenthesized_expression "((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0))" ( (binary_expression "(0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)" (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) && (parenthesized_expression "(piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)" ( (comma_expression "piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0" (assignment_expression "piVar5 = param_2" identifier = identifier) , (comma_expression "piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0" (assignment_expression "piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" identifier = (cast_expression "(int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" (parenthesized_expression "(*(code *)PTR_fopen64_000afaac)" ( (pointer_expression "*(code *)PTR_fopen64_000afaac" * (cast_expression "(code *)PTR_fopen64_000afaac" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2,PTR_s_hallenge__000af46c + -0xb5c)" ( identifier , (binary_expression "PTR_s_hallenge__000af46c + -0xb5c" identifier + number_literal) ))))) , (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (compound_statement "{\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }" { (expression_statement "uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);" (assignment_expression "uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3)" identifier = (call_expression "(*(code *)PTR_fileno_000afea0)(piVar3)" (parenthesized_expression "(*(code *)PTR_fileno_000afea0)" ( (pointer_expression "*(code *)PTR_fileno_000afea0" * (cast_expression "(code *)PTR_fileno_000afea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3)" ( identifier )))) ;) (expression_statement "(*(code *)PTR_flock_000afb40)(uVar4,2);" (call_expression "(*(code *)PTR_flock_000afb40)(uVar4,2)" (parenthesized_expression "(*(code *)PTR_flock_000afb40)" ( (pointer_expression "*(code *)PTR_flock_000afb40" * (cast_expression "(code *)PTR_flock_000afb40" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4,2)" ( identifier , number_literal ))) ;) (if_statement "if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }" if (parenthesized_expression "((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78))))" ( (binary_expression "(param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))" (parenthesized_expression "(param_1[1] != 0)" ( (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))" ( (parenthesized_expression "(iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78))" ( (comma_expression "iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0)" identifier = (call_expression "(*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0)" (parenthesized_expression "(*(code *)PTR___xstat64_000afddc)" ( (pointer_expression "*(code *)PTR___xstat64_000afddc" * (cast_expression "(code *)PTR___xstat64_000afddc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,param_2,auStack_c0)" ( number_literal , identifier , identifier )))) , (binary_expression "iVar2 == 0 &&\n          (param_1[1] < local_78)" (binary_expression "iVar2 == 0" identifier == number_literal) && (parenthesized_expression "(param_1[1] < local_78)" ( (binary_expression "param_1[1] < local_78" (subscript_expression "param_1[1]" identifier [ number_literal ]) < identifier) )))) )) ))) )) (compound_statement "{\n        FUN_00030588(param_1,piVar3,1);\n      }" { (expression_statement "FUN_00030588(param_1,piVar3,1);" (call_expression "FUN_00030588(param_1,piVar3,1)" identifier (argument_list "(param_1,piVar3,1)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "(*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);" (call_expression "(*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0)" (parenthesized_expression "(*(code *)PTR_rpl_fseek_000af810)" ( (pointer_expression "*(code *)PTR_rpl_fseek_000af810" * (cast_expression "(code *)PTR_rpl_fseek_000af810" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3,0,0)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_ftruncate64_000afcb8)(uVar4);" (call_expression "(*(code *)PTR_ftruncate64_000afcb8)(uVar4)" (parenthesized_expression "(*(code *)PTR_ftruncate64_000afcb8)" ( (pointer_expression "*(code *)PTR_ftruncate64_000afcb8" * (cast_expression "(code *)PTR_ftruncate64_000afcb8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" ( (pointer_expression "*(code *)PTR_fwrite_000afbfc" * (cast_expression "(code *)PTR_fwrite_000afbfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3)" ( (binary_expression "PTR_s_hallenge__000af46c + -0xb58" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" ( (pointer_expression "*(code *)PTR_fwrite_000afbfc" * (cast_expression "(code *)PTR_fwrite_000afbfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3)" ( (binary_expression "PTR_s_hallenge__000af46c + -0xb28" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" ( (pointer_expression "*(code *)PTR_fwrite_000afbfc" * (cast_expression "(code *)PTR_fwrite_000afbfc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3)" ( (binary_expression "PTR_s_hallenge__000af46c + -0xb0c" identifier + number_literal) , number_literal , number_literal , identifier ))) ;) (expression_statement "hash_table_iterate(*param_1,&local_d0);" (call_expression "hash_table_iterate(*param_1,&local_d0)" identifier (argument_list "(*param_1,&local_d0)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&local_d0" & identifier) ))) ;) (expression_statement "puVar6 = PTR_s_hallenge__000af46c + -0xad0;" (assignment_expression "puVar6 = PTR_s_hallenge__000af46c + -0xad0" identifier = (binary_expression "PTR_s_hallenge__000af46c + -0xad0" identifier + number_literal)) ;) (do_statement "do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);" do (compound_statement "{\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      }" { (expression_statement "iVar2 = hash_table_iter_next(&local_d0);" (assignment_expression "iVar2 = hash_table_iter_next(&local_d0)" identifier = (call_expression "hash_table_iter_next(&local_d0)" identifier (argument_list "(&local_d0)" ( (pointer_expression "&local_d0" & identifier) )))) ;) (if_statement "if (iVar2 == 0) goto LAB_000311c8;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000311c8;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);" (assignment_expression "iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" identifier = (call_expression "(*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000afe0c)" ( (pointer_expression "*(code *)PTR___fprintf_chk_000afe0c" * (cast_expression "(code *)PTR___fprintf_chk_000afe0c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" ( identifier , number_literal , identifier , (pointer_expression "*local_d0" * identifier) , (subscript_expression "local_d0[1]" identifier [ number_literal ]) , (pointer_expression "*(undefined1 *)(local_cc + 2)" * (cast_expression "(undefined1 *)(local_cc + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_cc + 2)" ( (binary_expression "local_cc + 2" identifier + number_literal) )))) , (pointer_expression "*local_cc" * identifier) , (subscript_expression "local_cc[1]" identifier [ number_literal ]) )))) ;) }) while (parenthesized_expression "(-1 < iVar2)" ( (binary_expression "-1 < iVar2" number_literal < identifier) )) ;) (expression_statement "logprintf(3,PTR_s_hallenge__000af46c + -0xabc);" (call_expression "logprintf(3,PTR_s_hallenge__000af46c + -0xabc)" identifier (argument_list "(3,PTR_s_hallenge__000af46c + -0xabc)" ( number_literal , (binary_expression "PTR_s_hallenge__000af46c + -0xabc" identifier + number_literal) ))) ;) (labeled_statement "LAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();" statement_identifier : (expression_statement "(*(code *)PTR_fclose_000afc8c)();" (call_expression "(*(code *)PTR_fclose_000afc8c)()" (parenthesized_expression "(*(code *)PTR_fclose_000afc8c)" ( (pointer_expression "*(code *)PTR_fclose_000afc8c" * (cast_expression "(code *)PTR_fclose_000afc8c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (expression_statement "piVar5 = piVar3;" (assignment_expression "piVar5 = piVar3" identifier = identifier) ;) })) })) (if_statement "if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }" if (parenthesized_expression "(local_1c == *(uint *)puVar1)" ( (binary_expression "local_1c == *(uint *)puVar1" identifier == (pointer_expression "*(uint *)puVar1" * (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(uint *)puVar1;\n  }" { (return_statement "return *(uint *)puVar1;" return (pointer_expression "*(uint *)puVar1" * (cast_expression "(uint *)puVar1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" * (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n    return 0;\n  }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (return_statement "return (uint)*(byte *)(piVar5 + 2);" return (binary_expression "(uint)*(byte *)(piVar5 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(piVar5 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 2)" ( (binary_expression "piVar5 + 2" identifier + number_literal) )))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (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 ( IDENT , (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (compound_statement { (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT )))) , (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) )))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) )))) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (return_statement return (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })))
(function_definition "uint hsts_store_save(int *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}" (type_identifier "uint") (function_declarator "hsts_store_save(int *param_1,int *param_2)" (identifier "hsts_store_save") (parameter_list "(int *param_1,int *param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 uVar4;\n  int *piVar5;\n  undefined *puVar6;\n  undefined4 *local_d0;\n  undefined4 *local_cc;\n  undefined1 auStack_c0 [72];\n  int local_78;\n  uint local_1c;\n  \n  puVar1 = PTR___stack_chk_guard_000afc3c;\n  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;\n  piVar5 = param_1;\n  if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }\n  if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }\n  (*(code *)PTR___stack_chk_fail_000afbd4)();\n  if (piVar5 == (int *)0x0) {\n    return 0;\n  }\n  return (uint)*(byte *)(piVar5 + 2);\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 *local_d0;" (type_identifier "undefined4") (pointer_declarator "*local_d0" (* "*") (identifier "local_d0")) (; ";")) (declaration "undefined4 *local_cc;" (type_identifier "undefined4") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")) (; ";")) (declaration "undefined1 auStack_c0 [72];" (type_identifier "undefined1") (array_declarator "auStack_c0 [72]" (identifier "auStack_c0") ([ "[") (number_literal "72") (] "]")) (; ";")) (declaration "int local_78;" (primitive_type "int") (identifier "local_78") (; ";")) (declaration "uint local_1c;" (type_identifier "uint") (identifier "local_1c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000afc3c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000afc3c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000afc3c")) (; ";")) (expression_statement "local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;" (assignment_expression "local_1c = *(uint *)PTR___stack_chk_guard_000afc3c" (identifier "local_1c") (= "=") (pointer_expression "*(uint *)PTR___stack_chk_guard_000afc3c" (* "*") (cast_expression "(uint *)PTR___stack_chk_guard_000afc3c" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000afc3c")))) (; ";")) (expression_statement "piVar5 = param_1;" (assignment_expression "piVar5 = param_1" (identifier "piVar5") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar5 = (int *)*param_1;\n    iVar2 = hash_table_count();\n    if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }\n  }" ({ "{") (expression_statement "piVar5 = (int *)*param_1;" (assignment_expression "piVar5 = (int *)*param_1" (identifier "piVar5") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "iVar2 = hash_table_count();" (assignment_expression "iVar2 = hash_table_count()" (identifier "iVar2") (= "=") (call_expression "hash_table_count()" (identifier "hash_table_count") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)) {\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }" (if "if") (parenthesized_expression "((0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0))" (( "(") (binary_expression "(0 < iVar2) &&\n       (piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)" (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (&& "&&") (parenthesized_expression "(piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0)" (( "(") (comma_expression "piVar5 = param_2,\n       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0" (assignment_expression "piVar5 = param_2" (identifier "piVar5") (= "=") (identifier "param_2")) (, ",") (comma_expression "piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),\n       piVar3 != (int *)0x0" (assignment_expression "piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c)" (parenthesized_expression "(*(code *)PTR_fopen64_000afaac)" (( "(") (pointer_expression "*(code *)PTR_fopen64_000afaac" (* "*") (cast_expression "(code *)PTR_fopen64_000afaac" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fopen64_000afaac"))) () ")")) (argument_list "(param_2,PTR_s_hallenge__000af46c + -0xb5c)" (( "(") (identifier "param_2") (, ",") (binary_expression "PTR_s_hallenge__000af46c + -0xb5c" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0xb5c")) () ")"))))) (, ",") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (compound_statement "{\n      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);\n      (*(code *)PTR_flock_000afb40)(uVar4,2);\n      if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }\n      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);\n      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);\n      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);\n      hash_table_iterate(*param_1,&local_d0);\n      puVar6 = PTR_s_hallenge__000af46c + -0xad0;\n      do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);\n      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);\nLAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();\n      piVar5 = piVar3;\n    }" ({ "{") (expression_statement "uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);" (assignment_expression "uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3)" (identifier "uVar4") (= "=") (call_expression "(*(code *)PTR_fileno_000afea0)(piVar3)" (parenthesized_expression "(*(code *)PTR_fileno_000afea0)" (( "(") (pointer_expression "*(code *)PTR_fileno_000afea0" (* "*") (cast_expression "(code *)PTR_fileno_000afea0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fileno_000afea0"))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_flock_000afb40)(uVar4,2);" (call_expression "(*(code *)PTR_flock_000afb40)(uVar4,2)" (parenthesized_expression "(*(code *)PTR_flock_000afb40)" (( "(") (pointer_expression "*(code *)PTR_flock_000afb40" (* "*") (cast_expression "(code *)PTR_flock_000afb40" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_flock_000afb40"))) () ")")) (argument_list "(uVar4,2)" (( "(") (identifier "uVar4") (, ",") (number_literal "2") () ")"))) (; ";")) (if_statement "if ((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))) {\n        FUN_00030588(param_1,piVar3,1);\n      }" (if "if") (parenthesized_expression "((param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78))))" (( "(") (binary_expression "(param_1[1] != 0) &&\n         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))" (parenthesized_expression "(param_1[1] != 0)" (( "(") (binary_expression "param_1[1] != 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)))" (( "(") (parenthesized_expression "(iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78))" (( "(") (comma_expression "iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&\n          (param_1[1] < local_78)" (assignment_expression "iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0)" (parenthesized_expression "(*(code *)PTR___xstat64_000afddc)" (( "(") (pointer_expression "*(code *)PTR___xstat64_000afddc" (* "*") (cast_expression "(code *)PTR___xstat64_000afddc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___xstat64_000afddc"))) () ")")) (argument_list "(3,param_2,auStack_c0)" (( "(") (number_literal "3") (, ",") (identifier "param_2") (, ",") (identifier "auStack_c0") () ")")))) (, ",") (binary_expression "iVar2 == 0 &&\n          (param_1[1] < local_78)" (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(param_1[1] < local_78)" (( "(") (binary_expression "param_1[1] < local_78" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (< "<") (identifier "local_78")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n        FUN_00030588(param_1,piVar3,1);\n      }" ({ "{") (expression_statement "FUN_00030588(param_1,piVar3,1);" (call_expression "FUN_00030588(param_1,piVar3,1)" (identifier "FUN_00030588") (argument_list "(param_1,piVar3,1)" (( "(") (identifier "param_1") (, ",") (identifier "piVar3") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);" (call_expression "(*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0)" (parenthesized_expression "(*(code *)PTR_rpl_fseek_000af810)" (( "(") (pointer_expression "*(code *)PTR_rpl_fseek_000af810" (* "*") (cast_expression "(code *)PTR_rpl_fseek_000af810" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_rpl_fseek_000af810"))) () ")")) (argument_list "(piVar3,0,0)" (( "(") (identifier "piVar3") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_ftruncate64_000afcb8)(uVar4);" (call_expression "(*(code *)PTR_ftruncate64_000afcb8)(uVar4)" (parenthesized_expression "(*(code *)PTR_ftruncate64_000afcb8)" (( "(") (pointer_expression "*(code *)PTR_ftruncate64_000afcb8" (* "*") (cast_expression "(code *)PTR_ftruncate64_000afcb8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ftruncate64_000afcb8"))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" (( "(") (pointer_expression "*(code *)PTR_fwrite_000afbfc" (* "*") (cast_expression "(code *)PTR_fwrite_000afbfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_000afbfc"))) () ")")) (argument_list "(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + -0xb58" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0xb58")) (, ",") (number_literal "1") (, ",") (number_literal "0x2e") (, ",") (identifier "piVar3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" (( "(") (pointer_expression "*(code *)PTR_fwrite_000afbfc" (* "*") (cast_expression "(code *)PTR_fwrite_000afbfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_000afbfc"))) () ")")) (argument_list "(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + -0xb28" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0xb28")) (, ",") (number_literal "1") (, ",") (number_literal "0x19") (, ",") (identifier "piVar3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);" (call_expression "(*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3)" (parenthesized_expression "(*(code *)PTR_fwrite_000afbfc)" (( "(") (pointer_expression "*(code *)PTR_fwrite_000afbfc" (* "*") (cast_expression "(code *)PTR_fwrite_000afbfc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fwrite_000afbfc"))) () ")")) (argument_list "(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3)" (( "(") (binary_expression "PTR_s_hallenge__000af46c + -0xb0c" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0xb0c")) (, ",") (number_literal "1") (, ",") (number_literal "0x3b") (, ",") (identifier "piVar3") () ")"))) (; ";")) (expression_statement "hash_table_iterate(*param_1,&local_d0);" (call_expression "hash_table_iterate(*param_1,&local_d0)" (identifier "hash_table_iterate") (argument_list "(*param_1,&local_d0)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")) () ")"))) (; ";")) (expression_statement "puVar6 = PTR_s_hallenge__000af46c + -0xad0;" (assignment_expression "puVar6 = PTR_s_hallenge__000af46c + -0xad0" (identifier "puVar6") (= "=") (binary_expression "PTR_s_hallenge__000af46c + -0xad0" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0xad0"))) (; ";")) (do_statement "do {\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      } while (-1 < iVar2);" (do "do") (compound_statement "{\n        iVar2 = hash_table_iter_next(&local_d0);\n        if (iVar2 == 0) goto LAB_000311c8;\n        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);\n      }" ({ "{") (expression_statement "iVar2 = hash_table_iter_next(&local_d0);" (assignment_expression "iVar2 = hash_table_iter_next(&local_d0)" (identifier "iVar2") (= "=") (call_expression "hash_table_iter_next(&local_d0)" (identifier "hash_table_iter_next") (argument_list "(&local_d0)" (( "(") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_000311c8;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000311c8;" (goto "goto") (statement_identifier "LAB_000311c8") (; ";"))) (expression_statement "iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1]);" (assignment_expression "iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR___fprintf_chk_000afe0c)\n                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" (parenthesized_expression "(*(code *)PTR___fprintf_chk_000afe0c)" (( "(") (pointer_expression "*(code *)PTR___fprintf_chk_000afe0c" (* "*") (cast_expression "(code *)PTR___fprintf_chk_000afe0c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___fprintf_chk_000afe0c"))) () ")")) (argument_list "(piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),\n                           *local_cc,local_cc[1])" (( "(") (identifier "piVar3") (, ",") (number_literal "1") (, ",") (identifier "puVar6") (, ",") (pointer_expression "*local_d0" (* "*") (identifier "local_d0")) (, ",") (subscript_expression "local_d0[1]" (identifier "local_d0") ([ "[") (number_literal "1") (] "]")) (, ",") (pointer_expression "*(undefined1 *)(local_cc + 2)" (* "*") (cast_expression "(undefined1 *)(local_cc + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_cc + 2)" (( "(") (binary_expression "local_cc + 2" (identifier "local_cc") (+ "+") (number_literal "2")) () ")")))) (, ",") (pointer_expression "*local_cc" (* "*") (identifier "local_cc")) (, ",") (subscript_expression "local_cc[1]" (identifier "local_cc") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(-1 < iVar2)" (( "(") (binary_expression "-1 < iVar2" (number_literal "-1") (< "<") (identifier "iVar2")) () ")")) (; ";")) (expression_statement "logprintf(3,PTR_s_hallenge__000af46c + -0xabc);" (call_expression "logprintf(3,PTR_s_hallenge__000af46c + -0xabc)" (identifier "logprintf") (argument_list "(3,PTR_s_hallenge__000af46c + -0xabc)" (( "(") (number_literal "3") (, ",") (binary_expression "PTR_s_hallenge__000af46c + -0xabc" (identifier "PTR_s_hallenge__000af46c") (+ "+") (number_literal "-0xabc")) () ")"))) (; ";")) (labeled_statement "LAB_000311c8:\n      (*(code *)PTR_fclose_000afc8c)();" (statement_identifier "LAB_000311c8") (: ":") (expression_statement "(*(code *)PTR_fclose_000afc8c)();" (call_expression "(*(code *)PTR_fclose_000afc8c)()" (parenthesized_expression "(*(code *)PTR_fclose_000afc8c)" (( "(") (pointer_expression "*(code *)PTR_fclose_000afc8c" (* "*") (cast_expression "(code *)PTR_fclose_000afc8c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fclose_000afc8c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "piVar5 = piVar3;" (assignment_expression "piVar5 = piVar3" (identifier "piVar5") (= "=") (identifier "piVar3")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (local_1c == *(uint *)puVar1) {\n    return *(uint *)puVar1;\n  }" (if "if") (parenthesized_expression "(local_1c == *(uint *)puVar1)" (( "(") (binary_expression "local_1c == *(uint *)puVar1" (identifier "local_1c") (== "==") (pointer_expression "*(uint *)puVar1" (* "*") (cast_expression "(uint *)puVar1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return *(uint *)puVar1;\n  }" ({ "{") (return_statement "return *(uint *)puVar1;" (return "return") (pointer_expression "*(uint *)puVar1" (* "*") (cast_expression "(uint *)puVar1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000afbd4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000afbd4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000afbd4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000afbd4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000afbd4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000afbd4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (return_statement "return (uint)*(byte *)(piVar5 + 2);" (return "return") (binary_expression "(uint)*(byte *)(piVar5 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(piVar5 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 2)" (( "(") (binary_expression "piVar5 + 2" (identifier "piVar5") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")))

void function_1(type_1 store,char *var_2)

{
  int var_11;
  int var_4;
  type_2 *var_5;
  type_3 uVar3;
  int var_9;
  type_2 *var_12;
  int *piVar5;
  int var_1;
  type_4 *pcVar6;
  type_5 it;
  type_6 st;
  
  piVar5 = *(int **)(var_1 + 0x7ec58);
  var_11 = *piVar5;
  var_12 = (type_2 *)store;
  if (var_2 == (char *)0x0) goto LAB_0003103c;
  var_12 = (type_2 *)store->table;
  var_4 = var_3((type_7 *)var_12);
  if (var_4 < 1) goto LAB_0003103c;
  var_12 = (type_2 *)var_2;
  var_5 = (type_2 *)(**(type_4 **)(var_1 + 0x7eac8))(var_2,*(int *)(var_1 + 0x7e488) + -0xb5c);
  if (var_5 == (type_2 *)0x0) goto LAB_0003103c;
  uVar3 = (**(type_4 **)(var_1 + 0x7eebc))(var_5);
  (**(type_4 **)(var_1 + 0x7eb5c))(uVar3,2);
  if (store->last_mtime == 0) {
LAB_000310b8:
    pcVar6 = *(type_4 **)(var_1 + 0x7e82c);
  }
  else {
    var_4 = (**(type_4 **)(var_1 + 0x7edf8))(3,var_2,&st);
    if (var_4 != 0) goto LAB_000310b8;
    pcVar6 = *(type_4 **)(var_1 + 0x7e82c);
    if (store->last_mtime < st.st_mtim.tv_sec) {
      var_6(store,var_5,true);
      goto LAB_000310b8;
    }
  }
  (*pcVar6)(var_5,0,0);
  (**(type_4 **)(var_1 + 0x7ecd4))(uVar3);
  (**(type_4 **)(var_1 + 0x7ec18))(*(int *)(var_1 + 0x7e488) + -0xb58,1,0x2e,var_5);
  (**(type_4 **)(var_1 + 0x7ec18))(*(int *)(var_1 + 0x7e488) + -0xb28,1,0x19,var_5);
  (**(type_4 **)(var_1 + 0x7ec18))(*(int *)(var_1 + 0x7e488) + -0xb0c,1,0x3b,var_5);
  var_7(store->table,&it);
  var_4 = *(int *)(var_1 + 0x7e488);
  while( true ) {
    var_9 = var_8(&it);
    if (var_9 == 0) break;
                    /* WARNING: Load size is inaccurate */
                    /* WARNING: Load size is inaccurate */
    var_9 = (**(type_4 **)(var_1 + 0x7ee28))
                      (var_5,1,var_4 + -0xad0,*it.key,*(type_3 *)((int)it.key + 4),
                       *(type_8 *)((int)it.value + 8),*it.value,
                       *(type_3 *)((int)it.value + 4));
    if (var_9 < 0) {
                    /* WARNING: Subroutine does not return */
      var_10(LOG_ALWAYS,(char *)(*(int *)(var_1 + 0x7e488) + -0xabc));
    }
  }
  (**(type_4 **)(var_1 + 0x7eca8))();
  var_12 = var_5;
LAB_0003103c:
  if (var_11 == *piVar5) {
    return;
  }
  (**(type_4 **)(var_1 + 0x7ebf0))();
  if (var_12 != (type_2 *)0x0) {
    return;
  }
  return;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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 (identifier) (binary_expression left: (identifier) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) consequence: (compound_statement (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 (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) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (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 (number_literal) (identifier) (identifier)))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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) (number_literal) (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 (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) (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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) (number_literal) (identifier) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)) (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))))) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal)))) (return_statement (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))

uint MASKED(int *param_1,int *param_2)

{
  undefined *puVar1;
  int iVar2;
  int *piVar3;
  undefined4 uVar4;
  int *piVar5;
  undefined *puVar6;
  undefined4 *local_d0;
  undefined4 *local_cc;
  undefined1 auStack_c0 [72];
  int local_78;
  uint local_1c;
  
  puVar1 = PTR___stack_chk_guard_000afc3c;
  local_1c = *(uint *)PTR___stack_chk_guard_000afc3c;
  piVar5 = param_1;
  if (param_2 != (int *)0x0) {
    piVar5 = (int *)*param_1;
    iVar2 = hash_table_count();
    if ((0 < iVar2) &&
       (piVar5 = param_2,
       piVar3 = (int *)(*(code *)PTR_fopen64_000afaac)(param_2,PTR_s_hallenge__000af46c + -0xb5c),
       piVar3 != (int *)0x0)) {
      uVar4 = (*(code *)PTR_fileno_000afea0)(piVar3);
      (*(code *)PTR_flock_000afb40)(uVar4,2);
      if ((param_1[1] != 0) &&
         ((iVar2 = (*(code *)PTR___xstat64_000afddc)(3,param_2,auStack_c0), iVar2 == 0 &&
          (param_1[1] < local_78)))) {
        FUN_00030588(param_1,piVar3,1);
      }
      (*(code *)PTR_rpl_fseek_000af810)(piVar3,0,0);
      (*(code *)PTR_ftruncate64_000afcb8)(uVar4);
      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb58,1,0x2e,piVar3);
      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb28,1,0x19,piVar3);
      (*(code *)PTR_fwrite_000afbfc)(PTR_s_hallenge__000af46c + -0xb0c,1,0x3b,piVar3);
      hash_table_iterate(*param_1,&local_d0);
      puVar6 = PTR_s_hallenge__000af46c + -0xad0;
      do {
        iVar2 = hash_table_iter_next(&local_d0);
        if (iVar2 == 0) goto LAB_000311c8;
        iVar2 = (*(code *)PTR___fprintf_chk_000afe0c)
                          (piVar3,1,puVar6,*local_d0,local_d0[1],*(undefined1 *)(local_cc + 2),
                           *local_cc,local_cc[1]);
      } while (-1 < iVar2);
      logprintf(3,PTR_s_hallenge__000af46c + -0xabc);
LAB_000311c8:
      (*(code *)PTR_fclose_000afc8c)();
      piVar5 = piVar3;
    }
  }
  if (local_1c == *(uint *)puVar1) {
    return *(uint *)puVar1;
  }
  (*(code *)PTR___stack_chk_fail_000afbd4)();
  if (piVar5 == (int *)0x0) {
    return 0;
  }
  return (uint)*(byte *)(piVar5 + 2);
}

