
int hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)

{
  undefined *puVar1;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  void *pvVar2;
  int iVar3;
  size_t sVar4;
  _Bool _Var5;
  void *pvVar6;
  Hash_tuning *pHVar7;
  size_t sVar8;
  Hash_table *pHVar9;
  hash_entry *phVar10;
  hash_entry *phVar11;
  int *piVar12;
  int *piVar13;
  undefined *puVar14;
  code *pcVar15;
  code *pcVar16;
  double dVar17;
  hash_entry *phVar18;
  float fVar20;
  double dVar19;
  float fVar21;
  hash_entry *phStack_90;
  undefined4 *puStack_8c;
  hash_entry *phStack_84;
  int *piStack_80;
  undefined *puStack_7c;
  void *pvStack_78;
  code *pcStack_74;
  undefined *puStack_60;
  hash_entry *phStack_58;
  Hash_table *pHStack_54;
  Hash_table *pHStack_4c;
  hash_entry *phStack_48;
  code *pcStack_44;
  hash_entry *bucket;
  Hash_table *local_24;
  
  puVar1 = PTR___stack_chk_guard_000323a8;
  local_24 = *(Hash_table **)PTR___stack_chk_guard_000323a8;
  if (entry == (void *)0x0) {
LAB_0001dfd0:
    iVar3 = (*(code *)PTR_abort_000322c0)();
    return iVar3;
  }
  phVar11 = (hash_entry *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320);
  phVar10 = (hash_entry *)entry;
  pvVar2 = hash_find_entry(table,entry,&bucket,false);
  if (pvVar2 == (void *)0x0) {
    dVar17 = (double)(int)table->n_buckets_used;
    if ((int)table->n_buckets_used < 0) {
      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
    }
    dVar19 = (double)(int)table->n_buckets;
    if ((int)table->n_buckets < 0) {
      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
    }
    if ((float)dVar19 * table->tuning->growth_threshold < (float)dVar17) {
      check_tuning((Hash_table *)&table->tuning);
      pHVar7 = table->tuning;
      dVar17 = (double)(int)table->n_buckets;
      if ((int)table->n_buckets < 0) {
        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
      }
      dVar19 = (double)(int)table->n_buckets_used;
      if ((int)table->n_buckets_used < 0) {
        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
      }
      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {
        fVar20 = (float)dVar17 * pHVar7->growth_factor;
        if (pHVar7->is_n_buckets == false) {
          fVar20 = fVar20 * pHVar7->growth_threshold;
        }
        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {
          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {
            phVar10 = (hash_entry *)(int)fVar20;
          }
          else {
            phVar10 = (hash_entry *)
                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +
                                                0x103c)) | 0x80000000);
          }
          _Var5 = hash_rehash(table,(size_t)phVar10);
          if (CONCAT31(extraout_var,_Var5) != 0) {
            phVar10 = (hash_entry *)entry;
            pvVar2 = hash_find_entry(table,entry,&bucket,false);
            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;
            goto LAB_0001de58;
          }
        }
        iVar3 = -1;
        goto LAB_0001ddd0;
      }
    }
LAB_0001de58:
    iVar3 = 1;
    phVar11 = bucket;
    if (bucket->data == (void *)0x0) {
      sVar8 = table->n_entries;
      sVar4 = table->n_buckets_used;
      bucket->data = entry;
      table->n_entries = sVar8 + 1;
      table->n_buckets_used = sVar4 + 1;
    }
    else {
      phVar18 = table->free_entry_list;
      if (phVar18 == (hash_entry *)0x0) {
        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);
        if (phVar18 == (hash_entry *)0x0) {
          iVar3 = -1;
          goto LAB_0001ddd0;
        }
      }
      else {
        table->free_entry_list = phVar18->next;
      }
      sVar4 = table->n_entries;
      iVar3 = 1;
      phVar10 = bucket->next;
      phVar18->data = entry;
      phVar18->next = phVar10;
      bucket->next = phVar18;
      table->n_entries = sVar4 + 1;
    }
  }
  else if (matched_ent == (void **)0x0) {
    iVar3 = 0;
  }
  else {
    *matched_ent = pvVar2;
    iVar3 = 0;
  }
LAB_0001ddd0:
  if (local_24 == *(Hash_table **)puVar1) {
    return iVar3;
  }
  pcVar15 = hash_insert;
  pHVar9 = local_24;
  puVar14 = PTR___stack_chk_fail_00032394;
  (*(code *)PTR___stack_chk_fail_00032394)();
  puStack_60 = puVar14 + 0x1c0e4;
  piVar12 = *(int **)(puVar14 + 0x143ac);
  pHStack_54 = (Hash_table *)*piVar12;
  phVar18 = phVar10;
  pHStack_4c = table;
  phStack_48 = phVar11;
  pcStack_44 = pcVar15;
  iVar3 = hash_insert_if_absent(pHVar9,phVar10,&phStack_58);
  if (iVar3 == -1) {
    phStack_58 = (hash_entry *)0x0;
  }
  else if (iVar3 != 0) {
    phStack_58 = phVar10;
  }
  if (pHStack_54 == (Hash_table *)*piVar12) {
    return (int)phStack_58;
  }
  pcVar15 = *(code **)(puStack_60 + -0x7d4c);
  pcVar16 = hash_delete;
  pHVar9 = pHStack_54;
  (*pcVar15)();
  piVar13 = *(int **)(pcVar15 + 0x14320);
  puStack_7c = puVar1;
  puStack_8c = (undefined4 *)*piVar13;
  phStack_84 = phVar10;
  piStack_80 = piVar12;
  pvStack_78 = entry;
  pcStack_74 = pcVar16;
  pvVar2 = hash_find_entry(pHVar9,phVar18,&phStack_90,true);
  if ((pvVar2 == (void *)0x0) ||
     (pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0))
  goto LAB_0001e0fc;
  sVar4 = pHVar9->n_buckets_used - 1;
  pHVar9->n_buckets_used = sVar4;
  if ((int)sVar4 < 0) {
    pHVar7 = pHVar9->tuning;
    fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040));
    dVar17 = (double)(int)pHVar9->n_buckets;
    if ((int)pHVar9->n_buckets < 0) {
      iVar3 = *(int *)(pcVar15 + 0x14090);
      goto LAB_0001e254;
    }
LAB_0001e158:
    if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;
  }
  else {
    fVar20 = (float)(int)sVar4;
    pHVar7 = pHVar9->tuning;
    dVar17 = (double)(int)pHVar9->n_buckets;
    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;
    iVar3 = *(int *)(pcVar15 + 0x14090);
LAB_0001e254:
    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)
    goto LAB_0001e0fc;
  }
  check_tuning((Hash_table *)&pHVar9->tuning);
  pHVar7 = pHVar9->tuning;
  dVar17 = (double)(int)pHVar9->n_buckets;
  if ((int)pHVar9->n_buckets < 0) {
    dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);
  }
  dVar19 = (double)(int)pHVar9->n_buckets_used;
  if ((int)pHVar9->n_buckets_used < 0) {
    dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);
  }
  if ((float)dVar17 * pHVar7->shrink_threshold <= (float)dVar19) goto LAB_0001e0fc;
  fVar20 = (float)dVar17 * pHVar7->shrink_factor;
  if (pHVar7->is_n_buckets == false) {
    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);
    fVar20 = fVar20 * pHVar7->growth_threshold;
    if (fVar21 <= fVar20) goto LAB_0001e1fc;
LAB_0001e2c4:
    phVar18 = (hash_entry *)(int)fVar20;
  }
  else {
    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);
    if (fVar20 < fVar21) goto LAB_0001e2c4;
LAB_0001e1fc:
    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);
  }
  _Var5 = hash_rehash(pHVar9,(size_t)phVar18);
  if (CONCAT31(extraout_var_00,_Var5) == 0) {
    phVar10 = pHVar9->free_entry_list;
    while (phVar10 != (hash_entry *)0x0) {
      phVar10 = phVar10->next;
      (**(code **)(pcVar15 + 0x1432c))();
    }
    pHVar9->free_entry_list = (hash_entry *)0x0;
  }
LAB_0001e0fc:
  if (puStack_8c == (undefined4 *)*piVar13) {
    return (int)pvVar2;
  }
  (**(code **)(pcVar15 + 0x1430c))();
  puStack_8c[5] = 0;
  puStack_8c[6] = 0;
  *(undefined1 *)(puStack_8c + 7) = 1;
  *puStack_8c = phVar18;
  puStack_8c[1] = phVar18;
  puStack_8c[2] = phVar18;
  puStack_8c[3] = phVar18;
  puStack_8c[4] = phVar18;
  return 1;
}



uint hash_insert_if_absent(int param_1,uint param_2,int *param_3)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  float *pfVar6;
  int *piVar7;
  undefined4 *puVar8;
  undefined *puVar9;
  code *pcVar10;
  double dVar11;
  float fVar13;
  double dVar12;
  float fVar14;
  int *piStack_90;
  uint uStack_58;
  uint *local_28;
  int local_24;
  
  puVar9 = PTR___stack_chk_guard_000323a8;
  local_24 = *(int *)PTR___stack_chk_guard_000323a8;
  if (param_2 == 0) {
LAB_0001dfd0:
    uVar5 = (*(code *)PTR_abort_000322c0)();
    return uVar5;
  }
  uVar5 = param_2;
  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);
  if (iVar1 == 0) {
    dVar11 = (double)*(int *)(param_1 + 0xc);
    if (*(int *)(param_1 + 0xc) < 0) {
      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
    }
    dVar12 = (double)*(int *)(param_1 + 8);
    if (*(int *)(param_1 + 8) < 0) {
      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
    }
    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {
      FUN_0001ce28(param_1 + 0x14);
      iVar1 = *(int *)(param_1 + 0x14);
      dVar11 = (double)*(int *)(param_1 + 8);
      if (*(int *)(param_1 + 8) < 0) {
        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
      }
      dVar12 = (double)*(int *)(param_1 + 0xc);
      if (*(int *)(param_1 + 0xc) < 0) {
        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
      }
      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {
        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);
        if (*(char *)(iVar1 + 0x10) == '\0') {
          fVar13 = fVar13 * *(float *)(iVar1 + 8);
        }
        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {
          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {
            uVar5 = (uint)fVar13;
          }
          else {
            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +
                                             0x103c)) | 0x80000000;
          }
          iVar1 = hash_rehash(param_1);
          if (iVar1 != 0) {
            uVar5 = param_2;
            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);
            if (iVar1 != 0) goto LAB_0001dfd0;
            goto LAB_0001de58;
          }
        }
        uVar2 = 0xffffffff;
        goto LAB_0001ddd0;
      }
    }
LAB_0001de58:
    uVar2 = 1;
    if (*local_28 == 0) {
      iVar3 = *(int *)(param_1 + 0x10);
      iVar1 = *(int *)(param_1 + 0xc);
      *local_28 = param_2;
      *(int *)(param_1 + 0x10) = iVar3 + 1;
      *(int *)(param_1 + 0xc) = iVar1 + 1;
    }
    else {
      puVar4 = *(uint **)(param_1 + 0x24);
      if (puVar4 == (uint *)0x0) {
        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);
        if (puVar4 == (uint *)0x0) {
          uVar2 = 0xffffffff;
          goto LAB_0001ddd0;
        }
      }
      else {
        *(uint *)(param_1 + 0x24) = puVar4[1];
      }
      iVar1 = *(int *)(param_1 + 0x10);
      uVar2 = 1;
      uVar5 = local_28[1];
      *puVar4 = param_2;
      puVar4[1] = uVar5;
      local_28[1] = (uint)puVar4;
      *(int *)(param_1 + 0x10) = iVar1 + 1;
    }
  }
  else if (param_3 == (int *)0x0) {
    uVar2 = 0;
  }
  else {
    *param_3 = iVar1;
    uVar2 = 0;
  }
LAB_0001ddd0:
  if (local_24 == *(int *)puVar9) {
    return uVar2;
  }
  puVar9 = PTR___stack_chk_fail_00032394;
  (*(code *)PTR___stack_chk_fail_00032394)();
  piVar7 = *(int **)(puVar9 + 0x143ac);
  iVar1 = *piVar7;
  uVar2 = uVar5;
  iVar3 = hash_insert_if_absent();
  if (iVar3 == -1) {
    uStack_58 = 0;
  }
  else if (iVar3 != 0) {
    uStack_58 = uVar5;
  }
  if (iVar1 == *piVar7) {
    return uStack_58;
  }
  pcVar10 = *(code **)(puVar9 + 0x14398);
  (*pcVar10)();
  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);
  puVar4 = (uint *)*puVar8;
  uVar5 = FUN_0001cce0();
  if ((uVar5 == 0) ||
     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))
  goto LAB_0001e0fc;
  iVar3 = *(int *)(iVar1 + 0xc) + -1;
  *(int *)(iVar1 + 0xc) = iVar3;
  if (iVar3 < 0) {
    pfVar6 = *(float **)(iVar1 + 0x14);
    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));
    dVar11 = (double)*(int *)(iVar1 + 8);
    if (*(int *)(iVar1 + 8) < 0) {
      iVar3 = *(int *)(pcVar10 + 0x14090);
      goto LAB_0001e254;
    }
LAB_0001e158:
    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;
  }
  else {
    fVar13 = (float)iVar3;
    pfVar6 = *(float **)(iVar1 + 0x14);
    dVar11 = (double)*(int *)(iVar1 + 8);
    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;
    iVar3 = *(int *)(pcVar10 + 0x14090);
LAB_0001e254:
    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;
  }
  FUN_0001ce28(iVar1 + 0x14);
  pfVar6 = *(float **)(iVar1 + 0x14);
  dVar11 = (double)*(int *)(iVar1 + 8);
  if (*(int *)(iVar1 + 8) < 0) {
    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);
  }
  dVar12 = (double)*(int *)(iVar1 + 0xc);
  if (*(int *)(iVar1 + 0xc) < 0) {
    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);
  }
  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;
  fVar13 = (float)dVar11 * pfVar6[1];
  if (*(char *)(pfVar6 + 4) == '\0') {
    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);
    fVar13 = fVar13 * pfVar6[2];
    if (fVar14 <= fVar13) goto LAB_0001e1fc;
LAB_0001e2c4:
    uVar2 = (uint)fVar13;
  }
  else {
    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);
    if (fVar13 < fVar14) goto LAB_0001e2c4;
LAB_0001e1fc:
    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;
  }
  iVar3 = hash_rehash(iVar1);
  if (iVar3 == 0) {
    iVar3 = *(int *)(iVar1 + 0x24);
    while (iVar3 != 0) {
      iVar3 = *(int *)(iVar3 + 4);
      (**(code **)(pcVar10 + 0x1432c))();
    }
    *(undefined4 *)(iVar1 + 0x24) = 0;
  }
LAB_0001e0fc:
  if (puVar4 == (uint *)*puVar8) {
    return uVar5;
  }
  (**(code **)(pcVar10 + 0x1430c))();
  puVar4[5] = 0;
  puVar4[6] = 0;
  *(undefined1 *)(puVar4 + 7) = 1;
  *puVar4 = uVar2;
  puVar4[1] = uVar2;
  puVar4[2] = uVar2;
  puVar4[3] = uVar2;
  puVar4[4] = uVar2;
  return 1;
}


lui gp,0x2
addiu gp,gp,-0x3c70
addu gp,gp,t9
addiu sp,sp,-0x40
sw s2,0x2c(sp)
lw s2,-0x7d38(gp)
sw gp,0x10(sp)
sw ra,0x3c(sp)
sw s5,0x38(sp)
sw s4,0x34(sp)
sw s3,0x30(sp)
sw s1,0x28(sp)
sw s0,0x24(sp)
lw v0,0x0(s2)
sw v0,0x1c(sp)
beq a1,zero,0x0001dfd0
_or a3,zero,zero
lw s1,-0x7fc8(gp)
addiu s4,sp,0x18
or s5,a2,zero
addiu s1,s1,-0x3320
or a2,s4,zero
or t9,s1,zero
or s3,a1,zero
bal 0x0001cce0
_or s0,a0,zero
beq v0,zero,0x0001de00
_lw gp,0x10(sp)
beq s5,zero,0x0001dea0
_nop
sw v0,0x0(s5)
or v0,zero,zero
lw a0,0x1c(sp)
lw v1,0x0(s2)
bne a0,v1,0x0001dff0
_lw ra,0x3c(sp)
lw s5,0x38(sp)
lw s4,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x40
lw v0,0xc(s0)
mtc1 v0,f0
bgez v0,0x0001de1c
_cvt.d.W f0,f0
lw v0,-0x7fc8(gp)
ldc1 f2,0x1040(v0)
add.D f0,f0,f2
lw v0,0x8(s0)
cvt.s.D f2,f0
lw v1,0x14(s0)
mtc1 v0,f0
bgez v0,0x0001de40
_cvt.d.W f0,f0
lw v0,-0x7fc8(gp)
ldc1 f4,0x1040(v0)
add.D f0,f0,f4
lwc1 f4,0x8(v1)
cvt.s.D f0,f0
mul.S f0,f0,f4
c.lt.S f0,f2
bc1t 0x0001dea8
_lw t9,-0x7fc8(gp)
lw s1,0x18(sp)
lw v0,0x0(s1)
beq v0,zero,0x0001df3c
_li v0,0x1
lw v1,0x24(s0)
beq v1,zero,0x0001df5c
_lw t9,-0x7d88(gp)
lw v0,0x4(v1)
sw v0,0x24(s0)
lw a0,0x10(s0)
li v0,0x1
lw a1,0x4(s1)
sw s3,0x0(v1)
addiu a0,a0,0x1
sw a1,0x4(v1)
sw v1,0x4(s1)
b 0x0001ddd0
_sw a0,0x10(s0)
b 0x0001ddd0
_or v0,zero,zero
addiu t9,t9,-0x31d8
bal 0x0001ce28
_addiu a0,s0,0x14
lw v0,0x8(s0)
lw v1,0x14(s0)
lw gp,0x10(sp)
mtc1 v0,f0
lwc1 f4,0x8(v1)
bgez v0,0x0001dedc
_cvt.d.W f0,f0
lw v0,-0x7fc8(gp)
ldc1 f2,0x1040(v0)
add.D f0,f0,f2
lw v0,0xc(s0)
cvt.s.D f0,f0
mtc1 v0,f2
bgez v0,0x0001defc
_cvt.d.W f2,f2
lw v0,-0x7fc8(gp)
ldc1 f6,0x1040(v0)
add.D f2,f2,f6
cvt.s.D f2,f2
mul.S f6,f4,f0
c.lt.S f6,f2
bc1f 0x1,0x0001de58
_nop
lwc1 f2,0xc(v1)
lbu v0,0x10(v1)
beq v0,zero,0x0001df78
_mul.S f0,f0,f2
lw v0,-0x7fc8(gp)
lwc1 f2,0x1038(v0)
c.le.S f2,f0
bc1f 0x2,0x0001df80
_nop
b 0x0001ddd0
_li v0,-0x1
lw a0,0x10(s0)
lw v1,0xc(s0)
sw s3,0x0(s1)
addiu a0,a0,0x1
addiu v1,v1,0x1
sw a0,0x10(s0)
b 0x0001ddd0
_sw v1,0xc(s0)
jalr t9
_li a0,0x8
lw gp,0x10(sp)
bne v0,zero,0x0001de7c
_or v1,v0,zero
b 0x0001ddd0
_li v0,-0x1
b 0x0001df20
_mul.S f0,f0,f4
lw v0,-0x7fc8(gp)
lwc1 f2,0x103c(v0)
c.le.S f2,f0
bc1t 0x3,0x0001dfdc
_lui v0,0x8000
trunc.w.S f0,f0
mfc1 a1,f0
lw t9,-0x7e64(gp)
bal 0x0001dae8
_or a0,s0,zero
beq v0,zero,0x0001df34
_lw gp,0x10(sp)
or a3,zero,zero
or a2,s4,zero
or a1,s3,zero
or t9,s1,zero
bal 0x0001cce0
_or a0,s0,zero
beq v0,zero,0x0001de58
_lw gp,0x10(sp)
lw t9,-0x7e20(gp)
jalr t9
_nop
sub.S S f0,f0,f2
trunc.w.S f0,f0
mfc1 a1,f0
b 0x0001df9c
_or a1,a1,v0
lw t9,-0x7d4c(gp)
jalr t9
_nop
(translation_unit "uint hash_insert_if_absent(int param_1,uint param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}\n\n" (function_definition "uint hash_insert_if_absent(int param_1,uint param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}" type_identifier (function_declarator "hash_insert_if_absent(int param_1,uint param_2,int *param_3)" identifier (parameter_list "(int param_1,uint param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "float *pfVar6;" primitive_type (pointer_declarator "*pfVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "double dVar11;" primitive_type identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "double dVar12;" primitive_type identifier ;) (declaration "float fVar14;" primitive_type identifier ;) (declaration "int *piStack_90;" primitive_type (pointer_declarator "*piStack_90" * identifier) ;) (declaration "uint uStack_58;" type_identifier identifier ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar9 = PTR___stack_chk_guard_000323a8;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000323a8" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000323a8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000323a8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000323a8" * (cast_expression "(int *)PTR___stack_chk_guard_000323a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }" { (labeled_statement "LAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_abort_000322c0)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_000322c0)()" identifier = (call_expression "(*(code *)PTR_abort_000322c0)()" (parenthesized_expression "(*(code *)PTR_abort_000322c0)" ( (pointer_expression "*(code *)PTR_abort_000322c0" * (cast_expression "(code *)PTR_abort_000322c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar5;" return identifier ;) })) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);" (assignment_expression "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0)" identifier = (call_expression "FUN_0001cce0(param_1,param_2,&local_28,0)" identifier (argument_list "(param_1,param_2,&local_28,0)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }" { (expression_statement "dVar11 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar11 = (double)*(int *)(param_1 + 0xc)" identifier = (cast_expression "(double)*(int *)(param_1 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) < 0)" ( (binary_expression "*(int *)(param_1 + 0xc) < 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" { (expression_statement "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (expression_statement "dVar12 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar12 = (double)*(int *)(param_1 + 8)" identifier = (cast_expression "(double)*(int *)(param_1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 8) < 0)" ( (binary_expression "*(int *)(param_1 + 8) < 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" { (expression_statement "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }" if (parenthesized_expression "((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11)" ( (binary_expression "(float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11" (binary_expression "(float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar12" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*(float *)(*(int *)(param_1 + 0x14) + 8)" * (cast_expression "(float *)(*(int *)(param_1 + 0x14) + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x14) + 8)" ( (binary_expression "*(int *)(param_1 + 0x14) + 8" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + number_literal) ))))) < (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }" { (expression_statement "FUN_0001ce28(param_1 + 0x14);" (call_expression "FUN_0001ce28(param_1 + 0x14)" identifier (argument_list "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar11 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(param_1 + 8)" identifier = (cast_expression "(double)*(int *)(param_1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 8) < 0)" ( (binary_expression "*(int *)(param_1 + 8) < 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" { (expression_statement "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (expression_statement "dVar12 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar12 = (double)*(int *)(param_1 + 0xc)" identifier = (cast_expression "(double)*(int *)(param_1 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) < 0)" ( (binary_expression "*(int *)(param_1 + 0xc) < 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" { (expression_statement "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (if_statement "if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }" if (parenthesized_expression "(*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12)" ( (binary_expression "*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12" (binary_expression "*(float *)(iVar1 + 8) * (float)dVar11" (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) * (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier)) < (cast_expression "(float)dVar12" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }" { (expression_statement "fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc)" identifier = (binary_expression "(float)dVar11 * *(float *)(iVar1 + 0xc)" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*(float *)(iVar1 + 0xc)" * (cast_expression "(float *)(iVar1 + 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x10) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x10)" * (cast_expression "(char *)(iVar1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }" { (expression_statement "fVar13 = fVar13 * *(float *)(iVar1 + 8);" (assignment_expression "fVar13 = fVar13 * *(float *)(iVar1 + 8)" identifier = (binary_expression "fVar13 * *(float *)(iVar1 + 8)" identifier * (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) })) (if_statement "if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" if (parenthesized_expression "(fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038))" ( (binary_expression "fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" identifier < (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038" identifier + number_literal) ))))) )) (compound_statement "{\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" { (if_statement "if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" if (parenthesized_expression "(fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c))" ( (binary_expression "fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" identifier < (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar5 = (uint)fVar13;\n          }" { (expression_statement "uVar5 = (uint)fVar13;" (assignment_expression "uVar5 = (uint)fVar13" identifier = (cast_expression "(uint)fVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" { (expression_statement "uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;" (assignment_expression "uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000" identifier = (binary_expression "(int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000" (cast_expression "(int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c))" ( (binary_expression "fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" identifier - (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar1 = hash_rehash(param_1);" (assignment_expression "iVar1 = hash_rehash(param_1)" identifier = (call_expression "hash_rehash(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" { (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);" (assignment_expression "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0)" identifier = (call_expression "FUN_0001cce0(param_1,param_2,&local_28,0)" identifier (argument_list "(param_1,param_2,&local_28,0)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) goto LAB_0001dfd0;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001dfd0;" goto statement_identifier ;)) (goto_statement "goto LAB_0001de58;" goto statement_identifier ;) })) })) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_0001ddd0;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001de58:\n    uVar2 = 1;" statement_identifier : (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;)) (if_statement "if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" if (parenthesized_expression "(*local_28 == 0)" ( (binary_expression "*local_28 == 0" (pointer_expression "*local_28" * identifier) == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*local_28 = param_2;" (assignment_expression "*local_28 = param_2" (pointer_expression "*local_28" * identifier) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0xc) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" else (compound_statement "{\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" { (expression_statement "puVar4 = *(uint **)(param_1 + 0x24);" (assignment_expression "puVar4 = *(uint **)(param_1 + 0x24)" identifier = (pointer_expression "*(uint **)(param_1 + 0x24)" * (cast_expression "(uint **)(param_1 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }" { (expression_statement "puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00032358)(8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00032358)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00032358)" ( (pointer_expression "*(code *)PTR_malloc_00032358" * (cast_expression "(code *)PTR_malloc_00032358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }" { (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_0001ddd0;" goto statement_identifier ;) })) }) (else_clause "else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" else (compound_statement "{\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" { (expression_statement "*(uint *)(param_1 + 0x24) = puVar4[1];" (assignment_expression "*(uint *)(param_1 + 0x24) = puVar4[1]" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar1 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "uVar5 = local_28[1];" (assignment_expression "uVar5 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uVar5;" (assignment_expression "puVar4[1] = uVar5" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_28[1] = (uint)puVar4;" (assignment_expression "local_28[1] = (uint)puVar4" (subscript_expression "local_28[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" else (if_statement "if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = 0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" else (compound_statement "{\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" { (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))))) (labeled_statement "LAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar9)" ( (binary_expression "local_24 == *(int *)puVar9" identifier == (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "puVar9 = PTR___stack_chk_fail_00032394;" (assignment_expression "puVar9 = PTR___stack_chk_fail_00032394" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00032394)();" (call_expression "(*(code *)PTR___stack_chk_fail_00032394)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00032394)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00032394" * (cast_expression "(code *)PTR___stack_chk_fail_00032394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar9 + 0x143ac);" (assignment_expression "piVar7 = *(int **)(puVar9 + 0x143ac)" identifier = (pointer_expression "*(int **)(puVar9 + 0x143ac)" * (cast_expression "(int **)(puVar9 + 0x143ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x143ac)" ( (binary_expression "puVar9 + 0x143ac" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar7;" (assignment_expression "iVar1 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "uVar2 = uVar5;" (assignment_expression "uVar2 = uVar5" identifier = identifier) ;) (expression_statement "iVar3 = hash_insert_if_absent();" (assignment_expression "iVar3 = hash_insert_if_absent()" identifier = (call_expression "hash_insert_if_absent()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    uStack_58 = 0;\n  }" { (expression_statement "uStack_58 = 0;" (assignment_expression "uStack_58 = 0" identifier = number_literal) ;) }) (else_clause "else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" else (if_statement "if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uStack_58 = uVar5;\n  }" { (expression_statement "uStack_58 = uVar5;" (assignment_expression "uStack_58 = uVar5" identifier = identifier) ;) })))) (if_statement "if (iVar1 == *piVar7) {\n    return uStack_58;\n  }" if (parenthesized_expression "(iVar1 == *piVar7)" ( (binary_expression "iVar1 == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return uStack_58;\n  }" { (return_statement "return uStack_58;" return identifier ;) })) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x14398);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x14398)" identifier = (pointer_expression "*(code **)(puVar9 + 0x14398)" * (cast_expression "(code **)(puVar9 + 0x14398)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x14398)" ( (binary_expression "puVar9 + 0x14398" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = *(undefined4 **)(pcVar10 + 0x14320);" (assignment_expression "puVar8 = *(undefined4 **)(pcVar10 + 0x14320)" identifier = (pointer_expression "*(undefined4 **)(pcVar10 + 0x14320)" * (cast_expression "(undefined4 **)(pcVar10 + 0x14320)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x14320)" ( (binary_expression "pcVar10 + 0x14320" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (uint *)*puVar8;" (assignment_expression "puVar4 = (uint *)*puVar8" identifier = (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "uVar5 = FUN_0001cce0();" (assignment_expression "uVar5 = FUN_0001cce0()" identifier = (call_expression "FUN_0001cce0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;" if (parenthesized_expression "((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))" ( (binary_expression "(uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0)" ( (comma_expression "iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0" (assignment_expression "iVar3 = *piStack_90" identifier = (pointer_expression "*piStack_90" * identifier)) , (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0" (assignment_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar1 + 0x10) + -1" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) + number_literal)) , (binary_expression "iVar3 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(iVar1 + 0xc) + -1;" (assignment_expression "iVar3 = *(int *)(iVar1 + 0xc) + -1" identifier = (binary_expression "*(int *)(iVar1 + 0xc) + -1" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar1 + 0xc) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" { (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" identifier = (pointer_expression "*(float **)(iVar1 + 0x14)" * (cast_expression "(float **)(iVar1 + 0x14)" ( (type_descriptor "float **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));" (assignment_expression "fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" identifier = (cast_expression "(float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" ( (binary_expression "(double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) + (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 8) < 0)" ( (binary_expression "*(int *)(iVar1 + 8) < 0" (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }" { (expression_statement "iVar3 = *(int *)(pcVar10 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar10 + 0x14090)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001e254;" goto statement_identifier ;) })) (labeled_statement "LAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;" statement_identifier : (if_statement "if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;" if (parenthesized_expression "((float)dVar11 * *pfVar6 <= fVar13)" ( (binary_expression "(float)dVar11 * *pfVar6 <= fVar13" (binary_expression "(float)dVar11 * *pfVar6" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar6" * identifier)) <= identifier) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;))) }) (else_clause "else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" else (compound_statement "{\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" { (expression_statement "fVar13 = (float)iVar3;" (assignment_expression "fVar13 = (float)iVar3" identifier = (cast_expression "(float)iVar3" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" identifier = (pointer_expression "*(float **)(iVar1 + 0x14)" * (cast_expression "(float **)(iVar1 + 0x14)" ( (type_descriptor "float **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;" if (parenthesized_expression "(-1 < *(int *)(iVar1 + 8))" ( (binary_expression "-1 < *(int *)(iVar1 + 8)" number_literal < (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001e158;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pcVar10 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar10 + 0x14090)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;" statement_identifier : (if_statement "if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;" if (parenthesized_expression "((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13)" ( (binary_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13" (binary_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6" (cast_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar11 + *(double *)(iVar3 + 0x1040))" ( (binary_expression "dVar11 + *(double *)(iVar3 + 0x1040)" identifier + (pointer_expression "*(double *)(iVar3 + 0x1040)" * (cast_expression "(double *)(iVar3 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1040)" ( (binary_expression "iVar3 + 0x1040" identifier + number_literal) ))))) ))) * (pointer_expression "*pfVar6" * identifier)) <= identifier) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;))) }))) (expression_statement "FUN_0001ce28(iVar1 + 0x14);" (call_expression "FUN_0001ce28(iVar1 + 0x14)" identifier (argument_list "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" identifier = (pointer_expression "*(float **)(iVar1 + 0x14)" * (cast_expression "(float **)(iVar1 + 0x14)" ( (type_descriptor "float **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 8) < 0)" ( (binary_expression "*(int *)(iVar1 + 8) < 0" (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" { (expression_statement "dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier = (binary_expression "dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar12 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar12 = (double)*(int *)(iVar1 + 0xc)" identifier = (cast_expression "(double)*(int *)(iVar1 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0xc) < 0)" ( (binary_expression "*(int *)(iVar1 + 0xc) < 0" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" { (expression_statement "dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier = (binary_expression "dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;" if (parenthesized_expression "((float)dVar11 * *pfVar6 <= (float)dVar12)" ( (binary_expression "(float)dVar11 * *pfVar6 <= (float)dVar12" (binary_expression "(float)dVar11 * *pfVar6" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar6" * identifier)) <= (cast_expression "(float)dVar12" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;)) (expression_statement "fVar13 = (float)dVar11 * pfVar6[1];" (assignment_expression "fVar13 = (float)dVar11 * pfVar6[1]" identifier = (binary_expression "(float)dVar11 * pfVar6[1]" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (subscript_expression "pfVar6[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" if (parenthesized_expression "(*(char *)(pfVar6 + 4) == '\0')" ( (binary_expression "*(char *)(pfVar6 + 4) == '\0'" (pointer_expression "*(char *)(pfVar6 + 4)" * (cast_expression "(char *)(pfVar6 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pfVar6 + 4)" ( (binary_expression "pfVar6 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }" { (expression_statement "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);" (assignment_expression "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" * (cast_expression "(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "fVar13 = fVar13 * pfVar6[2];" (assignment_expression "fVar13 = fVar13 * pfVar6[2]" identifier = (binary_expression "fVar13 * pfVar6[2]" identifier * (subscript_expression "pfVar6[2]" identifier [ number_literal ]))) ;) (if_statement "if (fVar14 <= fVar13) goto LAB_0001e1fc;" if (parenthesized_expression "(fVar14 <= fVar13)" ( (binary_expression "fVar14 <= fVar13" identifier <= identifier) )) (goto_statement "goto LAB_0001e1fc;" goto statement_identifier ;)) (labeled_statement "LAB_0001e2c4:\n    uVar2 = (uint)fVar13;" statement_identifier : (expression_statement "uVar2 = (uint)fVar13;" (assignment_expression "uVar2 = (uint)fVar13" identifier = (cast_expression "(uint)fVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) }) (else_clause "else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" else (compound_statement "{\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" { (expression_statement "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);" (assignment_expression "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" * (cast_expression "(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (fVar13 < fVar14) goto LAB_0001e2c4;" if (parenthesized_expression "(fVar13 < fVar14)" ( (binary_expression "fVar13 < fVar14" identifier < identifier) )) (goto_statement "goto LAB_0001e2c4;" goto statement_identifier ;)) (labeled_statement "LAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;" statement_identifier : (expression_statement "uVar2 = (int)(fVar13 - fVar14) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar13 - fVar14) | 0x80000000" identifier = (binary_expression "(int)(fVar13 - fVar14) | 0x80000000" (cast_expression "(int)(fVar13 - fVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar13 - fVar14)" ( (binary_expression "fVar13 - fVar14" identifier - identifier) ))) | number_literal)) ;)) }))) (expression_statement "iVar3 = hash_rehash(iVar1);" (assignment_expression "iVar3 = hash_rehash(iVar1)" identifier = (call_expression "hash_rehash(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" { (expression_statement "iVar3 = *(int *)(iVar1 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x24)" identifier = (pointer_expression "*(int *)(iVar1 + 0x24)" * (cast_expression "(int *)(iVar1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) ))))) ;) (while_statement "while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }" while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }" { (expression_statement "iVar3 = *(int *)(iVar3 + 4);" (assignment_expression "iVar3 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar10 + 0x1432c))();" (call_expression "(**(code **)(pcVar10 + 0x1432c))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x1432c))" ( (pointer_expression "**(code **)(pcVar10 + 0x1432c)" * (pointer_expression "*(code **)(pcVar10 + 0x1432c)" * (cast_expression "(code **)(pcVar10 + 0x1432c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x1432c)" ( (binary_expression "pcVar10 + 0x1432c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" * (cast_expression "(undefined4 *)(iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }" if (parenthesized_expression "(puVar4 == (uint *)*puVar8)" ( (binary_expression "puVar4 == (uint *)*puVar8" identifier == (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "(**(code **)(pcVar10 + 0x1430c))();" (call_expression "(**(code **)(pcVar10 + 0x1430c))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x1430c))" ( (pointer_expression "**(code **)(pcVar10 + 0x1430c)" * (pointer_expression "*(code **)(pcVar10 + 0x1430c)" * (cast_expression "(code **)(pcVar10 + 0x1430c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x1430c)" ( (binary_expression "pcVar10 + 0x1430c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar4 + 7) = 1;" (assignment_expression "*(undefined1 *)(puVar4 + 7) = 1" (pointer_expression "*(undefined1 *)(puVar4 + 7)" * (cast_expression "(undefined1 *)(puVar4 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uVar2;" (assignment_expression "puVar4[1] = uVar2" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar2;" (assignment_expression "puVar4[2] = uVar2" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar2;" (assignment_expression "puVar4[3] = uVar2" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = uVar2;" (assignment_expression "puVar4[4] = uVar2" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "int hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar2;\n  int iVar3;\n  size_t sVar4;\n  _Bool _Var5;\n  void *pvVar6;\n  Hash_tuning *pHVar7;\n  size_t sVar8;\n  Hash_table *pHVar9;\n  hash_entry *phVar10;\n  hash_entry *phVar11;\n  int *piVar12;\n  int *piVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  double dVar17;\n  hash_entry *phVar18;\n  float fVar20;\n  double dVar19;\n  float fVar21;\n  hash_entry *phStack_90;\n  undefined4 *puStack_8c;\n  hash_entry *phStack_84;\n  int *piStack_80;\n  undefined *puStack_7c;\n  void *pvStack_78;\n  code *pcStack_74;\n  undefined *puStack_60;\n  hash_entry *phStack_58;\n  Hash_table *pHStack_54;\n  Hash_table *pHStack_4c;\n  hash_entry *phStack_48;\n  code *pcStack_44;\n  hash_entry *bucket;\n  Hash_table *local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(Hash_table **)PTR___stack_chk_guard_000323a8;\n  if (entry == (void *)0x0) {\nLAB_0001dfd0:\n    iVar3 = (*(code *)PTR_abort_000322c0)();\n    return iVar3;\n  }\n  phVar11 = (hash_entry *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320);\n  phVar10 = (hash_entry *)entry;\n  pvVar2 = hash_find_entry(table,entry,&bucket,false);\n  if (pvVar2 == (void *)0x0) {\n    dVar17 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar19 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar19 * table->tuning->growth_threshold < (float)dVar17) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar7 = table->tuning;\n      dVar17 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar19 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    iVar3 = 1;\n    phVar11 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar8 = table->n_entries;\n      sVar4 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar8 + 1;\n      table->n_buckets_used = sVar4 + 1;\n    }\n    else {\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }\n  pcVar15 = hash_insert;\n  pHVar9 = local_24;\n  puVar14 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  puStack_60 = puVar14 + 0x1c0e4;\n  piVar12 = *(int **)(puVar14 + 0x143ac);\n  pHStack_54 = (Hash_table *)*piVar12;\n  phVar18 = phVar10;\n  pHStack_4c = table;\n  phStack_48 = phVar11;\n  pcStack_44 = pcVar15;\n  iVar3 = hash_insert_if_absent(pHVar9,phVar10,&phStack_58);\n  if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar10;\n  }\n  if (pHStack_54 == (Hash_table *)*piVar12) {\n    return (int)phStack_58;\n  }\n  pcVar15 = *(code **)(puStack_60 + -0x7d4c);\n  pcVar16 = hash_delete;\n  pHVar9 = pHStack_54;\n  (*pcVar15)();\n  piVar13 = *(int **)(pcVar15 + 0x14320);\n  puStack_7c = puVar1;\n  puStack_8c = (undefined4 *)*piVar13;\n  phStack_84 = phVar10;\n  piStack_80 = piVar12;\n  pvStack_78 = entry;\n  pcStack_74 = pcVar16;\n  pvVar2 = hash_find_entry(pHVar9,phVar18,&phStack_90,true);\n  if ((pvVar2 == (void *)0x0) ||\n     (pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0))\n  goto LAB_0001e0fc;\n  sVar4 = pHVar9->n_buckets_used - 1;\n  pHVar9->n_buckets_used = sVar4;\n  if ((int)sVar4 < 0) {\n    pHVar7 = pHVar9->tuning;\n    fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040));\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if ((int)pHVar9->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar15 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;\n  }\n  else {\n    fVar20 = (float)(int)sVar4;\n    pHVar7 = pHVar9->tuning;\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar15 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;\n  }\n  check_tuning((Hash_table *)&pHVar9->tuning);\n  pHVar7 = pHVar9->tuning;\n  dVar17 = (double)(int)pHVar9->n_buckets;\n  if ((int)pHVar9->n_buckets < 0) {\n    dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }\n  dVar19 = (double)(int)pHVar9->n_buckets_used;\n  if ((int)pHVar9->n_buckets_used < 0) {\n    dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar17 * pHVar7->shrink_threshold <= (float)dVar19) goto LAB_0001e0fc;\n  fVar20 = (float)dVar17 * pHVar7->shrink_factor;\n  if (pHVar7->is_n_buckets == false) {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    fVar20 = fVar20 * pHVar7->growth_threshold;\n    if (fVar21 <= fVar20) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    phVar18 = (hash_entry *)(int)fVar20;\n  }\n  else {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    if (fVar20 < fVar21) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);\n  }\n  _Var5 = hash_rehash(pHVar9,(size_t)phVar18);\n  if (CONCAT31(extraout_var_00,_Var5) == 0) {\n    phVar10 = pHVar9->free_entry_list;\n    while (phVar10 != (hash_entry *)0x0) {\n      phVar10 = phVar10->next;\n      (**(code **)(pcVar15 + 0x1432c))();\n    }\n    pHVar9->free_entry_list = (hash_entry *)0x0;\n  }\nLAB_0001e0fc:\n  if (puStack_8c == (undefined4 *)*piVar13) {\n    return (int)pvVar2;\n  }\n  (**(code **)(pcVar15 + 0x1430c))();\n  puStack_8c[5] = 0;\n  puStack_8c[6] = 0;\n  *(undefined1 *)(puStack_8c + 7) = 1;\n  *puStack_8c = phVar18;\n  puStack_8c[1] = phVar18;\n  puStack_8c[2] = phVar18;\n  puStack_8c[3] = phVar18;\n  puStack_8c[4] = phVar18;\n  return 1;\n}\n\n" (function_definition "int hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar2;\n  int iVar3;\n  size_t sVar4;\n  _Bool _Var5;\n  void *pvVar6;\n  Hash_tuning *pHVar7;\n  size_t sVar8;\n  Hash_table *pHVar9;\n  hash_entry *phVar10;\n  hash_entry *phVar11;\n  int *piVar12;\n  int *piVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  double dVar17;\n  hash_entry *phVar18;\n  float fVar20;\n  double dVar19;\n  float fVar21;\n  hash_entry *phStack_90;\n  undefined4 *puStack_8c;\n  hash_entry *phStack_84;\n  int *piStack_80;\n  undefined *puStack_7c;\n  void *pvStack_78;\n  code *pcStack_74;\n  undefined *puStack_60;\n  hash_entry *phStack_58;\n  Hash_table *pHStack_54;\n  Hash_table *pHStack_4c;\n  hash_entry *phStack_48;\n  code *pcStack_44;\n  hash_entry *bucket;\n  Hash_table *local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(Hash_table **)PTR___stack_chk_guard_000323a8;\n  if (entry == (void *)0x0) {\nLAB_0001dfd0:\n    iVar3 = (*(code *)PTR_abort_000322c0)();\n    return iVar3;\n  }\n  phVar11 = (hash_entry *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320);\n  phVar10 = (hash_entry *)entry;\n  pvVar2 = hash_find_entry(table,entry,&bucket,false);\n  if (pvVar2 == (void *)0x0) {\n    dVar17 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar19 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar19 * table->tuning->growth_threshold < (float)dVar17) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar7 = table->tuning;\n      dVar17 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar19 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    iVar3 = 1;\n    phVar11 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar8 = table->n_entries;\n      sVar4 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar8 + 1;\n      table->n_buckets_used = sVar4 + 1;\n    }\n    else {\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }\n  pcVar15 = hash_insert;\n  pHVar9 = local_24;\n  puVar14 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  puStack_60 = puVar14 + 0x1c0e4;\n  piVar12 = *(int **)(puVar14 + 0x143ac);\n  pHStack_54 = (Hash_table *)*piVar12;\n  phVar18 = phVar10;\n  pHStack_4c = table;\n  phStack_48 = phVar11;\n  pcStack_44 = pcVar15;\n  iVar3 = hash_insert_if_absent(pHVar9,phVar10,&phStack_58);\n  if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar10;\n  }\n  if (pHStack_54 == (Hash_table *)*piVar12) {\n    return (int)phStack_58;\n  }\n  pcVar15 = *(code **)(puStack_60 + -0x7d4c);\n  pcVar16 = hash_delete;\n  pHVar9 = pHStack_54;\n  (*pcVar15)();\n  piVar13 = *(int **)(pcVar15 + 0x14320);\n  puStack_7c = puVar1;\n  puStack_8c = (undefined4 *)*piVar13;\n  phStack_84 = phVar10;\n  piStack_80 = piVar12;\n  pvStack_78 = entry;\n  pcStack_74 = pcVar16;\n  pvVar2 = hash_find_entry(pHVar9,phVar18,&phStack_90,true);\n  if ((pvVar2 == (void *)0x0) ||\n     (pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0))\n  goto LAB_0001e0fc;\n  sVar4 = pHVar9->n_buckets_used - 1;\n  pHVar9->n_buckets_used = sVar4;\n  if ((int)sVar4 < 0) {\n    pHVar7 = pHVar9->tuning;\n    fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040));\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if ((int)pHVar9->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar15 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;\n  }\n  else {\n    fVar20 = (float)(int)sVar4;\n    pHVar7 = pHVar9->tuning;\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar15 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;\n  }\n  check_tuning((Hash_table *)&pHVar9->tuning);\n  pHVar7 = pHVar9->tuning;\n  dVar17 = (double)(int)pHVar9->n_buckets;\n  if ((int)pHVar9->n_buckets < 0) {\n    dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }\n  dVar19 = (double)(int)pHVar9->n_buckets_used;\n  if ((int)pHVar9->n_buckets_used < 0) {\n    dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar17 * pHVar7->shrink_threshold <= (float)dVar19) goto LAB_0001e0fc;\n  fVar20 = (float)dVar17 * pHVar7->shrink_factor;\n  if (pHVar7->is_n_buckets == false) {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    fVar20 = fVar20 * pHVar7->growth_threshold;\n    if (fVar21 <= fVar20) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    phVar18 = (hash_entry *)(int)fVar20;\n  }\n  else {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    if (fVar20 < fVar21) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);\n  }\n  _Var5 = hash_rehash(pHVar9,(size_t)phVar18);\n  if (CONCAT31(extraout_var_00,_Var5) == 0) {\n    phVar10 = pHVar9->free_entry_list;\n    while (phVar10 != (hash_entry *)0x0) {\n      phVar10 = phVar10->next;\n      (**(code **)(pcVar15 + 0x1432c))();\n    }\n    pHVar9->free_entry_list = (hash_entry *)0x0;\n  }\nLAB_0001e0fc:\n  if (puStack_8c == (undefined4 *)*piVar13) {\n    return (int)pvVar2;\n  }\n  (**(code **)(pcVar15 + 0x1430c))();\n  puStack_8c[5] = 0;\n  puStack_8c[6] = 0;\n  *(undefined1 *)(puStack_8c + 7) = 1;\n  *puStack_8c = phVar18;\n  puStack_8c[1] = phVar18;\n  puStack_8c[2] = phVar18;\n  puStack_8c[3] = phVar18;\n  puStack_8c[4] = phVar18;\n  return 1;\n}" primitive_type (function_declarator "hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)" identifier (parameter_list "(Hash_table *table,void *entry,void **matched_ent)" ( (parameter_declaration "Hash_table *table" type_identifier (pointer_declarator "*table" * identifier)) , (parameter_declaration "void *entry" primitive_type (pointer_declarator "*entry" * identifier)) , (parameter_declaration "void **matched_ent" primitive_type (pointer_declarator "**matched_ent" * (pointer_declarator "*matched_ent" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar2;\n  int iVar3;\n  size_t sVar4;\n  _Bool _Var5;\n  void *pvVar6;\n  Hash_tuning *pHVar7;\n  size_t sVar8;\n  Hash_table *pHVar9;\n  hash_entry *phVar10;\n  hash_entry *phVar11;\n  int *piVar12;\n  int *piVar13;\n  undefined *puVar14;\n  code *pcVar15;\n  code *pcVar16;\n  double dVar17;\n  hash_entry *phVar18;\n  float fVar20;\n  double dVar19;\n  float fVar21;\n  hash_entry *phStack_90;\n  undefined4 *puStack_8c;\n  hash_entry *phStack_84;\n  int *piStack_80;\n  undefined *puStack_7c;\n  void *pvStack_78;\n  code *pcStack_74;\n  undefined *puStack_60;\n  hash_entry *phStack_58;\n  Hash_table *pHStack_54;\n  Hash_table *pHStack_4c;\n  hash_entry *phStack_48;\n  code *pcStack_44;\n  hash_entry *bucket;\n  Hash_table *local_24;\n  \n  puVar1 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(Hash_table **)PTR___stack_chk_guard_000323a8;\n  if (entry == (void *)0x0) {\nLAB_0001dfd0:\n    iVar3 = (*(code *)PTR_abort_000322c0)();\n    return iVar3;\n  }\n  phVar11 = (hash_entry *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320);\n  phVar10 = (hash_entry *)entry;\n  pvVar2 = hash_find_entry(table,entry,&bucket,false);\n  if (pvVar2 == (void *)0x0) {\n    dVar17 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar19 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar19 * table->tuning->growth_threshold < (float)dVar17) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar7 = table->tuning;\n      dVar17 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar19 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    iVar3 = 1;\n    phVar11 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar8 = table->n_entries;\n      sVar4 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar8 + 1;\n      table->n_buckets_used = sVar4 + 1;\n    }\n    else {\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }\n  pcVar15 = hash_insert;\n  pHVar9 = local_24;\n  puVar14 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  puStack_60 = puVar14 + 0x1c0e4;\n  piVar12 = *(int **)(puVar14 + 0x143ac);\n  pHStack_54 = (Hash_table *)*piVar12;\n  phVar18 = phVar10;\n  pHStack_4c = table;\n  phStack_48 = phVar11;\n  pcStack_44 = pcVar15;\n  iVar3 = hash_insert_if_absent(pHVar9,phVar10,&phStack_58);\n  if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar10;\n  }\n  if (pHStack_54 == (Hash_table *)*piVar12) {\n    return (int)phStack_58;\n  }\n  pcVar15 = *(code **)(puStack_60 + -0x7d4c);\n  pcVar16 = hash_delete;\n  pHVar9 = pHStack_54;\n  (*pcVar15)();\n  piVar13 = *(int **)(pcVar15 + 0x14320);\n  puStack_7c = puVar1;\n  puStack_8c = (undefined4 *)*piVar13;\n  phStack_84 = phVar10;\n  piStack_80 = piVar12;\n  pvStack_78 = entry;\n  pcStack_74 = pcVar16;\n  pvVar2 = hash_find_entry(pHVar9,phVar18,&phStack_90,true);\n  if ((pvVar2 == (void *)0x0) ||\n     (pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0))\n  goto LAB_0001e0fc;\n  sVar4 = pHVar9->n_buckets_used - 1;\n  pHVar9->n_buckets_used = sVar4;\n  if ((int)sVar4 < 0) {\n    pHVar7 = pHVar9->tuning;\n    fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040));\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if ((int)pHVar9->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar15 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;\n  }\n  else {\n    fVar20 = (float)(int)sVar4;\n    pHVar7 = pHVar9->tuning;\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar15 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;\n  }\n  check_tuning((Hash_table *)&pHVar9->tuning);\n  pHVar7 = pHVar9->tuning;\n  dVar17 = (double)(int)pHVar9->n_buckets;\n  if ((int)pHVar9->n_buckets < 0) {\n    dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }\n  dVar19 = (double)(int)pHVar9->n_buckets_used;\n  if ((int)pHVar9->n_buckets_used < 0) {\n    dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar17 * pHVar7->shrink_threshold <= (float)dVar19) goto LAB_0001e0fc;\n  fVar20 = (float)dVar17 * pHVar7->shrink_factor;\n  if (pHVar7->is_n_buckets == false) {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    fVar20 = fVar20 * pHVar7->growth_threshold;\n    if (fVar21 <= fVar20) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    phVar18 = (hash_entry *)(int)fVar20;\n  }\n  else {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    if (fVar20 < fVar21) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);\n  }\n  _Var5 = hash_rehash(pHVar9,(size_t)phVar18);\n  if (CONCAT31(extraout_var_00,_Var5) == 0) {\n    phVar10 = pHVar9->free_entry_list;\n    while (phVar10 != (hash_entry *)0x0) {\n      phVar10 = phVar10->next;\n      (**(code **)(pcVar15 + 0x1432c))();\n    }\n    pHVar9->free_entry_list = (hash_entry *)0x0;\n  }\nLAB_0001e0fc:\n  if (puStack_8c == (undefined4 *)*piVar13) {\n    return (int)pvVar2;\n  }\n  (**(code **)(pcVar15 + 0x1430c))();\n  puStack_8c[5] = 0;\n  puStack_8c[6] = 0;\n  *(undefined1 *)(puStack_8c + 7) = 1;\n  *puStack_8c = phVar18;\n  puStack_8c[1] = phVar18;\n  puStack_8c[2] = phVar18;\n  puStack_8c[3] = phVar18;\n  puStack_8c[4] = phVar18;\n  return 1;\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 "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "_Bool _Var5;" type_identifier identifier ;) (declaration "void *pvVar6;" primitive_type (pointer_declarator "*pvVar6" * identifier) ;) (declaration "Hash_tuning *pHVar7;" type_identifier (pointer_declarator "*pHVar7" * identifier) ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "Hash_table *pHVar9;" type_identifier (pointer_declarator "*pHVar9" * identifier) ;) (declaration "hash_entry *phVar10;" type_identifier (pointer_declarator "*phVar10" * identifier) ;) (declaration "hash_entry *phVar11;" type_identifier (pointer_declarator "*phVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "hash_entry *phVar18;" type_identifier (pointer_declarator "*phVar18" * identifier) ;) (declaration "float fVar20;" primitive_type identifier ;) (declaration "double dVar19;" primitive_type identifier ;) (declaration "float fVar21;" primitive_type identifier ;) (declaration "hash_entry *phStack_90;" type_identifier (pointer_declarator "*phStack_90" * identifier) ;) (declaration "undefined4 *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "hash_entry *phStack_84;" type_identifier (pointer_declarator "*phStack_84" * identifier) ;) (declaration "int *piStack_80;" primitive_type (pointer_declarator "*piStack_80" * identifier) ;) (declaration "undefined *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "void *pvStack_78;" primitive_type (pointer_declarator "*pvStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "hash_entry *phStack_58;" type_identifier (pointer_declarator "*phStack_58" * identifier) ;) (declaration "Hash_table *pHStack_54;" type_identifier (pointer_declarator "*pHStack_54" * identifier) ;) (declaration "Hash_table *pHStack_4c;" type_identifier (pointer_declarator "*pHStack_4c" * identifier) ;) (declaration "hash_entry *phStack_48;" type_identifier (pointer_declarator "*phStack_48" * identifier) ;) (declaration "code *pcStack_44;" type_identifier (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "hash_entry *bucket;" type_identifier (pointer_declarator "*bucket" * identifier) ;) (declaration "Hash_table *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_000323a8;" (assignment_expression "puVar1 = PTR___stack_chk_guard_000323a8" identifier = identifier) ;) (expression_statement "local_24 = *(Hash_table **)PTR___stack_chk_guard_000323a8;" (assignment_expression "local_24 = *(Hash_table **)PTR___stack_chk_guard_000323a8" identifier = (pointer_expression "*(Hash_table **)PTR___stack_chk_guard_000323a8" * (cast_expression "(Hash_table **)PTR___stack_chk_guard_000323a8" ( (type_descriptor "Hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (entry == (void *)0x0) {\nLAB_0001dfd0:\n    iVar3 = (*(code *)PTR_abort_000322c0)();\n    return iVar3;\n  }" if (parenthesized_expression "(entry == (void *)0x0)" ( (binary_expression "entry == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001dfd0:\n    iVar3 = (*(code *)PTR_abort_000322c0)();\n    return iVar3;\n  }" { (labeled_statement "LAB_0001dfd0:\n    iVar3 = (*(code *)PTR_abort_000322c0)();" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_abort_000322c0)();" (assignment_expression "iVar3 = (*(code *)PTR_abort_000322c0)()" identifier = (call_expression "(*(code *)PTR_abort_000322c0)()" (parenthesized_expression "(*(code *)PTR_abort_000322c0)" ( (pointer_expression "*(code *)PTR_abort_000322c0" * (cast_expression "(code *)PTR_abort_000322c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "phVar11 = (hash_entry *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320);" (assignment_expression "phVar11 = (hash_entry *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320)" identifier = (cast_expression "(hash_entry *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + -0x3320" identifier + number_literal) )))) ;) (expression_statement "phVar10 = (hash_entry *)entry;" (assignment_expression "phVar10 = (hash_entry *)entry" identifier = (cast_expression "(hash_entry *)entry" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pvVar2 = hash_find_entry(table,entry,&bucket,false);" (assignment_expression "pvVar2 = hash_find_entry(table,entry,&bucket,false)" identifier = (call_expression "hash_find_entry(table,entry,&bucket,false)" identifier (argument_list "(table,entry,&bucket,false)" ( identifier , identifier , (pointer_expression "&bucket" & identifier) , false )))) ;) (if_statement "if (pvVar2 == (void *)0x0) {\n    dVar17 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar19 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar19 * table->tuning->growth_threshold < (float)dVar17) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar7 = table->tuning;\n      dVar17 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar19 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    iVar3 = 1;\n    phVar11 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar8 = table->n_entries;\n      sVar4 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar8 + 1;\n      table->n_buckets_used = sVar4 + 1;\n    }\n    else {\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(pvVar2 == (void *)0x0)" ( (binary_expression "pvVar2 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dVar17 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar19 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar19 * table->tuning->growth_threshold < (float)dVar17) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar7 = table->tuning;\n      dVar17 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar19 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    iVar3 = 1;\n    phVar11 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar8 = table->n_entries;\n      sVar4 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar8 + 1;\n      table->n_buckets_used = sVar4 + 1;\n    }\n    else {\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }\n  }" { (expression_statement "dVar17 = (double)(int)table->n_buckets_used;" (assignment_expression "dVar17 = (double)(int)table->n_buckets_used" identifier = (cast_expression "(double)(int)table->n_buckets_used" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)table->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets_used" identifier -> field_identifier)))) ;) (if_statement "if ((int)table->n_buckets_used < 0) {\n      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" if (parenthesized_expression "((int)table->n_buckets_used < 0)" ( (binary_expression "(int)table->n_buckets_used < 0" (cast_expression "(int)table->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets_used" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n      dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" { (expression_statement "dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (expression_statement "dVar19 = (double)(int)table->n_buckets;" (assignment_expression "dVar19 = (double)(int)table->n_buckets" identifier = (cast_expression "(double)(int)table->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)table->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)table->n_buckets < 0) {\n      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" if (parenthesized_expression "((int)table->n_buckets < 0)" ( (binary_expression "(int)table->n_buckets < 0" (cast_expression "(int)table->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n      dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" { (expression_statement "dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar19 * table->tuning->growth_threshold < (float)dVar17) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar7 = table->tuning;\n      dVar17 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar19 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }\n    }" if (parenthesized_expression "((float)dVar19 * table->tuning->growth_threshold < (float)dVar17)" ( (binary_expression "(float)dVar19 * table->tuning->growth_threshold < (float)dVar17" (binary_expression "(float)dVar19 * table->tuning->growth_threshold" (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "table->tuning->growth_threshold" (field_expression "table->tuning" identifier -> field_identifier) -> field_identifier)) < (cast_expression "(float)dVar17" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar7 = table->tuning;\n      dVar17 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar19 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }\n    }" { (expression_statement "check_tuning((Hash_table *)&table->tuning);" (call_expression "check_tuning((Hash_table *)&table->tuning)" identifier (argument_list "((Hash_table *)&table->tuning)" ( (cast_expression "(Hash_table *)&table->tuning" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&table->tuning" & (field_expression "table->tuning" identifier -> field_identifier))) ))) ;) (expression_statement "pHVar7 = table->tuning;" (assignment_expression "pHVar7 = table->tuning" identifier = (field_expression "table->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar17 = (double)(int)table->n_buckets;" (assignment_expression "dVar17 = (double)(int)table->n_buckets" identifier = (cast_expression "(double)(int)table->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)table->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)table->n_buckets < 0) {\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" if (parenthesized_expression "((int)table->n_buckets < 0)" ( (binary_expression "(int)table->n_buckets < 0" (cast_expression "(int)table->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" { (expression_statement "dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar17 = dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar17 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (expression_statement "dVar19 = (double)(int)table->n_buckets_used;" (assignment_expression "dVar19 = (double)(int)table->n_buckets_used" identifier = (cast_expression "(double)(int)table->n_buckets_used" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)table->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets_used" identifier -> field_identifier)))) ;) (if_statement "if ((int)table->n_buckets_used < 0) {\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" if (parenthesized_expression "((int)table->n_buckets_used < 0)" ( (binary_expression "(int)table->n_buckets_used < 0" (cast_expression "(int)table->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "table->n_buckets_used" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" { (expression_statement "dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar19 = dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar19 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (if_statement "if (pHVar7->growth_threshold * (float)dVar17 < (float)dVar19) {\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }" if (parenthesized_expression "(pHVar7->growth_threshold * (float)dVar17 < (float)dVar19)" ( (binary_expression "pHVar7->growth_threshold * (float)dVar17 < (float)dVar19" (binary_expression "pHVar7->growth_threshold * (float)dVar17" (field_expression "pHVar7->growth_threshold" identifier -> field_identifier) * (cast_expression "(float)dVar17" ( (type_descriptor "float" primitive_type) ) identifier)) < (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n        fVar20 = (float)dVar17 * pHVar7->growth_factor;\n        if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }\n        if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        iVar3 = -1;\n        goto LAB_0001ddd0;\n      }" { (expression_statement "fVar20 = (float)dVar17 * pHVar7->growth_factor;" (assignment_expression "fVar20 = (float)dVar17 * pHVar7->growth_factor" identifier = (binary_expression "(float)dVar17 * pHVar7->growth_factor" (cast_expression "(float)dVar17" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar7->growth_factor" identifier -> field_identifier))) ;) (if_statement "if (pHVar7->is_n_buckets == false) {\n          fVar20 = fVar20 * pHVar7->growth_threshold;\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          fVar20 = fVar20 * pHVar7->growth_threshold;\n        }" { (expression_statement "fVar20 = fVar20 * pHVar7->growth_threshold;" (assignment_expression "fVar20 = fVar20 * pHVar7->growth_threshold" identifier = (binary_expression "fVar20 * pHVar7->growth_threshold" identifier * (field_expression "pHVar7->growth_threshold" identifier -> field_identifier))) ;) })) (if_statement "if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" if (parenthesized_expression "(fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038))" ( (binary_expression "fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" identifier < (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038" identifier + number_literal) ))))) )) (compound_statement "{\n          if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }\n          _Var5 = hash_rehash(table,(size_t)phVar10);\n          if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" { (if_statement "if (fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            phVar10 = (hash_entry *)(int)fVar20;\n          }\n          else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }" if (parenthesized_expression "(fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c))" ( (binary_expression "fVar20 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" identifier < (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c" identifier + number_literal) ))))) )) (compound_statement "{\n            phVar10 = (hash_entry *)(int)fVar20;\n          }" { (expression_statement "phVar10 = (hash_entry *)(int)fVar20;" (assignment_expression "phVar10 = (hash_entry *)(int)fVar20" identifier = (cast_expression "(hash_entry *)(int)fVar20" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }" else (compound_statement "{\n            phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);\n          }" { (expression_statement "phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000);" (assignment_expression "phVar10 = (hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000)" identifier = (cast_expression "(hash_entry *)\n                      ((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000)" ( (binary_expression "(int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)) | 0x80000000" (cast_expression "(int)(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c))" ( (binary_expression "fVar20 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)" identifier - (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                                0x103c" identifier + number_literal) ))))) ))) | number_literal) )))) ;) }))) (expression_statement "_Var5 = hash_rehash(table,(size_t)phVar10);" (assignment_expression "_Var5 = hash_rehash(table,(size_t)phVar10)" identifier = (call_expression "hash_rehash(table,(size_t)phVar10)" identifier (argument_list "(table,(size_t)phVar10)" ( identifier , (cast_expression "(size_t)phVar10" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (CONCAT31(extraout_var,_Var5) != 0) {\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" if (parenthesized_expression "(CONCAT31(extraout_var,_Var5) != 0)" ( (binary_expression "CONCAT31(extraout_var,_Var5) != 0" (call_expression "CONCAT31(extraout_var,_Var5)" identifier (argument_list "(extraout_var,_Var5)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n            phVar10 = (hash_entry *)entry;\n            pvVar2 = hash_find_entry(table,entry,&bucket,false);\n            if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" { (expression_statement "phVar10 = (hash_entry *)entry;" (assignment_expression "phVar10 = (hash_entry *)entry" identifier = (cast_expression "(hash_entry *)entry" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pvVar2 = hash_find_entry(table,entry,&bucket,false);" (assignment_expression "pvVar2 = hash_find_entry(table,entry,&bucket,false)" identifier = (call_expression "hash_find_entry(table,entry,&bucket,false)" identifier (argument_list "(table,entry,&bucket,false)" ( identifier , identifier , (pointer_expression "&bucket" & identifier) , false )))) ;) (if_statement "if (pvVar2 != (void *)0x0) goto LAB_0001dfd0;" if (parenthesized_expression "(pvVar2 != (void *)0x0)" ( (binary_expression "pvVar2 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001dfd0;" goto statement_identifier ;)) (goto_statement "goto LAB_0001de58;" goto statement_identifier ;) })) })) (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_0001ddd0;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001de58:\n    iVar3 = 1;" statement_identifier : (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;)) (expression_statement "phVar11 = bucket;" (assignment_expression "phVar11 = bucket" identifier = identifier) ;) (if_statement "if (bucket->data == (void *)0x0) {\n      sVar8 = table->n_entries;\n      sVar4 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar8 + 1;\n      table->n_buckets_used = sVar4 + 1;\n    }\n    else {\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }" if (parenthesized_expression "(bucket->data == (void *)0x0)" ( (binary_expression "bucket->data == (void *)0x0" (field_expression "bucket->data" identifier -> field_identifier) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar8 = table->n_entries;\n      sVar4 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar8 + 1;\n      table->n_buckets_used = sVar4 + 1;\n    }" { (expression_statement "sVar8 = table->n_entries;" (assignment_expression "sVar8 = table->n_entries" identifier = (field_expression "table->n_entries" identifier -> field_identifier)) ;) (expression_statement "sVar4 = table->n_buckets_used;" (assignment_expression "sVar4 = table->n_buckets_used" identifier = (field_expression "table->n_buckets_used" identifier -> field_identifier)) ;) (expression_statement "bucket->data = entry;" (assignment_expression "bucket->data = entry" (field_expression "bucket->data" identifier -> field_identifier) = identifier) ;) (expression_statement "table->n_entries = sVar8 + 1;" (assignment_expression "table->n_entries = sVar8 + 1" (field_expression "table->n_entries" identifier -> field_identifier) = (binary_expression "sVar8 + 1" identifier + number_literal)) ;) (expression_statement "table->n_buckets_used = sVar4 + 1;" (assignment_expression "table->n_buckets_used = sVar4 + 1" (field_expression "table->n_buckets_used" identifier -> field_identifier) = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }" else (compound_statement "{\n      phVar18 = table->free_entry_list;\n      if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }\n      sVar4 = table->n_entries;\n      iVar3 = 1;\n      phVar10 = bucket->next;\n      phVar18->data = entry;\n      phVar18->next = phVar10;\n      bucket->next = phVar18;\n      table->n_entries = sVar4 + 1;\n    }" { (expression_statement "phVar18 = table->free_entry_list;" (assignment_expression "phVar18 = table->free_entry_list" identifier = (field_expression "table->free_entry_list" identifier -> field_identifier)) ;) (if_statement "if (phVar18 == (hash_entry *)0x0) {\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar18->next;\n      }" if (parenthesized_expression "(phVar18 == (hash_entry *)0x0)" ( (binary_expression "phVar18 == (hash_entry *)0x0" identifier == (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);\n        if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }\n      }" { (expression_statement "phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8);" (assignment_expression "phVar18 = (hash_entry *)(*(code *)PTR_malloc_00032358)(8)" identifier = (cast_expression "(hash_entry *)(*(code *)PTR_malloc_00032358)(8)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00032358)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00032358)" ( (pointer_expression "*(code *)PTR_malloc_00032358" * (cast_expression "(code *)PTR_malloc_00032358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (phVar18 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }" if (parenthesized_expression "(phVar18 == (hash_entry *)0x0)" ( (binary_expression "phVar18 == (hash_entry *)0x0" identifier == (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar3 = -1;\n          goto LAB_0001ddd0;\n        }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_0001ddd0;" goto statement_identifier ;) })) }) (else_clause "else {\n        table->free_entry_list = phVar18->next;\n      }" else (compound_statement "{\n        table->free_entry_list = phVar18->next;\n      }" { (expression_statement "table->free_entry_list = phVar18->next;" (assignment_expression "table->free_entry_list = phVar18->next" (field_expression "table->free_entry_list" identifier -> field_identifier) = (field_expression "phVar18->next" identifier -> field_identifier)) ;) }))) (expression_statement "sVar4 = table->n_entries;" (assignment_expression "sVar4 = table->n_entries" identifier = (field_expression "table->n_entries" identifier -> field_identifier)) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "phVar10 = bucket->next;" (assignment_expression "phVar10 = bucket->next" identifier = (field_expression "bucket->next" identifier -> field_identifier)) ;) (expression_statement "phVar18->data = entry;" (assignment_expression "phVar18->data = entry" (field_expression "phVar18->data" identifier -> field_identifier) = identifier) ;) (expression_statement "phVar18->next = phVar10;" (assignment_expression "phVar18->next = phVar10" (field_expression "phVar18->next" identifier -> field_identifier) = identifier) ;) (expression_statement "bucket->next = phVar18;" (assignment_expression "bucket->next = phVar18" (field_expression "bucket->next" identifier -> field_identifier) = identifier) ;) (expression_statement "table->n_entries = sVar4 + 1;" (assignment_expression "table->n_entries = sVar4 + 1" (field_expression "table->n_entries" identifier -> field_identifier) = (binary_expression "sVar4 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" else (if_statement "if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(matched_ent == (void **)0x0)" ( (binary_expression "matched_ent == (void **)0x0" identifier == (cast_expression "(void **)0x0" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    iVar3 = 0;\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" else (compound_statement "{\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" { (expression_statement "*matched_ent = pvVar2;" (assignment_expression "*matched_ent = pvVar2" (pointer_expression "*matched_ent" * identifier) = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }))))) (labeled_statement "LAB_0001ddd0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }" statement_identifier : (if_statement "if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_24 == *(Hash_table **)puVar1)" ( (binary_expression "local_24 == *(Hash_table **)puVar1" identifier == (pointer_expression "*(Hash_table **)puVar1" * (cast_expression "(Hash_table **)puVar1" ( (type_descriptor "Hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) }))) (expression_statement "pcVar15 = hash_insert;" (assignment_expression "pcVar15 = hash_insert" identifier = identifier) ;) (expression_statement "pHVar9 = local_24;" (assignment_expression "pHVar9 = local_24" identifier = identifier) ;) (expression_statement "puVar14 = PTR___stack_chk_fail_00032394;" (assignment_expression "puVar14 = PTR___stack_chk_fail_00032394" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00032394)();" (call_expression "(*(code *)PTR___stack_chk_fail_00032394)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00032394)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00032394" * (cast_expression "(code *)PTR___stack_chk_fail_00032394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_60 = puVar14 + 0x1c0e4;" (assignment_expression "puStack_60 = puVar14 + 0x1c0e4" identifier = (binary_expression "puVar14 + 0x1c0e4" identifier + number_literal)) ;) (expression_statement "piVar12 = *(int **)(puVar14 + 0x143ac);" (assignment_expression "piVar12 = *(int **)(puVar14 + 0x143ac)" identifier = (pointer_expression "*(int **)(puVar14 + 0x143ac)" * (cast_expression "(int **)(puVar14 + 0x143ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar14 + 0x143ac)" ( (binary_expression "puVar14 + 0x143ac" identifier + number_literal) ))))) ;) (expression_statement "pHStack_54 = (Hash_table *)*piVar12;" (assignment_expression "pHStack_54 = (Hash_table *)*piVar12" identifier = (cast_expression "(Hash_table *)*piVar12" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) ;) (expression_statement "phVar18 = phVar10;" (assignment_expression "phVar18 = phVar10" identifier = identifier) ;) (expression_statement "pHStack_4c = table;" (assignment_expression "pHStack_4c = table" identifier = identifier) ;) (expression_statement "phStack_48 = phVar11;" (assignment_expression "phStack_48 = phVar11" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar15;" (assignment_expression "pcStack_44 = pcVar15" identifier = identifier) ;) (expression_statement "iVar3 = hash_insert_if_absent(pHVar9,phVar10,&phStack_58);" (assignment_expression "iVar3 = hash_insert_if_absent(pHVar9,phVar10,&phStack_58)" identifier = (call_expression "hash_insert_if_absent(pHVar9,phVar10,&phStack_58)" identifier (argument_list "(pHVar9,phVar10,&phStack_58)" ( identifier , identifier , (pointer_expression "&phStack_58" & identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar10;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    phStack_58 = (hash_entry *)0x0;\n  }" { (expression_statement "phStack_58 = (hash_entry *)0x0;" (assignment_expression "phStack_58 = (hash_entry *)0x0" identifier = (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 != 0) {\n    phStack_58 = phVar10;\n  }" else (if_statement "if (iVar3 != 0) {\n    phStack_58 = phVar10;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    phStack_58 = phVar10;\n  }" { (expression_statement "phStack_58 = phVar10;" (assignment_expression "phStack_58 = phVar10" identifier = identifier) ;) })))) (if_statement "if (pHStack_54 == (Hash_table *)*piVar12) {\n    return (int)phStack_58;\n  }" if (parenthesized_expression "(pHStack_54 == (Hash_table *)*piVar12)" ( (binary_expression "pHStack_54 == (Hash_table *)*piVar12" identifier == (cast_expression "(Hash_table *)*piVar12" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar12" * identifier))) )) (compound_statement "{\n    return (int)phStack_58;\n  }" { (return_statement "return (int)phStack_58;" return (cast_expression "(int)phStack_58" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "pcVar15 = *(code **)(puStack_60 + -0x7d4c);" (assignment_expression "pcVar15 = *(code **)(puStack_60 + -0x7d4c)" identifier = (pointer_expression "*(code **)(puStack_60 + -0x7d4c)" * (cast_expression "(code **)(puStack_60 + -0x7d4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_60 + -0x7d4c)" ( (binary_expression "puStack_60 + -0x7d4c" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = hash_delete;" (assignment_expression "pcVar16 = hash_delete" identifier = identifier) ;) (expression_statement "pHVar9 = pHStack_54;" (assignment_expression "pHVar9 = pHStack_54" identifier = identifier) ;) (expression_statement "(*pcVar15)();" (call_expression "(*pcVar15)()" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar13 = *(int **)(pcVar15 + 0x14320);" (assignment_expression "piVar13 = *(int **)(pcVar15 + 0x14320)" identifier = (pointer_expression "*(int **)(pcVar15 + 0x14320)" * (cast_expression "(int **)(pcVar15 + 0x14320)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x14320)" ( (binary_expression "pcVar15 + 0x14320" identifier + number_literal) ))))) ;) (expression_statement "puStack_7c = puVar1;" (assignment_expression "puStack_7c = puVar1" identifier = identifier) ;) (expression_statement "puStack_8c = (undefined4 *)*piVar13;" (assignment_expression "puStack_8c = (undefined4 *)*piVar13" identifier = (cast_expression "(undefined4 *)*piVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) ;) (expression_statement "phStack_84 = phVar10;" (assignment_expression "phStack_84 = phVar10" identifier = identifier) ;) (expression_statement "piStack_80 = piVar12;" (assignment_expression "piStack_80 = piVar12" identifier = identifier) ;) (expression_statement "pvStack_78 = entry;" (assignment_expression "pvStack_78 = entry" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar16;" (assignment_expression "pcStack_74 = pcVar16" identifier = identifier) ;) (expression_statement "pvVar2 = hash_find_entry(pHVar9,phVar18,&phStack_90,true);" (assignment_expression "pvVar2 = hash_find_entry(pHVar9,phVar18,&phStack_90,true)" identifier = (call_expression "hash_find_entry(pHVar9,phVar18,&phStack_90,true)" identifier (argument_list "(pHVar9,phVar18,&phStack_90,true)" ( identifier , identifier , (pointer_expression "&phStack_90" & identifier) , true )))) ;) (if_statement "if ((pvVar2 == (void *)0x0) ||\n     (pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0))\n  goto LAB_0001e0fc;" if (parenthesized_expression "((pvVar2 == (void *)0x0) ||\n     (pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0))" ( (binary_expression "(pvVar2 == (void *)0x0) ||\n     (pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0)" (parenthesized_expression "(pvVar2 == (void *)0x0)" ( (binary_expression "pvVar2 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0)" ( (comma_expression "pvVar6 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0" (assignment_expression "pvVar6 = phStack_90->data" identifier = (field_expression "phStack_90->data" identifier -> field_identifier)) , (comma_expression "pHVar9->n_entries = pHVar9->n_entries - 1, pvVar6 != (void *)0x0" (assignment_expression "pHVar9->n_entries = pHVar9->n_entries - 1" (field_expression "pHVar9->n_entries" identifier -> field_identifier) = (binary_expression "pHVar9->n_entries - 1" (field_expression "pHVar9->n_entries" identifier -> field_identifier) - number_literal)) , (binary_expression "pvVar6 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;)) (expression_statement "sVar4 = pHVar9->n_buckets_used - 1;" (assignment_expression "sVar4 = pHVar9->n_buckets_used - 1" identifier = (binary_expression "pHVar9->n_buckets_used - 1" (field_expression "pHVar9->n_buckets_used" identifier -> field_identifier) - number_literal)) ;) (expression_statement "pHVar9->n_buckets_used = sVar4;" (assignment_expression "pHVar9->n_buckets_used = sVar4" (field_expression "pHVar9->n_buckets_used" identifier -> field_identifier) = identifier) ;) (if_statement "if ((int)sVar4 < 0) {\n    pHVar7 = pHVar9->tuning;\n    fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040));\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if ((int)pHVar9->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar15 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;\n  }\n  else {\n    fVar20 = (float)(int)sVar4;\n    pHVar7 = pHVar9->tuning;\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar15 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;\n  }" if (parenthesized_expression "((int)sVar4 < 0)" ( (binary_expression "(int)sVar4 < 0" (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pHVar7 = pHVar9->tuning;\n    fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040));\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if ((int)pHVar9->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar15 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;\n  }" { (expression_statement "pHVar7 = pHVar9->tuning;" (assignment_expression "pHVar7 = pHVar9->tuning" identifier = (field_expression "pHVar9->tuning" identifier -> field_identifier)) ;) (expression_statement "fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040));" (assignment_expression "fVar20 = (float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040))" identifier = (cast_expression "(float)((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040))" ( (binary_expression "(double)(int)sVar4 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" (cast_expression "(double)(int)sVar4" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier)) + (pointer_expression "*(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar15 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar15 + 0x14090)" * (cast_expression "(int *)(pcVar15 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x14090)" ( (binary_expression "pcVar15 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "dVar17 = (double)(int)pHVar9->n_buckets;" (assignment_expression "dVar17 = (double)(int)pHVar9->n_buckets" identifier = (cast_expression "(double)(int)pHVar9->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar9->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar9->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar15 + 0x14090);\n      goto LAB_0001e254;\n    }" if (parenthesized_expression "((int)pHVar9->n_buckets < 0)" ( (binary_expression "(int)pHVar9->n_buckets < 0" (cast_expression "(int)pHVar9->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(pcVar15 + 0x14090);\n      goto LAB_0001e254;\n    }" { (expression_statement "iVar3 = *(int *)(pcVar15 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar15 + 0x14090)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x14090)" * (cast_expression "(int *)(pcVar15 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x14090)" ( (binary_expression "pcVar15 + 0x14090" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001e254;" goto statement_identifier ;) })) (labeled_statement "LAB_0001e158:\n    if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;" statement_identifier : (if_statement "if ((float)dVar17 * pHVar7->shrink_threshold <= fVar20) goto LAB_0001e0fc;" if (parenthesized_expression "((float)dVar17 * pHVar7->shrink_threshold <= fVar20)" ( (binary_expression "(float)dVar17 * pHVar7->shrink_threshold <= fVar20" (binary_expression "(float)dVar17 * pHVar7->shrink_threshold" (cast_expression "(float)dVar17" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar7->shrink_threshold" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;))) }) (else_clause "else {\n    fVar20 = (float)(int)sVar4;\n    pHVar7 = pHVar9->tuning;\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar15 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;\n  }" else (compound_statement "{\n    fVar20 = (float)(int)sVar4;\n    pHVar7 = pHVar9->tuning;\n    dVar17 = (double)(int)pHVar9->n_buckets;\n    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar15 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;\n  }" { (expression_statement "fVar20 = (float)(int)sVar4;" (assignment_expression "fVar20 = (float)(int)sVar4" identifier = (cast_expression "(float)(int)sVar4" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)sVar4" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pHVar7 = pHVar9->tuning;" (assignment_expression "pHVar7 = pHVar9->tuning" identifier = (field_expression "pHVar9->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar17 = (double)(int)pHVar9->n_buckets;" (assignment_expression "dVar17 = (double)(int)pHVar9->n_buckets" identifier = (cast_expression "(double)(int)pHVar9->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar9->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;" if (parenthesized_expression "(-1 < (int)pHVar9->n_buckets)" ( (binary_expression "-1 < (int)pHVar9->n_buckets" number_literal < (cast_expression "(int)pHVar9->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets" identifier -> field_identifier))) )) (goto_statement "goto LAB_0001e158;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pcVar15 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar15 + 0x14090)" identifier = (pointer_expression "*(int *)(pcVar15 + 0x14090)" * (cast_expression "(int *)(pcVar15 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x14090)" ( (binary_expression "pcVar15 + 0x14090" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001e254:\n    if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;" statement_identifier : (if_statement "if ((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)\n    goto LAB_0001e0fc;" if (parenthesized_expression "((float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20)" ( (binary_expression "(float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold <= fVar20" (binary_expression "(float)(dVar17 + *(double *)(iVar3 + 0x1040)) * pHVar7->shrink_threshold" (cast_expression "(float)(dVar17 + *(double *)(iVar3 + 0x1040))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar17 + *(double *)(iVar3 + 0x1040))" ( (binary_expression "dVar17 + *(double *)(iVar3 + 0x1040)" identifier + (pointer_expression "*(double *)(iVar3 + 0x1040)" * (cast_expression "(double *)(iVar3 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1040)" ( (binary_expression "iVar3 + 0x1040" identifier + number_literal) ))))) ))) * (field_expression "pHVar7->shrink_threshold" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;))) }))) (expression_statement "check_tuning((Hash_table *)&pHVar9->tuning);" (call_expression "check_tuning((Hash_table *)&pHVar9->tuning)" identifier (argument_list "((Hash_table *)&pHVar9->tuning)" ( (cast_expression "(Hash_table *)&pHVar9->tuning" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pHVar9->tuning" & (field_expression "pHVar9->tuning" identifier -> field_identifier))) ))) ;) (expression_statement "pHVar7 = pHVar9->tuning;" (assignment_expression "pHVar7 = pHVar9->tuning" identifier = (field_expression "pHVar9->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar17 = (double)(int)pHVar9->n_buckets;" (assignment_expression "dVar17 = (double)(int)pHVar9->n_buckets" identifier = (cast_expression "(double)(int)pHVar9->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar9->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar9->n_buckets < 0) {\n    dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }" if (parenthesized_expression "((int)pHVar9->n_buckets < 0)" ( (binary_expression "(int)pHVar9->n_buckets < 0" (cast_expression "(int)pHVar9->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n    dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }" { (expression_statement "dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);" (assignment_expression "dVar17 = dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" identifier = (binary_expression "dVar17 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar15 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar15 + 0x14090)" * (cast_expression "(int *)(pcVar15 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x14090)" ( (binary_expression "pcVar15 + 0x14090" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar19 = (double)(int)pHVar9->n_buckets_used;" (assignment_expression "dVar19 = (double)(int)pHVar9->n_buckets_used" identifier = (cast_expression "(double)(int)pHVar9->n_buckets_used" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar9->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets_used" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar9->n_buckets_used < 0) {\n    dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }" if (parenthesized_expression "((int)pHVar9->n_buckets_used < 0)" ( (binary_expression "(int)pHVar9->n_buckets_used < 0" (cast_expression "(int)pHVar9->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar9->n_buckets_used" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n    dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);\n  }" { (expression_statement "dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040);" (assignment_expression "dVar19 = dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" identifier = (binary_expression "dVar19 + *(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar15 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar15 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar15 + 0x14090)" * (cast_expression "(int *)(pcVar15 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x14090)" ( (binary_expression "pcVar15 + 0x14090" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar17 * pHVar7->shrink_threshold <= (float)dVar19) goto LAB_0001e0fc;" if (parenthesized_expression "((float)dVar17 * pHVar7->shrink_threshold <= (float)dVar19)" ( (binary_expression "(float)dVar17 * pHVar7->shrink_threshold <= (float)dVar19" (binary_expression "(float)dVar17 * pHVar7->shrink_threshold" (cast_expression "(float)dVar17" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar7->shrink_threshold" identifier -> field_identifier)) <= (cast_expression "(float)dVar19" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;)) (expression_statement "fVar20 = (float)dVar17 * pHVar7->shrink_factor;" (assignment_expression "fVar20 = (float)dVar17 * pHVar7->shrink_factor" identifier = (binary_expression "(float)dVar17 * pHVar7->shrink_factor" (cast_expression "(float)dVar17" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar7->shrink_factor" identifier -> field_identifier))) ;) (if_statement "if (pHVar7->is_n_buckets == false) {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    fVar20 = fVar20 * pHVar7->growth_threshold;\n    if (fVar21 <= fVar20) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    phVar18 = (hash_entry *)(int)fVar20;\n  }\n  else {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    if (fVar20 < fVar21) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);\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    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    fVar20 = fVar20 * pHVar7->growth_threshold;\n    if (fVar21 <= fVar20) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    phVar18 = (hash_entry *)(int)fVar20;\n  }" { (expression_statement "fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);" (assignment_expression "fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c)" * (cast_expression "(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x14090) + 0x103c)" ( (binary_expression "*(int *)(pcVar15 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar15 + 0x14090)" * (cast_expression "(int *)(pcVar15 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x14090)" ( (binary_expression "pcVar15 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "fVar20 = fVar20 * pHVar7->growth_threshold;" (assignment_expression "fVar20 = fVar20 * pHVar7->growth_threshold" identifier = (binary_expression "fVar20 * pHVar7->growth_threshold" identifier * (field_expression "pHVar7->growth_threshold" identifier -> field_identifier))) ;) (if_statement "if (fVar21 <= fVar20) goto LAB_0001e1fc;" if (parenthesized_expression "(fVar21 <= fVar20)" ( (binary_expression "fVar21 <= fVar20" identifier <= identifier) )) (goto_statement "goto LAB_0001e1fc;" goto statement_identifier ;)) (labeled_statement "LAB_0001e2c4:\n    phVar18 = (hash_entry *)(int)fVar20;" statement_identifier : (expression_statement "phVar18 = (hash_entry *)(int)fVar20;" (assignment_expression "phVar18 = (hash_entry *)(int)fVar20" identifier = (cast_expression "(hash_entry *)(int)fVar20" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) }) (else_clause "else {\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    if (fVar20 < fVar21) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);\n  }" else (compound_statement "{\n    fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);\n    if (fVar20 < fVar21) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);\n  }" { (expression_statement "fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c);" (assignment_expression "fVar21 = *(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c)" * (cast_expression "(float *)(*(int *)(pcVar15 + 0x14090) + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar15 + 0x14090) + 0x103c)" ( (binary_expression "*(int *)(pcVar15 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar15 + 0x14090)" * (cast_expression "(int *)(pcVar15 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 0x14090)" ( (binary_expression "pcVar15 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (fVar20 < fVar21) goto LAB_0001e2c4;" if (parenthesized_expression "(fVar20 < fVar21)" ( (binary_expression "fVar20 < fVar21" identifier < identifier) )) (goto_statement "goto LAB_0001e2c4;" goto statement_identifier ;)) (labeled_statement "LAB_0001e1fc:\n    phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);" statement_identifier : (expression_statement "phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000);" (assignment_expression "phVar18 = (hash_entry *)((int)(fVar20 - fVar21) | 0x80000000)" identifier = (cast_expression "(hash_entry *)((int)(fVar20 - fVar21) | 0x80000000)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(fVar20 - fVar21) | 0x80000000)" ( (binary_expression "(int)(fVar20 - fVar21) | 0x80000000" (cast_expression "(int)(fVar20 - fVar21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar20 - fVar21)" ( (binary_expression "fVar20 - fVar21" identifier - identifier) ))) | number_literal) )))) ;)) }))) (expression_statement "_Var5 = hash_rehash(pHVar9,(size_t)phVar18);" (assignment_expression "_Var5 = hash_rehash(pHVar9,(size_t)phVar18)" identifier = (call_expression "hash_rehash(pHVar9,(size_t)phVar18)" identifier (argument_list "(pHVar9,(size_t)phVar18)" ( identifier , (cast_expression "(size_t)phVar18" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var5) == 0) {\n    phVar10 = pHVar9->free_entry_list;\n    while (phVar10 != (hash_entry *)0x0) {\n      phVar10 = phVar10->next;\n      (**(code **)(pcVar15 + 0x1432c))();\n    }\n    pHVar9->free_entry_list = (hash_entry *)0x0;\n  }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var5) == 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var5) == 0" (call_expression "CONCAT31(extraout_var_00,_Var5)" identifier (argument_list "(extraout_var_00,_Var5)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n    phVar10 = pHVar9->free_entry_list;\n    while (phVar10 != (hash_entry *)0x0) {\n      phVar10 = phVar10->next;\n      (**(code **)(pcVar15 + 0x1432c))();\n    }\n    pHVar9->free_entry_list = (hash_entry *)0x0;\n  }" { (expression_statement "phVar10 = pHVar9->free_entry_list;" (assignment_expression "phVar10 = pHVar9->free_entry_list" identifier = (field_expression "pHVar9->free_entry_list" identifier -> field_identifier)) ;) (while_statement "while (phVar10 != (hash_entry *)0x0) {\n      phVar10 = phVar10->next;\n      (**(code **)(pcVar15 + 0x1432c))();\n    }" while (parenthesized_expression "(phVar10 != (hash_entry *)0x0)" ( (binary_expression "phVar10 != (hash_entry *)0x0" identifier != (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      phVar10 = phVar10->next;\n      (**(code **)(pcVar15 + 0x1432c))();\n    }" { (expression_statement "phVar10 = phVar10->next;" (assignment_expression "phVar10 = phVar10->next" identifier = (field_expression "phVar10->next" identifier -> field_identifier)) ;) (expression_statement "(**(code **)(pcVar15 + 0x1432c))();" (call_expression "(**(code **)(pcVar15 + 0x1432c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x1432c))" ( (pointer_expression "**(code **)(pcVar15 + 0x1432c)" * (pointer_expression "*(code **)(pcVar15 + 0x1432c)" * (cast_expression "(code **)(pcVar15 + 0x1432c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1432c)" ( (binary_expression "pcVar15 + 0x1432c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pHVar9->free_entry_list = (hash_entry *)0x0;" (assignment_expression "pHVar9->free_entry_list = (hash_entry *)0x0" (field_expression "pHVar9->free_entry_list" identifier -> field_identifier) = (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (labeled_statement "LAB_0001e0fc:\n  if (puStack_8c == (undefined4 *)*piVar13) {\n    return (int)pvVar2;\n  }" statement_identifier : (if_statement "if (puStack_8c == (undefined4 *)*piVar13) {\n    return (int)pvVar2;\n  }" if (parenthesized_expression "(puStack_8c == (undefined4 *)*piVar13)" ( (binary_expression "puStack_8c == (undefined4 *)*piVar13" identifier == (cast_expression "(undefined4 *)*piVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar13" * identifier))) )) (compound_statement "{\n    return (int)pvVar2;\n  }" { (return_statement "return (int)pvVar2;" return (cast_expression "(int)pvVar2" ( (type_descriptor "int" primitive_type) ) identifier) ;) }))) (expression_statement "(**(code **)(pcVar15 + 0x1430c))();" (call_expression "(**(code **)(pcVar15 + 0x1430c))()" (parenthesized_expression "(**(code **)(pcVar15 + 0x1430c))" ( (pointer_expression "**(code **)(pcVar15 + 0x1430c)" * (pointer_expression "*(code **)(pcVar15 + 0x1430c)" * (cast_expression "(code **)(pcVar15 + 0x1430c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar15 + 0x1430c)" ( (binary_expression "pcVar15 + 0x1430c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_8c[5] = 0;" (assignment_expression "puStack_8c[5] = 0" (subscript_expression "puStack_8c[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puStack_8c[6] = 0;" (assignment_expression "puStack_8c[6] = 0" (subscript_expression "puStack_8c[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puStack_8c + 7) = 1;" (assignment_expression "*(undefined1 *)(puStack_8c + 7) = 1" (pointer_expression "*(undefined1 *)(puStack_8c + 7)" * (cast_expression "(undefined1 *)(puStack_8c + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_8c + 7)" ( (binary_expression "puStack_8c + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puStack_8c = phVar18;" (assignment_expression "*puStack_8c = phVar18" (pointer_expression "*puStack_8c" * identifier) = identifier) ;) (expression_statement "puStack_8c[1] = phVar18;" (assignment_expression "puStack_8c[1] = phVar18" (subscript_expression "puStack_8c[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_8c[2] = phVar18;" (assignment_expression "puStack_8c[2] = phVar18" (subscript_expression "puStack_8c[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_8c[3] = phVar18;" (assignment_expression "puStack_8c[3] = phVar18" (subscript_expression "puStack_8c[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_8c[4] = phVar18;" (assignment_expression "puStack_8c[4] = phVar18" (subscript_expression "puStack_8c[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "uint hash_insert_if_absent(int param_1,uint param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}\n\n" (function_definition "uint hash_insert_if_absent(int param_1,uint param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}" type_identifier (function_declarator "hash_insert_if_absent(int param_1,uint param_2,int *param_3)" identifier (parameter_list "(int param_1,uint param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "float *pfVar6;" primitive_type (pointer_declarator "*pfVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "double dVar11;" primitive_type identifier ;) (declaration "float fVar13;" primitive_type identifier ;) (declaration "double dVar12;" primitive_type identifier ;) (declaration "float fVar14;" primitive_type identifier ;) (declaration "int *piStack_90;" primitive_type (pointer_declarator "*piStack_90" * identifier) ;) (declaration "uint uStack_58;" type_identifier identifier ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar9 = PTR___stack_chk_guard_000323a8;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000323a8" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000323a8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000323a8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000323a8" * (cast_expression "(int *)PTR___stack_chk_guard_000323a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }" { (labeled_statement "LAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_abort_000322c0)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_000322c0)()" identifier = (call_expression "(*(code *)PTR_abort_000322c0)()" (parenthesized_expression "(*(code *)PTR_abort_000322c0)" ( (pointer_expression "*(code *)PTR_abort_000322c0" * (cast_expression "(code *)PTR_abort_000322c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;)) (return_statement "return uVar5;" return identifier ;) })) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);" (assignment_expression "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0)" identifier = (call_expression "FUN_0001cce0(param_1,param_2,&local_28,0)" identifier (argument_list "(param_1,param_2,&local_28,0)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }" { (expression_statement "dVar11 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar11 = (double)*(int *)(param_1 + 0xc)" identifier = (cast_expression "(double)*(int *)(param_1 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) < 0)" ( (binary_expression "*(int *)(param_1 + 0xc) < 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" { (expression_statement "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (expression_statement "dVar12 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar12 = (double)*(int *)(param_1 + 8)" identifier = (cast_expression "(double)*(int *)(param_1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" if (parenthesized_expression "(*(int *)(param_1 + 8) < 0)" ( (binary_expression "*(int *)(param_1 + 8) < 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" { (expression_statement "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }" if (parenthesized_expression "((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11)" ( (binary_expression "(float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11" (binary_expression "(float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar12" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*(float *)(*(int *)(param_1 + 0x14) + 8)" * (cast_expression "(float *)(*(int *)(param_1 + 0x14) + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x14) + 8)" ( (binary_expression "*(int *)(param_1 + 0x14) + 8" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) + number_literal) ))))) < (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }" { (expression_statement "FUN_0001ce28(param_1 + 0x14);" (call_expression "FUN_0001ce28(param_1 + 0x14)" identifier (argument_list "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar11 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(param_1 + 8)" identifier = (cast_expression "(double)*(int *)(param_1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 8) < 0)" ( (binary_expression "*(int *)(param_1 + 8) < 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" { (expression_statement "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (expression_statement "dVar12 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar12 = (double)*(int *)(param_1 + 0xc)" identifier = (cast_expression "(double)*(int *)(param_1 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0xc) < 0)" ( (binary_expression "*(int *)(param_1 + 0xc) < 0" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" { (expression_statement "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier = (binary_expression "dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" identifier + (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" * (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" identifier + number_literal) )))))) ;) })) (if_statement "if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }" if (parenthesized_expression "(*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12)" ( (binary_expression "*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12" (binary_expression "*(float *)(iVar1 + 8) * (float)dVar11" (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) * (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier)) < (cast_expression "(float)dVar12" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }" { (expression_statement "fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc)" identifier = (binary_expression "(float)dVar11 * *(float *)(iVar1 + 0xc)" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*(float *)(iVar1 + 0xc)" * (cast_expression "(float *)(iVar1 + 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x10) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x10)" * (cast_expression "(char *)(iVar1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }" { (expression_statement "fVar13 = fVar13 * *(float *)(iVar1 + 8);" (assignment_expression "fVar13 = fVar13 * *(float *)(iVar1 + 8)" identifier = (binary_expression "fVar13 * *(float *)(iVar1 + 8)" identifier * (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) })) (if_statement "if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" if (parenthesized_expression "(fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038))" ( (binary_expression "fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" identifier < (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038" identifier + number_literal) ))))) )) (compound_statement "{\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" { (if_statement "if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" if (parenthesized_expression "(fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c))" ( (binary_expression "fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" identifier < (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c" identifier + number_literal) ))))) )) (compound_statement "{\n            uVar5 = (uint)fVar13;\n          }" { (expression_statement "uVar5 = (uint)fVar13;" (assignment_expression "uVar5 = (uint)fVar13" identifier = (cast_expression "(uint)fVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" else (compound_statement "{\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" { (expression_statement "uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;" (assignment_expression "uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000" identifier = (binary_expression "(int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000" (cast_expression "(int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c))" ( (binary_expression "fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" identifier - (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" * (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" ( (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c" identifier + number_literal) ))))) ))) | number_literal)) ;) }))) (expression_statement "iVar1 = hash_rehash(param_1);" (assignment_expression "iVar1 = hash_rehash(param_1)" identifier = (call_expression "hash_rehash(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" { (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);" (assignment_expression "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0)" identifier = (call_expression "FUN_0001cce0(param_1,param_2,&local_28,0)" identifier (argument_list "(param_1,param_2,&local_28,0)" ( identifier , identifier , (pointer_expression "&local_28" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) goto LAB_0001dfd0;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001dfd0;" goto statement_identifier ;)) (goto_statement "goto LAB_0001de58;" goto statement_identifier ;) })) })) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_0001ddd0;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001de58:\n    uVar2 = 1;" statement_identifier : (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;)) (if_statement "if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" if (parenthesized_expression "(*local_28 == 0)" ( (binary_expression "*local_28 == 0" (pointer_expression "*local_28" * identifier) == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*local_28 = param_2;" (assignment_expression "*local_28 = param_2" (pointer_expression "*local_28" * identifier) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0xc) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" else (compound_statement "{\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" { (expression_statement "puVar4 = *(uint **)(param_1 + 0x24);" (assignment_expression "puVar4 = *(uint **)(param_1 + 0x24)" identifier = (pointer_expression "*(uint **)(param_1 + 0x24)" * (cast_expression "(uint **)(param_1 + 0x24)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }" { (expression_statement "puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00032358)(8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00032358)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00032358)" ( (pointer_expression "*(code *)PTR_malloc_00032358" * (cast_expression "(code *)PTR_malloc_00032358" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }" if (parenthesized_expression "(puVar4 == (uint *)0x0)" ( (binary_expression "puVar4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }" { (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_0001ddd0;" goto statement_identifier ;) })) }) (else_clause "else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" else (compound_statement "{\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" { (expression_statement "*(uint *)(param_1 + 0x24) = puVar4[1];" (assignment_expression "*(uint *)(param_1 + 0x24) = puVar4[1]" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar1 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (expression_statement "uVar5 = local_28[1];" (assignment_expression "uVar5 = local_28[1]" identifier = (subscript_expression "local_28[1]" identifier [ number_literal ])) ;) (expression_statement "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uVar5;" (assignment_expression "puVar4[1] = uVar5" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_28[1] = (uint)puVar4;" (assignment_expression "local_28[1] = (uint)puVar4" (subscript_expression "local_28[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" else (if_statement "if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" if (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = 0;\n  }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" else (compound_statement "{\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" { (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))))) (labeled_statement "LAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar9)" ( (binary_expression "local_24 == *(int *)puVar9" identifier == (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "puVar9 = PTR___stack_chk_fail_00032394;" (assignment_expression "puVar9 = PTR___stack_chk_fail_00032394" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00032394)();" (call_expression "(*(code *)PTR___stack_chk_fail_00032394)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00032394)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00032394" * (cast_expression "(code *)PTR___stack_chk_fail_00032394" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar7 = *(int **)(puVar9 + 0x143ac);" (assignment_expression "piVar7 = *(int **)(puVar9 + 0x143ac)" identifier = (pointer_expression "*(int **)(puVar9 + 0x143ac)" * (cast_expression "(int **)(puVar9 + 0x143ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x143ac)" ( (binary_expression "puVar9 + 0x143ac" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar7;" (assignment_expression "iVar1 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "uVar2 = uVar5;" (assignment_expression "uVar2 = uVar5" identifier = identifier) ;) (expression_statement "iVar3 = hash_insert_if_absent();" (assignment_expression "iVar3 = hash_insert_if_absent()" identifier = (call_expression "hash_insert_if_absent()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    uStack_58 = 0;\n  }" { (expression_statement "uStack_58 = 0;" (assignment_expression "uStack_58 = 0" identifier = number_literal) ;) }) (else_clause "else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" else (if_statement "if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    uStack_58 = uVar5;\n  }" { (expression_statement "uStack_58 = uVar5;" (assignment_expression "uStack_58 = uVar5" identifier = identifier) ;) })))) (if_statement "if (iVar1 == *piVar7) {\n    return uStack_58;\n  }" if (parenthesized_expression "(iVar1 == *piVar7)" ( (binary_expression "iVar1 == *piVar7" identifier == (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    return uStack_58;\n  }" { (return_statement "return uStack_58;" return identifier ;) })) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x14398);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x14398)" identifier = (pointer_expression "*(code **)(puVar9 + 0x14398)" * (cast_expression "(code **)(puVar9 + 0x14398)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x14398)" ( (binary_expression "puVar9 + 0x14398" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" ( (pointer_expression "*pcVar10" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar8 = *(undefined4 **)(pcVar10 + 0x14320);" (assignment_expression "puVar8 = *(undefined4 **)(pcVar10 + 0x14320)" identifier = (pointer_expression "*(undefined4 **)(pcVar10 + 0x14320)" * (cast_expression "(undefined4 **)(pcVar10 + 0x14320)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x14320)" ( (binary_expression "pcVar10 + 0x14320" identifier + number_literal) ))))) ;) (expression_statement "puVar4 = (uint *)*puVar8;" (assignment_expression "puVar4 = (uint *)*puVar8" identifier = (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) ;) (expression_statement "uVar5 = FUN_0001cce0();" (assignment_expression "uVar5 = FUN_0001cce0()" identifier = (call_expression "FUN_0001cce0()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;" if (parenthesized_expression "((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))" ( (binary_expression "(uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0)" ( (comma_expression "iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0" (assignment_expression "iVar3 = *piStack_90" identifier = (pointer_expression "*piStack_90" * identifier)) , (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0" (assignment_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar1 + 0x10) + -1" (pointer_expression "*(int *)(iVar1 + 0x10)" * (cast_expression "(int *)(iVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) + number_literal)) , (binary_expression "iVar3 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(iVar1 + 0xc) + -1;" (assignment_expression "iVar3 = *(int *)(iVar1 + 0xc) + -1" identifier = (binary_expression "*(int *)(iVar1 + 0xc) + -1" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar1 + 0xc) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" { (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" identifier = (pointer_expression "*(float **)(iVar1 + 0x14)" * (cast_expression "(float **)(iVar1 + 0x14)" ( (type_descriptor "float **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));" (assignment_expression "fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" identifier = (cast_expression "(float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" ( (binary_expression "(double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier) + (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }" if (parenthesized_expression "(*(int *)(iVar1 + 8) < 0)" ( (binary_expression "*(int *)(iVar1 + 8) < 0" (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }" { (expression_statement "iVar3 = *(int *)(pcVar10 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar10 + 0x14090)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0001e254;" goto statement_identifier ;) })) (labeled_statement "LAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;" statement_identifier : (if_statement "if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;" if (parenthesized_expression "((float)dVar11 * *pfVar6 <= fVar13)" ( (binary_expression "(float)dVar11 * *pfVar6 <= fVar13" (binary_expression "(float)dVar11 * *pfVar6" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar6" * identifier)) <= identifier) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;))) }) (else_clause "else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" else (compound_statement "{\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" { (expression_statement "fVar13 = (float)iVar3;" (assignment_expression "fVar13 = (float)iVar3" identifier = (cast_expression "(float)iVar3" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" identifier = (pointer_expression "*(float **)(iVar1 + 0x14)" * (cast_expression "(float **)(iVar1 + 0x14)" ( (type_descriptor "float **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;" if (parenthesized_expression "(-1 < *(int *)(iVar1 + 8))" ( (binary_expression "-1 < *(int *)(iVar1 + 8)" number_literal < (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001e158;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pcVar10 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar10 + 0x14090)" identifier = (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;" statement_identifier : (if_statement "if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;" if (parenthesized_expression "((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13)" ( (binary_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13" (binary_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6" (cast_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar11 + *(double *)(iVar3 + 0x1040))" ( (binary_expression "dVar11 + *(double *)(iVar3 + 0x1040)" identifier + (pointer_expression "*(double *)(iVar3 + 0x1040)" * (cast_expression "(double *)(iVar3 + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x1040)" ( (binary_expression "iVar3 + 0x1040" identifier + number_literal) ))))) ))) * (pointer_expression "*pfVar6" * identifier)) <= identifier) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;))) }))) (expression_statement "FUN_0001ce28(iVar1 + 0x14);" (call_expression "FUN_0001ce28(iVar1 + 0x14)" identifier (argument_list "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" identifier = (pointer_expression "*(float **)(iVar1 + 0x14)" * (cast_expression "(float **)(iVar1 + 0x14)" ( (type_descriptor "float **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 8) < 0)" ( (binary_expression "*(int *)(iVar1 + 8) < 0" (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" { (expression_statement "dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier = (binary_expression "dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar12 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar12 = (double)*(int *)(iVar1 + 0xc)" identifier = (cast_expression "(double)*(int *)(iVar1 + 0xc)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" if (parenthesized_expression "(*(int *)(iVar1 + 0xc) < 0)" ( (binary_expression "*(int *)(iVar1 + 0xc) < 0" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" { (expression_statement "dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier = (binary_expression "dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" * (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;" if (parenthesized_expression "((float)dVar11 * *pfVar6 <= (float)dVar12)" ( (binary_expression "(float)dVar11 * *pfVar6 <= (float)dVar12" (binary_expression "(float)dVar11 * *pfVar6" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar6" * identifier)) <= (cast_expression "(float)dVar12" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0001e0fc;" goto statement_identifier ;)) (expression_statement "fVar13 = (float)dVar11 * pfVar6[1];" (assignment_expression "fVar13 = (float)dVar11 * pfVar6[1]" identifier = (binary_expression "(float)dVar11 * pfVar6[1]" (cast_expression "(float)dVar11" ( (type_descriptor "float" primitive_type) ) identifier) * (subscript_expression "pfVar6[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" if (parenthesized_expression "(*(char *)(pfVar6 + 4) == '\0')" ( (binary_expression "*(char *)(pfVar6 + 4) == '\0'" (pointer_expression "*(char *)(pfVar6 + 4)" * (cast_expression "(char *)(pfVar6 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pfVar6 + 4)" ( (binary_expression "pfVar6 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }" { (expression_statement "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);" (assignment_expression "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" * (cast_expression "(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "fVar13 = fVar13 * pfVar6[2];" (assignment_expression "fVar13 = fVar13 * pfVar6[2]" identifier = (binary_expression "fVar13 * pfVar6[2]" identifier * (subscript_expression "pfVar6[2]" identifier [ number_literal ]))) ;) (if_statement "if (fVar14 <= fVar13) goto LAB_0001e1fc;" if (parenthesized_expression "(fVar14 <= fVar13)" ( (binary_expression "fVar14 <= fVar13" identifier <= identifier) )) (goto_statement "goto LAB_0001e1fc;" goto statement_identifier ;)) (labeled_statement "LAB_0001e2c4:\n    uVar2 = (uint)fVar13;" statement_identifier : (expression_statement "uVar2 = (uint)fVar13;" (assignment_expression "uVar2 = (uint)fVar13" identifier = (cast_expression "(uint)fVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) }) (else_clause "else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" else (compound_statement "{\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" { (expression_statement "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);" (assignment_expression "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" * (cast_expression "(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x103c)" ( (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar10 + 0x14090)" * (cast_expression "(int *)(pcVar10 + 0x14090)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 0x14090)" ( (binary_expression "pcVar10 + 0x14090" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (fVar13 < fVar14) goto LAB_0001e2c4;" if (parenthesized_expression "(fVar13 < fVar14)" ( (binary_expression "fVar13 < fVar14" identifier < identifier) )) (goto_statement "goto LAB_0001e2c4;" goto statement_identifier ;)) (labeled_statement "LAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;" statement_identifier : (expression_statement "uVar2 = (int)(fVar13 - fVar14) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar13 - fVar14) | 0x80000000" identifier = (binary_expression "(int)(fVar13 - fVar14) | 0x80000000" (cast_expression "(int)(fVar13 - fVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar13 - fVar14)" ( (binary_expression "fVar13 - fVar14" identifier - identifier) ))) | number_literal)) ;)) }))) (expression_statement "iVar3 = hash_rehash(iVar1);" (assignment_expression "iVar3 = hash_rehash(iVar1)" identifier = (call_expression "hash_rehash(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" { (expression_statement "iVar3 = *(int *)(iVar1 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x24)" identifier = (pointer_expression "*(int *)(iVar1 + 0x24)" * (cast_expression "(int *)(iVar1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) ))))) ;) (while_statement "while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }" while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }" { (expression_statement "iVar3 = *(int *)(iVar3 + 4);" (assignment_expression "iVar3 = *(int *)(iVar3 + 4)" identifier = (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar10 + 0x1432c))();" (call_expression "(**(code **)(pcVar10 + 0x1432c))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x1432c))" ( (pointer_expression "**(code **)(pcVar10 + 0x1432c)" * (pointer_expression "*(code **)(pcVar10 + 0x1432c)" * (cast_expression "(code **)(pcVar10 + 0x1432c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x1432c)" ( (binary_expression "pcVar10 + 0x1432c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" * (cast_expression "(undefined4 *)(iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }" statement_identifier : (if_statement "if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }" if (parenthesized_expression "(puVar4 == (uint *)*puVar8)" ( (binary_expression "puVar4 == (uint *)*puVar8" identifier == (cast_expression "(uint *)*puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar8" * identifier))) )) (compound_statement "{\n    return uVar5;\n  }" { (return_statement "return uVar5;" return identifier ;) }))) (expression_statement "(**(code **)(pcVar10 + 0x1430c))();" (call_expression "(**(code **)(pcVar10 + 0x1430c))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x1430c))" ( (pointer_expression "**(code **)(pcVar10 + 0x1430c)" * (pointer_expression "*(code **)(pcVar10 + 0x1430c)" * (cast_expression "(code **)(pcVar10 + 0x1430c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar10 + 0x1430c)" ( (binary_expression "pcVar10 + 0x1430c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar4 + 7) = 1;" (assignment_expression "*(undefined1 *)(puVar4 + 7) = 1" (pointer_expression "*(undefined1 *)(puVar4 + 7)" * (cast_expression "(undefined1 *)(puVar4 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 7)" ( (binary_expression "puVar4 + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" * identifier) = identifier) ;) (expression_statement "puVar4[1] = uVar2;" (assignment_expression "puVar4[1] = uVar2" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[2] = uVar2;" (assignment_expression "puVar4[2] = uVar2" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[3] = uVar2;" (assignment_expression "puVar4[3] = uVar2" (subscript_expression "puVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4[4] = uVar2;" (assignment_expression "puVar4[4] = uVar2" (subscript_expression "puVar4[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 (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 = (binary_expression 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 IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (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)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (labeled_statement statement_identifier : (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) , (binary_expression IDENT != LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * IDENT)) <= IDENT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (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) ))))) ))) * (pointer_expression * IDENT)) <= IDENT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * IDENT)) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ]))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (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) ;) (return_statement return LIT ;) })))
(function_definition "uint hash_insert_if_absent(int param_1,uint param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}" (type_identifier "uint") (function_declarator "hash_insert_if_absent(int param_1,uint param_2,int *param_3)" (identifier "hash_insert_if_absent") (parameter_list "(int param_1,uint param_2,int *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  uint *puVar4;\n  uint uVar5;\n  float *pfVar6;\n  int *piVar7;\n  undefined4 *puVar8;\n  undefined *puVar9;\n  code *pcVar10;\n  double dVar11;\n  float fVar13;\n  double dVar12;\n  float fVar14;\n  int *piStack_90;\n  uint uStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar9 = PTR___stack_chk_guard_000323a8;\n  local_24 = *(int *)PTR___stack_chk_guard_000323a8;\n  if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n  if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }\nLAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }\n  puVar9 = PTR___stack_chk_fail_00032394;\n  (*(code *)PTR___stack_chk_fail_00032394)();\n  piVar7 = *(int **)(puVar9 + 0x143ac);\n  iVar1 = *piVar7;\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }\n  if (iVar1 == *piVar7) {\n    return uStack_58;\n  }\n  pcVar10 = *(code **)(puVar9 + 0x14398);\n  (*pcVar10)();\n  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);\n  puVar4 = (uint *)*puVar8;\n  uVar5 = FUN_0001cce0();\n  if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;\n  iVar3 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar3;\n  if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  FUN_0001ce28(iVar1 + 0x14);\n  pfVar6 = *(float **)(iVar1 + 0x14);\n  dVar11 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  dVar12 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }\n  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;\n  fVar13 = (float)dVar11 * pfVar6[1];\n  if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }\n  iVar3 = hash_rehash(iVar1);\n  if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }\n  (**(code **)(pcVar10 + 0x1430c))();\n  puVar4[5] = 0;\n  puVar4[6] = 0;\n  *(undefined1 *)(puVar4 + 7) = 1;\n  *puVar4 = uVar2;\n  puVar4[1] = uVar2;\n  puVar4[2] = uVar2;\n  puVar4[3] = uVar2;\n  puVar4[4] = uVar2;\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint *puVar4;" (type_identifier "uint") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "float *pfVar6;" (primitive_type "float") (pointer_declarator "*pfVar6" (* "*") (identifier "pfVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "double dVar11;" (primitive_type "double") (identifier "dVar11") (; ";")) (declaration "float fVar13;" (primitive_type "float") (identifier "fVar13") (; ";")) (declaration "double dVar12;" (primitive_type "double") (identifier "dVar12") (; ";")) (declaration "float fVar14;" (primitive_type "float") (identifier "fVar14") (; ";")) (declaration "int *piStack_90;" (primitive_type "int") (pointer_declarator "*piStack_90" (* "*") (identifier "piStack_90")) (; ";")) (declaration "uint uStack_58;" (type_identifier "uint") (identifier "uStack_58") (; ";")) (declaration "uint *local_28;" (type_identifier "uint") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar9 = PTR___stack_chk_guard_000323a8;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000323a8" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_guard_000323a8")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000323a8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000323a8" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000323a8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000323a8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000323a8")))) (; ";")) (if_statement "if (param_2 == 0) {\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();\n    return uVar5;\n  }" ({ "{") (labeled_statement "LAB_0001dfd0:\n    uVar5 = (*(code *)PTR_abort_000322c0)();" (statement_identifier "LAB_0001dfd0") (: ":") (expression_statement "uVar5 = (*(code *)PTR_abort_000322c0)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_000322c0)()" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_abort_000322c0)()" (parenthesized_expression "(*(code *)PTR_abort_000322c0)" (( "(") (pointer_expression "*(code *)PTR_abort_000322c0" (* "*") (cast_expression "(code *)PTR_abort_000322c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_000322c0"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}"))) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" (identifier "uVar5") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);" (assignment_expression "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0)" (identifier "iVar1") (= "=") (call_expression "FUN_0001cce0(param_1,param_2,&local_28,0)" (identifier "FUN_0001cce0") (argument_list "(param_1,param_2,&local_28,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    dVar11 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    dVar12 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }\n    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }\nLAB_0001de58:\n    uVar2 = 1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }" ({ "{") (expression_statement "dVar11 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar11 = (double)*(int *)(param_1 + 0xc)" (identifier "dVar11") (= "=") (cast_expression "(double)*(int *)(param_1 + 0xc)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0xc) < 0) {\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) < 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" ({ "{") (expression_statement "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar11") (= "=") (binary_expression "dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar11") (+ "+") (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (* "*") (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" (identifier "PTR_s_means_that_you_have_a_corrupted_f_00032118") (+ "+") (number_literal "0x1040")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar12 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar12 = (double)*(int *)(param_1 + 8)" (identifier "dVar12") (= "=") (cast_expression "(double)*(int *)(param_1 + 8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (*(int *)(param_1 + 8) < 0) {\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) < 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) < 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n    }" ({ "{") (expression_statement "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar12") (= "=") (binary_expression "dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar12") (+ "+") (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (* "*") (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" (identifier "PTR_s_means_that_you_have_a_corrupted_f_00032118") (+ "+") (number_literal "0x1040")) () ")")))))) (; ";")) (} "}"))) (if_statement "if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }" (if "if") (parenthesized_expression "((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11)" (( "(") (binary_expression "(float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11" (binary_expression "(float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar12" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar12")) (* "*") (pointer_expression "*(float *)(*(int *)(param_1 + 0x14) + 8)" (* "*") (cast_expression "(float *)(*(int *)(param_1 + 0x14) + 8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x14) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) + 8" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (< "<") (cast_expression "(float)dVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar11"))) () ")")) (compound_statement "{\n      FUN_0001ce28(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar11 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      dVar12 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }\n    }" ({ "{") (expression_statement "FUN_0001ce28(param_1 + 0x14);" (call_expression "FUN_0001ce28(param_1 + 0x14)" (identifier "FUN_0001ce28") (argument_list "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar11 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(param_1 + 8)" (identifier "dVar11") (= "=") (cast_expression "(double)*(int *)(param_1 + 8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (*(int *)(param_1 + 8) < 0) {\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) < 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) < 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" ({ "{") (expression_statement "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar11") (= "=") (binary_expression "dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar11") (+ "+") (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (* "*") (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" (identifier "PTR_s_means_that_you_have_a_corrupted_f_00032118") (+ "+") (number_literal "0x1040")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar12 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar12 = (double)*(int *)(param_1 + 0xc)" (identifier "dVar12") (= "=") (cast_expression "(double)*(int *)(param_1 + 0xc)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (*(int *)(param_1 + 0xc) < 0) {\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xc) < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) < 0" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);\n      }" ({ "{") (expression_statement "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar12") (= "=") (binary_expression "dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (identifier "dVar12") (+ "+") (pointer_expression "*(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (* "*") (cast_expression "(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040)" (( "(") (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040" (identifier "PTR_s_means_that_you_have_a_corrupted_f_00032118") (+ "+") (number_literal "0x1040")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }" (if "if") (parenthesized_expression "(*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12)" (( "(") (binary_expression "*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12" (binary_expression "*(float *)(iVar1 + 8) * (float)dVar11" (pointer_expression "*(float *)(iVar1 + 8)" (* "*") (cast_expression "(float *)(iVar1 + 8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (* "*") (cast_expression "(float)dVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar11"))) (< "<") (cast_expression "(float)dVar12" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar12"))) () ")")) (compound_statement "{\n        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }\n        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }\n        uVar2 = 0xffffffff;\n        goto LAB_0001ddd0;\n      }" ({ "{") (expression_statement "fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc)" (identifier "fVar13") (= "=") (binary_expression "(float)dVar11 * *(float *)(iVar1 + 0xc)" (cast_expression "(float)dVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar11")) (* "*") (pointer_expression "*(float *)(iVar1 + 0xc)" (* "*") (cast_expression "(float *)(iVar1 + 0xc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x10)" (* "*") (cast_expression "(char *)(iVar1 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          fVar13 = fVar13 * *(float *)(iVar1 + 8);\n        }" ({ "{") (expression_statement "fVar13 = fVar13 * *(float *)(iVar1 + 8);" (assignment_expression "fVar13 = fVar13 * *(float *)(iVar1 + 8)" (identifier "fVar13") (= "=") (binary_expression "fVar13 * *(float *)(iVar1 + 8)" (identifier "fVar13") (* "*") (pointer_expression "*(float *)(iVar1 + 8)" (* "*") (cast_expression "(float *)(iVar1 + 8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" (if "if") (parenthesized_expression "(fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038))" (( "(") (binary_expression "fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" (identifier "fVar13") (< "<") (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" (* "*") (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)" (( "(") (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038" (identifier "PTR_s_means_that_you_have_a_corrupted_f_00032118") (+ "+") (number_literal "0x1038")) () ")"))))) () ")")) (compound_statement "{\n          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }\n        }" ({ "{") (if_statement "if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {\n            uVar5 = (uint)fVar13;\n          }\n          else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" (if "if") (parenthesized_expression "(fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c))" (( "(") (binary_expression "fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" (identifier "fVar13") (< "<") (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" (* "*") (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)" (( "(") (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c" (identifier "PTR_s_means_that_you_have_a_corrupted_f_00032118") (+ "+") (number_literal "0x103c")) () ")"))))) () ")")) (compound_statement "{\n            uVar5 = (uint)fVar13;\n          }" ({ "{") (expression_statement "uVar5 = (uint)fVar13;" (assignment_expression "uVar5 = (uint)fVar13" (identifier "uVar5") (= "=") (cast_expression "(uint)fVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar13"))) (; ";")) (} "}")) (else_clause "else {\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" (else "else") (compound_statement "{\n            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;\n          }" ({ "{") (expression_statement "uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000;" (assignment_expression "uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000" (identifier "uVar5") (= "=") (binary_expression "(int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)) | 0x80000000" (cast_expression "(int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c))" (( "(") (binary_expression "fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" (identifier "fVar13") (- "-") (pointer_expression "*(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" (* "*") (cast_expression "(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c)" (( "(") (binary_expression "PTR_s_means_that_you_have_a_corrupted_f_00032118 +\n                                             0x103c" (identifier "PTR_s_means_that_you_have_a_corrupted_f_00032118") (+ "+") (number_literal "0x103c")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (expression_statement "iVar1 = hash_rehash(param_1);" (assignment_expression "iVar1 = hash_rehash(param_1)" (identifier "iVar1") (= "=") (call_expression "hash_rehash(param_1)" (identifier "hash_rehash") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar5 = param_2;\n            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);\n            if (iVar1 != 0) goto LAB_0001dfd0;\n            goto LAB_0001de58;\n          }" ({ "{") (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" (identifier "uVar5") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);" (assignment_expression "iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0)" (identifier "iVar1") (= "=") (call_expression "FUN_0001cce0(param_1,param_2,&local_28,0)" (identifier "FUN_0001cce0") (argument_list "(param_1,param_2,&local_28,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) goto LAB_0001dfd0;" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001dfd0;" (goto "goto") (statement_identifier "LAB_0001dfd0") (; ";"))) (goto_statement "goto LAB_0001de58;" (goto "goto") (statement_identifier "LAB_0001de58") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto LAB_0001ddd0;" (goto "goto") (statement_identifier "LAB_0001ddd0") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0001de58:\n    uVar2 = 1;" (statement_identifier "LAB_0001de58") (: ":") (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";"))) (if_statement "if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" (if "if") (parenthesized_expression "(*local_28 == 0)" (( "(") (binary_expression "*local_28 == 0" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x10)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*local_28 = param_2;" (assignment_expression "*local_28 = param_2" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)(param_1 + 0x10) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0xc) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" (else "else") (compound_statement "{\n      puVar4 = *(uint **)(param_1 + 0x24);\n      if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      uVar2 = 1;\n      uVar5 = local_28[1];\n      *puVar4 = param_2;\n      puVar4[1] = uVar5;\n      local_28[1] = (uint)puVar4;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" ({ "{") (expression_statement "puVar4 = *(uint **)(param_1 + 0x24);" (assignment_expression "puVar4 = *(uint **)(param_1 + 0x24)" (identifier "puVar4") (= "=") (pointer_expression "*(uint **)(param_1 + 0x24)" (* "*") (cast_expression "(uint **)(param_1 + 0x24)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (puVar4 == (uint *)0x0) {\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" (if "if") (parenthesized_expression "(puVar4 == (uint *)0x0)" (( "(") (binary_expression "puVar4 == (uint *)0x0" (identifier "puVar4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);\n        if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }\n      }" ({ "{") (expression_statement "puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(code *)PTR_malloc_00032358)(8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_00032358)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00032358)" (( "(") (pointer_expression "*(code *)PTR_malloc_00032358" (* "*") (cast_expression "(code *)PTR_malloc_00032358" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00032358"))) () ")")) (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (puVar4 == (uint *)0x0) {\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }" (if "if") (parenthesized_expression "(puVar4 == (uint *)0x0)" (( "(") (binary_expression "puVar4 == (uint *)0x0" (identifier "puVar4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar2 = 0xffffffff;\n          goto LAB_0001ddd0;\n        }" ({ "{") (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto LAB_0001ddd0;" (goto "goto") (statement_identifier "LAB_0001ddd0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" (else "else") (compound_statement "{\n        *(uint *)(param_1 + 0x24) = puVar4[1];\n      }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x24) = puVar4[1];" (assignment_expression "*(uint *)(param_1 + 0x24) = puVar4[1]" (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "iVar1 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar5 = local_28[1];" (assignment_expression "uVar5 = local_28[1]" (identifier "uVar5") (= "=") (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar4[1] = uVar5;" (assignment_expression "puVar4[1] = uVar5" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "local_28[1] = (uint)puVar4;" (assignment_expression "local_28[1] = (uint)puVar4" (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar4"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x10) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" (else "else") (if_statement "if (param_3 == (int *)0x0) {\n    uVar2 = 0;\n  }\n  else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" (if "if") (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar2 = 0;\n  }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" (else "else") (compound_statement "{\n    *param_3 = iVar1;\n    uVar2 = 0;\n  }" ({ "{") (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (labeled_statement "LAB_0001ddd0:\n  if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }" (statement_identifier "LAB_0001ddd0") (: ":") (if_statement "if (local_24 == *(int *)puVar9) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar9)" (( "(") (binary_expression "local_24 == *(int *)puVar9" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "puVar9 = PTR___stack_chk_fail_00032394;" (assignment_expression "puVar9 = PTR___stack_chk_fail_00032394" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_fail_00032394")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00032394)();" (call_expression "(*(code *)PTR___stack_chk_fail_00032394)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00032394)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00032394" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00032394" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00032394"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar7 = *(int **)(puVar9 + 0x143ac);" (assignment_expression "piVar7 = *(int **)(puVar9 + 0x143ac)" (identifier "piVar7") (= "=") (pointer_expression "*(int **)(puVar9 + 0x143ac)" (* "*") (cast_expression "(int **)(puVar9 + 0x143ac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x143ac)" (( "(") (binary_expression "puVar9 + 0x143ac" (identifier "puVar9") (+ "+") (number_literal "0x143ac")) () ")"))))) (; ";")) (expression_statement "iVar1 = *piVar7;" (assignment_expression "iVar1 = *piVar7" (identifier "iVar1") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "uVar2 = uVar5;" (assignment_expression "uVar2 = uVar5" (identifier "uVar2") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar3 = hash_insert_if_absent();" (assignment_expression "iVar3 = hash_insert_if_absent()" (identifier "iVar3") (= "=") (call_expression "hash_insert_if_absent()" (identifier "hash_insert_if_absent") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == -1) {\n    uStack_58 = 0;\n  }\n  else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    uStack_58 = 0;\n  }" ({ "{") (expression_statement "uStack_58 = 0;" (assignment_expression "uStack_58 = 0" (identifier "uStack_58") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" (else "else") (if_statement "if (iVar3 != 0) {\n    uStack_58 = uVar5;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uStack_58 = uVar5;\n  }" ({ "{") (expression_statement "uStack_58 = uVar5;" (assignment_expression "uStack_58 = uVar5" (identifier "uStack_58") (= "=") (identifier "uVar5")) (; ";")) (} "}"))))) (if_statement "if (iVar1 == *piVar7) {\n    return uStack_58;\n  }" (if "if") (parenthesized_expression "(iVar1 == *piVar7)" (( "(") (binary_expression "iVar1 == *piVar7" (identifier "iVar1") (== "==") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) () ")")) (compound_statement "{\n    return uStack_58;\n  }" ({ "{") (return_statement "return uStack_58;" (return "return") (identifier "uStack_58") (; ";")) (} "}"))) (expression_statement "pcVar10 = *(code **)(puVar9 + 0x14398);" (assignment_expression "pcVar10 = *(code **)(puVar9 + 0x14398)" (identifier "pcVar10") (= "=") (pointer_expression "*(code **)(puVar9 + 0x14398)" (* "*") (cast_expression "(code **)(puVar9 + 0x14398)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x14398)" (( "(") (binary_expression "puVar9 + 0x14398" (identifier "puVar9") (+ "+") (number_literal "0x14398")) () ")"))))) (; ";")) (expression_statement "(*pcVar10)();" (call_expression "(*pcVar10)()" (parenthesized_expression "(*pcVar10)" (( "(") (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar8 = *(undefined4 **)(pcVar10 + 0x14320);" (assignment_expression "puVar8 = *(undefined4 **)(pcVar10 + 0x14320)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(pcVar10 + 0x14320)" (* "*") (cast_expression "(undefined4 **)(pcVar10 + 0x14320)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x14320)" (( "(") (binary_expression "pcVar10 + 0x14320" (identifier "pcVar10") (+ "+") (number_literal "0x14320")) () ")"))))) (; ";")) (expression_statement "puVar4 = (uint *)*puVar8;" (assignment_expression "puVar4 = (uint *)*puVar8" (identifier "puVar4") (= "=") (cast_expression "(uint *)*puVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) (; ";")) (expression_statement "uVar5 = FUN_0001cce0();" (assignment_expression "uVar5 = FUN_0001cce0()" (identifier "uVar5") (= "=") (call_expression "FUN_0001cce0()" (identifier "FUN_0001cce0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))\n  goto LAB_0001e0fc;" (if "if") (parenthesized_expression "((uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))" (( "(") (binary_expression "(uVar5 == 0) ||\n     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0)" (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0)" (( "(") (comma_expression "iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0" (assignment_expression "iVar3 = *piStack_90" (identifier "iVar3") (= "=") (pointer_expression "*piStack_90" (* "*") (identifier "piStack_90"))) (, ",") (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0" (assignment_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1" (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "*(int *)(iVar1 + 0x10) + -1" (pointer_expression "*(int *)(iVar1 + 0x10)" (* "*") (cast_expression "(int *)(iVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "-1"))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_0001e0fc;" (goto "goto") (statement_identifier "LAB_0001e0fc") (; ";"))) (expression_statement "iVar3 = *(int *)(iVar1 + 0xc) + -1;" (assignment_expression "iVar3 = *(int *)(iVar1 + 0xc) + -1" (identifier "iVar3") (= "=") (binary_expression "*(int *)(iVar1 + 0xc) + -1" (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(iVar1 + 0xc) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 < 0) {\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }\n  else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }\nLAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" ({ "{") (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" (identifier "pfVar6") (= "=") (pointer_expression "*(float **)(iVar1 + 0x14)" (* "*") (cast_expression "(float **)(iVar1 + 0x14)" (( "(") (type_descriptor "float **" (primitive_type "float") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));" (assignment_expression "fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" (identifier "fVar13") (= "=") (cast_expression "(float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040))" (( "(") (binary_expression "(double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (cast_expression "(double)iVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar3")) (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (* "*") (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" (* "*") (cast_expression "(int *)(pcVar10 + 0x14090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x14090)" (( "(") (binary_expression "pcVar10 + 0x14090" (identifier "pcVar10") (+ "+") (number_literal "0x14090")) () ")")))) (+ "+") (number_literal "0x1040")) () ")"))))) () ")")))) (; ";")) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" (identifier "dVar11") (= "=") (cast_expression "(double)*(int *)(iVar1 + 8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar1 + 8) < 0) {\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 8) < 0)" (( "(") (binary_expression "*(int *)(iVar1 + 8) < 0" (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(pcVar10 + 0x14090);\n      goto LAB_0001e254;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(pcVar10 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar10 + 0x14090)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar10 + 0x14090)" (* "*") (cast_expression "(int *)(pcVar10 + 0x14090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x14090)" (( "(") (binary_expression "pcVar10 + 0x14090" (identifier "pcVar10") (+ "+") (number_literal "0x14090")) () ")"))))) (; ";")) (goto_statement "goto LAB_0001e254;" (goto "goto") (statement_identifier "LAB_0001e254") (; ";")) (} "}"))) (labeled_statement "LAB_0001e158:\n    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;" (statement_identifier "LAB_0001e158") (: ":") (if_statement "if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;" (if "if") (parenthesized_expression "((float)dVar11 * *pfVar6 <= fVar13)" (( "(") (binary_expression "(float)dVar11 * *pfVar6 <= fVar13" (binary_expression "(float)dVar11 * *pfVar6" (cast_expression "(float)dVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar11")) (* "*") (pointer_expression "*pfVar6" (* "*") (identifier "pfVar6"))) (<= "<=") (identifier "fVar13")) () ")")) (goto_statement "goto LAB_0001e0fc;" (goto "goto") (statement_identifier "LAB_0001e0fc") (; ";")))) (} "}")) (else_clause "else {\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" (else "else") (compound_statement "{\n    fVar13 = (float)iVar3;\n    pfVar6 = *(float **)(iVar1 + 0x14);\n    dVar11 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;\n    iVar3 = *(int *)(pcVar10 + 0x14090);\nLAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;\n  }" ({ "{") (expression_statement "fVar13 = (float)iVar3;" (assignment_expression "fVar13 = (float)iVar3" (identifier "fVar13") (= "=") (cast_expression "(float)iVar3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "iVar3"))) (; ";")) (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" (identifier "pfVar6") (= "=") (pointer_expression "*(float **)(iVar1 + 0x14)" (* "*") (cast_expression "(float **)(iVar1 + 0x14)" (( "(") (type_descriptor "float **" (primitive_type "float") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" (identifier "dVar11") (= "=") (cast_expression "(double)*(int *)(iVar1 + 8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar1 + 8))" (( "(") (binary_expression "-1 < *(int *)(iVar1 + 8)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (goto_statement "goto LAB_0001e158;" (goto "goto") (statement_identifier "LAB_0001e158") (; ";"))) (expression_statement "iVar3 = *(int *)(pcVar10 + 0x14090);" (assignment_expression "iVar3 = *(int *)(pcVar10 + 0x14090)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pcVar10 + 0x14090)" (* "*") (cast_expression "(int *)(pcVar10 + 0x14090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x14090)" (( "(") (binary_expression "pcVar10 + 0x14090" (identifier "pcVar10") (+ "+") (number_literal "0x14090")) () ")"))))) (; ";")) (labeled_statement "LAB_0001e254:\n    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;" (statement_identifier "LAB_0001e254") (: ":") (if_statement "if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;" (if "if") (parenthesized_expression "((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13)" (( "(") (binary_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13" (binary_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6" (cast_expression "(float)(dVar11 + *(double *)(iVar3 + 0x1040))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar11 + *(double *)(iVar3 + 0x1040))" (( "(") (binary_expression "dVar11 + *(double *)(iVar3 + 0x1040)" (identifier "dVar11") (+ "+") (pointer_expression "*(double *)(iVar3 + 0x1040)" (* "*") (cast_expression "(double *)(iVar3 + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x1040)" (( "(") (binary_expression "iVar3 + 0x1040" (identifier "iVar3") (+ "+") (number_literal "0x1040")) () ")"))))) () ")"))) (* "*") (pointer_expression "*pfVar6" (* "*") (identifier "pfVar6"))) (<= "<=") (identifier "fVar13")) () ")")) (goto_statement "goto LAB_0001e0fc;" (goto "goto") (statement_identifier "LAB_0001e0fc") (; ";")))) (} "}")))) (expression_statement "FUN_0001ce28(iVar1 + 0x14);" (call_expression "FUN_0001ce28(iVar1 + 0x14)" (identifier "FUN_0001ce28") (argument_list "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))) (; ";")) (expression_statement "pfVar6 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar6 = *(float **)(iVar1 + 0x14)" (identifier "pfVar6") (= "=") (pointer_expression "*(float **)(iVar1 + 0x14)" (* "*") (cast_expression "(float **)(iVar1 + 0x14)" (( "(") (type_descriptor "float **" (primitive_type "float") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar11 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar11 = (double)*(int *)(iVar1 + 8)" (identifier "dVar11") (= "=") (cast_expression "(double)*(int *)(iVar1 + 8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar1 + 8) < 0) {\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 8) < 0)" (( "(") (binary_expression "*(int *)(iVar1 + 8) < 0" (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" ({ "{") (expression_statement "dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);" (assignment_expression "dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (identifier "dVar11") (= "=") (binary_expression "dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (identifier "dVar11") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (* "*") (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" (* "*") (cast_expression "(int *)(pcVar10 + 0x14090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x14090)" (( "(") (binary_expression "pcVar10 + 0x14090" (identifier "pcVar10") (+ "+") (number_literal "0x14090")) () ")")))) (+ "+") (number_literal "0x1040")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar12 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar12 = (double)*(int *)(iVar1 + 0xc)" (identifier "dVar12") (= "=") (cast_expression "(double)*(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0xc) < 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0xc) < 0" (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);\n  }" ({ "{") (expression_statement "dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);" (assignment_expression "dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (identifier "dVar12") (= "=") (binary_expression "dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (identifier "dVar12") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (* "*") (cast_expression "(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x1040)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x1040" (pointer_expression "*(int *)(pcVar10 + 0x14090)" (* "*") (cast_expression "(int *)(pcVar10 + 0x14090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x14090)" (( "(") (binary_expression "pcVar10 + 0x14090" (identifier "pcVar10") (+ "+") (number_literal "0x14090")) () ")")))) (+ "+") (number_literal "0x1040")) () ")")))))) (; ";")) (} "}"))) (if_statement "if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;" (if "if") (parenthesized_expression "((float)dVar11 * *pfVar6 <= (float)dVar12)" (( "(") (binary_expression "(float)dVar11 * *pfVar6 <= (float)dVar12" (binary_expression "(float)dVar11 * *pfVar6" (cast_expression "(float)dVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar11")) (* "*") (pointer_expression "*pfVar6" (* "*") (identifier "pfVar6"))) (<= "<=") (cast_expression "(float)dVar12" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar12"))) () ")")) (goto_statement "goto LAB_0001e0fc;" (goto "goto") (statement_identifier "LAB_0001e0fc") (; ";"))) (expression_statement "fVar13 = (float)dVar11 * pfVar6[1];" (assignment_expression "fVar13 = (float)dVar11 * pfVar6[1]" (identifier "fVar13") (= "=") (binary_expression "(float)dVar11 * pfVar6[1]" (cast_expression "(float)dVar11" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar11")) (* "*") (subscript_expression "pfVar6[1]" (identifier "pfVar6") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (*(char *)(pfVar6 + 4) == '\0') {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }\n  else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" (if "if") (parenthesized_expression "(*(char *)(pfVar6 + 4) == '\0')" (( "(") (binary_expression "*(char *)(pfVar6 + 4) == '\0'" (pointer_expression "*(char *)(pfVar6 + 4)" (* "*") (cast_expression "(char *)(pfVar6 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pfVar6 + 4)" (( "(") (binary_expression "pfVar6 + 4" (identifier "pfVar6") (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    fVar13 = fVar13 * pfVar6[2];\n    if (fVar14 <= fVar13) goto LAB_0001e1fc;\nLAB_0001e2c4:\n    uVar2 = (uint)fVar13;\n  }" ({ "{") (expression_statement "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);" (assignment_expression "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" (identifier "fVar14") (= "=") (pointer_expression "*(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" (* "*") (cast_expression "(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x103c)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar10 + 0x14090)" (* "*") (cast_expression "(int *)(pcVar10 + 0x14090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x14090)" (( "(") (binary_expression "pcVar10 + 0x14090" (identifier "pcVar10") (+ "+") (number_literal "0x14090")) () ")")))) (+ "+") (number_literal "0x103c")) () ")"))))) (; ";")) (expression_statement "fVar13 = fVar13 * pfVar6[2];" (assignment_expression "fVar13 = fVar13 * pfVar6[2]" (identifier "fVar13") (= "=") (binary_expression "fVar13 * pfVar6[2]" (identifier "fVar13") (* "*") (subscript_expression "pfVar6[2]" (identifier "pfVar6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (fVar14 <= fVar13) goto LAB_0001e1fc;" (if "if") (parenthesized_expression "(fVar14 <= fVar13)" (( "(") (binary_expression "fVar14 <= fVar13" (identifier "fVar14") (<= "<=") (identifier "fVar13")) () ")")) (goto_statement "goto LAB_0001e1fc;" (goto "goto") (statement_identifier "LAB_0001e1fc") (; ";"))) (labeled_statement "LAB_0001e2c4:\n    uVar2 = (uint)fVar13;" (statement_identifier "LAB_0001e2c4") (: ":") (expression_statement "uVar2 = (uint)fVar13;" (assignment_expression "uVar2 = (uint)fVar13" (identifier "uVar2") (= "=") (cast_expression "(uint)fVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar13"))) (; ";"))) (} "}")) (else_clause "else {\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" (else "else") (compound_statement "{\n    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);\n    if (fVar13 < fVar14) goto LAB_0001e2c4;\nLAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;\n  }" ({ "{") (expression_statement "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);" (assignment_expression "fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" (identifier "fVar14") (= "=") (pointer_expression "*(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" (* "*") (cast_expression "(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar10 + 0x14090) + 0x103c)" (( "(") (binary_expression "*(int *)(pcVar10 + 0x14090) + 0x103c" (pointer_expression "*(int *)(pcVar10 + 0x14090)" (* "*") (cast_expression "(int *)(pcVar10 + 0x14090)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar10 + 0x14090)" (( "(") (binary_expression "pcVar10 + 0x14090" (identifier "pcVar10") (+ "+") (number_literal "0x14090")) () ")")))) (+ "+") (number_literal "0x103c")) () ")"))))) (; ";")) (if_statement "if (fVar13 < fVar14) goto LAB_0001e2c4;" (if "if") (parenthesized_expression "(fVar13 < fVar14)" (( "(") (binary_expression "fVar13 < fVar14" (identifier "fVar13") (< "<") (identifier "fVar14")) () ")")) (goto_statement "goto LAB_0001e2c4;" (goto "goto") (statement_identifier "LAB_0001e2c4") (; ";"))) (labeled_statement "LAB_0001e1fc:\n    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;" (statement_identifier "LAB_0001e1fc") (: ":") (expression_statement "uVar2 = (int)(fVar13 - fVar14) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar13 - fVar14) | 0x80000000" (identifier "uVar2") (= "=") (binary_expression "(int)(fVar13 - fVar14) | 0x80000000" (cast_expression "(int)(fVar13 - fVar14)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar13 - fVar14)" (( "(") (binary_expression "fVar13 - fVar14" (identifier "fVar13") (- "-") (identifier "fVar14")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";"))) (} "}")))) (expression_statement "iVar3 = hash_rehash(iVar1);" (assignment_expression "iVar3 = hash_rehash(iVar1)" (identifier "iVar3") (= "=") (call_expression "hash_rehash(iVar1)" (identifier "hash_rehash") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = *(int *)(iVar1 + 0x24);\n    while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar1 + 0x24);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x24)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar1 + 0x24)" (* "*") (cast_expression "(int *)(iVar1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x24)" (( "(") (binary_expression "iVar1 + 0x24" (identifier "iVar1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (while_statement "while (iVar3 != 0) {\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }" (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(iVar3 + 4);\n      (**(code **)(pcVar10 + 0x1432c))();\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(iVar3 + 4);" (assignment_expression "iVar3 = *(int *)(iVar3 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar10 + 0x1432c))();" (call_expression "(**(code **)(pcVar10 + 0x1432c))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x1432c))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x1432c)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x1432c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x1432c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x1432c)" (( "(") (binary_expression "pcVar10 + 0x1432c" (identifier "pcVar10") (+ "+") (number_literal "0x1432c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x24)" (( "(") (binary_expression "iVar1 + 0x24" (identifier "iVar1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_0001e0fc:\n  if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }" (statement_identifier "LAB_0001e0fc") (: ":") (if_statement "if (puVar4 == (uint *)*puVar8) {\n    return uVar5;\n  }" (if "if") (parenthesized_expression "(puVar4 == (uint *)*puVar8)" (( "(") (binary_expression "puVar4 == (uint *)*puVar8" (identifier "puVar4") (== "==") (cast_expression "(uint *)*puVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")))) () ")")) (compound_statement "{\n    return uVar5;\n  }" ({ "{") (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar10 + 0x1430c))();" (call_expression "(**(code **)(pcVar10 + 0x1430c))()" (parenthesized_expression "(**(code **)(pcVar10 + 0x1430c))" (( "(") (pointer_expression "**(code **)(pcVar10 + 0x1430c)" (* "*") (pointer_expression "*(code **)(pcVar10 + 0x1430c)" (* "*") (cast_expression "(code **)(pcVar10 + 0x1430c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar10 + 0x1430c)" (( "(") (binary_expression "pcVar10 + 0x1430c" (identifier "pcVar10") (+ "+") (number_literal "0x1430c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4[5] = 0;" (assignment_expression "puVar4[5] = 0" (subscript_expression "puVar4[5]" (identifier "puVar4") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[6] = 0;" (assignment_expression "puVar4[6] = 0" (subscript_expression "puVar4[6]" (identifier "puVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(puVar4 + 7) = 1;" (assignment_expression "*(undefined1 *)(puVar4 + 7) = 1" (pointer_expression "*(undefined1 *)(puVar4 + 7)" (* "*") (cast_expression "(undefined1 *)(puVar4 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 7)" (( "(") (binary_expression "puVar4 + 7" (identifier "puVar4") (+ "+") (number_literal "7")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*puVar4 = uVar2;" (assignment_expression "*puVar4 = uVar2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar4[1] = uVar2;" (assignment_expression "puVar4[1] = uVar2" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar4[2] = uVar2;" (assignment_expression "puVar4[2] = uVar2" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar4[3] = uVar2;" (assignment_expression "puVar4[3] = uVar2" (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar4[4] = uVar2;" (assignment_expression "puVar4[4] = uVar2" (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

int function_1(type_1 *table,void *var_1,void **var_14)

{
  type_2 *puVar1;
  type_3 extraout_var;
  type_3 extraout_var_00;
  void *var_4;
  int var_17;
  size_t var_12;
  type_4 _Var5;
  void *var_21;
  type_5 *pHVar7;
  size_t var_11;
  type_1 *pHVar9;
  type_6 *var_23;
  type_6 *phVar11;
  int *piVar12;
  int *piVar13;
  type_2 *var_16;
  type_7 *var_20;
  type_7 *pcVar16;
  double var_5;
  type_6 *var_13;
  float var_8;
  double var_6;
  float var_22;
  type_6 *phStack_90;
  type_8 *var_24;
  type_6 *phStack_84;
  int *piStack_80;
  type_2 *puStack_7c;
  void *pvStack_78;
  type_7 *pcStack_74;
  type_2 *var_19;
  type_6 *phStack_58;
  type_1 *var_18;
  type_1 *pHStack_4c;
  type_6 *phStack_48;
  type_7 *pcStack_44;
  type_6 *bucket;
  type_1 *var_15;
  
  puVar1 = PTR___stack_chk_guard_000323a8;
  var_15 = *(type_1 **)PTR___stack_chk_guard_000323a8;
  if (var_1 == (void *)0x0) {
LAB_0001dfd0:
    var_17 = (*(type_7 *)PTR_abort_000322c0)();
    return var_17;
  }
  phVar11 = (type_6 *)(var_2 + -0x3320);
  var_23 = (type_6 *)var_1;
  var_4 = var_3(table,var_1,&bucket,false);
  if (var_4 == (void *)0x0) {
    var_5 = (double)(int)table->n_buckets_used;
    if ((int)table->n_buckets_used < 0) {
      var_5 = var_5 + *(double *)(var_2 + 0x1040);
    }
    var_6 = (double)(int)table->n_buckets;
    if ((int)table->n_buckets < 0) {
      var_6 = var_6 + *(double *)(var_2 + 0x1040);
    }
    if ((float)var_6 * table->tuning->growth_threshold < (float)var_5) {
      var_7((type_1 *)&table->tuning);
      pHVar7 = table->tuning;
      var_5 = (double)(int)table->n_buckets;
      if ((int)table->n_buckets < 0) {
        var_5 = var_5 + *(double *)(var_2 + 0x1040);
      }
      var_6 = (double)(int)table->n_buckets_used;
      if ((int)table->n_buckets_used < 0) {
        var_6 = var_6 + *(double *)(var_2 + 0x1040);
      }
      if (pHVar7->growth_threshold * (float)var_5 < (float)var_6) {
        var_8 = (float)var_5 * pHVar7->growth_factor;
        if (pHVar7->is_n_buckets == false) {
          var_8 = var_8 * pHVar7->growth_threshold;
        }
        if (var_8 < *(float *)(var_2 + 0x1038)) {
          if (var_8 < *(float *)(var_2 + 0x103c)) {
            var_23 = (type_6 *)(int)var_8;
          }
          else {
            var_23 = (type_6 *)
                      ((int)(var_8 - *(float *)(var_2 +
                                                0x103c)) | 0x80000000);
          }
          _Var5 = var_9(table,(size_t)var_23);
          if (var_10(extraout_var,_Var5) != 0) {
            var_23 = (type_6 *)var_1;
            var_4 = var_3(table,var_1,&bucket,false);
            if (var_4 != (void *)0x0) goto LAB_0001dfd0;
            goto LAB_0001de58;
          }
        }
        var_17 = -1;
        goto LAB_0001ddd0;
      }
    }
LAB_0001de58:
    var_17 = 1;
    phVar11 = bucket;
    if (bucket->data == (void *)0x0) {
      var_11 = table->n_entries;
      var_12 = table->n_buckets_used;
      bucket->data = var_1;
      table->n_entries = var_11 + 1;
      table->n_buckets_used = var_12 + 1;
    }
    else {
      var_13 = table->free_entry_list;
      if (var_13 == (type_6 *)0x0) {
        var_13 = (type_6 *)(*(type_7 *)PTR_malloc_00032358)(8);
        if (var_13 == (type_6 *)0x0) {
          var_17 = -1;
          goto LAB_0001ddd0;
        }
      }
      else {
        table->free_entry_list = var_13->next;
      }
      var_12 = table->n_entries;
      var_17 = 1;
      var_23 = bucket->next;
      var_13->data = var_1;
      var_13->next = var_23;
      bucket->next = var_13;
      table->n_entries = var_12 + 1;
    }
  }
  else if (var_14 == (void **)0x0) {
    var_17 = 0;
  }
  else {
    *var_14 = var_4;
    var_17 = 0;
  }
LAB_0001ddd0:
  if (var_15 == *(type_1 **)puVar1) {
    return var_17;
  }
  var_20 = hash_insert;
  pHVar9 = var_15;
  var_16 = PTR___stack_chk_fail_00032394;
  (*(type_7 *)PTR___stack_chk_fail_00032394)();
  var_19 = var_16 + 0x1c0e4;
  piVar12 = *(int **)(var_16 + 0x143ac);
  var_18 = (type_1 *)*piVar12;
  var_13 = var_23;
  pHStack_4c = table;
  phStack_48 = phVar11;
  pcStack_44 = var_20;
  var_17 = function_1(pHVar9,var_23,&phStack_58);
  if (var_17 == -1) {
    phStack_58 = (type_6 *)0x0;
  }
  else if (var_17 != 0) {
    phStack_58 = var_23;
  }
  if (var_18 == (type_1 *)*piVar12) {
    return (int)phStack_58;
  }
  var_20 = *(type_7 **)(var_19 + -0x7d4c);
  pcVar16 = hash_delete;
  pHVar9 = var_18;
  (*var_20)();
  piVar13 = *(int **)(var_20 + 0x14320);
  puStack_7c = puVar1;
  var_24 = (type_8 *)*piVar13;
  phStack_84 = var_23;
  piStack_80 = piVar12;
  pvStack_78 = var_1;
  pcStack_74 = pcVar16;
  var_4 = var_3(pHVar9,var_13,&phStack_90,true);
  if ((var_4 == (void *)0x0) ||
     (var_21 = phStack_90->data, pHVar9->n_entries = pHVar9->n_entries - 1, var_21 != (void *)0x0))
  goto LAB_0001e0fc;
  var_12 = pHVar9->n_buckets_used - 1;
  pHVar9->n_buckets_used = var_12;
  if ((int)var_12 < 0) {
    pHVar7 = pHVar9->tuning;
    var_8 = (float)((double)(int)var_12 + *(double *)(*(int *)(var_20 + 0x14090) + 0x1040));
    var_5 = (double)(int)pHVar9->n_buckets;
    if ((int)pHVar9->n_buckets < 0) {
      var_17 = *(int *)(var_20 + 0x14090);
      goto LAB_0001e254;
    }
LAB_0001e158:
    if ((float)var_5 * pHVar7->shrink_threshold <= var_8) goto LAB_0001e0fc;
  }
  else {
    var_8 = (float)(int)var_12;
    pHVar7 = pHVar9->tuning;
    var_5 = (double)(int)pHVar9->n_buckets;
    if (-1 < (int)pHVar9->n_buckets) goto LAB_0001e158;
    var_17 = *(int *)(var_20 + 0x14090);
LAB_0001e254:
    if ((float)(var_5 + *(double *)(var_17 + 0x1040)) * pHVar7->shrink_threshold <= var_8)
    goto LAB_0001e0fc;
  }
  var_7((type_1 *)&pHVar9->tuning);
  pHVar7 = pHVar9->tuning;
  var_5 = (double)(int)pHVar9->n_buckets;
  if ((int)pHVar9->n_buckets < 0) {
    var_5 = var_5 + *(double *)(*(int *)(var_20 + 0x14090) + 0x1040);
  }
  var_6 = (double)(int)pHVar9->n_buckets_used;
  if ((int)pHVar9->n_buckets_used < 0) {
    var_6 = var_6 + *(double *)(*(int *)(var_20 + 0x14090) + 0x1040);
  }
  if ((float)var_5 * pHVar7->shrink_threshold <= (float)var_6) goto LAB_0001e0fc;
  var_8 = (float)var_5 * pHVar7->shrink_factor;
  if (pHVar7->is_n_buckets == false) {
    var_22 = *(float *)(*(int *)(var_20 + 0x14090) + 0x103c);
    var_8 = var_8 * pHVar7->growth_threshold;
    if (var_22 <= var_8) goto LAB_0001e1fc;
LAB_0001e2c4:
    var_13 = (type_6 *)(int)var_8;
  }
  else {
    var_22 = *(float *)(*(int *)(var_20 + 0x14090) + 0x103c);
    if (var_8 < var_22) goto LAB_0001e2c4;
LAB_0001e1fc:
    var_13 = (type_6 *)((int)(var_8 - var_22) | 0x80000000);
  }
  _Var5 = var_9(pHVar9,(size_t)var_13);
  if (var_10(extraout_var_00,_Var5) == 0) {
    var_23 = pHVar9->free_entry_list;
    while (var_23 != (type_6 *)0x0) {
      var_23 = var_23->next;
      (**(type_7 **)(var_20 + 0x1432c))();
    }
    pHVar9->free_entry_list = (type_6 *)0x0;
  }
LAB_0001e0fc:
  if (var_24 == (type_8 *)*piVar13) {
    return (int)var_4;
  }
  (**(type_7 **)(var_20 + 0x1430c))();
  var_24[5] = 0;
  var_24[6] = 0;
  *(type_9 *)(var_24 + 7) = 1;
  *var_24 = var_13;
  var_24[1] = var_13;
  var_24[2] = var_13;
  var_24[3] = var_13;
  var_24[4] = var_13;
  return 1;
}


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

uint MASKED(int param_1,uint param_2,int *param_3)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  float *pfVar6;
  int *piVar7;
  undefined4 *puVar8;
  undefined *puVar9;
  code *pcVar10;
  double dVar11;
  float fVar13;
  double dVar12;
  float fVar14;
  int *piStack_90;
  uint uStack_58;
  uint *local_28;
  int local_24;
  
  puVar9 = PTR___stack_chk_guard_000323a8;
  local_24 = *(int *)PTR___stack_chk_guard_000323a8;
  if (param_2 == 0) {
LAB_0001dfd0:
    uVar5 = (*(code *)PTR_abort_000322c0)();
    return uVar5;
  }
  uVar5 = param_2;
  iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);
  if (iVar1 == 0) {
    dVar11 = (double)*(int *)(param_1 + 0xc);
    if (*(int *)(param_1 + 0xc) < 0) {
      dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
    }
    dVar12 = (double)*(int *)(param_1 + 8);
    if (*(int *)(param_1 + 8) < 0) {
      dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
    }
    if ((float)dVar12 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar11) {
      FUN_0001ce28(param_1 + 0x14);
      iVar1 = *(int *)(param_1 + 0x14);
      dVar11 = (double)*(int *)(param_1 + 8);
      if (*(int *)(param_1 + 8) < 0) {
        dVar11 = dVar11 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
      }
      dVar12 = (double)*(int *)(param_1 + 0xc);
      if (*(int *)(param_1 + 0xc) < 0) {
        dVar12 = dVar12 + *(double *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1040);
      }
      if (*(float *)(iVar1 + 8) * (float)dVar11 < (float)dVar12) {
        fVar13 = (float)dVar11 * *(float *)(iVar1 + 0xc);
        if (*(char *)(iVar1 + 0x10) == '\0') {
          fVar13 = fVar13 * *(float *)(iVar1 + 8);
        }
        if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x1038)) {
          if (fVar13 < *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 + 0x103c)) {
            uVar5 = (uint)fVar13;
          }
          else {
            uVar5 = (int)(fVar13 - *(float *)(PTR_s_means_that_you_have_a_corrupted_f_00032118 +
                                             0x103c)) | 0x80000000;
          }
          iVar1 = hash_rehash(param_1);
          if (iVar1 != 0) {
            uVar5 = param_2;
            iVar1 = FUN_0001cce0(param_1,param_2,&local_28,0);
            if (iVar1 != 0) goto LAB_0001dfd0;
            goto LAB_0001de58;
          }
        }
        uVar2 = 0xffffffff;
        goto LAB_0001ddd0;
      }
    }
LAB_0001de58:
    uVar2 = 1;
    if (*local_28 == 0) {
      iVar3 = *(int *)(param_1 + 0x10);
      iVar1 = *(int *)(param_1 + 0xc);
      *local_28 = param_2;
      *(int *)(param_1 + 0x10) = iVar3 + 1;
      *(int *)(param_1 + 0xc) = iVar1 + 1;
    }
    else {
      puVar4 = *(uint **)(param_1 + 0x24);
      if (puVar4 == (uint *)0x0) {
        puVar4 = (uint *)(*(code *)PTR_malloc_00032358)(8);
        if (puVar4 == (uint *)0x0) {
          uVar2 = 0xffffffff;
          goto LAB_0001ddd0;
        }
      }
      else {
        *(uint *)(param_1 + 0x24) = puVar4[1];
      }
      iVar1 = *(int *)(param_1 + 0x10);
      uVar2 = 1;
      uVar5 = local_28[1];
      *puVar4 = param_2;
      puVar4[1] = uVar5;
      local_28[1] = (uint)puVar4;
      *(int *)(param_1 + 0x10) = iVar1 + 1;
    }
  }
  else if (param_3 == (int *)0x0) {
    uVar2 = 0;
  }
  else {
    *param_3 = iVar1;
    uVar2 = 0;
  }
LAB_0001ddd0:
  if (local_24 == *(int *)puVar9) {
    return uVar2;
  }
  puVar9 = PTR___stack_chk_fail_00032394;
  (*(code *)PTR___stack_chk_fail_00032394)();
  piVar7 = *(int **)(puVar9 + 0x143ac);
  iVar1 = *piVar7;
  uVar2 = uVar5;
  iVar3 = MASKED();
  if (iVar3 == -1) {
    uStack_58 = 0;
  }
  else if (iVar3 != 0) {
    uStack_58 = uVar5;
  }
  if (iVar1 == *piVar7) {
    return uStack_58;
  }
  pcVar10 = *(code **)(puVar9 + 0x14398);
  (*pcVar10)();
  puVar8 = *(undefined4 **)(pcVar10 + 0x14320);
  puVar4 = (uint *)*puVar8;
  uVar5 = FUN_0001cce0();
  if ((uVar5 == 0) ||
     (iVar3 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar3 != 0))
  goto LAB_0001e0fc;
  iVar3 = *(int *)(iVar1 + 0xc) + -1;
  *(int *)(iVar1 + 0xc) = iVar3;
  if (iVar3 < 0) {
    pfVar6 = *(float **)(iVar1 + 0x14);
    fVar13 = (float)((double)iVar3 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040));
    dVar11 = (double)*(int *)(iVar1 + 8);
    if (*(int *)(iVar1 + 8) < 0) {
      iVar3 = *(int *)(pcVar10 + 0x14090);
      goto LAB_0001e254;
    }
LAB_0001e158:
    if ((float)dVar11 * *pfVar6 <= fVar13) goto LAB_0001e0fc;
  }
  else {
    fVar13 = (float)iVar3;
    pfVar6 = *(float **)(iVar1 + 0x14);
    dVar11 = (double)*(int *)(iVar1 + 8);
    if (-1 < *(int *)(iVar1 + 8)) goto LAB_0001e158;
    iVar3 = *(int *)(pcVar10 + 0x14090);
LAB_0001e254:
    if ((float)(dVar11 + *(double *)(iVar3 + 0x1040)) * *pfVar6 <= fVar13) goto LAB_0001e0fc;
  }
  FUN_0001ce28(iVar1 + 0x14);
  pfVar6 = *(float **)(iVar1 + 0x14);
  dVar11 = (double)*(int *)(iVar1 + 8);
  if (*(int *)(iVar1 + 8) < 0) {
    dVar11 = dVar11 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);
  }
  dVar12 = (double)*(int *)(iVar1 + 0xc);
  if (*(int *)(iVar1 + 0xc) < 0) {
    dVar12 = dVar12 + *(double *)(*(int *)(pcVar10 + 0x14090) + 0x1040);
  }
  if ((float)dVar11 * *pfVar6 <= (float)dVar12) goto LAB_0001e0fc;
  fVar13 = (float)dVar11 * pfVar6[1];
  if (*(char *)(pfVar6 + 4) == '\0') {
    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);
    fVar13 = fVar13 * pfVar6[2];
    if (fVar14 <= fVar13) goto LAB_0001e1fc;
LAB_0001e2c4:
    uVar2 = (uint)fVar13;
  }
  else {
    fVar14 = *(float *)(*(int *)(pcVar10 + 0x14090) + 0x103c);
    if (fVar13 < fVar14) goto LAB_0001e2c4;
LAB_0001e1fc:
    uVar2 = (int)(fVar13 - fVar14) | 0x80000000;
  }
  iVar3 = hash_rehash(iVar1);
  if (iVar3 == 0) {
    iVar3 = *(int *)(iVar1 + 0x24);
    while (iVar3 != 0) {
      iVar3 = *(int *)(iVar3 + 4);
      (**(code **)(pcVar10 + 0x1432c))();
    }
    *(undefined4 *)(iVar1 + 0x24) = 0;
  }
LAB_0001e0fc:
  if (puVar4 == (uint *)*puVar8) {
    return uVar5;
  }
  (**(code **)(pcVar10 + 0x1430c))();
  puVar4[5] = 0;
  puVar4[6] = 0;
  *(undefined1 *)(puVar4 + 7) = 1;
  *puVar4 = uVar2;
  puVar4[1] = uVar2;
  puVar4[2] = uVar2;
  puVar4[3] = uVar2;
  puVar4[4] = uVar2;
  return 1;
}

