
_Bool hash_rehash(Hash_table *table,size_t candidate)

{
  undefined *puVar1;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  undefined3 extraout_var_01;
  size_t sVar2;
  _Bool _Var3;
  undefined1 uVar4;
  int iVar5;
  int iVar6;
  Hash_tuning *pHVar7;
  double dVar8;
  float fVar9;
  Hash_table storage;
  
  puVar1 = PTR___stack_chk_guard_000333c4;
  pHVar7 = table->tuning;
  iVar5 = *(int *)PTR___stack_chk_guard_000333c4;
  if (pHVar7->is_n_buckets == false) {
    dVar8 = (double)(int)candidate;
    if ((int)candidate < 0) {
      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);
    }
    fVar9 = (float)dVar8 / pHVar7->growth_threshold;
    if (fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {
      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {
        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;
      }
      else {
        candidate = (size_t)fVar9;
      }
      goto LAB_0001d66c;
    }
LAB_0001d780:
    iVar6 = 0;
  }
  else {
LAB_0001d66c:
    sVar2 = next_prime(candidate);
    if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;
    if (table->n_buckets == sVar2) {
      iVar6 = 1;
    }
    else {
      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);
      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;
      storage.hasher = table->hasher;
      storage.bucket_limit = storage.bucket + sVar2;
      storage.comparator = table->comparator;
      storage.data_freer = table->data_freer;
      storage.free_entry_list = table->free_entry_list;
      storage.n_buckets_used = 0;
      storage.n_entries = 0;
      storage.n_buckets = sVar2;
      storage.tuning = pHVar7;
      _Var3 = transfer_entries(&storage,table,false);
      iVar6 = CONCAT31(extraout_var,_Var3);
      if (iVar6 == 0) {
        table->free_entry_list = storage.free_entry_list;
        _Var3 = transfer_entries(table,&storage,true);
        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||
           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))
        goto LAB_0001d824;
        (*(code *)PTR_free_000333cc)(storage.bucket);
      }
      else {
        (*(code *)PTR_free_000333cc)(table->bucket);
        table->bucket = storage.bucket;
        table->bucket_limit = storage.bucket_limit;
        table->n_buckets = storage.n_buckets;
        table->n_buckets_used = storage.n_buckets_used;
        table->free_entry_list = storage.free_entry_list;
      }
    }
  }
  if (iVar5 == *(int *)puVar1) {
    return SUB41(iVar6,0);
  }
  (*(code *)PTR___stack_chk_fail_000333a8)();
LAB_0001d824:
  uVar4 = (*(code *)PTR_abort_000332d0)();
  return (_Bool)uVar4;
}



int hash_rehash(int *param_1,uint param_2)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  double dVar5;
  float fVar6;
  int local_4c;
  int local_48;
  uint local_44;
  int local_40;
  undefined4 local_3c;
  int local_38;
  int local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_000333c4;
  iVar4 = param_1[5];
  local_24 = *(int *)PTR___stack_chk_guard_000333c4;
  if (*(char *)(iVar4 + 0x10) == '\0') {
    dVar5 = (double)(int)param_2;
    if ((int)param_2 < 0) {
      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);
    }
    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);
    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {
      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {
        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;
      }
      else {
        param_2 = (uint)fVar6;
      }
      goto LAB_0001d66c;
    }
LAB_0001d780:
    iVar4 = 0;
  }
  else {
LAB_0001d66c:
    uVar2 = FUN_0001c690(param_2);
    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;
    if (param_1[2] == uVar2) {
      iVar4 = 1;
    }
    else {
      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);
      if (local_4c == 0) goto LAB_0001d780;
      local_34 = param_1[6];
      local_48 = local_4c + uVar2 * 8;
      local_30 = param_1[7];
      local_2c = param_1[8];
      local_28 = param_1[9];
      local_40 = 0;
      local_3c = 0;
      local_44 = uVar2;
      local_38 = iVar4;
      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);
      if (iVar4 == 0) {
        param_1[9] = local_28;
        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);
        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))
        goto LAB_0001d824;
        (*(code *)PTR_free_000333cc)(local_4c);
      }
      else {
        (*(code *)PTR_free_000333cc)(*param_1);
        *param_1 = local_4c;
        param_1[1] = local_48;
        param_1[2] = local_44;
        param_1[3] = local_40;
        param_1[9] = local_28;
      }
    }
  }
  if (local_24 == *(int *)puVar1) {
    return iVar4;
  }
  (*(code *)PTR___stack_chk_fail_000333a8)();
LAB_0001d824:
  iVar4 = (*(code *)PTR_abort_000332d0)();
  return iVar4;
}


lui gp,0x2
addiu gp,gp,-0x24f8
addu gp,gp,t9
addiu sp,sp,-0x68
sw s3,0x58(sp)
sw s2,0x54(sp)
lw s3,0x14(a0)
lw s2,-0x7d0c(gp)
sw gp,0x10(sp)
sw s1,0x50(sp)
or s1,a0,zero
sw ra,0x64(sp)
sw s5,0x60(sp)
sw s4,0x5c(sp)
sw s0,0x4c(sp)
lw v1,0x0(s2)
lbu v0,0x10(s3)
sw v1,0x44(sp)
bne v0,zero,0x0001d66c
_lw t9,-0x7fc8(gp)
mtc1 a1,f0
bltz a1,0x0001d7b8
_cvt.d.W f0,f0
lwc1 f2,0x8(s3)
cvt.s.D f0,f0
lw v0,-0x7fc8(gp)
div.S f0,f0,f2
lwc1 f2,0x2018(v0)
c.le.S f2,f0
bc1t 0x0001d780
_lw v0,-0x7fc8(gp)
lwc1 f2,0x201c(v0)
c.le.S f2,f0
bc1f 0x1,0x0001d7c8
_nop
sub.S S f0,f0,f2
lui v0,0x8000
trunc.w.S f0,f0
mfc1 a1,f0
or a1,a1,v0
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x3970
bal 0x0001c690
_or a0,a1,zero
or s0,v0,zero
lw gp,0x10(sp)
srl v0,v0,0x1e
sll v1,s0,0x2
bltz v1,0x0001d780
_sltu v0,zero,v0
bne v0,zero,0x0001d780
_nop
beq s0,zero,0x0001d780
_nop
lw v0,0x8(s1)
beq v0,s0,0x0001d7d4
_lw t9,-0x7e28(gp)
li a1,0x8
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
beq v0,zero,0x0001d780
_sw v0,0x1c(sp)
sll v1,s0,0x3
lw s4,-0x7fc8(gp)
lw t1,0x18(s1)
addiu s5,sp,0x1c
addu v0,v0,v1
lw t0,0x1c(s1)
lw a3,0x20(s1)
addiu s4,s4,-0x3644
lw v1,0x24(s1)
or a2,zero,zero
sw s0,0x24(sp)
or a1,s1,zero
or a0,s5,zero
sw v0,0x20(sp)
sw zero,0x28(sp)
or t9,s4,zero
sw zero,0x2c(sp)
sw s3,0x30(sp)
sw t1,0x34(sp)
sw t0,0x38(sp)
sw a3,0x3c(sp)
bal 0x0001c9bc
_sw v1,0x40(sp)
lw gp,0x10(sp)
bne v0,zero,0x0001d7dc
_or s0,v0,zero
lw v0,0x40(sp)
li a2,0x1
or a1,s5,zero
or a0,s1,zero
or t9,s4,zero
bal 0x0001c9bc
_sw v0,0x24(s1)
beq v0,zero,0x0001d824
_lw gp,0x10(sp)
or a2,zero,zero
or a1,s5,zero
or t9,s4,zero
bal 0x0001c9bc
_or a0,s1,zero
beq v0,zero,0x0001d824
_lw gp,0x10(sp)
lw t9,-0x7d04(gp)
jalr t9
_lw a0,0x1c(sp)
b 0x0001d784
_lw gp,0x10(sp)
or s0,zero,zero
lw a0,0x44(sp)
or v0,s0,zero
lw v1,0x0(s2)
bne a0,v1,0x0001d818
_lw ra,0x64(sp)
lw s5,0x60(sp)
lw s4,0x5c(sp)
lw s3,0x58(sp)
lw s2,0x54(sp)
lw s1,0x50(sp)
lw s0,0x4c(sp)
jr ra
_addiu sp,sp,0x68
lw v0,-0x7fc8(gp)
ldc1 f2,0x2020(v0)
b 0x0001d624
_add.D f0,f0,f2
trunc.w.S f0,f0
b 0x0001d668
_mfc1 a1,f0
b 0x0001d784
_li s0,0x1
lw t9,-0x7d04(gp)
jalr t9
_lw a0,0x0(s1)
lw v0,0x1c(sp)
lw gp,0x10(sp)
sw v0,0x0(s1)
lw v0,0x20(sp)
sw v0,0x4(s1)
lw v0,0x24(sp)
sw v0,0x8(s1)
lw v0,0x28(sp)
sw v0,0xc(s1)
lw v0,0x40(sp)
b 0x0001d784
_sw v0,0x24(s1)
lw t9,-0x7d28(gp)
jalr t9
_nop
lw t9,-0x7e00(gp)
jalr t9
_nop
(translation_unit "int hash_rehash(int *param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}\n\n" (function_definition "int hash_rehash(int *param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}" primitive_type (function_declarator "hash_rehash(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000333c4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000333c4" identifier = identifier) ;) (expression_statement "iVar4 = param_1[5];" (assignment_expression "iVar4 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000333c4;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000333c4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000333c4" * (cast_expression "(int *)PTR___stack_chk_guard_000333c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0x10) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x10)" * (cast_expression "(char *)(iVar4 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }" { (expression_statement "dVar5 = (double)(int)param_2;" (assignment_expression "dVar5 = (double)(int)param_2" identifier = (cast_expression "(double)(int)param_2" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" if (parenthesized_expression "((int)param_2 < 0)" ( (binary_expression "(int)param_2 < 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" { (expression_statement "dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);" (assignment_expression "dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" identifier = (binary_expression "dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" identifier + (pointer_expression "*(double *)(PTR_fdopendir_00033108 + 0x2020)" * (cast_expression "(double *)(PTR_fdopendir_00033108 + 0x2020)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2020)" ( (binary_expression "PTR_fdopendir_00033108 + 0x2020" identifier + number_literal) )))))) ;) })) (expression_statement "fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);" (assignment_expression "fVar6 = (float)dVar5 / *(float *)(iVar4 + 8)" identifier = (binary_expression "(float)dVar5 / *(float *)(iVar4 + 8)" (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier) / (pointer_expression "*(float *)(iVar4 + 8)" * (cast_expression "(float *)(iVar4 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))))) ;) (if_statement "if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }" if (parenthesized_expression "(fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018))" ( (binary_expression "fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)" identifier < (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x2018)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x2018)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2018)" ( (binary_expression "PTR_fdopendir_00033108 + 0x2018" identifier + number_literal) ))))) )) (compound_statement "{\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }" { (if_statement "if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }" if (parenthesized_expression "(*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6)" ( (binary_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6" (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" ( (binary_expression "PTR_fdopendir_00033108 + 0x201c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }" { (expression_statement "param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;" (assignment_expression "param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" identifier = (binary_expression "(int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" (cast_expression "(int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" ( (binary_expression "fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)" identifier - (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" ( (binary_expression "PTR_fdopendir_00033108 + 0x201c" identifier + number_literal) ))))) ))) | number_literal)) ;) }) (else_clause "else {\n        param_2 = (uint)fVar6;\n      }" else (compound_statement "{\n        param_2 = (uint)fVar6;\n      }" { (expression_statement "param_2 = (uint)fVar6;" (assignment_expression "param_2 = (uint)fVar6" identifier = (cast_expression "(uint)fVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (goto_statement "goto LAB_0001d66c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d780:\n    iVar4 = 0;" statement_identifier : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" else (compound_statement "{\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" { (labeled_statement "LAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);" statement_identifier : (expression_statement "uVar2 = FUN_0001c690(param_2);" (assignment_expression "uVar2 = FUN_0001c690(param_2)" identifier = (call_expression "FUN_0001c690(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;" if (parenthesized_expression "((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0))" ( (binary_expression "(((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)" (parenthesized_expression "(((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0))" ( (binary_expression "((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar2 << 2) < 0)" ( (binary_expression "(int)(uVar2 << 2) < 0" (cast_expression "(int)(uVar2 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 2)" ( (binary_expression "uVar2 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar2 >> 0x1e != 0)" ( (binary_expression "uVar2 >> 0x1e != 0" (binary_expression "uVar2 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) || (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0001d780;" goto statement_identifier ;)) (if_statement "if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" if (parenthesized_expression "(param_1[2] == uVar2)" ( (binary_expression "param_1[2] == uVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n      iVar4 = 1;\n    }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" else (compound_statement "{\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" { (expression_statement "local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);" (assignment_expression "local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8)" identifier = (call_expression "(*(code *)PTR_calloc_000332a8)(uVar2,8)" (parenthesized_expression "(*(code *)PTR_calloc_000332a8)" ( (pointer_expression "*(code *)PTR_calloc_000332a8" * (cast_expression "(code *)PTR_calloc_000332a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,8)" ( identifier , number_literal )))) ;) (if_statement "if (local_4c == 0) goto LAB_0001d780;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d780;" goto statement_identifier ;)) (expression_statement "local_34 = param_1[6];" (assignment_expression "local_34 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "local_48 = local_4c + uVar2 * 8;" (assignment_expression "local_48 = local_4c + uVar2 * 8" identifier = (binary_expression "local_4c + uVar2 * 8" identifier + (binary_expression "uVar2 * 8" identifier * number_literal))) ;) (expression_statement "local_30 = param_1[7];" (assignment_expression "local_30 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "local_2c = param_1[8];" (assignment_expression "local_2c = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[9];" (assignment_expression "local_28 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_44 = uVar2;" (assignment_expression "local_44 = uVar2" identifier = identifier) ;) (expression_statement "local_38 = iVar4;" (assignment_expression "local_38 = iVar4" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0001c9bc(&local_4c,param_1,0);" (assignment_expression "iVar4 = FUN_0001c9bc(&local_4c,param_1,0)" identifier = (call_expression "FUN_0001c9bc(&local_4c,param_1,0)" identifier (argument_list "(&local_4c,param_1,0)" ( (pointer_expression "&local_4c" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }" { (expression_statement "param_1[9] = local_28;" (assignment_expression "param_1[9] = local_28" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = FUN_0001c9bc(param_1,&local_4c,1);" (assignment_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,1)" identifier = (call_expression "FUN_0001c9bc(param_1,&local_4c,1)" identifier (argument_list "(param_1,&local_4c,1)" ( identifier , (pointer_expression "&local_4c" & identifier) , number_literal )))) ;) (if_statement "if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;" if (parenthesized_expression "((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0" (assignment_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,0)" identifier = (call_expression "FUN_0001c9bc(param_1,&local_4c,0)" identifier (argument_list "(param_1,&local_4c,0)" ( identifier , (pointer_expression "&local_4c" & identifier) , number_literal )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0001d824;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_000333cc)(local_4c);" (call_expression "(*(code *)PTR_free_000333cc)(local_4c)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_4c)" ( identifier ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" else (compound_statement "{\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" { (expression_statement "(*(code *)PTR_free_000333cc)(*param_1);" (call_expression "(*(code *)PTR_free_000333cc)(*param_1)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) (expression_statement "*param_1 = local_4c;" (assignment_expression "*param_1 = local_4c" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_48;" (assignment_expression "param_1[1] = local_48" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_44;" (assignment_expression "param_1[2] = local_44" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_40;" (assignment_expression "param_1[3] = local_40" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = local_28;" (assignment_expression "param_1[9] = local_28" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) }))) }))) }))) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar1)" ( (binary_expression "local_24 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000333a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333a8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000333a8" * (cast_expression "(code *)PTR___stack_chk_fail_000333a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_abort_000332d0)();" (assignment_expression "iVar4 = (*(code *)PTR_abort_000332d0)()" identifier = (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" ( (pointer_expression "*(code *)PTR_abort_000332d0" * (cast_expression "(code *)PTR_abort_000332d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "_Bool hash_rehash(Hash_table *table,size_t candidate)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  size_t sVar2;\n  _Bool _Var3;\n  undefined1 uVar4;\n  int iVar5;\n  int iVar6;\n  Hash_tuning *pHVar7;\n  double dVar8;\n  float fVar9;\n  Hash_table storage;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  pHVar7 = table->tuning;\n  iVar5 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (pHVar7->is_n_buckets == false) {\n    dVar8 = (double)(int)candidate;\n    if ((int)candidate < 0) {\n      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar9 = (float)dVar8 / pHVar7->growth_threshold;\n    if (fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar6 = 0;\n  }\n  else {\nLAB_0001d66c:\n    sVar2 = next_prime(candidate);\n    if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;\n    if (table->n_buckets == sVar2) {\n      iVar6 = 1;\n    }\n    else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }\n  }\n  if (iVar5 == *(int *)puVar1) {\n    return SUB41(iVar6,0);\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  uVar4 = (*(code *)PTR_abort_000332d0)();\n  return (_Bool)uVar4;\n}\n\n" (function_definition "_Bool hash_rehash(Hash_table *table,size_t candidate)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  size_t sVar2;\n  _Bool _Var3;\n  undefined1 uVar4;\n  int iVar5;\n  int iVar6;\n  Hash_tuning *pHVar7;\n  double dVar8;\n  float fVar9;\n  Hash_table storage;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  pHVar7 = table->tuning;\n  iVar5 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (pHVar7->is_n_buckets == false) {\n    dVar8 = (double)(int)candidate;\n    if ((int)candidate < 0) {\n      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar9 = (float)dVar8 / pHVar7->growth_threshold;\n    if (fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar6 = 0;\n  }\n  else {\nLAB_0001d66c:\n    sVar2 = next_prime(candidate);\n    if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;\n    if (table->n_buckets == sVar2) {\n      iVar6 = 1;\n    }\n    else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }\n  }\n  if (iVar5 == *(int *)puVar1) {\n    return SUB41(iVar6,0);\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  uVar4 = (*(code *)PTR_abort_000332d0)();\n  return (_Bool)uVar4;\n}" type_identifier (function_declarator "hash_rehash(Hash_table *table,size_t candidate)" identifier (parameter_list "(Hash_table *table,size_t candidate)" ( (parameter_declaration "Hash_table *table" type_identifier (pointer_declarator "*table" * identifier)) , (parameter_declaration "size_t candidate" primitive_type identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  size_t sVar2;\n  _Bool _Var3;\n  undefined1 uVar4;\n  int iVar5;\n  int iVar6;\n  Hash_tuning *pHVar7;\n  double dVar8;\n  float fVar9;\n  Hash_table storage;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  pHVar7 = table->tuning;\n  iVar5 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (pHVar7->is_n_buckets == false) {\n    dVar8 = (double)(int)candidate;\n    if ((int)candidate < 0) {\n      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar9 = (float)dVar8 / pHVar7->growth_threshold;\n    if (fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar6 = 0;\n  }\n  else {\nLAB_0001d66c:\n    sVar2 = next_prime(candidate);\n    if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;\n    if (table->n_buckets == sVar2) {\n      iVar6 = 1;\n    }\n    else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }\n  }\n  if (iVar5 == *(int *)puVar1) {\n    return SUB41(iVar6,0);\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  uVar4 = (*(code *)PTR_abort_000332d0)();\n  return (_Bool)uVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "undefined3 extraout_var_01;" type_identifier identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "_Bool _Var3;" type_identifier identifier ;) (declaration "undefined1 uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "Hash_tuning *pHVar7;" type_identifier (pointer_declarator "*pHVar7" * identifier) ;) (declaration "double dVar8;" primitive_type identifier ;) (declaration "float fVar9;" primitive_type identifier ;) (declaration "Hash_table storage;" type_identifier identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000333c4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000333c4" identifier = identifier) ;) (expression_statement "pHVar7 = table->tuning;" (assignment_expression "pHVar7 = table->tuning" identifier = (field_expression "table->tuning" identifier -> field_identifier)) ;) (expression_statement "iVar5 = *(int *)PTR___stack_chk_guard_000333c4;" (assignment_expression "iVar5 = *(int *)PTR___stack_chk_guard_000333c4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000333c4" * (cast_expression "(int *)PTR___stack_chk_guard_000333c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (pHVar7->is_n_buckets == false) {\n    dVar8 = (double)(int)candidate;\n    if ((int)candidate < 0) {\n      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar9 = (float)dVar8 / pHVar7->growth_threshold;\n    if (fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar6 = 0;\n  }\n  else {\nLAB_0001d66c:\n    sVar2 = next_prime(candidate);\n    if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;\n    if (table->n_buckets == sVar2) {\n      iVar6 = 1;\n    }\n    else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }\n  }" if (parenthesized_expression "(pHVar7->is_n_buckets == false)" ( (binary_expression "pHVar7->is_n_buckets == false" (field_expression "pHVar7->is_n_buckets" identifier -> field_identifier) == false) )) (compound_statement "{\n    dVar8 = (double)(int)candidate;\n    if ((int)candidate < 0) {\n      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar9 = (float)dVar8 / pHVar7->growth_threshold;\n    if (fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar6 = 0;\n  }" { (expression_statement "dVar8 = (double)(int)candidate;" (assignment_expression "dVar8 = (double)(int)candidate" identifier = (cast_expression "(double)(int)candidate" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)candidate" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)candidate < 0) {\n      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" if (parenthesized_expression "((int)candidate < 0)" ( (binary_expression "(int)candidate < 0" (cast_expression "(int)candidate" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" { (expression_statement "dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020);" (assignment_expression "dVar8 = dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" identifier = (binary_expression "dVar8 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" identifier + (pointer_expression "*(double *)(PTR_fdopendir_00033108 + 0x2020)" * (cast_expression "(double *)(PTR_fdopendir_00033108 + 0x2020)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2020)" ( (binary_expression "PTR_fdopendir_00033108 + 0x2020" identifier + number_literal) )))))) ;) })) (expression_statement "fVar9 = (float)dVar8 / pHVar7->growth_threshold;" (assignment_expression "fVar9 = (float)dVar8 / pHVar7->growth_threshold" identifier = (binary_expression "(float)dVar8 / pHVar7->growth_threshold" (cast_expression "(float)dVar8" ( (type_descriptor "float" primitive_type) ) identifier) / (field_expression "pHVar7->growth_threshold" identifier -> field_identifier))) ;) (if_statement "if (fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }\n      goto LAB_0001d66c;\n    }" if (parenthesized_expression "(fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018))" ( (binary_expression "fVar9 < *(float *)(PTR_fdopendir_00033108 + 0x2018)" identifier < (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x2018)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x2018)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2018)" ( (binary_expression "PTR_fdopendir_00033108 + 0x2018" identifier + number_literal) ))))) )) (compound_statement "{\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }\n      goto LAB_0001d66c;\n    }" { (if_statement "if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9) {\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        candidate = (size_t)fVar9;\n      }" if (parenthesized_expression "(*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9)" ( (binary_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar9" (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" ( (binary_expression "PTR_fdopendir_00033108 + 0x201c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n        candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }" { (expression_statement "candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;" (assignment_expression "candidate = (int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" identifier = (binary_expression "(int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" (cast_expression "(int)(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" ( (binary_expression "fVar9 - *(float *)(PTR_fdopendir_00033108 + 0x201c)" identifier - (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" ( (binary_expression "PTR_fdopendir_00033108 + 0x201c" identifier + number_literal) ))))) ))) | number_literal)) ;) }) (else_clause "else {\n        candidate = (size_t)fVar9;\n      }" else (compound_statement "{\n        candidate = (size_t)fVar9;\n      }" { (expression_statement "candidate = (size_t)fVar9;" (assignment_expression "candidate = (size_t)fVar9" identifier = (cast_expression "(size_t)fVar9" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) }))) (goto_statement "goto LAB_0001d66c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d780:\n    iVar6 = 0;" statement_identifier : (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_0001d66c:\n    sVar2 = next_prime(candidate);\n    if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;\n    if (table->n_buckets == sVar2) {\n      iVar6 = 1;\n    }\n    else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }\n  }" else (compound_statement "{\nLAB_0001d66c:\n    sVar2 = next_prime(candidate);\n    if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;\n    if (table->n_buckets == sVar2) {\n      iVar6 = 1;\n    }\n    else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }\n  }" { (labeled_statement "LAB_0001d66c:\n    sVar2 = next_prime(candidate);" statement_identifier : (expression_statement "sVar2 = next_prime(candidate);" (assignment_expression "sVar2 = next_prime(candidate)" identifier = (call_expression "next_prime(candidate)" identifier (argument_list "(candidate)" ( identifier )))) ;)) (if_statement "if ((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)) goto LAB_0001d780;" if (parenthesized_expression "((((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0))" ( (binary_expression "(((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)) || (sVar2 == 0)" (parenthesized_expression "(((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0))" ( (binary_expression "((int)(sVar2 << 2) < 0) || (sVar2 >> 0x1e != 0)" (parenthesized_expression "((int)(sVar2 << 2) < 0)" ( (binary_expression "(int)(sVar2 << 2) < 0" (cast_expression "(int)(sVar2 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(sVar2 << 2)" ( (binary_expression "sVar2 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(sVar2 >> 0x1e != 0)" ( (binary_expression "sVar2 >> 0x1e != 0" (binary_expression "sVar2 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) || (parenthesized_expression "(sVar2 == 0)" ( (binary_expression "sVar2 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0001d780;" goto statement_identifier ;)) (if_statement "if (table->n_buckets == sVar2) {\n      iVar6 = 1;\n    }\n    else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }" if (parenthesized_expression "(table->n_buckets == sVar2)" ( (binary_expression "table->n_buckets == sVar2" (field_expression "table->n_buckets" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      iVar6 = 1;\n    }" { (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }" else (compound_statement "{\n      storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);\n      if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;\n      storage.hasher = table->hasher;\n      storage.bucket_limit = storage.bucket + sVar2;\n      storage.comparator = table->comparator;\n      storage.data_freer = table->data_freer;\n      storage.free_entry_list = table->free_entry_list;\n      storage.n_buckets_used = 0;\n      storage.n_entries = 0;\n      storage.n_buckets = sVar2;\n      storage.tuning = pHVar7;\n      _Var3 = transfer_entries(&storage,table,false);\n      iVar6 = CONCAT31(extraout_var,_Var3);\n      if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }\n    }" { (expression_statement "storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8);" (assignment_expression "storage.bucket = (hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8)" (field_expression "storage.bucket" identifier . field_identifier) = (cast_expression "(hash_entry *)(*(code *)PTR_calloc_000332a8)(sVar2,8)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_calloc_000332a8)(sVar2,8)" (parenthesized_expression "(*(code *)PTR_calloc_000332a8)" ( (pointer_expression "*(code *)PTR_calloc_000332a8" * (cast_expression "(code *)PTR_calloc_000332a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(sVar2,8)" ( identifier , number_literal ))))) ;) (if_statement "if (storage.bucket == (hash_entry *)0x0) goto LAB_0001d780;" if (parenthesized_expression "(storage.bucket == (hash_entry *)0x0)" ( (binary_expression "storage.bucket == (hash_entry *)0x0" (field_expression "storage.bucket" identifier . field_identifier) == (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d780;" goto statement_identifier ;)) (expression_statement "storage.hasher = table->hasher;" (assignment_expression "storage.hasher = table->hasher" (field_expression "storage.hasher" identifier . field_identifier) = (field_expression "table->hasher" identifier -> field_identifier)) ;) (expression_statement "storage.bucket_limit = storage.bucket + sVar2;" (assignment_expression "storage.bucket_limit = storage.bucket + sVar2" (field_expression "storage.bucket_limit" identifier . field_identifier) = (binary_expression "storage.bucket + sVar2" (field_expression "storage.bucket" identifier . field_identifier) + identifier)) ;) (expression_statement "storage.comparator = table->comparator;" (assignment_expression "storage.comparator = table->comparator" (field_expression "storage.comparator" identifier . field_identifier) = (field_expression "table->comparator" identifier -> field_identifier)) ;) (expression_statement "storage.data_freer = table->data_freer;" (assignment_expression "storage.data_freer = table->data_freer" (field_expression "storage.data_freer" identifier . field_identifier) = (field_expression "table->data_freer" identifier -> field_identifier)) ;) (expression_statement "storage.free_entry_list = table->free_entry_list;" (assignment_expression "storage.free_entry_list = table->free_entry_list" (field_expression "storage.free_entry_list" identifier . field_identifier) = (field_expression "table->free_entry_list" identifier -> field_identifier)) ;) (expression_statement "storage.n_buckets_used = 0;" (assignment_expression "storage.n_buckets_used = 0" (field_expression "storage.n_buckets_used" identifier . field_identifier) = number_literal) ;) (expression_statement "storage.n_entries = 0;" (assignment_expression "storage.n_entries = 0" (field_expression "storage.n_entries" identifier . field_identifier) = number_literal) ;) (expression_statement "storage.n_buckets = sVar2;" (assignment_expression "storage.n_buckets = sVar2" (field_expression "storage.n_buckets" identifier . field_identifier) = identifier) ;) (expression_statement "storage.tuning = pHVar7;" (assignment_expression "storage.tuning = pHVar7" (field_expression "storage.tuning" identifier . field_identifier) = identifier) ;) (expression_statement "_Var3 = transfer_entries(&storage,table,false);" (assignment_expression "_Var3 = transfer_entries(&storage,table,false)" identifier = (call_expression "transfer_entries(&storage,table,false)" identifier (argument_list "(&storage,table,false)" ( (pointer_expression "&storage" & identifier) , identifier , false )))) ;) (expression_statement "iVar6 = CONCAT31(extraout_var,_Var3);" (assignment_expression "iVar6 = CONCAT31(extraout_var,_Var3)" identifier = (call_expression "CONCAT31(extraout_var,_Var3)" identifier (argument_list "(extraout_var,_Var3)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        table->free_entry_list = storage.free_entry_list;\n        _Var3 = transfer_entries(table,&storage,true);\n        if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(storage.bucket);\n      }" { (expression_statement "table->free_entry_list = storage.free_entry_list;" (assignment_expression "table->free_entry_list = storage.free_entry_list" (field_expression "table->free_entry_list" identifier -> field_identifier) = (field_expression "storage.free_entry_list" identifier . field_identifier)) ;) (expression_statement "_Var3 = transfer_entries(table,&storage,true);" (assignment_expression "_Var3 = transfer_entries(table,&storage,true)" identifier = (call_expression "transfer_entries(table,&storage,true)" identifier (argument_list "(table,&storage,true)" ( identifier , (pointer_expression "&storage" & identifier) , true )))) ;) (if_statement "if ((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))\n        goto LAB_0001d824;" if (parenthesized_expression "((CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0))" ( (binary_expression "(CONCAT31(extraout_var_00,_Var3) == 0) ||\n           (_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0)" (parenthesized_expression "(CONCAT31(extraout_var_00,_Var3) == 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var3) == 0" (call_expression "CONCAT31(extraout_var_00,_Var3)" identifier (argument_list "(extraout_var_00,_Var3)" ( identifier , identifier ))) == number_literal) )) || (parenthesized_expression "(_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0)" ( (comma_expression "_Var3 = transfer_entries(table,&storage,false), CONCAT31(extraout_var_01,_Var3) == 0" (assignment_expression "_Var3 = transfer_entries(table,&storage,false)" identifier = (call_expression "transfer_entries(table,&storage,false)" identifier (argument_list "(table,&storage,false)" ( identifier , (pointer_expression "&storage" & identifier) , false )))) , (binary_expression "CONCAT31(extraout_var_01,_Var3) == 0" (call_expression "CONCAT31(extraout_var_01,_Var3)" identifier (argument_list "(extraout_var_01,_Var3)" ( identifier , identifier ))) == number_literal)) ))) )) (goto_statement "goto LAB_0001d824;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_000333cc)(storage.bucket);" (call_expression "(*(code *)PTR_free_000333cc)(storage.bucket)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(storage.bucket)" ( (field_expression "storage.bucket" identifier . field_identifier) ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }" else (compound_statement "{\n        (*(code *)PTR_free_000333cc)(table->bucket);\n        table->bucket = storage.bucket;\n        table->bucket_limit = storage.bucket_limit;\n        table->n_buckets = storage.n_buckets;\n        table->n_buckets_used = storage.n_buckets_used;\n        table->free_entry_list = storage.free_entry_list;\n      }" { (expression_statement "(*(code *)PTR_free_000333cc)(table->bucket);" (call_expression "(*(code *)PTR_free_000333cc)(table->bucket)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(table->bucket)" ( (field_expression "table->bucket" identifier -> field_identifier) ))) ;) (expression_statement "table->bucket = storage.bucket;" (assignment_expression "table->bucket = storage.bucket" (field_expression "table->bucket" identifier -> field_identifier) = (field_expression "storage.bucket" identifier . field_identifier)) ;) (expression_statement "table->bucket_limit = storage.bucket_limit;" (assignment_expression "table->bucket_limit = storage.bucket_limit" (field_expression "table->bucket_limit" identifier -> field_identifier) = (field_expression "storage.bucket_limit" identifier . field_identifier)) ;) (expression_statement "table->n_buckets = storage.n_buckets;" (assignment_expression "table->n_buckets = storage.n_buckets" (field_expression "table->n_buckets" identifier -> field_identifier) = (field_expression "storage.n_buckets" identifier . field_identifier)) ;) (expression_statement "table->n_buckets_used = storage.n_buckets_used;" (assignment_expression "table->n_buckets_used = storage.n_buckets_used" (field_expression "table->n_buckets_used" identifier -> field_identifier) = (field_expression "storage.n_buckets_used" identifier . field_identifier)) ;) (expression_statement "table->free_entry_list = storage.free_entry_list;" (assignment_expression "table->free_entry_list = storage.free_entry_list" (field_expression "table->free_entry_list" identifier -> field_identifier) = (field_expression "storage.free_entry_list" identifier . field_identifier)) ;) }))) }))) }))) (if_statement "if (iVar5 == *(int *)puVar1) {\n    return SUB41(iVar6,0);\n  }" if (parenthesized_expression "(iVar5 == *(int *)puVar1)" ( (binary_expression "iVar5 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return SUB41(iVar6,0);\n  }" { (return_statement "return SUB41(iVar6,0);" return (call_expression "SUB41(iVar6,0)" identifier (argument_list "(iVar6,0)" ( identifier , number_literal ))) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000333a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333a8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000333a8" * (cast_expression "(code *)PTR___stack_chk_fail_000333a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001d824:\n  uVar4 = (*(code *)PTR_abort_000332d0)();" statement_identifier : (expression_statement "uVar4 = (*(code *)PTR_abort_000332d0)();" (assignment_expression "uVar4 = (*(code *)PTR_abort_000332d0)()" identifier = (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" ( (pointer_expression "*(code *)PTR_abort_000332d0" * (cast_expression "(code *)PTR_abort_000332d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return (_Bool)uVar4;" return (cast_expression "(_Bool)uVar4" ( (type_descriptor "_Bool" type_identifier) ) identifier) ;) })))
(translation_unit "int hash_rehash(int *param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}\n\n" (function_definition "int hash_rehash(int *param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}" primitive_type (function_declarator "hash_rehash(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "double dVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000333c4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000333c4" identifier = identifier) ;) (expression_statement "iVar4 = param_1[5];" (assignment_expression "iVar4 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000333c4;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000333c4" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000333c4" * (cast_expression "(int *)PTR___stack_chk_guard_000333c4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0x10) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x10)" * (cast_expression "(char *)(iVar4 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }" { (expression_statement "dVar5 = (double)(int)param_2;" (assignment_expression "dVar5 = (double)(int)param_2" identifier = (cast_expression "(double)(int)param_2" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" if (parenthesized_expression "((int)param_2 < 0)" ( (binary_expression "(int)param_2 < 0" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" { (expression_statement "dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);" (assignment_expression "dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" identifier = (binary_expression "dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" identifier + (pointer_expression "*(double *)(PTR_fdopendir_00033108 + 0x2020)" * (cast_expression "(double *)(PTR_fdopendir_00033108 + 0x2020)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2020)" ( (binary_expression "PTR_fdopendir_00033108 + 0x2020" identifier + number_literal) )))))) ;) })) (expression_statement "fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);" (assignment_expression "fVar6 = (float)dVar5 / *(float *)(iVar4 + 8)" identifier = (binary_expression "(float)dVar5 / *(float *)(iVar4 + 8)" (cast_expression "(float)dVar5" ( (type_descriptor "float" primitive_type) ) identifier) / (pointer_expression "*(float *)(iVar4 + 8)" * (cast_expression "(float *)(iVar4 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))))) ;) (if_statement "if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }" if (parenthesized_expression "(fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018))" ( (binary_expression "fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)" identifier < (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x2018)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x2018)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2018)" ( (binary_expression "PTR_fdopendir_00033108 + 0x2018" identifier + number_literal) ))))) )) (compound_statement "{\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }" { (if_statement "if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }" if (parenthesized_expression "(*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6)" ( (binary_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6" (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" ( (binary_expression "PTR_fdopendir_00033108 + 0x201c" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }" { (expression_statement "param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;" (assignment_expression "param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" identifier = (binary_expression "(int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" (cast_expression "(int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" ( (binary_expression "fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)" identifier - (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" * (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" ( (binary_expression "PTR_fdopendir_00033108 + 0x201c" identifier + number_literal) ))))) ))) | number_literal)) ;) }) (else_clause "else {\n        param_2 = (uint)fVar6;\n      }" else (compound_statement "{\n        param_2 = (uint)fVar6;\n      }" { (expression_statement "param_2 = (uint)fVar6;" (assignment_expression "param_2 = (uint)fVar6" identifier = (cast_expression "(uint)fVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (goto_statement "goto LAB_0001d66c;" goto statement_identifier ;) })) (labeled_statement "LAB_0001d780:\n    iVar4 = 0;" statement_identifier : (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;)) }) (else_clause "else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" else (compound_statement "{\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" { (labeled_statement "LAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);" statement_identifier : (expression_statement "uVar2 = FUN_0001c690(param_2);" (assignment_expression "uVar2 = FUN_0001c690(param_2)" identifier = (call_expression "FUN_0001c690(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;)) (if_statement "if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;" if (parenthesized_expression "((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0))" ( (binary_expression "(((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)" (parenthesized_expression "(((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0))" ( (binary_expression "((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar2 << 2) < 0)" ( (binary_expression "(int)(uVar2 << 2) < 0" (cast_expression "(int)(uVar2 << 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 << 2)" ( (binary_expression "uVar2 << 2" identifier << number_literal) ))) < number_literal) )) || (parenthesized_expression "(uVar2 >> 0x1e != 0)" ( (binary_expression "uVar2 >> 0x1e != 0" (binary_expression "uVar2 >> 0x1e" identifier >> number_literal) != number_literal) ))) )) || (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_0001d780;" goto statement_identifier ;)) (if_statement "if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" if (parenthesized_expression "(param_1[2] == uVar2)" ( (binary_expression "param_1[2] == uVar2" (subscript_expression "param_1[2]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n      iVar4 = 1;\n    }" { (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" else (compound_statement "{\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" { (expression_statement "local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);" (assignment_expression "local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8)" identifier = (call_expression "(*(code *)PTR_calloc_000332a8)(uVar2,8)" (parenthesized_expression "(*(code *)PTR_calloc_000332a8)" ( (pointer_expression "*(code *)PTR_calloc_000332a8" * (cast_expression "(code *)PTR_calloc_000332a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar2,8)" ( identifier , number_literal )))) ;) (if_statement "if (local_4c == 0) goto LAB_0001d780;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d780;" goto statement_identifier ;)) (expression_statement "local_34 = param_1[6];" (assignment_expression "local_34 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "local_48 = local_4c + uVar2 * 8;" (assignment_expression "local_48 = local_4c + uVar2 * 8" identifier = (binary_expression "local_4c + uVar2 * 8" identifier + (binary_expression "uVar2 * 8" identifier * number_literal))) ;) (expression_statement "local_30 = param_1[7];" (assignment_expression "local_30 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "local_2c = param_1[8];" (assignment_expression "local_2c = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[9];" (assignment_expression "local_28 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_44 = uVar2;" (assignment_expression "local_44 = uVar2" identifier = identifier) ;) (expression_statement "local_38 = iVar4;" (assignment_expression "local_38 = iVar4" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0001c9bc(&local_4c,param_1,0);" (assignment_expression "iVar4 = FUN_0001c9bc(&local_4c,param_1,0)" identifier = (call_expression "FUN_0001c9bc(&local_4c,param_1,0)" identifier (argument_list "(&local_4c,param_1,0)" ( (pointer_expression "&local_4c" & identifier) , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }" { (expression_statement "param_1[9] = local_28;" (assignment_expression "param_1[9] = local_28" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar3 = FUN_0001c9bc(param_1,&local_4c,1);" (assignment_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,1)" identifier = (call_expression "FUN_0001c9bc(param_1,&local_4c,1)" identifier (argument_list "(param_1,&local_4c,1)" ( identifier , (pointer_expression "&local_4c" & identifier) , number_literal )))) ;) (if_statement "if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;" if (parenthesized_expression "((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))" ( (binary_expression "(iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0)" ( (comma_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0" (assignment_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,0)" identifier = (call_expression "FUN_0001c9bc(param_1,&local_4c,0)" identifier (argument_list "(param_1,&local_4c,0)" ( identifier , (pointer_expression "&local_4c" & identifier) , number_literal )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0001d824;" goto statement_identifier ;)) (expression_statement "(*(code *)PTR_free_000333cc)(local_4c);" (call_expression "(*(code *)PTR_free_000333cc)(local_4c)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_4c)" ( identifier ))) ;) }) (else_clause "else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" else (compound_statement "{\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" { (expression_statement "(*(code *)PTR_free_000333cc)(*param_1);" (call_expression "(*(code *)PTR_free_000333cc)(*param_1)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" ( (pointer_expression "*(code *)PTR_free_000333cc" * (cast_expression "(code *)PTR_free_000333cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) (expression_statement "*param_1 = local_4c;" (assignment_expression "*param_1 = local_4c" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_48;" (assignment_expression "param_1[1] = local_48" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_44;" (assignment_expression "param_1[2] = local_44" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_40;" (assignment_expression "param_1[3] = local_40" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = local_28;" (assignment_expression "param_1[9] = local_28" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) }))) }))) }))) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar1)" ( (binary_expression "local_24 == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000333a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333a8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000333a8" * (cast_expression "(code *)PTR___stack_chk_fail_000333a8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();" statement_identifier : (expression_statement "iVar4 = (*(code *)PTR_abort_000332d0)();" (assignment_expression "iVar4 = (*(code *)PTR_abort_000332d0)()" identifier = (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" ( (pointer_expression "*(code *)PTR_abort_000332d0" * (cast_expression "(code *)PTR_abort_000332d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) != LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;)) (return_statement return IDENT ;) })))
(function_definition "int hash_rehash(int *param_1,uint param_2)\n\n{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}" (primitive_type "int") (function_declarator "hash_rehash(int *param_1,uint param_2)" (identifier "hash_rehash") (parameter_list "(int *param_1,uint param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  double dVar5;\n  float fVar6;\n  int local_4c;\n  int local_48;\n  uint local_44;\n  int local_40;\n  undefined4 local_3c;\n  int local_38;\n  int local_34;\n  int local_30;\n  int local_2c;\n  int local_28;\n  int local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000333c4;\n  iVar4 = param_1[5];\n  local_24 = *(int *)PTR___stack_chk_guard_000333c4;\n  if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }\n  if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }\n  (*(code *)PTR___stack_chk_fail_000333a8)();\nLAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();\n  return iVar4;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "double dVar5;" (primitive_type "double") (identifier "dVar5") (; ";")) (declaration "float fVar6;" (primitive_type "float") (identifier "fVar6") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_000333c4;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000333c4" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_000333c4")) (; ";")) (expression_statement "iVar4 = param_1[5];" (assignment_expression "iVar4 = param_1[5]" (identifier "iVar4") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000333c4;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000333c4" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000333c4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000333c4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000333c4")))) (; ";")) (if_statement "if (*(char *)(iVar4 + 0x10) == '\0') {\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }\n  else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x10)" (* "*") (cast_expression "(char *)(iVar4 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    dVar5 = (double)(int)param_2;\n    if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }\n    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);\n    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }\nLAB_0001d780:\n    iVar4 = 0;\n  }" ({ "{") (expression_statement "dVar5 = (double)(int)param_2;" (assignment_expression "dVar5 = (double)(int)param_2" (identifier "dVar5") (= "=") (cast_expression "(double)(int)param_2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (if_statement "if ((int)param_2 < 0) {\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" (if "if") (parenthesized_expression "((int)param_2 < 0)" (( "(") (binary_expression "(int)param_2 < 0" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);\n    }" ({ "{") (expression_statement "dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);" (assignment_expression "dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" (identifier "dVar5") (= "=") (binary_expression "dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020)" (identifier "dVar5") (+ "+") (pointer_expression "*(double *)(PTR_fdopendir_00033108 + 0x2020)" (* "*") (cast_expression "(double *)(PTR_fdopendir_00033108 + 0x2020)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2020)" (( "(") (binary_expression "PTR_fdopendir_00033108 + 0x2020" (identifier "PTR_fdopendir_00033108") (+ "+") (number_literal "0x2020")) () ")")))))) (; ";")) (} "}"))) (expression_statement "fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);" (assignment_expression "fVar6 = (float)dVar5 / *(float *)(iVar4 + 8)" (identifier "fVar6") (= "=") (binary_expression "(float)dVar5 / *(float *)(iVar4 + 8)" (cast_expression "(float)dVar5" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar5")) (/ "/") (pointer_expression "*(float *)(iVar4 + 8)" (* "*") (cast_expression "(float *)(iVar4 + 8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }" (if "if") (parenthesized_expression "(fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018))" (( "(") (binary_expression "fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)" (identifier "fVar6") (< "<") (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x2018)" (* "*") (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x2018)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_fdopendir_00033108 + 0x2018)" (( "(") (binary_expression "PTR_fdopendir_00033108 + 0x2018" (identifier "PTR_fdopendir_00033108") (+ "+") (number_literal "0x2018")) () ")"))))) () ")")) (compound_statement "{\n      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }\n      goto LAB_0001d66c;\n    }" ({ "{") (if_statement "if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }\n      else {\n        param_2 = (uint)fVar6;\n      }" (if "if") (parenthesized_expression "(*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6)" (( "(") (binary_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6" (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" (* "*") (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" (( "(") (binary_expression "PTR_fdopendir_00033108 + 0x201c" (identifier "PTR_fdopendir_00033108") (+ "+") (number_literal "0x201c")) () ")")))) (<= "<=") (identifier "fVar6")) () ")")) (compound_statement "{\n        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;\n      }" ({ "{") (expression_statement "param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;" (assignment_expression "param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" (identifier "param_2") (= "=") (binary_expression "(int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000" (cast_expression "(int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c))" (( "(") (binary_expression "fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)" (identifier "fVar6") (- "-") (pointer_expression "*(float *)(PTR_fdopendir_00033108 + 0x201c)" (* "*") (cast_expression "(float *)(PTR_fdopendir_00033108 + 0x201c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_fdopendir_00033108 + 0x201c)" (( "(") (binary_expression "PTR_fdopendir_00033108 + 0x201c" (identifier "PTR_fdopendir_00033108") (+ "+") (number_literal "0x201c")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")) (else_clause "else {\n        param_2 = (uint)fVar6;\n      }" (else "else") (compound_statement "{\n        param_2 = (uint)fVar6;\n      }" ({ "{") (expression_statement "param_2 = (uint)fVar6;" (assignment_expression "param_2 = (uint)fVar6" (identifier "param_2") (= "=") (cast_expression "(uint)fVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar6"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0001d66c;" (goto "goto") (statement_identifier "LAB_0001d66c") (; ";")) (} "}"))) (labeled_statement "LAB_0001d780:\n    iVar4 = 0;" (statement_identifier "LAB_0001d780") (: ":") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" (else "else") (compound_statement "{\nLAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);\n    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;\n    if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_0001d66c:\n    uVar2 = FUN_0001c690(param_2);" (statement_identifier "LAB_0001d66c") (: ":") (expression_statement "uVar2 = FUN_0001c690(param_2);" (assignment_expression "uVar2 = FUN_0001c690(param_2)" (identifier "uVar2") (= "=") (call_expression "FUN_0001c690(param_2)" (identifier "FUN_0001c690") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;" (if "if") (parenthesized_expression "((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0))" (( "(") (binary_expression "(((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)" (parenthesized_expression "(((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0))" (( "(") (binary_expression "((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)" (parenthesized_expression "((int)(uVar2 << 2) < 0)" (( "(") (binary_expression "(int)(uVar2 << 2) < 0" (cast_expression "(int)(uVar2 << 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 << 2)" (( "(") (binary_expression "uVar2 << 2" (identifier "uVar2") (<< "<<") (number_literal "2")) () ")"))) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar2 >> 0x1e != 0)" (( "(") (binary_expression "uVar2 >> 0x1e != 0" (binary_expression "uVar2 >> 0x1e" (identifier "uVar2") (>> ">>") (number_literal "0x1e")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0001d780;" (goto "goto") (statement_identifier "LAB_0001d780") (; ";"))) (if_statement "if (param_1[2] == uVar2) {\n      iVar4 = 1;\n    }\n    else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" (if "if") (parenthesized_expression "(param_1[2] == uVar2)" (( "(") (binary_expression "param_1[2] == uVar2" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n      iVar4 = 1;\n    }" ({ "{") (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" (else "else") (compound_statement "{\n      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);\n      if (local_4c == 0) goto LAB_0001d780;\n      local_34 = param_1[6];\n      local_48 = local_4c + uVar2 * 8;\n      local_30 = param_1[7];\n      local_2c = param_1[8];\n      local_28 = param_1[9];\n      local_40 = 0;\n      local_3c = 0;\n      local_44 = uVar2;\n      local_38 = iVar4;\n      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);\n      if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }\n    }" ({ "{") (expression_statement "local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);" (assignment_expression "local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8)" (identifier "local_4c") (= "=") (call_expression "(*(code *)PTR_calloc_000332a8)(uVar2,8)" (parenthesized_expression "(*(code *)PTR_calloc_000332a8)" (( "(") (pointer_expression "*(code *)PTR_calloc_000332a8" (* "*") (cast_expression "(code *)PTR_calloc_000332a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_calloc_000332a8"))) () ")")) (argument_list "(uVar2,8)" (( "(") (identifier "uVar2") (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if (local_4c == 0) goto LAB_0001d780;" (if "if") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d780;" (goto "goto") (statement_identifier "LAB_0001d780") (; ";"))) (expression_statement "local_34 = param_1[6];" (assignment_expression "local_34 = param_1[6]" (identifier "local_34") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_48 = local_4c + uVar2 * 8;" (assignment_expression "local_48 = local_4c + uVar2 * 8" (identifier "local_48") (= "=") (binary_expression "local_4c + uVar2 * 8" (identifier "local_4c") (+ "+") (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8")))) (; ";")) (expression_statement "local_30 = param_1[7];" (assignment_expression "local_30 = param_1[7]" (identifier "local_30") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_2c = param_1[8];" (assignment_expression "local_2c = param_1[8]" (identifier "local_2c") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_28 = param_1[9];" (assignment_expression "local_28 = param_1[9]" (identifier "local_28") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = uVar2;" (assignment_expression "local_44 = uVar2" (identifier "local_44") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "local_38 = iVar4;" (assignment_expression "local_38 = iVar4" (identifier "local_38") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = FUN_0001c9bc(&local_4c,param_1,0);" (assignment_expression "iVar4 = FUN_0001c9bc(&local_4c,param_1,0)" (identifier "iVar4") (= "=") (call_expression "FUN_0001c9bc(&local_4c,param_1,0)" (identifier "FUN_0001c9bc") (argument_list "(&local_4c,param_1,0)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }\n      else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        param_1[9] = local_28;\n        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);\n        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;\n        (*(code *)PTR_free_000333cc)(local_4c);\n      }" ({ "{") (expression_statement "param_1[9] = local_28;" (assignment_expression "param_1[9] = local_28" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_28")) (; ";")) (expression_statement "iVar3 = FUN_0001c9bc(param_1,&local_4c,1);" (assignment_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,1)" (identifier "iVar3") (= "=") (call_expression "FUN_0001c9bc(param_1,&local_4c,1)" (identifier "FUN_0001c9bc") (argument_list "(param_1,&local_4c,1)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))\n        goto LAB_0001d824;" (if "if") (parenthesized_expression "((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))" (( "(") (binary_expression "(iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0)" (( "(") (comma_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0" (assignment_expression "iVar3 = FUN_0001c9bc(param_1,&local_4c,0)" (identifier "iVar3") (= "=") (call_expression "FUN_0001c9bc(param_1,&local_4c,0)" (identifier "FUN_0001c9bc") (argument_list "(param_1,&local_4c,0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0001d824;" (goto "goto") (statement_identifier "LAB_0001d824") (; ";"))) (expression_statement "(*(code *)PTR_free_000333cc)(local_4c);" (call_expression "(*(code *)PTR_free_000333cc)(local_4c)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" (( "(") (pointer_expression "*(code *)PTR_free_000333cc" (* "*") (cast_expression "(code *)PTR_free_000333cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000333cc"))) () ")")) (argument_list "(local_4c)" (( "(") (identifier "local_4c") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_free_000333cc)(*param_1);\n        *param_1 = local_4c;\n        param_1[1] = local_48;\n        param_1[2] = local_44;\n        param_1[3] = local_40;\n        param_1[9] = local_28;\n      }" ({ "{") (expression_statement "(*(code *)PTR_free_000333cc)(*param_1);" (call_expression "(*(code *)PTR_free_000333cc)(*param_1)" (parenthesized_expression "(*(code *)PTR_free_000333cc)" (( "(") (pointer_expression "*(code *)PTR_free_000333cc" (* "*") (cast_expression "(code *)PTR_free_000333cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000333cc"))) () ")")) (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (expression_statement "*param_1 = local_4c;" (assignment_expression "*param_1 = local_4c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "param_1[1] = local_48;" (assignment_expression "param_1[1] = local_48" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "param_1[2] = local_44;" (assignment_expression "param_1[2] = local_44" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_44")) (; ";")) (expression_statement "param_1[3] = local_40;" (assignment_expression "param_1[3] = local_40" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_40")) (; ";")) (expression_statement "param_1[9] = local_28;" (assignment_expression "param_1[9] = local_28" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_28")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (if_statement "if (local_24 == *(int *)puVar1) {\n    return iVar4;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar1)" (( "(") (binary_expression "local_24 == *(int *)puVar1" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return iVar4;\n  }" ({ "{") (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000333a8)();" (call_expression "(*(code *)PTR___stack_chk_fail_000333a8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000333a8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000333a8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000333a8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000333a8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0001d824:\n  iVar4 = (*(code *)PTR_abort_000332d0)();" (statement_identifier "LAB_0001d824") (: ":") (expression_statement "iVar4 = (*(code *)PTR_abort_000332d0)();" (assignment_expression "iVar4 = (*(code *)PTR_abort_000332d0)()" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_abort_000332d0)()" (parenthesized_expression "(*(code *)PTR_abort_000332d0)" (( "(") (pointer_expression "*(code *)PTR_abort_000332d0" (* "*") (cast_expression "(code *)PTR_abort_000332d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_000332d0"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}")))

type_1 function_1(type_2 *table,size_t candidate)

{
  type_3 *puVar1;
  type_4 extraout_var;
  type_4 extraout_var_00;
  type_4 extraout_var_01;
  size_t var_5;
  type_1 _Var3;
  type_5 uVar4;
  int var_9;
  int var_8;
  type_6 *pHVar7;
  double var_1;
  float var_3;
  type_2 storage;
  
  puVar1 = PTR___stack_chk_guard_000333c4;
  pHVar7 = table->tuning;
  var_9 = *(int *)PTR___stack_chk_guard_000333c4;
  if (pHVar7->is_n_buckets == false) {
    var_1 = (double)(int)candidate;
    if ((int)candidate < 0) {
      var_1 = var_1 + *(double *)(var_2 + 0x2020);
    }
    var_3 = (float)var_1 / pHVar7->growth_threshold;
    if (var_3 < *(float *)(var_2 + 0x2018)) {
      if (*(float *)(var_2 + 0x201c) <= var_3) {
        candidate = (int)(var_3 - *(float *)(var_2 + 0x201c)) | 0x80000000;
      }
      else {
        candidate = (size_t)var_3;
      }
      goto LAB_0001d66c;
    }
LAB_0001d780:
    var_8 = 0;
  }
  else {
LAB_0001d66c:
    var_5 = var_4(candidate);
    if ((((int)(var_5 << 2) < 0) || (var_5 >> 0x1e != 0)) || (var_5 == 0)) goto LAB_0001d780;
    if (table->n_buckets == var_5) {
      var_8 = 1;
    }
    else {
      storage.bucket = (type_7 *)(*(type_8 *)PTR_calloc_000332a8)(var_5,8);
      if (storage.bucket == (type_7 *)0x0) goto LAB_0001d780;
      storage.hasher = table->hasher;
      storage.bucket_limit = storage.bucket + var_5;
      storage.comparator = table->comparator;
      storage.data_freer = table->data_freer;
      storage.free_entry_list = table->free_entry_list;
      storage.n_buckets_used = 0;
      storage.n_entries = 0;
      storage.n_buckets = var_5;
      storage.tuning = pHVar7;
      _Var3 = var_6(&storage,table,false);
      var_8 = var_7(extraout_var,_Var3);
      if (var_8 == 0) {
        table->free_entry_list = storage.free_entry_list;
        _Var3 = var_6(table,&storage,true);
        if ((var_7(extraout_var_00,_Var3) == 0) ||
           (_Var3 = var_6(table,&storage,false), var_7(extraout_var_01,_Var3) == 0))
        goto LAB_0001d824;
        (*(type_8 *)PTR_free_000333cc)(storage.bucket);
      }
      else {
        (*(type_8 *)PTR_free_000333cc)(table->bucket);
        table->bucket = storage.bucket;
        table->bucket_limit = storage.bucket_limit;
        table->n_buckets = storage.n_buckets;
        table->n_buckets_used = storage.n_buckets_used;
        table->free_entry_list = storage.free_entry_list;
      }
    }
  }
  if (var_9 == *(int *)puVar1) {
    return var_10(var_8,0);
  }
  (*(type_8 *)PTR___stack_chk_fail_000333a8)();
LAB_0001d824:
  uVar4 = (*(type_8 *)PTR_abort_000332d0)();
  return (type_1)uVar4;
}


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

int MASKED(int *param_1,uint param_2)

{
  undefined *puVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  double dVar5;
  float fVar6;
  int local_4c;
  int local_48;
  uint local_44;
  int local_40;
  undefined4 local_3c;
  int local_38;
  int local_34;
  int local_30;
  int local_2c;
  int local_28;
  int local_24;
  
  puVar1 = PTR___stack_chk_guard_000333c4;
  iVar4 = param_1[5];
  local_24 = *(int *)PTR___stack_chk_guard_000333c4;
  if (*(char *)(iVar4 + 0x10) == '\0') {
    dVar5 = (double)(int)param_2;
    if ((int)param_2 < 0) {
      dVar5 = dVar5 + *(double *)(PTR_fdopendir_00033108 + 0x2020);
    }
    fVar6 = (float)dVar5 / *(float *)(iVar4 + 8);
    if (fVar6 < *(float *)(PTR_fdopendir_00033108 + 0x2018)) {
      if (*(float *)(PTR_fdopendir_00033108 + 0x201c) <= fVar6) {
        param_2 = (int)(fVar6 - *(float *)(PTR_fdopendir_00033108 + 0x201c)) | 0x80000000;
      }
      else {
        param_2 = (uint)fVar6;
      }
      goto LAB_0001d66c;
    }
LAB_0001d780:
    iVar4 = 0;
  }
  else {
LAB_0001d66c:
    uVar2 = FUN_0001c690(param_2);
    if ((((int)(uVar2 << 2) < 0) || (uVar2 >> 0x1e != 0)) || (uVar2 == 0)) goto LAB_0001d780;
    if (param_1[2] == uVar2) {
      iVar4 = 1;
    }
    else {
      local_4c = (*(code *)PTR_calloc_000332a8)(uVar2,8);
      if (local_4c == 0) goto LAB_0001d780;
      local_34 = param_1[6];
      local_48 = local_4c + uVar2 * 8;
      local_30 = param_1[7];
      local_2c = param_1[8];
      local_28 = param_1[9];
      local_40 = 0;
      local_3c = 0;
      local_44 = uVar2;
      local_38 = iVar4;
      iVar4 = FUN_0001c9bc(&local_4c,param_1,0);
      if (iVar4 == 0) {
        param_1[9] = local_28;
        iVar3 = FUN_0001c9bc(param_1,&local_4c,1);
        if ((iVar3 == 0) || (iVar3 = FUN_0001c9bc(param_1,&local_4c,0), iVar3 == 0))
        goto LAB_0001d824;
        (*(code *)PTR_free_000333cc)(local_4c);
      }
      else {
        (*(code *)PTR_free_000333cc)(*param_1);
        *param_1 = local_4c;
        param_1[1] = local_48;
        param_1[2] = local_44;
        param_1[3] = local_40;
        param_1[9] = local_28;
      }
    }
  }
  if (local_24 == *(int *)puVar1) {
    return iVar4;
  }
  (*(code *)PTR___stack_chk_fail_000333a8)();
LAB_0001d824:
  iVar4 = (*(code *)PTR_abort_000332d0)();
  return iVar4;
}

