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

{
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  void *pvVar1;
  int iVar2;
  void *pvVar3;
  void *pvVar4;
  size_t sVar5;
  Hash_tuning *pHVar6;
  _Bool _Var7;
  Hash_table *pHVar8;
  hash_entry *phVar9;
  undefined *puVar10;
  code *pcVar11;
  code *pcVar12;
  double dVar13;
  double dVar14;
  float fVar15;
  hash_entry *phStack_70;
  undefined4 *puStack_6c;
  void *pvStack_68;
  void *pvStack_64;
  void **ppvStack_60;
  code *pcStack_5c;
  undefined *puStack_48;
  void *pvStack_40;
  Hash_table *pHStack_3c;
  Hash_table *pHStack_38;
  code *pcStack_34;
  hash_entry *bucket;
  Hash_table *local_14;
  
  local_14 = *(Hash_table **)PTR___stack_chk_guard_00031358;
  if (entry == (void *)0x0) {
    iVar2 = (*(code *)PTR_abort_00031288)();
    return iVar2;
  }
  pvVar4 = entry;
  pvVar1 = hash_find_entry(table,entry,&bucket,false);
  if (pvVar1 != (void *)0x0) {
    if (matched_ent == (void **)0x0) {
      iVar2 = 0;
    }
    else {
      *matched_ent = pvVar1;
      iVar2 = 0;
    }
    goto LAB_0001d288;
  }
  dVar13 = (double)(int)table->n_buckets_used;
  if ((int)table->n_buckets_used < 0) {
    dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);
  }
  dVar14 = (double)(int)table->n_buckets;
  if ((int)table->n_buckets < 0) {
    dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260);
  }
  if ((float)dVar14 * table->tuning->growth_threshold < (float)dVar13) {
    check_tuning(table);
    pHVar6 = table->tuning;
    dVar13 = (double)(int)table->n_buckets;
    if ((int)table->n_buckets < 0) {
      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);
    }
    fVar15 = (float)dVar13;
    dVar13 = (double)(int)table->n_buckets_used;
    if ((int)table->n_buckets_used < 0) {
      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);
    }
    if (pHVar6->growth_threshold * fVar15 < (float)dVar13) {
      if (pHVar6->is_n_buckets == false) {
        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;
      }
      else {
        fVar15 = fVar15 * pHVar6->growth_factor;
      }
      iVar2 = -1;
      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;
      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {
        pvVar4 = (void *)(int)fVar15;
      }
      else {
        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);
      }
      _Var7 = hash_rehash(table,(size_t)pvVar4);
      iVar2 = -1;
      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;
      pvVar4 = entry;
      pvVar1 = hash_find_entry(table,entry,&bucket,false);
      if (pvVar1 != (void *)0x0) {
        iVar2 = (*(code *)PTR_abort_00031288)();
        return iVar2;
      }
    }
  }
  if (bucket->data == (void *)0x0) {
    bucket->data = entry;
    table->n_entries = table->n_entries + 1;
    table->n_buckets_used = table->n_buckets_used + 1;
    iVar2 = 1;
  }
  else {
    phVar9 = table->free_entry_list;
    if (phVar9 == (hash_entry *)0x0) {
      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);
      iVar2 = -1;
      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;
      phVar9->data = entry;
    }
    else {
      table->free_entry_list = phVar9->next;
      phVar9->data = entry;
    }
    phVar9->next = bucket->next;
    bucket->next = phVar9;
    table->n_entries = table->n_entries + 1;
    iVar2 = 1;
  }
LAB_0001d288:
  if (local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358) {
    return iVar2;
  }
  pcVar11 = hash_insert;
  pHVar8 = local_14;
  puVar10 = PTR___stack_chk_fail_00031348;
  (*(code *)PTR___stack_chk_fail_00031348)();
  puStack_48 = puVar10 + 0x1bbd0;
  pHStack_3c = (Hash_table *)**(undefined4 **)(puVar10 + 0x13e58);
  pvVar1 = pvVar4;
  pHStack_38 = table;
  pcStack_34 = pcVar11;
  iVar2 = hash_insert_if_absent(pHVar8,pvVar4,&pvStack_40);
  if (iVar2 == -1) {
    pvVar3 = (void *)0x0;
  }
  else {
    pvVar3 = pvVar4;
    if (iVar2 == 0) {
      pvVar3 = pvStack_40;
    }
  }
  if (pHStack_3c != (Hash_table *)**(int **)(puStack_48 + -0x7d78)) {
    pcVar11 = *(code **)(puStack_48 + -0x7d88);
    pcVar12 = hash_delete;
    pHVar8 = pHStack_3c;
    (*pcVar11)();
    puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc);
    pvStack_68 = pvVar4;
    pvStack_64 = entry;
    ppvStack_60 = matched_ent;
    pcStack_5c = pcVar12;
    pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true);
    if ((pvVar4 != (void *)0x0) &&
       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)) {
      sVar5 = pHVar8->n_buckets_used - 1;
      pHVar8->n_buckets_used = sVar5;
      dVar13 = (double)(int)sVar5;
      if ((int)sVar5 < 0) {
        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);
      }
      dVar14 = (double)(int)pHVar8->n_buckets;
      if ((int)pHVar8->n_buckets < 0) {
        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);
      }
      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {
        check_tuning(pHVar8);
        pHVar6 = pHVar8->tuning;
        dVar13 = (double)(int)pHVar8->n_buckets;
        if ((int)pHVar8->n_buckets < 0) {
          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);
        }
        fVar15 = (float)dVar13;
        dVar13 = (double)(int)pHVar8->n_buckets_used;
        if ((int)pHVar8->n_buckets_used < 0) {
          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);
        }
        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {
          if (pHVar6->is_n_buckets == false) {
            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;
            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {
              pvVar1 = (void *)(int)fVar15;
            }
            else {
              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |
                               0x80000000);
            }
          }
          else {
            fVar15 = fVar15 * pHVar6->shrink_factor;
            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {
              pvVar1 = (void *)(int)fVar15;
            }
            else {
              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |
                               0x80000000);
            }
          }
          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);
          if (CONCAT31(extraout_var_00,_Var7) == 0) {
            phVar9 = pHVar8->free_entry_list;
            while (phVar9 != (hash_entry *)0x0) {
              phVar9 = phVar9->next;
              (**(code **)(pcVar11 + 0x13dd4))();
            }
            pHVar8->free_entry_list = (hash_entry *)0x0;
          }
        }
      }
    }
    if (puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)) {
      return (int)pvVar4;
    }
    (**(code **)(pcVar11 + 0x13dbc))();
    *(undefined1 *)(puStack_6c + 7) = 1;
    puStack_6c[5] = 0;
    puStack_6c[6] = 0;
    *puStack_6c = pvVar1;
    puStack_6c[1] = pvVar1;
    puStack_6c[2] = pvVar1;
    puStack_6c[3] = pvVar1;
    puStack_6c[4] = pvVar1;
    return 1;
  }
  return (int)pvVar3;
}



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;
  undefined *puVar7;
  code *pcVar8;
  double dVar9;
  double dVar10;
  float fVar11;
  int *piStack_70;
  uint uStack_40;
  uint *local_18;
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_00031358;
  if (param_2 == 0) {
    uVar5 = (*(code *)PTR_abort_00031288)();
    return uVar5;
  }
  uVar5 = param_2;
  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);
  if (iVar1 != 0) {
    if (param_3 == (int *)0x0) {
      uVar2 = 0;
    }
    else {
      *param_3 = iVar1;
      uVar2 = 0;
    }
    goto LAB_0001d288;
  }
  dVar9 = (double)*(int *)(param_1 + 0xc);
  if (*(int *)(param_1 + 0xc) < 0) {
    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);
  }
  dVar10 = (double)*(int *)(param_1 + 8);
  if (*(int *)(param_1 + 8) < 0) {
    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);
  }
  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {
    FUN_0001c0b0(param_1);
    iVar1 = *(int *)(param_1 + 0x14);
    dVar9 = (double)*(int *)(param_1 + 8);
    if (*(int *)(param_1 + 8) < 0) {
      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);
    }
    fVar11 = (float)dVar9;
    dVar9 = (double)*(int *)(param_1 + 0xc);
    if (*(int *)(param_1 + 0xc) < 0) {
      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);
    }
    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {
      if (*(char *)(iVar1 + 0x10) == '\0') {
        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);
      }
      else {
        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);
      }
      uVar2 = 0xffffffff;
      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;
      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {
        uVar5 = (uint)fVar11;
      }
      else {
        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;
      }
      iVar1 = hash_rehash(param_1);
      uVar2 = 0xffffffff;
      if (iVar1 == 0) goto LAB_0001d288;
      uVar5 = param_2;
      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);
      if (iVar1 != 0) {
        uVar5 = (*(code *)PTR_abort_00031288)();
        return uVar5;
      }
    }
  }
  if (*local_18 == 0) {
    *local_18 = param_2;
    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;
    uVar2 = 1;
  }
  else {
    puVar4 = *(uint **)(param_1 + 0x24);
    if (puVar4 == (uint *)0x0) {
      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);
      uVar2 = 0xffffffff;
      if (puVar4 == (uint *)0x0) goto LAB_0001d288;
      *puVar4 = param_2;
    }
    else {
      *(uint *)(param_1 + 0x24) = puVar4[1];
      *puVar4 = param_2;
    }
    puVar4[1] = local_18[1];
    local_18[1] = (uint)puVar4;
    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
    uVar2 = 1;
  }
LAB_0001d288:
  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {
    return uVar2;
  }
  puVar7 = PTR___stack_chk_fail_00031348;
  (*(code *)PTR___stack_chk_fail_00031348)();
  iVar1 = **(int **)(puVar7 + 0x13e58);
  uVar2 = uVar5;
  iVar3 = hash_insert_if_absent();
  if (iVar3 == -1) {
    uVar5 = 0;
  }
  else if (iVar3 == 0) {
    uVar5 = uStack_40;
  }
  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {
    pcVar8 = *(code **)(puVar7 + 0x13e48);
    (*pcVar8)();
    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);
    uVar5 = FUN_0001c504();
    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {
      iVar3 = *(int *)(iVar1 + 0xc) + -1;
      *(int *)(iVar1 + 0xc) = iVar3;
      dVar9 = (double)iVar3;
      if (iVar3 < 0) {
        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
      }
      dVar10 = (double)*(int *)(iVar1 + 8);
      if (*(int *)(iVar1 + 8) < 0) {
        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
      }
      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {
        FUN_0001c0b0(iVar1);
        pfVar6 = *(float **)(iVar1 + 0x14);
        dVar9 = (double)*(int *)(iVar1 + 8);
        if (*(int *)(iVar1 + 8) < 0) {
          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
        }
        fVar11 = (float)dVar9;
        dVar9 = (double)*(int *)(iVar1 + 0xc);
        if (*(int *)(iVar1 + 0xc) < 0) {
          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
        }
        if ((float)dVar9 < fVar11 * *pfVar6) {
          if (*(char *)(pfVar6 + 4) == '\0') {
            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];
            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {
              uVar2 = (uint)fVar11;
            }
            else {
              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;
            }
          }
          else {
            fVar11 = fVar11 * pfVar6[1];
            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {
              uVar2 = (uint)fVar11;
            }
            else {
              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;
            }
          }
          iVar3 = hash_rehash(iVar1);
          if (iVar3 == 0) {
            iVar3 = *(int *)(iVar1 + 0x24);
            while (iVar3 != 0) {
              iVar3 = *(int *)(iVar3 + 4);
              (**(code **)(pcVar8 + 0x13dd4))();
            }
            *(undefined4 *)(iVar1 + 0x24) = 0;
          }
        }
      }
    }
    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {
      return uVar5;
    }
    (**(code **)(pcVar8 + 0x13dbc))();
    *(undefined1 *)(puVar4 + 7) = 1;
    puVar4[5] = 0;
    puVar4[6] = 0;
    *puVar4 = uVar2;
    puVar4[1] = uVar2;
    puVar4[2] = uVar2;
    puVar4[3] = uVar2;
    puVar4[4] = uVar2;
    return 1;
  }
  return uVar5;
}


lui gp,0x2
addiu gp,gp,-0x4144
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw gp,0x10(sp)
lw v0,-0x7d78(gp)
lw v0,0x0(v0)
sw v0,0x1c(sp)
beq a1,zero,0x0001d2b0
_or s0,a0,zero
or s1,a1,zero
or s2,a2,zero
or a3,zero,zero
addiu a2,sp,0x18
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x3afc
bal 0x0001c504
_nop
lw gp,0x10(sp)
beq v0,zero,0x0001d2bc
_nop
beq s2,zero,0x0001d4ec
_nop
sw v0,0x0(s2)
or v0,zero,zero
lw a0,0x1c(sp)
lw v1,-0x7d78(gp)
lw v1,0x0(v1)
bne a0,v1,0x0001d4f4
_lw ra,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x30
lw t9,-0x7e48(gp)
jalr t9
_nop
lw v0,0xc(s0)
mtc1 v0,f0
bltz v0,0x0001d348
_cvt.d.W f0,f0
cvt.s.D f2,f0
lw v1,0x14(s0)
lw v0,0x8(s0)
mtc1 v0,f0
bltz v0,0x0001d358
_cvt.d.W f0,f0
cvt.s.D f0,f0
lwc1 f4,0x8(v1)
mul.S f0,f0,f4
c.lt.S f0,f2
bc1t 0x0001d368
_or a0,s0,zero
lw v0,0x18(sp)
lw v1,0x0(v0)
beq v1,zero,0x0001d4c8
_nop
lw v1,0x24(s0)
beq v1,zero,0x0001d4a4
_li a0,0x8
lw v0,0x4(v1)
sw v0,0x24(s0)
sw s1,0x0(v1)
lw v0,0x18(sp)
lw a0,0x4(v0)
sw a0,0x4(v1)
sw v1,0x4(v0)
lw v0,0x10(s0)
addiu v0,v0,0x1
sw v0,0x10(s0)
b 0x0001d288
_li v0,0x1
lw v0,-0x7fc8(gp)
ldc1 f2,0x260(v0)
b 0x0001d2cc
_add.D f0,f0,f2
lw v0,-0x7fc8(gp)
ldc1 f4,0x260(v0)
b 0x0001d2e4
_add.D f0,f0,f4
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x3f50
bal 0x0001c0b0
_nop
lw gp,0x10(sp)
lw v1,0x14(s0)
lwc1 f4,0x8(v1)
lw v0,0x8(s0)
mtc1 v0,f0
bltz v0,0x0001d3ec
_cvt.d.W f0,f0
cvt.s.D f0,f0
lw v0,0xc(s0)
mtc1 v0,f2
bltz v0,0x0001d3fc
_cvt.d.W f2,f2
cvt.s.D f2,f2
mul.S f6,f4,f0
c.lt.S f6,f2
bc1f 0x1,0x0001d300
_lw v0,0x18(sp)
lbu v0,0x10(v1)
beq v0,zero,0x0001d40c
_nop
lwc1 f2,0xc(v1)
mul.S f0,f0,f2
lw v0,-0x7fc8(gp)
lwc1 f2,0x250(v0)
c.le.S f2,f0
bc1f 0x2,0x0001d41c
_li v0,-0x1
b 0x0001d288
_nop
lw v0,-0x7fc8(gp)
ldc1 f2,0x260(v0)
b 0x0001d394
_add.D f0,f0,f2
lw v0,-0x7fc8(gp)
ldc1 f6,0x260(v0)
b 0x0001d3a8
_add.D f2,f2,f6
lwc1 f2,0xc(v1)
mul.S f0,f0,f2
b 0x0001d3d0
_mul.S f0,f0,f4
lw v0,-0x7fc8(gp)
lwc1 f2,0x254(v0)
c.le.S f2,f0
bc1t 0x3,0x0001d45c
_lui v0,0x8000
trunc.w.S f0,f0
mfc1 a1,f0
or a0,s0,zero
lw t9,-0x7e90(gp)
bal 0x0001d028
_nop
lw gp,0x10(sp)
bne v0,zero,0x0001d470
_li v0,-0x1
b 0x0001d288
_nop
sub.S S f0,f0,f2
trunc.w.S f0,f0
mfc1 a1,f0
b 0x0001d438
_or a1,a1,v0
or a3,zero,zero
addiu a2,sp,0x18
or a1,s1,zero
or a0,s0,zero
lw t9,-0x7fc8(gp)
addiu t9,t9,-0x3afc
bal 0x0001c504
_nop
lw gp,0x10(sp)
beq v0,zero,0x0001d2fc
_lw t9,-0x7e48(gp)
jalr t9
_nop
lw t9,-0x7dbc(gp)
jalr t9
_nop
lw gp,0x10(sp)
or v1,v0,zero
beq v1,zero,0x0001d288
_li v0,-0x1
b 0x0001d324
_sw s1,0x0(v1)
sw s1,0x0(v0)
lw v0,0x10(s0)
addiu v0,v0,0x1
sw v0,0x10(s0)
lw v0,0xc(s0)
addiu v0,v0,0x1
sw v0,0xc(s0)
b 0x0001d288
_li v0,0x1
b 0x0001d288
_or v0,zero,zero
lw t9,-0x7d88(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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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 "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "double dVar9;" primitive_type identifier ;) (declaration "double dVar10;" primitive_type identifier ;) (declaration "float fVar11;" primitive_type identifier ;) (declaration "int *piStack_70;" primitive_type (pointer_declarator "*piStack_70" * identifier) ;) (declaration "uint uStack_40;" type_identifier identifier ;) (declaration "uint *local_18;" type_identifier (pointer_declarator "*local_18" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00031358;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00031358" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00031358" * (cast_expression "(int *)PTR___stack_chk_guard_00031358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }" { (expression_statement "uVar5 = (*(code *)PTR_abort_00031288)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_00031288)()" identifier = (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" ( (pointer_expression "*(code *)PTR_abort_00031288" * (cast_expression "(code *)PTR_abort_00031288" ( (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_0001c504(param_1,param_2,&local_18,0);" (assignment_expression "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0)" identifier = (call_expression "FUN_0001c504(param_1,param_2,&local_18,0)" identifier (argument_list "(param_1,param_2,&local_18,0)" ( identifier , identifier , (pointer_expression "&local_18" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" { (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) ;) }))) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;) })) (expression_statement "dVar9 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar9 = (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    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" { (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (expression_statement "dVar10 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar10 = (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    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" { (expression_statement "dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar10 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }" if (parenthesized_expression "((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9)" ( (binary_expression "(float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9" (binary_expression "(float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar10" ( (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)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }" { (expression_statement "FUN_0001c0b0(param_1);" (call_expression "FUN_0001c0b0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (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 "dVar9 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar9 = (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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" { (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (expression_statement "fVar11 = (float)dVar9;" (assignment_expression "fVar11 = (float)dVar9" identifier = (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar9 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar9 = (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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" { (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (if_statement "if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }" if (parenthesized_expression "(*(float *)(iVar1 + 8) * fVar11 < (float)dVar9)" ( (binary_expression "*(float *)(iVar1 + 8) * fVar11 < (float)dVar9" (binary_expression "*(float *)(iVar1 + 8) * fVar11" (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) )))) * identifier) < (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }" { (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\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        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }" { (expression_statement "fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);" (assignment_expression "fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8)" identifier = (binary_expression "fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8)" (binary_expression "fVar11 * *(float *)(iVar1 + 0xc)" 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) ))))) * (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) )))))) ;) }) (else_clause "else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }" else (compound_statement "{\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }" { (expression_statement "fVar11 = fVar11 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar11 = fVar11 * *(float *)(iVar1 + 0xc)" identifier = (binary_expression "fVar11 * *(float *)(iVar1 + 0xc)" 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) )))))) ;) }))) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;" if (parenthesized_expression "(*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11)" ( (binary_expression "*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11" (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x250)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x250)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x250)" ( (binary_expression "PTR_UINT_00031108 + 0x250" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (if_statement "if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" if (parenthesized_expression "(fVar11 < *(float *)(PTR_UINT_00031108 + 0x254))" ( (binary_expression "fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)" identifier < (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" ( (binary_expression "PTR_UINT_00031108 + 0x254" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar5 = (uint)fVar11;\n      }" { (expression_statement "uVar5 = (uint)fVar11;" (assignment_expression "uVar5 = (uint)fVar11" identifier = (cast_expression "(uint)fVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" { (expression_statement "uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;" (assignment_expression "uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000" identifier = (binary_expression "(int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254))" ( (binary_expression "fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)" identifier - (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" ( (binary_expression "PTR_UINT_00031108 + 0x254" 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 )))) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) goto LAB_0001d288;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);" (assignment_expression "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0)" identifier = (call_expression "FUN_0001c504(param_1,param_2,&local_18,0)" identifier (argument_list "(param_1,param_2,&local_18,0)" ( identifier , identifier , (pointer_expression "&local_18" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }" { (expression_statement "uVar5 = (*(code *)PTR_abort_00031288)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_00031288)()" identifier = (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" ( (pointer_expression "*(code *)PTR_abort_00031288" * (cast_expression "(code *)PTR_abort_00031288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar5;" return identifier ;) })) })) })) (if_statement "if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }" if (parenthesized_expression "(*local_18 == 0)" ( (binary_expression "*local_18 == 0" (pointer_expression "*local_18" * identifier) == number_literal) )) (compound_statement "{\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }" { (expression_statement "*local_18 = param_2;" (assignment_expression "*local_18 = param_2" (pointer_expression "*local_18" * identifier) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 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 "*(int *)(param_1 + 0x10) + 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) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 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 "*(int *)(param_1 + 0xc) + 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) )))) + number_literal)) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }" else (compound_statement "{\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 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_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\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_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }" { (expression_statement "puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00031314)(8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00031314)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00031314)" ( (pointer_expression "*(code *)PTR_malloc_00031314" * (cast_expression "(code *)PTR_malloc_00031314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_0001d288;" 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)) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (expression_statement "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }) (else_clause "else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }" else (compound_statement "{\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\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 "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }))) (expression_statement "puVar4[1] = local_18[1];" (assignment_expression "puVar4[1] = local_18[1]" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (subscript_expression "local_18[1]" identifier [ number_literal ])) ;) (expression_statement "local_18[1] = (uint)puVar4;" (assignment_expression "local_18[1] = (uint)puVar4" (subscript_expression "local_18[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 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 "*(int *)(param_1 + 0x10) + 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) )))) + number_literal)) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00031358)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00031358" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00031358" * (cast_expression "(int *)PTR___stack_chk_guard_00031358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "puVar7 = PTR___stack_chk_fail_00031348;" (assignment_expression "puVar7 = PTR___stack_chk_fail_00031348" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00031348)();" (call_expression "(*(code *)PTR___stack_chk_fail_00031348)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00031348)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00031348" * (cast_expression "(code *)PTR___stack_chk_fail_00031348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = **(int **)(puVar7 + 0x13e58);" (assignment_expression "iVar1 = **(int **)(puVar7 + 0x13e58)" identifier = (pointer_expression "**(int **)(puVar7 + 0x13e58)" * (pointer_expression "*(int **)(puVar7 + 0x13e58)" * (cast_expression "(int **)(puVar7 + 0x13e58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x13e58)" ( (binary_expression "puVar7 + 0x13e58" identifier + number_literal) )))))) ;) (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    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" else (if_statement "if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = uStack_40;\n  }" { (expression_statement "uVar5 = uStack_40;" (assignment_expression "uVar5 = uStack_40" identifier = identifier) ;) })))) (if_statement "if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }" if (parenthesized_expression "(iVar1 != **(int **)(puVar7 + 0x13e58))" ( (binary_expression "iVar1 != **(int **)(puVar7 + 0x13e58)" identifier != (pointer_expression "**(int **)(puVar7 + 0x13e58)" * (pointer_expression "*(int **)(puVar7 + 0x13e58)" * (cast_expression "(int **)(puVar7 + 0x13e58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x13e58)" ( (binary_expression "puVar7 + 0x13e58" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }" { (expression_statement "pcVar8 = *(code **)(puVar7 + 0x13e48);" (assignment_expression "pcVar8 = *(code **)(puVar7 + 0x13e48)" identifier = (pointer_expression "*(code **)(puVar7 + 0x13e48)" * (cast_expression "(code **)(puVar7 + 0x13e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x13e48)" ( (binary_expression "puVar7 + 0x13e48" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);" (assignment_expression "puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc)" identifier = (cast_expression "(uint *)**(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0x13dcc)" * (pointer_expression "*(int **)(pcVar8 + 0x13dcc)" * (cast_expression "(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dcc)" ( (binary_expression "pcVar8 + 0x13dcc" identifier + number_literal) ))))))) ;) (expression_statement "uVar5 = FUN_0001c504();" (assignment_expression "uVar5 = FUN_0001c504()" identifier = (call_expression "FUN_0001c504()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0))" ( (binary_expression "(uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)" ( (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 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 "*piStack_70 == 0" (pointer_expression "*piStack_70" * identifier) == number_literal)) ))) )) (compound_statement "{\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }" { (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) ;) (expression_statement "dVar9 = (double)iVar3;" (assignment_expression "dVar9 = (double)iVar3" identifier = (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" { (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar10 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar10 = (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        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" { (expression_statement "dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }" if (parenthesized_expression "((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14))" ( (binary_expression "(float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)" (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier) < (binary_expression "(float)dVar10 * **(float **)(iVar1 + 0x14)" (cast_expression "(float)dVar10" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "**(float **)(iVar1 + 0x14)" * (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) ))))))) )) (compound_statement "{\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }" { (expression_statement "FUN_0001c0b0(iVar1);" (call_expression "FUN_0001c0b0(iVar1)" identifier (argument_list "(iVar1)" ( 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 "dVar9 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar9 = (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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }" { (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "fVar11 = (float)dVar9;" (assignment_expression "fVar11 = (float)dVar9" identifier = (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar9 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar9 = (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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }" { (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }" if (parenthesized_expression "((float)dVar9 < fVar11 * *pfVar6)" ( (binary_expression "(float)dVar9 < fVar11 * *pfVar6" (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier) < (binary_expression "fVar11 * *pfVar6" identifier * (pointer_expression "*pfVar6" * identifier))) )) (compound_statement "{\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }" { (if_statement "if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" { (expression_statement "fVar11 = fVar11 * pfVar6[1] * pfVar6[2];" (assignment_expression "fVar11 = fVar11 * pfVar6[1] * pfVar6[2]" identifier = (binary_expression "fVar11 * pfVar6[1] * pfVar6[2]" (binary_expression "fVar11 * pfVar6[1]" identifier * (subscript_expression "pfVar6[1]" identifier [ number_literal ])) * (subscript_expression "pfVar6[2]" identifier [ number_literal ]))) ;) (if_statement "if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" if (parenthesized_expression "(fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier < (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n              uVar2 = (uint)fVar11;\n            }" { (expression_statement "uVar2 = (uint)fVar11;" (assignment_expression "uVar2 = (uint)fVar11" identifier = (cast_expression "(uint)fVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" else (compound_statement "{\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" { (expression_statement "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" identifier = (binary_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier - (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) ))) | number_literal)) ;) }))) }) (else_clause "else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" else (compound_statement "{\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" { (expression_statement "fVar11 = fVar11 * pfVar6[1];" (assignment_expression "fVar11 = fVar11 * pfVar6[1]" identifier = (binary_expression "fVar11 * pfVar6[1]" identifier * (subscript_expression "pfVar6[1]" identifier [ number_literal ]))) ;) (if_statement "if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" if (parenthesized_expression "(fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier < (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n              uVar2 = (uint)fVar11;\n            }" { (expression_statement "uVar2 = (uint)fVar11;" (assignment_expression "uVar2 = (uint)fVar11" identifier = (cast_expression "(uint)fVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" else (compound_statement "{\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" { (expression_statement "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" identifier = (binary_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier - (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) ))) | 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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();\n            }" while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = *(int *)(iVar3 + 4);\n              (**(code **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();" (call_expression "(**(code **)(pcVar8 + 0x13dd4))()" (parenthesized_expression "(**(code **)(pcVar8 + 0x13dd4))" ( (pointer_expression "**(code **)(pcVar8 + 0x13dd4)" * (pointer_expression "*(code **)(pcVar8 + 0x13dd4)" * (cast_expression "(code **)(pcVar8 + 0x13dd4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dd4)" ( (binary_expression "pcVar8 + 0x13dd4" 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) ;) })) })) })) })) (if_statement "if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }" if (parenthesized_expression "(puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc))" ( (binary_expression "puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)" identifier == (cast_expression "(uint *)**(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0x13dcc)" * (pointer_expression "*(int **)(pcVar8 + 0x13dcc)" * (cast_expression "(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dcc)" ( (binary_expression "pcVar8 + 0x13dcc" identifier + number_literal) ))))))) )) (compound_statement "{\n      return uVar5;\n    }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "(**(code **)(pcVar8 + 0x13dbc))();" (call_expression "(**(code **)(pcVar8 + 0x13dbc))()" (parenthesized_expression "(**(code **)(pcVar8 + 0x13dbc))" ( (pointer_expression "**(code **)(pcVar8 + 0x13dbc)" * (pointer_expression "*(code **)(pcVar8 + 0x13dbc)" * (cast_expression "(code **)(pcVar8 + 0x13dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dbc)" ( (binary_expression "pcVar8 + 0x13dbc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (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[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 "*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 ;) })) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "int hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar1;\n  int iVar2;\n  void *pvVar3;\n  void *pvVar4;\n  size_t sVar5;\n  Hash_tuning *pHVar6;\n  _Bool _Var7;\n  Hash_table *pHVar8;\n  hash_entry *phVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  double dVar13;\n  double dVar14;\n  float fVar15;\n  hash_entry *phStack_70;\n  undefined4 *puStack_6c;\n  void *pvStack_68;\n  void *pvStack_64;\n  void **ppvStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  void *pvStack_40;\n  Hash_table *pHStack_3c;\n  Hash_table *pHStack_38;\n  code *pcStack_34;\n  hash_entry *bucket;\n  Hash_table *local_14;\n  \n  local_14 = *(Hash_table **)PTR___stack_chk_guard_00031358;\n  if (entry == (void *)0x0) {\n    iVar2 = (*(code *)PTR_abort_00031288)();\n    return iVar2;\n  }\n  pvVar4 = entry;\n  pvVar1 = hash_find_entry(table,entry,&bucket,false);\n  if (pvVar1 != (void *)0x0) {\n    if (matched_ent == (void **)0x0) {\n      iVar2 = 0;\n    }\n    else {\n      *matched_ent = pvVar1;\n      iVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar13 = (double)(int)table->n_buckets_used;\n  if ((int)table->n_buckets_used < 0) {\n    dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar14 = (double)(int)table->n_buckets;\n  if ((int)table->n_buckets < 0) {\n    dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar14 * table->tuning->growth_threshold < (float)dVar13) {\n    check_tuning(table);\n    pHVar6 = table->tuning;\n    dVar13 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar15 = (float)dVar13;\n    dVar13 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (pHVar6->growth_threshold * fVar15 < (float)dVar13) {\n      if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }\n      iVar2 = -1;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;\n      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }\n      _Var7 = hash_rehash(table,(size_t)pvVar4);\n      iVar2 = -1;\n      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;\n      pvVar4 = entry;\n      pvVar1 = hash_find_entry(table,entry,&bucket,false);\n      if (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }\n    }\n  }\n  if (bucket->data == (void *)0x0) {\n    bucket->data = entry;\n    table->n_entries = table->n_entries + 1;\n    table->n_buckets_used = table->n_buckets_used + 1;\n    iVar2 = 1;\n  }\n  else {\n    phVar9 = table->free_entry_list;\n    if (phVar9 == (hash_entry *)0x0) {\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }\n    else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }\n    phVar9->next = bucket->next;\n    bucket->next = phVar9;\n    table->n_entries = table->n_entries + 1;\n    iVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358) {\n    return iVar2;\n  }\n  pcVar11 = hash_insert;\n  pHVar8 = local_14;\n  puVar10 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  puStack_48 = puVar10 + 0x1bbd0;\n  pHStack_3c = (Hash_table *)**(undefined4 **)(puVar10 + 0x13e58);\n  pvVar1 = pvVar4;\n  pHStack_38 = table;\n  pcStack_34 = pcVar11;\n  iVar2 = hash_insert_if_absent(pHVar8,pvVar4,&pvStack_40);\n  if (iVar2 == -1) {\n    pvVar3 = (void *)0x0;\n  }\n  else {\n    pvVar3 = pvVar4;\n    if (iVar2 == 0) {\n      pvVar3 = pvStack_40;\n    }\n  }\n  if (pHStack_3c != (Hash_table *)**(int **)(puStack_48 + -0x7d78)) {\n    pcVar11 = *(code **)(puStack_48 + -0x7d88);\n    pcVar12 = hash_delete;\n    pHVar8 = pHStack_3c;\n    (*pcVar11)();\n    puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc);\n    pvStack_68 = pvVar4;\n    pvStack_64 = entry;\n    ppvStack_60 = matched_ent;\n    pcStack_5c = pcVar12;\n    pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true);\n    if ((pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)) {\n      sVar5 = pHVar8->n_buckets_used - 1;\n      pHVar8->n_buckets_used = sVar5;\n      dVar13 = (double)(int)sVar5;\n      if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      dVar14 = (double)(int)pHVar8->n_buckets;\n      if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }\n    }\n    if (puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)) {\n      return (int)pvVar4;\n    }\n    (**(code **)(pcVar11 + 0x13dbc))();\n    *(undefined1 *)(puStack_6c + 7) = 1;\n    puStack_6c[5] = 0;\n    puStack_6c[6] = 0;\n    *puStack_6c = pvVar1;\n    puStack_6c[1] = pvVar1;\n    puStack_6c[2] = pvVar1;\n    puStack_6c[3] = pvVar1;\n    puStack_6c[4] = pvVar1;\n    return 1;\n  }\n  return (int)pvVar3;\n}\n\n" (function_definition "int hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)\n\n{\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar1;\n  int iVar2;\n  void *pvVar3;\n  void *pvVar4;\n  size_t sVar5;\n  Hash_tuning *pHVar6;\n  _Bool _Var7;\n  Hash_table *pHVar8;\n  hash_entry *phVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  double dVar13;\n  double dVar14;\n  float fVar15;\n  hash_entry *phStack_70;\n  undefined4 *puStack_6c;\n  void *pvStack_68;\n  void *pvStack_64;\n  void **ppvStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  void *pvStack_40;\n  Hash_table *pHStack_3c;\n  Hash_table *pHStack_38;\n  code *pcStack_34;\n  hash_entry *bucket;\n  Hash_table *local_14;\n  \n  local_14 = *(Hash_table **)PTR___stack_chk_guard_00031358;\n  if (entry == (void *)0x0) {\n    iVar2 = (*(code *)PTR_abort_00031288)();\n    return iVar2;\n  }\n  pvVar4 = entry;\n  pvVar1 = hash_find_entry(table,entry,&bucket,false);\n  if (pvVar1 != (void *)0x0) {\n    if (matched_ent == (void **)0x0) {\n      iVar2 = 0;\n    }\n    else {\n      *matched_ent = pvVar1;\n      iVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar13 = (double)(int)table->n_buckets_used;\n  if ((int)table->n_buckets_used < 0) {\n    dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar14 = (double)(int)table->n_buckets;\n  if ((int)table->n_buckets < 0) {\n    dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar14 * table->tuning->growth_threshold < (float)dVar13) {\n    check_tuning(table);\n    pHVar6 = table->tuning;\n    dVar13 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar15 = (float)dVar13;\n    dVar13 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (pHVar6->growth_threshold * fVar15 < (float)dVar13) {\n      if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }\n      iVar2 = -1;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;\n      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }\n      _Var7 = hash_rehash(table,(size_t)pvVar4);\n      iVar2 = -1;\n      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;\n      pvVar4 = entry;\n      pvVar1 = hash_find_entry(table,entry,&bucket,false);\n      if (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }\n    }\n  }\n  if (bucket->data == (void *)0x0) {\n    bucket->data = entry;\n    table->n_entries = table->n_entries + 1;\n    table->n_buckets_used = table->n_buckets_used + 1;\n    iVar2 = 1;\n  }\n  else {\n    phVar9 = table->free_entry_list;\n    if (phVar9 == (hash_entry *)0x0) {\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }\n    else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }\n    phVar9->next = bucket->next;\n    bucket->next = phVar9;\n    table->n_entries = table->n_entries + 1;\n    iVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358) {\n    return iVar2;\n  }\n  pcVar11 = hash_insert;\n  pHVar8 = local_14;\n  puVar10 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  puStack_48 = puVar10 + 0x1bbd0;\n  pHStack_3c = (Hash_table *)**(undefined4 **)(puVar10 + 0x13e58);\n  pvVar1 = pvVar4;\n  pHStack_38 = table;\n  pcStack_34 = pcVar11;\n  iVar2 = hash_insert_if_absent(pHVar8,pvVar4,&pvStack_40);\n  if (iVar2 == -1) {\n    pvVar3 = (void *)0x0;\n  }\n  else {\n    pvVar3 = pvVar4;\n    if (iVar2 == 0) {\n      pvVar3 = pvStack_40;\n    }\n  }\n  if (pHStack_3c != (Hash_table *)**(int **)(puStack_48 + -0x7d78)) {\n    pcVar11 = *(code **)(puStack_48 + -0x7d88);\n    pcVar12 = hash_delete;\n    pHVar8 = pHStack_3c;\n    (*pcVar11)();\n    puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc);\n    pvStack_68 = pvVar4;\n    pvStack_64 = entry;\n    ppvStack_60 = matched_ent;\n    pcStack_5c = pcVar12;\n    pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true);\n    if ((pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)) {\n      sVar5 = pHVar8->n_buckets_used - 1;\n      pHVar8->n_buckets_used = sVar5;\n      dVar13 = (double)(int)sVar5;\n      if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      dVar14 = (double)(int)pHVar8->n_buckets;\n      if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }\n    }\n    if (puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)) {\n      return (int)pvVar4;\n    }\n    (**(code **)(pcVar11 + 0x13dbc))();\n    *(undefined1 *)(puStack_6c + 7) = 1;\n    puStack_6c[5] = 0;\n    puStack_6c[6] = 0;\n    *puStack_6c = pvVar1;\n    puStack_6c[1] = pvVar1;\n    puStack_6c[2] = pvVar1;\n    puStack_6c[3] = pvVar1;\n    puStack_6c[4] = pvVar1;\n    return 1;\n  }\n  return (int)pvVar3;\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  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar1;\n  int iVar2;\n  void *pvVar3;\n  void *pvVar4;\n  size_t sVar5;\n  Hash_tuning *pHVar6;\n  _Bool _Var7;\n  Hash_table *pHVar8;\n  hash_entry *phVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  double dVar13;\n  double dVar14;\n  float fVar15;\n  hash_entry *phStack_70;\n  undefined4 *puStack_6c;\n  void *pvStack_68;\n  void *pvStack_64;\n  void **ppvStack_60;\n  code *pcStack_5c;\n  undefined *puStack_48;\n  void *pvStack_40;\n  Hash_table *pHStack_3c;\n  Hash_table *pHStack_38;\n  code *pcStack_34;\n  hash_entry *bucket;\n  Hash_table *local_14;\n  \n  local_14 = *(Hash_table **)PTR___stack_chk_guard_00031358;\n  if (entry == (void *)0x0) {\n    iVar2 = (*(code *)PTR_abort_00031288)();\n    return iVar2;\n  }\n  pvVar4 = entry;\n  pvVar1 = hash_find_entry(table,entry,&bucket,false);\n  if (pvVar1 != (void *)0x0) {\n    if (matched_ent == (void **)0x0) {\n      iVar2 = 0;\n    }\n    else {\n      *matched_ent = pvVar1;\n      iVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar13 = (double)(int)table->n_buckets_used;\n  if ((int)table->n_buckets_used < 0) {\n    dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar14 = (double)(int)table->n_buckets;\n  if ((int)table->n_buckets < 0) {\n    dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar14 * table->tuning->growth_threshold < (float)dVar13) {\n    check_tuning(table);\n    pHVar6 = table->tuning;\n    dVar13 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar15 = (float)dVar13;\n    dVar13 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (pHVar6->growth_threshold * fVar15 < (float)dVar13) {\n      if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }\n      iVar2 = -1;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;\n      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }\n      _Var7 = hash_rehash(table,(size_t)pvVar4);\n      iVar2 = -1;\n      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;\n      pvVar4 = entry;\n      pvVar1 = hash_find_entry(table,entry,&bucket,false);\n      if (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }\n    }\n  }\n  if (bucket->data == (void *)0x0) {\n    bucket->data = entry;\n    table->n_entries = table->n_entries + 1;\n    table->n_buckets_used = table->n_buckets_used + 1;\n    iVar2 = 1;\n  }\n  else {\n    phVar9 = table->free_entry_list;\n    if (phVar9 == (hash_entry *)0x0) {\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }\n    else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }\n    phVar9->next = bucket->next;\n    bucket->next = phVar9;\n    table->n_entries = table->n_entries + 1;\n    iVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358) {\n    return iVar2;\n  }\n  pcVar11 = hash_insert;\n  pHVar8 = local_14;\n  puVar10 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  puStack_48 = puVar10 + 0x1bbd0;\n  pHStack_3c = (Hash_table *)**(undefined4 **)(puVar10 + 0x13e58);\n  pvVar1 = pvVar4;\n  pHStack_38 = table;\n  pcStack_34 = pcVar11;\n  iVar2 = hash_insert_if_absent(pHVar8,pvVar4,&pvStack_40);\n  if (iVar2 == -1) {\n    pvVar3 = (void *)0x0;\n  }\n  else {\n    pvVar3 = pvVar4;\n    if (iVar2 == 0) {\n      pvVar3 = pvStack_40;\n    }\n  }\n  if (pHStack_3c != (Hash_table *)**(int **)(puStack_48 + -0x7d78)) {\n    pcVar11 = *(code **)(puStack_48 + -0x7d88);\n    pcVar12 = hash_delete;\n    pHVar8 = pHStack_3c;\n    (*pcVar11)();\n    puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc);\n    pvStack_68 = pvVar4;\n    pvStack_64 = entry;\n    ppvStack_60 = matched_ent;\n    pcStack_5c = pcVar12;\n    pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true);\n    if ((pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)) {\n      sVar5 = pHVar8->n_buckets_used - 1;\n      pHVar8->n_buckets_used = sVar5;\n      dVar13 = (double)(int)sVar5;\n      if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      dVar14 = (double)(int)pHVar8->n_buckets;\n      if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }\n    }\n    if (puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)) {\n      return (int)pvVar4;\n    }\n    (**(code **)(pcVar11 + 0x13dbc))();\n    *(undefined1 *)(puStack_6c + 7) = 1;\n    puStack_6c[5] = 0;\n    puStack_6c[6] = 0;\n    *puStack_6c = pvVar1;\n    puStack_6c[1] = pvVar1;\n    puStack_6c[2] = pvVar1;\n    puStack_6c[3] = pvVar1;\n    puStack_6c[4] = pvVar1;\n    return 1;\n  }\n  return (int)pvVar3;\n}" { (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "Hash_tuning *pHVar6;" type_identifier (pointer_declarator "*pHVar6" * identifier) ;) (declaration "_Bool _Var7;" type_identifier identifier ;) (declaration "Hash_table *pHVar8;" type_identifier (pointer_declarator "*pHVar8" * identifier) ;) (declaration "hash_entry *phVar9;" type_identifier (pointer_declarator "*phVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "double dVar13;" primitive_type identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "float fVar15;" primitive_type identifier ;) (declaration "hash_entry *phStack_70;" type_identifier (pointer_declarator "*phStack_70" * identifier) ;) (declaration "undefined4 *puStack_6c;" type_identifier (pointer_declarator "*puStack_6c" * identifier) ;) (declaration "void *pvStack_68;" primitive_type (pointer_declarator "*pvStack_68" * identifier) ;) (declaration "void *pvStack_64;" primitive_type (pointer_declarator "*pvStack_64" * identifier) ;) (declaration "void **ppvStack_60;" primitive_type (pointer_declarator "**ppvStack_60" * (pointer_declarator "*ppvStack_60" * identifier)) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "undefined *puStack_48;" type_identifier (pointer_declarator "*puStack_48" * identifier) ;) (declaration "void *pvStack_40;" primitive_type (pointer_declarator "*pvStack_40" * identifier) ;) (declaration "Hash_table *pHStack_3c;" type_identifier (pointer_declarator "*pHStack_3c" * identifier) ;) (declaration "Hash_table *pHStack_38;" type_identifier (pointer_declarator "*pHStack_38" * identifier) ;) (declaration "code *pcStack_34;" type_identifier (pointer_declarator "*pcStack_34" * identifier) ;) (declaration "hash_entry *bucket;" type_identifier (pointer_declarator "*bucket" * identifier) ;) (declaration "Hash_table *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "local_14 = *(Hash_table **)PTR___stack_chk_guard_00031358;" (assignment_expression "local_14 = *(Hash_table **)PTR___stack_chk_guard_00031358" identifier = (pointer_expression "*(Hash_table **)PTR___stack_chk_guard_00031358" * (cast_expression "(Hash_table **)PTR___stack_chk_guard_00031358" ( (type_descriptor "Hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (entry == (void *)0x0) {\n    iVar2 = (*(code *)PTR_abort_00031288)();\n    return iVar2;\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 "{\n    iVar2 = (*(code *)PTR_abort_00031288)();\n    return iVar2;\n  }" { (expression_statement "iVar2 = (*(code *)PTR_abort_00031288)();" (assignment_expression "iVar2 = (*(code *)PTR_abort_00031288)()" identifier = (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" ( (pointer_expression "*(code *)PTR_abort_00031288" * (cast_expression "(code *)PTR_abort_00031288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "pvVar4 = entry;" (assignment_expression "pvVar4 = entry" identifier = identifier) ;) (expression_statement "pvVar1 = hash_find_entry(table,entry,&bucket,false);" (assignment_expression "pvVar1 = 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 (pvVar1 != (void *)0x0) {\n    if (matched_ent == (void **)0x0) {\n      iVar2 = 0;\n    }\n    else {\n      *matched_ent = pvVar1;\n      iVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" if (parenthesized_expression "(pvVar1 != (void *)0x0)" ( (binary_expression "pvVar1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (matched_ent == (void **)0x0) {\n      iVar2 = 0;\n    }\n    else {\n      *matched_ent = pvVar1;\n      iVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" { (if_statement "if (matched_ent == (void **)0x0) {\n      iVar2 = 0;\n    }\n    else {\n      *matched_ent = pvVar1;\n      iVar2 = 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      iVar2 = 0;\n    }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      *matched_ent = pvVar1;\n      iVar2 = 0;\n    }" else (compound_statement "{\n      *matched_ent = pvVar1;\n      iVar2 = 0;\n    }" { (expression_statement "*matched_ent = pvVar1;" (assignment_expression "*matched_ent = pvVar1" (pointer_expression "*matched_ent" * identifier) = identifier) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;) })) (expression_statement "dVar13 = (double)(int)table->n_buckets_used;" (assignment_expression "dVar13 = (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    dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" { (expression_statement "dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar13 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (expression_statement "dVar14 = (double)(int)table->n_buckets;" (assignment_expression "dVar14 = (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    dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" { (expression_statement "dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar14 = dVar14 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar14 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar14 * table->tuning->growth_threshold < (float)dVar13) {\n    check_tuning(table);\n    pHVar6 = table->tuning;\n    dVar13 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar15 = (float)dVar13;\n    dVar13 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (pHVar6->growth_threshold * fVar15 < (float)dVar13) {\n      if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }\n      iVar2 = -1;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;\n      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }\n      _Var7 = hash_rehash(table,(size_t)pvVar4);\n      iVar2 = -1;\n      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;\n      pvVar4 = entry;\n      pvVar1 = hash_find_entry(table,entry,&bucket,false);\n      if (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }\n    }\n  }" if (parenthesized_expression "((float)dVar14 * table->tuning->growth_threshold < (float)dVar13)" ( (binary_expression "(float)dVar14 * table->tuning->growth_threshold < (float)dVar13" (binary_expression "(float)dVar14 * table->tuning->growth_threshold" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "table->tuning->growth_threshold" (field_expression "table->tuning" identifier -> field_identifier) -> field_identifier)) < (cast_expression "(float)dVar13" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n    check_tuning(table);\n    pHVar6 = table->tuning;\n    dVar13 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar15 = (float)dVar13;\n    dVar13 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (pHVar6->growth_threshold * fVar15 < (float)dVar13) {\n      if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }\n      iVar2 = -1;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;\n      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }\n      _Var7 = hash_rehash(table,(size_t)pvVar4);\n      iVar2 = -1;\n      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;\n      pvVar4 = entry;\n      pvVar1 = hash_find_entry(table,entry,&bucket,false);\n      if (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }\n    }\n  }" { (expression_statement "check_tuning(table);" (call_expression "check_tuning(table)" identifier (argument_list "(table)" ( identifier ))) ;) (expression_statement "pHVar6 = table->tuning;" (assignment_expression "pHVar6 = table->tuning" identifier = (field_expression "table->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar13 = (double)(int)table->n_buckets;" (assignment_expression "dVar13 = (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      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" { (expression_statement "dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar13 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (expression_statement "fVar15 = (float)dVar13;" (assignment_expression "fVar15 = (float)dVar13" identifier = (cast_expression "(float)dVar13" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar13 = (double)(int)table->n_buckets_used;" (assignment_expression "dVar13 = (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      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" { (expression_statement "dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar13 = dVar13 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar13 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (if_statement "if (pHVar6->growth_threshold * fVar15 < (float)dVar13) {\n      if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }\n      iVar2 = -1;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;\n      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }\n      _Var7 = hash_rehash(table,(size_t)pvVar4);\n      iVar2 = -1;\n      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;\n      pvVar4 = entry;\n      pvVar1 = hash_find_entry(table,entry,&bucket,false);\n      if (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }\n    }" if (parenthesized_expression "(pHVar6->growth_threshold * fVar15 < (float)dVar13)" ( (binary_expression "pHVar6->growth_threshold * fVar15 < (float)dVar13" (binary_expression "pHVar6->growth_threshold * fVar15" (field_expression "pHVar6->growth_threshold" identifier -> field_identifier) * identifier) < (cast_expression "(float)dVar13" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }\n      iVar2 = -1;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;\n      if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }\n      _Var7 = hash_rehash(table,(size_t)pvVar4);\n      iVar2 = -1;\n      if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;\n      pvVar4 = entry;\n      pvVar1 = hash_find_entry(table,entry,&bucket,false);\n      if (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }\n    }" { (if_statement "if (pHVar6->is_n_buckets == false) {\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }\n      else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }" if (parenthesized_expression "(pHVar6->is_n_buckets == false)" ( (binary_expression "pHVar6->is_n_buckets == false" (field_expression "pHVar6->is_n_buckets" identifier -> field_identifier) == false) )) (compound_statement "{\n        fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;\n      }" { (expression_statement "fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold;" (assignment_expression "fVar15 = fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold" identifier = (binary_expression "fVar15 * pHVar6->growth_factor * pHVar6->growth_threshold" (binary_expression "fVar15 * pHVar6->growth_factor" identifier * (field_expression "pHVar6->growth_factor" identifier -> field_identifier)) * (field_expression "pHVar6->growth_threshold" identifier -> field_identifier))) ;) }) (else_clause "else {\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }" else (compound_statement "{\n        fVar15 = fVar15 * pHVar6->growth_factor;\n      }" { (expression_statement "fVar15 = fVar15 * pHVar6->growth_factor;" (assignment_expression "fVar15 = fVar15 * pHVar6->growth_factor" identifier = (binary_expression "fVar15 * pHVar6->growth_factor" identifier * (field_expression "pHVar6->growth_factor" identifier -> field_identifier))) ;) }))) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15) goto LAB_0001d288;" if (parenthesized_expression "(*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15)" ( (binary_expression "*(float *)(PTR_UINT_00031108 + 0x250) <= fVar15" (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x250)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x250)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x250)" ( (binary_expression "PTR_UINT_00031108 + 0x250" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (if_statement "if (fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        pvVar4 = (void *)(int)fVar15;\n      }\n      else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }" if (parenthesized_expression "(fVar15 < *(float *)(PTR_UINT_00031108 + 0x254))" ( (binary_expression "fVar15 < *(float *)(PTR_UINT_00031108 + 0x254)" identifier < (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" ( (binary_expression "PTR_UINT_00031108 + 0x254" identifier + number_literal) ))))) )) (compound_statement "{\n        pvVar4 = (void *)(int)fVar15;\n      }" { (expression_statement "pvVar4 = (void *)(int)fVar15;" (assignment_expression "pvVar4 = (void *)(int)fVar15" identifier = (cast_expression "(void *)(int)fVar15" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }" else (compound_statement "{\n        pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);\n      }" { (expression_statement "pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000);" (assignment_expression "pvVar4 = (void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000)" identifier = (cast_expression "(void *)((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000)" ( (binary_expression "(int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000" (cast_expression "(int)(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar15 - *(float *)(PTR_UINT_00031108 + 0x254))" ( (binary_expression "fVar15 - *(float *)(PTR_UINT_00031108 + 0x254)" identifier - (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" ( (binary_expression "PTR_UINT_00031108 + 0x254" identifier + number_literal) ))))) ))) | number_literal) )))) ;) }))) (expression_statement "_Var7 = hash_rehash(table,(size_t)pvVar4);" (assignment_expression "_Var7 = hash_rehash(table,(size_t)pvVar4)" identifier = (call_expression "hash_rehash(table,(size_t)pvVar4)" identifier (argument_list "(table,(size_t)pvVar4)" ( identifier , (cast_expression "(size_t)pvVar4" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (CONCAT31(extraout_var,_Var7) == 0) goto LAB_0001d288;" if (parenthesized_expression "(CONCAT31(extraout_var,_Var7) == 0)" ( (binary_expression "CONCAT31(extraout_var,_Var7) == 0" (call_expression "CONCAT31(extraout_var,_Var7)" identifier (argument_list "(extraout_var,_Var7)" ( identifier , identifier ))) == number_literal) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (expression_statement "pvVar4 = entry;" (assignment_expression "pvVar4 = entry" identifier = identifier) ;) (expression_statement "pvVar1 = hash_find_entry(table,entry,&bucket,false);" (assignment_expression "pvVar1 = 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 (pvVar1 != (void *)0x0) {\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }" if (parenthesized_expression "(pvVar1 != (void *)0x0)" ( (binary_expression "pvVar1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_abort_00031288)();\n        return iVar2;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_abort_00031288)();" (assignment_expression "iVar2 = (*(code *)PTR_abort_00031288)()" identifier = (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" ( (pointer_expression "*(code *)PTR_abort_00031288" * (cast_expression "(code *)PTR_abort_00031288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return iVar2;" return identifier ;) })) })) })) (if_statement "if (bucket->data == (void *)0x0) {\n    bucket->data = entry;\n    table->n_entries = table->n_entries + 1;\n    table->n_buckets_used = table->n_buckets_used + 1;\n    iVar2 = 1;\n  }\n  else {\n    phVar9 = table->free_entry_list;\n    if (phVar9 == (hash_entry *)0x0) {\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }\n    else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }\n    phVar9->next = bucket->next;\n    bucket->next = phVar9;\n    table->n_entries = table->n_entries + 1;\n    iVar2 = 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    bucket->data = entry;\n    table->n_entries = table->n_entries + 1;\n    table->n_buckets_used = table->n_buckets_used + 1;\n    iVar2 = 1;\n  }" { (expression_statement "bucket->data = entry;" (assignment_expression "bucket->data = entry" (field_expression "bucket->data" identifier -> field_identifier) = identifier) ;) (expression_statement "table->n_entries = table->n_entries + 1;" (assignment_expression "table->n_entries = table->n_entries + 1" (field_expression "table->n_entries" identifier -> field_identifier) = (binary_expression "table->n_entries + 1" (field_expression "table->n_entries" identifier -> field_identifier) + number_literal)) ;) (expression_statement "table->n_buckets_used = table->n_buckets_used + 1;" (assignment_expression "table->n_buckets_used = table->n_buckets_used + 1" (field_expression "table->n_buckets_used" identifier -> field_identifier) = (binary_expression "table->n_buckets_used + 1" (field_expression "table->n_buckets_used" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    phVar9 = table->free_entry_list;\n    if (phVar9 == (hash_entry *)0x0) {\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }\n    else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }\n    phVar9->next = bucket->next;\n    bucket->next = phVar9;\n    table->n_entries = table->n_entries + 1;\n    iVar2 = 1;\n  }" else (compound_statement "{\n    phVar9 = table->free_entry_list;\n    if (phVar9 == (hash_entry *)0x0) {\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }\n    else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }\n    phVar9->next = bucket->next;\n    bucket->next = phVar9;\n    table->n_entries = table->n_entries + 1;\n    iVar2 = 1;\n  }" { (expression_statement "phVar9 = table->free_entry_list;" (assignment_expression "phVar9 = table->free_entry_list" identifier = (field_expression "table->free_entry_list" identifier -> field_identifier)) ;) (if_statement "if (phVar9 == (hash_entry *)0x0) {\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }\n    else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }" if (parenthesized_expression "(phVar9 == (hash_entry *)0x0)" ( (binary_expression "phVar9 == (hash_entry *)0x0" identifier == (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);\n      iVar2 = -1;\n      if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;\n      phVar9->data = entry;\n    }" { (expression_statement "phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8);" (assignment_expression "phVar9 = (hash_entry *)(*(code *)PTR_malloc_00031314)(8)" identifier = (cast_expression "(hash_entry *)(*(code *)PTR_malloc_00031314)(8)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00031314)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00031314)" ( (pointer_expression "*(code *)PTR_malloc_00031314" * (cast_expression "(code *)PTR_malloc_00031314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "iVar2 = -1;" (assignment_expression "iVar2 = -1" identifier = number_literal) ;) (if_statement "if (phVar9 == (hash_entry *)0x0) goto LAB_0001d288;" if (parenthesized_expression "(phVar9 == (hash_entry *)0x0)" ( (binary_expression "phVar9 == (hash_entry *)0x0" identifier == (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (expression_statement "phVar9->data = entry;" (assignment_expression "phVar9->data = entry" (field_expression "phVar9->data" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }" else (compound_statement "{\n      table->free_entry_list = phVar9->next;\n      phVar9->data = entry;\n    }" { (expression_statement "table->free_entry_list = phVar9->next;" (assignment_expression "table->free_entry_list = phVar9->next" (field_expression "table->free_entry_list" identifier -> field_identifier) = (field_expression "phVar9->next" identifier -> field_identifier)) ;) (expression_statement "phVar9->data = entry;" (assignment_expression "phVar9->data = entry" (field_expression "phVar9->data" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "phVar9->next = bucket->next;" (assignment_expression "phVar9->next = bucket->next" (field_expression "phVar9->next" identifier -> field_identifier) = (field_expression "bucket->next" identifier -> field_identifier)) ;) (expression_statement "bucket->next = phVar9;" (assignment_expression "bucket->next = phVar9" (field_expression "bucket->next" identifier -> field_identifier) = identifier) ;) (expression_statement "table->n_entries = table->n_entries + 1;" (assignment_expression "table->n_entries = table->n_entries + 1" (field_expression "table->n_entries" identifier -> field_identifier) = (binary_expression "table->n_entries + 1" (field_expression "table->n_entries" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001d288:\n  if (local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358)" ( (binary_expression "local_14 == *(Hash_table **)PTR___stack_chk_guard_00031358" identifier == (pointer_expression "*(Hash_table **)PTR___stack_chk_guard_00031358" * (cast_expression "(Hash_table **)PTR___stack_chk_guard_00031358" ( (type_descriptor "Hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) (expression_statement "pcVar11 = hash_insert;" (assignment_expression "pcVar11 = hash_insert" identifier = identifier) ;) (expression_statement "pHVar8 = local_14;" (assignment_expression "pHVar8 = local_14" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_00031348;" (assignment_expression "puVar10 = PTR___stack_chk_fail_00031348" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00031348)();" (call_expression "(*(code *)PTR___stack_chk_fail_00031348)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00031348)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00031348" * (cast_expression "(code *)PTR___stack_chk_fail_00031348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_48 = puVar10 + 0x1bbd0;" (assignment_expression "puStack_48 = puVar10 + 0x1bbd0" identifier = (binary_expression "puVar10 + 0x1bbd0" identifier + number_literal)) ;) (expression_statement "pHStack_3c = (Hash_table *)**(undefined4 **)(puVar10 + 0x13e58);" (assignment_expression "pHStack_3c = (Hash_table *)**(undefined4 **)(puVar10 + 0x13e58)" identifier = (cast_expression "(Hash_table *)**(undefined4 **)(puVar10 + 0x13e58)" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar10 + 0x13e58)" * (pointer_expression "*(undefined4 **)(puVar10 + 0x13e58)" * (cast_expression "(undefined4 **)(puVar10 + 0x13e58)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x13e58)" ( (binary_expression "puVar10 + 0x13e58" identifier + number_literal) ))))))) ;) (expression_statement "pvVar1 = pvVar4;" (assignment_expression "pvVar1 = pvVar4" identifier = identifier) ;) (expression_statement "pHStack_38 = table;" (assignment_expression "pHStack_38 = table" identifier = identifier) ;) (expression_statement "pcStack_34 = pcVar11;" (assignment_expression "pcStack_34 = pcVar11" identifier = identifier) ;) (expression_statement "iVar2 = hash_insert_if_absent(pHVar8,pvVar4,&pvStack_40);" (assignment_expression "iVar2 = hash_insert_if_absent(pHVar8,pvVar4,&pvStack_40)" identifier = (call_expression "hash_insert_if_absent(pHVar8,pvVar4,&pvStack_40)" identifier (argument_list "(pHVar8,pvVar4,&pvStack_40)" ( identifier , identifier , (pointer_expression "&pvStack_40" & identifier) )))) ;) (if_statement "if (iVar2 == -1) {\n    pvVar3 = (void *)0x0;\n  }\n  else {\n    pvVar3 = pvVar4;\n    if (iVar2 == 0) {\n      pvVar3 = pvStack_40;\n    }\n  }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n    pvVar3 = (void *)0x0;\n  }" { (expression_statement "pvVar3 = (void *)0x0;" (assignment_expression "pvVar3 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pvVar3 = pvVar4;\n    if (iVar2 == 0) {\n      pvVar3 = pvStack_40;\n    }\n  }" else (compound_statement "{\n    pvVar3 = pvVar4;\n    if (iVar2 == 0) {\n      pvVar3 = pvStack_40;\n    }\n  }" { (expression_statement "pvVar3 = pvVar4;" (assignment_expression "pvVar3 = pvVar4" identifier = identifier) ;) (if_statement "if (iVar2 == 0) {\n      pvVar3 = pvStack_40;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      pvVar3 = pvStack_40;\n    }" { (expression_statement "pvVar3 = pvStack_40;" (assignment_expression "pvVar3 = pvStack_40" identifier = identifier) ;) })) }))) (if_statement "if (pHStack_3c != (Hash_table *)**(int **)(puStack_48 + -0x7d78)) {\n    pcVar11 = *(code **)(puStack_48 + -0x7d88);\n    pcVar12 = hash_delete;\n    pHVar8 = pHStack_3c;\n    (*pcVar11)();\n    puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc);\n    pvStack_68 = pvVar4;\n    pvStack_64 = entry;\n    ppvStack_60 = matched_ent;\n    pcStack_5c = pcVar12;\n    pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true);\n    if ((pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)) {\n      sVar5 = pHVar8->n_buckets_used - 1;\n      pHVar8->n_buckets_used = sVar5;\n      dVar13 = (double)(int)sVar5;\n      if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      dVar14 = (double)(int)pHVar8->n_buckets;\n      if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }\n    }\n    if (puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)) {\n      return (int)pvVar4;\n    }\n    (**(code **)(pcVar11 + 0x13dbc))();\n    *(undefined1 *)(puStack_6c + 7) = 1;\n    puStack_6c[5] = 0;\n    puStack_6c[6] = 0;\n    *puStack_6c = pvVar1;\n    puStack_6c[1] = pvVar1;\n    puStack_6c[2] = pvVar1;\n    puStack_6c[3] = pvVar1;\n    puStack_6c[4] = pvVar1;\n    return 1;\n  }" if (parenthesized_expression "(pHStack_3c != (Hash_table *)**(int **)(puStack_48 + -0x7d78))" ( (binary_expression "pHStack_3c != (Hash_table *)**(int **)(puStack_48 + -0x7d78)" identifier != (cast_expression "(Hash_table *)**(int **)(puStack_48 + -0x7d78)" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(puStack_48 + -0x7d78)" * (pointer_expression "*(int **)(puStack_48 + -0x7d78)" * (cast_expression "(int **)(puStack_48 + -0x7d78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7d78)" ( (binary_expression "puStack_48 + -0x7d78" identifier + number_literal) ))))))) )) (compound_statement "{\n    pcVar11 = *(code **)(puStack_48 + -0x7d88);\n    pcVar12 = hash_delete;\n    pHVar8 = pHStack_3c;\n    (*pcVar11)();\n    puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc);\n    pvStack_68 = pvVar4;\n    pvStack_64 = entry;\n    ppvStack_60 = matched_ent;\n    pcStack_5c = pcVar12;\n    pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true);\n    if ((pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)) {\n      sVar5 = pHVar8->n_buckets_used - 1;\n      pHVar8->n_buckets_used = sVar5;\n      dVar13 = (double)(int)sVar5;\n      if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      dVar14 = (double)(int)pHVar8->n_buckets;\n      if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }\n    }\n    if (puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)) {\n      return (int)pvVar4;\n    }\n    (**(code **)(pcVar11 + 0x13dbc))();\n    *(undefined1 *)(puStack_6c + 7) = 1;\n    puStack_6c[5] = 0;\n    puStack_6c[6] = 0;\n    *puStack_6c = pvVar1;\n    puStack_6c[1] = pvVar1;\n    puStack_6c[2] = pvVar1;\n    puStack_6c[3] = pvVar1;\n    puStack_6c[4] = pvVar1;\n    return 1;\n  }" { (expression_statement "pcVar11 = *(code **)(puStack_48 + -0x7d88);" (assignment_expression "pcVar11 = *(code **)(puStack_48 + -0x7d88)" identifier = (pointer_expression "*(code **)(puStack_48 + -0x7d88)" * (cast_expression "(code **)(puStack_48 + -0x7d88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_48 + -0x7d88)" ( (binary_expression "puStack_48 + -0x7d88" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = hash_delete;" (assignment_expression "pcVar12 = hash_delete" identifier = identifier) ;) (expression_statement "pHVar8 = pHStack_3c;" (assignment_expression "pHVar8 = pHStack_3c" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc);" (assignment_expression "puStack_6c = (undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc)" identifier = (cast_expression "(undefined4 *)**(undefined4 **)(pcVar11 + 0x13dcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar11 + 0x13dcc)" * (pointer_expression "*(undefined4 **)(pcVar11 + 0x13dcc)" * (cast_expression "(undefined4 **)(pcVar11 + 0x13dcc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x13dcc)" ( (binary_expression "pcVar11 + 0x13dcc" identifier + number_literal) ))))))) ;) (expression_statement "pvStack_68 = pvVar4;" (assignment_expression "pvStack_68 = pvVar4" identifier = identifier) ;) (expression_statement "pvStack_64 = entry;" (assignment_expression "pvStack_64 = entry" identifier = identifier) ;) (expression_statement "ppvStack_60 = matched_ent;" (assignment_expression "ppvStack_60 = matched_ent" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar12;" (assignment_expression "pcStack_5c = pcVar12" identifier = identifier) ;) (expression_statement "pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true);" (assignment_expression "pvVar4 = hash_find_entry(pHVar8,pvVar1,&phStack_70,true)" identifier = (call_expression "hash_find_entry(pHVar8,pvVar1,&phStack_70,true)" identifier (argument_list "(pHVar8,pvVar1,&phStack_70,true)" ( identifier , identifier , (pointer_expression "&phStack_70" & identifier) , true )))) ;) (if_statement "if ((pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)) {\n      sVar5 = pHVar8->n_buckets_used - 1;\n      pHVar8->n_buckets_used = sVar5;\n      dVar13 = (double)(int)sVar5;\n      if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      dVar14 = (double)(int)pHVar8->n_buckets;\n      if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0))" ( (binary_expression "(pvVar4 != (void *)0x0) &&\n       (pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)" (parenthesized_expression "(pvVar4 != (void *)0x0)" ( (binary_expression "pvVar4 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0)" ( (comma_expression "pHVar8->n_entries = pHVar8->n_entries - 1, phStack_70->data == (void *)0x0" (assignment_expression "pHVar8->n_entries = pHVar8->n_entries - 1" (field_expression "pHVar8->n_entries" identifier -> field_identifier) = (binary_expression "pHVar8->n_entries - 1" (field_expression "pHVar8->n_entries" identifier -> field_identifier) - number_literal)) , (binary_expression "phStack_70->data == (void *)0x0" (field_expression "phStack_70->data" identifier -> field_identifier) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      sVar5 = pHVar8->n_buckets_used - 1;\n      pHVar8->n_buckets_used = sVar5;\n      dVar13 = (double)(int)sVar5;\n      if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      dVar14 = (double)(int)pHVar8->n_buckets;\n      if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }\n    }" { (expression_statement "sVar5 = pHVar8->n_buckets_used - 1;" (assignment_expression "sVar5 = pHVar8->n_buckets_used - 1" identifier = (binary_expression "pHVar8->n_buckets_used - 1" (field_expression "pHVar8->n_buckets_used" identifier -> field_identifier) - number_literal)) ;) (expression_statement "pHVar8->n_buckets_used = sVar5;" (assignment_expression "pHVar8->n_buckets_used = sVar5" (field_expression "pHVar8->n_buckets_used" identifier -> field_identifier) = identifier) ;) (expression_statement "dVar13 = (double)(int)sVar5;" (assignment_expression "dVar13 = (double)(int)sVar5" identifier = (cast_expression "(double)(int)sVar5" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((int)sVar5 < 0) {\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }" if (parenthesized_expression "((int)sVar5 < 0)" ( (binary_expression "(int)sVar5 < 0" (cast_expression "(int)sVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }" { (expression_statement "dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);" (assignment_expression "dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar14 = (double)(int)pHVar8->n_buckets;" (assignment_expression "dVar14 = (double)(int)pHVar8->n_buckets" identifier = (cast_expression "(double)(int)pHVar8->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar8->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar8->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar8->n_buckets < 0) {\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }" if (parenthesized_expression "((int)pHVar8->n_buckets < 0)" ( (binary_expression "(int)pHVar8->n_buckets < 0" (cast_expression "(int)pHVar8->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar8->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n        dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n      }" { (expression_statement "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);" (assignment_expression "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar14 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold) {\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }" if (parenthesized_expression "((float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold)" ( (binary_expression "(float)dVar13 < (float)dVar14 * pHVar8->tuning->shrink_threshold" (cast_expression "(float)dVar13" ( (type_descriptor "float" primitive_type) ) identifier) < (binary_expression "(float)dVar14 * pHVar8->tuning->shrink_threshold" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar8->tuning->shrink_threshold" (field_expression "pHVar8->tuning" identifier -> field_identifier) -> field_identifier))) )) (compound_statement "{\n        check_tuning(pHVar8);\n        pHVar6 = pHVar8->tuning;\n        dVar13 = (double)(int)pHVar8->n_buckets;\n        if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        fVar15 = (float)dVar13;\n        dVar13 = (double)(int)pHVar8->n_buckets_used;\n        if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }\n      }" { (expression_statement "check_tuning(pHVar8);" (call_expression "check_tuning(pHVar8)" identifier (argument_list "(pHVar8)" ( identifier ))) ;) (expression_statement "pHVar6 = pHVar8->tuning;" (assignment_expression "pHVar6 = pHVar8->tuning" identifier = (field_expression "pHVar8->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar13 = (double)(int)pHVar8->n_buckets;" (assignment_expression "dVar13 = (double)(int)pHVar8->n_buckets" identifier = (cast_expression "(double)(int)pHVar8->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar8->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar8->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar8->n_buckets < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }" if (parenthesized_expression "((int)pHVar8->n_buckets < 0)" ( (binary_expression "(int)pHVar8->n_buckets < 0" (cast_expression "(int)pHVar8->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar8->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }" { (expression_statement "dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);" (assignment_expression "dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "fVar15 = (float)dVar13;" (assignment_expression "fVar15 = (float)dVar13" identifier = (cast_expression "(float)dVar13" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar13 = (double)(int)pHVar8->n_buckets_used;" (assignment_expression "dVar13 = (double)(int)pHVar8->n_buckets_used" identifier = (cast_expression "(double)(int)pHVar8->n_buckets_used" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar8->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar8->n_buckets_used" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar8->n_buckets_used < 0) {\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }" if (parenthesized_expression "((int)pHVar8->n_buckets_used < 0)" ( (binary_expression "(int)pHVar8->n_buckets_used < 0" (cast_expression "(int)pHVar8->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar8->n_buckets_used" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n          dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);\n        }" { (expression_statement "dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260);" (assignment_expression "dVar13 = dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar13 + *(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar13 < fVar15 * pHVar6->shrink_threshold) {\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }" if (parenthesized_expression "((float)dVar13 < fVar15 * pHVar6->shrink_threshold)" ( (binary_expression "(float)dVar13 < fVar15 * pHVar6->shrink_threshold" (cast_expression "(float)dVar13" ( (type_descriptor "float" primitive_type) ) identifier) < (binary_expression "fVar15 * pHVar6->shrink_threshold" identifier * (field_expression "pHVar6->shrink_threshold" identifier -> field_identifier))) )) (compound_statement "{\n          if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          _Var7 = hash_rehash(pHVar8,(size_t)pvVar1);\n          if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }\n        }" { (if_statement "if (pHVar6->is_n_buckets == false) {\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }\n          else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }" if (parenthesized_expression "(pHVar6->is_n_buckets == false)" ( (binary_expression "pHVar6->is_n_buckets == false" (field_expression "pHVar6->is_n_buckets" identifier -> field_identifier) == false) )) (compound_statement "{\n            fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }" { (expression_statement "fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold;" (assignment_expression "fVar15 = fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold" identifier = (binary_expression "fVar15 * pHVar6->shrink_factor * pHVar6->growth_threshold" (binary_expression "fVar15 * pHVar6->shrink_factor" identifier * (field_expression "pHVar6->shrink_factor" identifier -> field_identifier)) * (field_expression "pHVar6->growth_threshold" identifier -> field_identifier))) ;) (if_statement "if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }" if (parenthesized_expression "(fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254))" ( (binary_expression "fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" identifier < (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n              pvVar1 = (void *)(int)fVar15;\n            }" { (expression_statement "pvVar1 = (void *)(int)fVar15;" (assignment_expression "pvVar1 = (void *)(int)fVar15" identifier = (cast_expression "(void *)(int)fVar15" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }" else (compound_statement "{\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }" { (expression_statement "pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);" (assignment_expression "pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000)" identifier = (cast_expression "(void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000)" ( (binary_expression "(int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000" (cast_expression "(int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254))" ( (binary_expression "fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" identifier - (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) ))) | number_literal) )))) ;) }))) }) (else_clause "else {\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }" else (compound_statement "{\n            fVar15 = fVar15 * pHVar6->shrink_factor;\n            if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }\n          }" { (expression_statement "fVar15 = fVar15 * pHVar6->shrink_factor;" (assignment_expression "fVar15 = fVar15 * pHVar6->shrink_factor" identifier = (binary_expression "fVar15 * pHVar6->shrink_factor" identifier * (field_expression "pHVar6->shrink_factor" identifier -> field_identifier))) ;) (if_statement "if (fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) {\n              pvVar1 = (void *)(int)fVar15;\n            }\n            else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }" if (parenthesized_expression "(fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254))" ( (binary_expression "fVar15 < *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" identifier < (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n              pvVar1 = (void *)(int)fVar15;\n            }" { (expression_statement "pvVar1 = (void *)(int)fVar15;" (assignment_expression "pvVar1 = (void *)(int)fVar15" identifier = (cast_expression "(void *)(int)fVar15" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar15" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }" else (compound_statement "{\n              pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);\n            }" { (expression_statement "pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000);" (assignment_expression "pvVar1 = (void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000)" identifier = (cast_expression "(void *)((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000)" ( (binary_expression "(int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)) |\n                               0x80000000" (cast_expression "(int)(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254))" ( (binary_expression "fVar15 - *(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" identifier - (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar11 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar11 + 0x13b7c)" * (cast_expression "(int *)(pcVar11 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x13b7c)" ( (binary_expression "pcVar11 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) ))) | number_literal) )))) ;) }))) }))) (expression_statement "_Var7 = hash_rehash(pHVar8,(size_t)pvVar1);" (assignment_expression "_Var7 = hash_rehash(pHVar8,(size_t)pvVar1)" identifier = (call_expression "hash_rehash(pHVar8,(size_t)pvVar1)" identifier (argument_list "(pHVar8,(size_t)pvVar1)" ( identifier , (cast_expression "(size_t)pvVar1" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var7) == 0) {\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var7) == 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var7) == 0" (call_expression "CONCAT31(extraout_var_00,_Var7)" identifier (argument_list "(extraout_var_00,_Var7)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n            phVar9 = pHVar8->free_entry_list;\n            while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }\n            pHVar8->free_entry_list = (hash_entry *)0x0;\n          }" { (expression_statement "phVar9 = pHVar8->free_entry_list;" (assignment_expression "phVar9 = pHVar8->free_entry_list" identifier = (field_expression "pHVar8->free_entry_list" identifier -> field_identifier)) ;) (while_statement "while (phVar9 != (hash_entry *)0x0) {\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }" while (parenthesized_expression "(phVar9 != (hash_entry *)0x0)" ( (binary_expression "phVar9 != (hash_entry *)0x0" identifier != (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              phVar9 = phVar9->next;\n              (**(code **)(pcVar11 + 0x13dd4))();\n            }" { (expression_statement "phVar9 = phVar9->next;" (assignment_expression "phVar9 = phVar9->next" identifier = (field_expression "phVar9->next" identifier -> field_identifier)) ;) (expression_statement "(**(code **)(pcVar11 + 0x13dd4))();" (call_expression "(**(code **)(pcVar11 + 0x13dd4))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x13dd4))" ( (pointer_expression "**(code **)(pcVar11 + 0x13dd4)" * (pointer_expression "*(code **)(pcVar11 + 0x13dd4)" * (cast_expression "(code **)(pcVar11 + 0x13dd4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x13dd4)" ( (binary_expression "pcVar11 + 0x13dd4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pHVar8->free_entry_list = (hash_entry *)0x0;" (assignment_expression "pHVar8->free_entry_list = (hash_entry *)0x0" (field_expression "pHVar8->free_entry_list" identifier -> field_identifier) = (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) })) })) (if_statement "if (puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)) {\n      return (int)pvVar4;\n    }" if (parenthesized_expression "(puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc))" ( (binary_expression "puStack_6c == (undefined4 *)**(int **)(pcVar11 + 0x13dcc)" identifier == (cast_expression "(undefined4 *)**(int **)(pcVar11 + 0x13dcc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar11 + 0x13dcc)" * (pointer_expression "*(int **)(pcVar11 + 0x13dcc)" * (cast_expression "(int **)(pcVar11 + 0x13dcc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x13dcc)" ( (binary_expression "pcVar11 + 0x13dcc" identifier + number_literal) ))))))) )) (compound_statement "{\n      return (int)pvVar4;\n    }" { (return_statement "return (int)pvVar4;" return (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "(**(code **)(pcVar11 + 0x13dbc))();" (call_expression "(**(code **)(pcVar11 + 0x13dbc))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x13dbc))" ( (pointer_expression "**(code **)(pcVar11 + 0x13dbc)" * (pointer_expression "*(code **)(pcVar11 + 0x13dbc)" * (cast_expression "(code **)(pcVar11 + 0x13dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x13dbc)" ( (binary_expression "pcVar11 + 0x13dbc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined1 *)(puStack_6c + 7) = 1;" (assignment_expression "*(undefined1 *)(puStack_6c + 7) = 1" (pointer_expression "*(undefined1 *)(puStack_6c + 7)" * (cast_expression "(undefined1 *)(puStack_6c + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_6c + 7)" ( (binary_expression "puStack_6c + 7" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puStack_6c[5] = 0;" (assignment_expression "puStack_6c[5] = 0" (subscript_expression "puStack_6c[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puStack_6c[6] = 0;" (assignment_expression "puStack_6c[6] = 0" (subscript_expression "puStack_6c[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puStack_6c = pvVar1;" (assignment_expression "*puStack_6c = pvVar1" (pointer_expression "*puStack_6c" * identifier) = identifier) ;) (expression_statement "puStack_6c[1] = pvVar1;" (assignment_expression "puStack_6c[1] = pvVar1" (subscript_expression "puStack_6c[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_6c[2] = pvVar1;" (assignment_expression "puStack_6c[2] = pvVar1" (subscript_expression "puStack_6c[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_6c[3] = pvVar1;" (assignment_expression "puStack_6c[3] = pvVar1" (subscript_expression "puStack_6c[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puStack_6c[4] = pvVar1;" (assignment_expression "puStack_6c[4] = pvVar1" (subscript_expression "puStack_6c[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return (int)pvVar3;" return (cast_expression "(int)pvVar3" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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 "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "double dVar9;" primitive_type identifier ;) (declaration "double dVar10;" primitive_type identifier ;) (declaration "float fVar11;" primitive_type identifier ;) (declaration "int *piStack_70;" primitive_type (pointer_declarator "*piStack_70" * identifier) ;) (declaration "uint uStack_40;" type_identifier identifier ;) (declaration "uint *local_18;" type_identifier (pointer_declarator "*local_18" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00031358;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00031358" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00031358" * (cast_expression "(int *)PTR___stack_chk_guard_00031358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }" { (expression_statement "uVar5 = (*(code *)PTR_abort_00031288)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_00031288)()" identifier = (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" ( (pointer_expression "*(code *)PTR_abort_00031288" * (cast_expression "(code *)PTR_abort_00031288" ( (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_0001c504(param_1,param_2,&local_18,0);" (assignment_expression "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0)" identifier = (call_expression "FUN_0001c504(param_1,param_2,&local_18,0)" identifier (argument_list "(param_1,param_2,&local_18,0)" ( identifier , identifier , (pointer_expression "&local_18" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" { (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) ;) }))) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;) })) (expression_statement "dVar9 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar9 = (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    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" { (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (expression_statement "dVar10 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar10 = (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    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" { (expression_statement "dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar10 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }" if (parenthesized_expression "((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9)" ( (binary_expression "(float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9" (binary_expression "(float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar10" ( (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)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }" { (expression_statement "FUN_0001c0b0(param_1);" (call_expression "FUN_0001c0b0(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (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 "dVar9 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar9 = (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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" { (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (expression_statement "fVar11 = (float)dVar9;" (assignment_expression "fVar11 = (float)dVar9" identifier = (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar9 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar9 = (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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" { (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" identifier + (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" * (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" ( (binary_expression "PTR_UINT_00031108 + 0x260" identifier + number_literal) )))))) ;) })) (if_statement "if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }" if (parenthesized_expression "(*(float *)(iVar1 + 8) * fVar11 < (float)dVar9)" ( (binary_expression "*(float *)(iVar1 + 8) * fVar11 < (float)dVar9" (binary_expression "*(float *)(iVar1 + 8) * fVar11" (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) )))) * identifier) < (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }" { (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\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        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }" { (expression_statement "fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);" (assignment_expression "fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8)" identifier = (binary_expression "fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8)" (binary_expression "fVar11 * *(float *)(iVar1 + 0xc)" 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) ))))) * (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) )))))) ;) }) (else_clause "else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }" else (compound_statement "{\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }" { (expression_statement "fVar11 = fVar11 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar11 = fVar11 * *(float *)(iVar1 + 0xc)" identifier = (binary_expression "fVar11 * *(float *)(iVar1 + 0xc)" 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) )))))) ;) }))) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;" if (parenthesized_expression "(*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11)" ( (binary_expression "*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11" (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x250)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x250)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x250)" ( (binary_expression "PTR_UINT_00031108 + 0x250" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (if_statement "if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" if (parenthesized_expression "(fVar11 < *(float *)(PTR_UINT_00031108 + 0x254))" ( (binary_expression "fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)" identifier < (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" ( (binary_expression "PTR_UINT_00031108 + 0x254" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar5 = (uint)fVar11;\n      }" { (expression_statement "uVar5 = (uint)fVar11;" (assignment_expression "uVar5 = (uint)fVar11" identifier = (cast_expression "(uint)fVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" else (compound_statement "{\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" { (expression_statement "uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;" (assignment_expression "uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000" identifier = (binary_expression "(int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254))" ( (binary_expression "fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)" identifier - (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" * (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" ( (binary_expression "PTR_UINT_00031108 + 0x254" 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 )))) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (iVar1 == 0) goto LAB_0001d288;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);" (assignment_expression "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0)" identifier = (call_expression "FUN_0001c504(param_1,param_2,&local_18,0)" identifier (argument_list "(param_1,param_2,&local_18,0)" ( identifier , identifier , (pointer_expression "&local_18" & identifier) , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }" { (expression_statement "uVar5 = (*(code *)PTR_abort_00031288)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_00031288)()" identifier = (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" ( (pointer_expression "*(code *)PTR_abort_00031288" * (cast_expression "(code *)PTR_abort_00031288" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar5;" return identifier ;) })) })) })) (if_statement "if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }" if (parenthesized_expression "(*local_18 == 0)" ( (binary_expression "*local_18 == 0" (pointer_expression "*local_18" * identifier) == number_literal) )) (compound_statement "{\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }" { (expression_statement "*local_18 = param_2;" (assignment_expression "*local_18 = param_2" (pointer_expression "*local_18" * identifier) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 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 "*(int *)(param_1 + 0x10) + 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) )))) + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 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 "*(int *)(param_1 + 0xc) + 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) )))) + number_literal)) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }" else (compound_statement "{\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 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_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\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_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }" { (expression_statement "puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00031314)(8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00031314)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00031314)" ( (pointer_expression "*(code *)PTR_malloc_00031314" * (cast_expression "(code *)PTR_malloc_00031314" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" identifier = number_literal) ;) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_0001d288;" 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)) )) (goto_statement "goto LAB_0001d288;" goto statement_identifier ;)) (expression_statement "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }) (else_clause "else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }" else (compound_statement "{\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\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 "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" * identifier) = identifier) ;) }))) (expression_statement "puVar4[1] = local_18[1];" (assignment_expression "puVar4[1] = local_18[1]" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = (subscript_expression "local_18[1]" identifier [ number_literal ])) ;) (expression_statement "local_18[1] = (uint)puVar4;" (assignment_expression "local_18[1] = (uint)puVar4" (subscript_expression "local_18[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 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 "*(int *)(param_1 + 0x10) + 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) )))) + number_literal)) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }" statement_identifier : (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00031358)" ( (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00031358" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00031358" * (cast_expression "(int *)PTR___stack_chk_guard_00031358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) }))) (expression_statement "puVar7 = PTR___stack_chk_fail_00031348;" (assignment_expression "puVar7 = PTR___stack_chk_fail_00031348" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00031348)();" (call_expression "(*(code *)PTR___stack_chk_fail_00031348)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00031348)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00031348" * (cast_expression "(code *)PTR___stack_chk_fail_00031348" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = **(int **)(puVar7 + 0x13e58);" (assignment_expression "iVar1 = **(int **)(puVar7 + 0x13e58)" identifier = (pointer_expression "**(int **)(puVar7 + 0x13e58)" * (pointer_expression "*(int **)(puVar7 + 0x13e58)" * (cast_expression "(int **)(puVar7 + 0x13e58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x13e58)" ( (binary_expression "puVar7 + 0x13e58" identifier + number_literal) )))))) ;) (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    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    uVar5 = 0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" else (if_statement "if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar5 = uStack_40;\n  }" { (expression_statement "uVar5 = uStack_40;" (assignment_expression "uVar5 = uStack_40" identifier = identifier) ;) })))) (if_statement "if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }" if (parenthesized_expression "(iVar1 != **(int **)(puVar7 + 0x13e58))" ( (binary_expression "iVar1 != **(int **)(puVar7 + 0x13e58)" identifier != (pointer_expression "**(int **)(puVar7 + 0x13e58)" * (pointer_expression "*(int **)(puVar7 + 0x13e58)" * (cast_expression "(int **)(puVar7 + 0x13e58)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x13e58)" ( (binary_expression "puVar7 + 0x13e58" identifier + number_literal) )))))) )) (compound_statement "{\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }" { (expression_statement "pcVar8 = *(code **)(puVar7 + 0x13e48);" (assignment_expression "pcVar8 = *(code **)(puVar7 + 0x13e48)" identifier = (pointer_expression "*(code **)(puVar7 + 0x13e48)" * (cast_expression "(code **)(puVar7 + 0x13e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + 0x13e48)" ( (binary_expression "puVar7 + 0x13e48" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);" (assignment_expression "puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc)" identifier = (cast_expression "(uint *)**(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0x13dcc)" * (pointer_expression "*(int **)(pcVar8 + 0x13dcc)" * (cast_expression "(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dcc)" ( (binary_expression "pcVar8 + 0x13dcc" identifier + number_literal) ))))))) ;) (expression_statement "uVar5 = FUN_0001c504();" (assignment_expression "uVar5 = FUN_0001c504()" identifier = (call_expression "FUN_0001c504()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }" if (parenthesized_expression "((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0))" ( (binary_expression "(uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)" ( (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 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 "*piStack_70 == 0" (pointer_expression "*piStack_70" * identifier) == number_literal)) ))) )) (compound_statement "{\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }" { (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) ;) (expression_statement "dVar9 = (double)iVar3;" (assignment_expression "dVar9 = (double)iVar3" identifier = (cast_expression "(double)iVar3" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" { (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar10 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar10 = (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        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" { (expression_statement "dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }" if (parenthesized_expression "((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14))" ( (binary_expression "(float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)" (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier) < (binary_expression "(float)dVar10 * **(float **)(iVar1 + 0x14)" (cast_expression "(float)dVar10" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "**(float **)(iVar1 + 0x14)" * (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) ))))))) )) (compound_statement "{\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }" { (expression_statement "FUN_0001c0b0(iVar1);" (call_expression "FUN_0001c0b0(iVar1)" identifier (argument_list "(iVar1)" ( 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 "dVar9 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar9 = (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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }" { (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "fVar11 = (float)dVar9;" (assignment_expression "fVar11 = (float)dVar9" identifier = (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "dVar9 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar9 = (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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }" { (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier = (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" * (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }" if (parenthesized_expression "((float)dVar9 < fVar11 * *pfVar6)" ( (binary_expression "(float)dVar9 < fVar11 * *pfVar6" (cast_expression "(float)dVar9" ( (type_descriptor "float" primitive_type) ) identifier) < (binary_expression "fVar11 * *pfVar6" identifier * (pointer_expression "*pfVar6" * identifier))) )) (compound_statement "{\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }" { (if_statement "if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" { (expression_statement "fVar11 = fVar11 * pfVar6[1] * pfVar6[2];" (assignment_expression "fVar11 = fVar11 * pfVar6[1] * pfVar6[2]" identifier = (binary_expression "fVar11 * pfVar6[1] * pfVar6[2]" (binary_expression "fVar11 * pfVar6[1]" identifier * (subscript_expression "pfVar6[1]" identifier [ number_literal ])) * (subscript_expression "pfVar6[2]" identifier [ number_literal ]))) ;) (if_statement "if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" if (parenthesized_expression "(fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier < (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n              uVar2 = (uint)fVar11;\n            }" { (expression_statement "uVar2 = (uint)fVar11;" (assignment_expression "uVar2 = (uint)fVar11" identifier = (cast_expression "(uint)fVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" else (compound_statement "{\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" { (expression_statement "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" identifier = (binary_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier - (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) ))) | number_literal)) ;) }))) }) (else_clause "else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" else (compound_statement "{\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" { (expression_statement "fVar11 = fVar11 * pfVar6[1];" (assignment_expression "fVar11 = fVar11 * pfVar6[1]" identifier = (binary_expression "fVar11 * pfVar6[1]" identifier * (subscript_expression "pfVar6[1]" identifier [ number_literal ]))) ;) (if_statement "if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" if (parenthesized_expression "(fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier < (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n              uVar2 = (uint)fVar11;\n            }" { (expression_statement "uVar2 = (uint)fVar11;" (assignment_expression "uVar2 = (uint)fVar11" identifier = (cast_expression "(uint)fVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" else (compound_statement "{\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" { (expression_statement "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" identifier = (binary_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" ( (binary_expression "fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" identifier - (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" * (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" ( (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" * (cast_expression "(int *)(pcVar8 + 0x13b7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar8 + 0x13b7c)" ( (binary_expression "pcVar8 + 0x13b7c" identifier + number_literal) )))) + number_literal) ))))) ))) | 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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();\n            }" while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar3 = *(int *)(iVar3 + 4);\n              (**(code **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();" (call_expression "(**(code **)(pcVar8 + 0x13dd4))()" (parenthesized_expression "(**(code **)(pcVar8 + 0x13dd4))" ( (pointer_expression "**(code **)(pcVar8 + 0x13dd4)" * (pointer_expression "*(code **)(pcVar8 + 0x13dd4)" * (cast_expression "(code **)(pcVar8 + 0x13dd4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dd4)" ( (binary_expression "pcVar8 + 0x13dd4" 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) ;) })) })) })) })) (if_statement "if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }" if (parenthesized_expression "(puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc))" ( (binary_expression "puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)" identifier == (cast_expression "(uint *)**(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pcVar8 + 0x13dcc)" * (pointer_expression "*(int **)(pcVar8 + 0x13dcc)" * (cast_expression "(int **)(pcVar8 + 0x13dcc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dcc)" ( (binary_expression "pcVar8 + 0x13dcc" identifier + number_literal) ))))))) )) (compound_statement "{\n      return uVar5;\n    }" { (return_statement "return uVar5;" return identifier ;) })) (expression_statement "(**(code **)(pcVar8 + 0x13dbc))();" (call_expression "(**(code **)(pcVar8 + 0x13dbc))()" (parenthesized_expression "(**(code **)(pcVar8 + 0x13dbc))" ( (pointer_expression "**(code **)(pcVar8 + 0x13dbc)" * (pointer_expression "*(code **)(pcVar8 + 0x13dbc)" * (cast_expression "(code **)(pcVar8 + 0x13dbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar8 + 0x13dbc)" ( (binary_expression "pcVar8 + 0x13dbc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (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[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 "*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 ;) })) (return_statement "return uVar5;" return identifier ;) })))
(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 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (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 { (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) ;) }))) (goto_statement goto statement_identifier ;) })) (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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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) ) IDENT)) ;) (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) )))) * IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (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 )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (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 (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_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 ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (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 (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (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 (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 (pointer_expression * IDENT) == LIT)) ))) )) (compound_statement { (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) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 (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) ) IDENT)) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < (binary_expression IDENT * (pointer_expression * IDENT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * (subscript_expression IDENT [ LIT ])) * (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ))) | LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 = (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) ;) })) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (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 ;) })) (return_statement return IDENT ;) })))
(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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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  undefined *puVar7;\n  code *pcVar8;\n  double dVar9;\n  double dVar10;\n  float fVar11;\n  int *piStack_70;\n  uint uStack_40;\n  uint *local_18;\n  int local_14;\n  \n  local_14 = *(int *)PTR___stack_chk_guard_00031358;\n  if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }\n  uVar5 = param_2;\n  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n  if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }\n  dVar9 = (double)*(int *)(param_1 + 0xc);\n  if (*(int *)(param_1 + 0xc) < 0) {\n    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  dVar10 = (double)*(int *)(param_1 + 8);\n  if (*(int *)(param_1 + 8) < 0) {\n    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }\n  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }\n  if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }\nLAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }\n  puVar7 = PTR___stack_chk_fail_00031348;\n  (*(code *)PTR___stack_chk_fail_00031348)();\n  iVar1 = **(int **)(puVar7 + 0x13e58);\n  uVar2 = uVar5;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }\n  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }\n  return uVar5;\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 "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "double dVar9;" (primitive_type "double") (identifier "dVar9") (; ";")) (declaration "double dVar10;" (primitive_type "double") (identifier "dVar10") (; ";")) (declaration "float fVar11;" (primitive_type "float") (identifier "fVar11") (; ";")) (declaration "int *piStack_70;" (primitive_type "int") (pointer_declarator "*piStack_70" (* "*") (identifier "piStack_70")) (; ";")) (declaration "uint uStack_40;" (type_identifier "uint") (identifier "uStack_40") (; ";")) (declaration "uint *local_18;" (type_identifier "uint") (pointer_declarator "*local_18" (* "*") (identifier "local_18")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_00031358;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_00031358" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00031358" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00031358" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00031358")))) (; ";")) (if_statement "if (param_2 == 0) {\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar5 = (*(code *)PTR_abort_00031288)();\n    return uVar5;\n  }" ({ "{") (expression_statement "uVar5 = (*(code *)PTR_abort_00031288)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_00031288)()" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" (( "(") (pointer_expression "*(code *)PTR_abort_00031288" (* "*") (cast_expression "(code *)PTR_abort_00031288" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_00031288"))) () ")")) (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_0001c504(param_1,param_2,&local_18,0);" (assignment_expression "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0)" (identifier "iVar1") (= "=") (call_expression "FUN_0001c504(param_1,param_2,&local_18,0)" (identifier "FUN_0001c504") (argument_list "(param_1,param_2,&local_18,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_18" (& "&") (identifier "local_18")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_3 == (int *)0x0) {\n      uVar2 = 0;\n    }\n    else {\n      *param_3 = iVar1;\n      uVar2 = 0;\n    }\n    goto LAB_0001d288;\n  }" ({ "{") (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")) (; ";")) (} "}")))) (goto_statement "goto LAB_0001d288;" (goto "goto") (statement_identifier "LAB_0001d288") (; ";")) (} "}"))) (expression_statement "dVar9 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar9 = (double)*(int *)(param_1 + 0xc)" (identifier "dVar9") (= "=") (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    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" ({ "{") (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar9") (= "=") (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar9") (+ "+") (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" (* "*") (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" (( "(") (binary_expression "PTR_UINT_00031108 + 0x260" (identifier "PTR_UINT_00031108") (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar10 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar10 = (double)*(int *)(param_1 + 8)" (identifier "dVar10") (= "=") (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    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\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    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);\n  }" ({ "{") (expression_statement "dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar10") (= "=") (binary_expression "dVar10 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar10") (+ "+") (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" (* "*") (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" (( "(") (binary_expression "PTR_UINT_00031108 + 0x260" (identifier "PTR_UINT_00031108") (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (if_statement "if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9)" (( "(") (binary_expression "(float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9" (binary_expression "(float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar10" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar10")) (* "*") (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)dVar9" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar9"))) () ")")) (compound_statement "{\n    FUN_0001c0b0(param_1);\n    iVar1 = *(int *)(param_1 + 0x14);\n    dVar9 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    fVar11 = (float)dVar9;\n    dVar9 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }\n    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }\n  }" ({ "{") (expression_statement "FUN_0001c0b0(param_1);" (call_expression "FUN_0001c0b0(param_1)" (identifier "FUN_0001c0b0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (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 "dVar9 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar9 = (double)*(int *)(param_1 + 8)" (identifier "dVar9") (= "=") (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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" ({ "{") (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar9") (= "=") (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar9") (+ "+") (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" (* "*") (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" (( "(") (binary_expression "PTR_UINT_00031108 + 0x260" (identifier "PTR_UINT_00031108") (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (expression_statement "fVar11 = (float)dVar9;" (assignment_expression "fVar11 = (float)dVar9" (identifier "fVar11") (= "=") (cast_expression "(float)dVar9" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar9"))) (; ";")) (expression_statement "dVar9 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar9 = (double)*(int *)(param_1 + 0xc)" (identifier "dVar9") (= "=") (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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\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      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);\n    }" ({ "{") (expression_statement "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar9") (= "=") (binary_expression "dVar9 + *(double *)(PTR_UINT_00031108 + 0x260)" (identifier "dVar9") (+ "+") (pointer_expression "*(double *)(PTR_UINT_00031108 + 0x260)" (* "*") (cast_expression "(double *)(PTR_UINT_00031108 + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00031108 + 0x260)" (( "(") (binary_expression "PTR_UINT_00031108 + 0x260" (identifier "PTR_UINT_00031108") (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }" (if "if") (parenthesized_expression "(*(float *)(iVar1 + 8) * fVar11 < (float)dVar9)" (( "(") (binary_expression "*(float *)(iVar1 + 8) * fVar11 < (float)dVar9" (binary_expression "*(float *)(iVar1 + 8) * fVar11" (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")) () ")")))) (* "*") (identifier "fVar11")) (< "<") (cast_expression "(float)dVar9" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar9"))) () ")")) (compound_statement "{\n      if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }\n      uVar2 = 0xffffffff;\n      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;\n      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }\n      iVar1 = hash_rehash(param_1);\n      uVar2 = 0xffffffff;\n      if (iVar1 == 0) goto LAB_0001d288;\n      uVar5 = param_2;\n      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);\n      if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }\n    }" ({ "{") (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }\n      else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\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        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);\n      }" ({ "{") (expression_statement "fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);" (assignment_expression "fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8)" (identifier "fVar11") (= "=") (binary_expression "fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8)" (binary_expression "fVar11 * *(float *)(iVar1 + 0xc)" (identifier "fVar11") (* "*") (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")) () ")"))))) (* "*") (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")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }" (else "else") (compound_statement "{\n        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);\n      }" ({ "{") (expression_statement "fVar11 = fVar11 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar11 = fVar11 * *(float *)(iVar1 + 0xc)" (identifier "fVar11") (= "=") (binary_expression "fVar11 * *(float *)(iVar1 + 0xc)" (identifier "fVar11") (* "*") (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")) () ")")))))) (; ";")) (} "}")))) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;" (if "if") (parenthesized_expression "(*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11)" (( "(") (binary_expression "*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11" (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x250)" (* "*") (cast_expression "(float *)(PTR_UINT_00031108 + 0x250)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00031108 + 0x250)" (( "(") (binary_expression "PTR_UINT_00031108 + 0x250" (identifier "PTR_UINT_00031108") (+ "+") (number_literal "0x250")) () ")")))) (<= "<=") (identifier "fVar11")) () ")")) (goto_statement "goto LAB_0001d288;" (goto "goto") (statement_identifier "LAB_0001d288") (; ";"))) (if_statement "if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {\n        uVar5 = (uint)fVar11;\n      }\n      else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" (if "if") (parenthesized_expression "(fVar11 < *(float *)(PTR_UINT_00031108 + 0x254))" (( "(") (binary_expression "fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)" (identifier "fVar11") (< "<") (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" (* "*") (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" (( "(") (binary_expression "PTR_UINT_00031108 + 0x254" (identifier "PTR_UINT_00031108") (+ "+") (number_literal "0x254")) () ")"))))) () ")")) (compound_statement "{\n        uVar5 = (uint)fVar11;\n      }" ({ "{") (expression_statement "uVar5 = (uint)fVar11;" (assignment_expression "uVar5 = (uint)fVar11" (identifier "uVar5") (= "=") (cast_expression "(uint)fVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar11"))) (; ";")) (} "}")) (else_clause "else {\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" (else "else") (compound_statement "{\n        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;\n      }" ({ "{") (expression_statement "uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;" (assignment_expression "uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000" (identifier "uVar5") (= "=") (binary_expression "(int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254))" (( "(") (binary_expression "fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)" (identifier "fVar11") (- "-") (pointer_expression "*(float *)(PTR_UINT_00031108 + 0x254)" (* "*") (cast_expression "(float *)(PTR_UINT_00031108 + 0x254)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_00031108 + 0x254)" (( "(") (binary_expression "PTR_UINT_00031108 + 0x254" (identifier "PTR_UINT_00031108") (+ "+") (number_literal "0x254")) () ")"))))) () ")"))) (| "|") (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") () ")")))) (; ";")) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_0001d288;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001d288;" (goto "goto") (statement_identifier "LAB_0001d288") (; ";"))) (expression_statement "uVar5 = param_2;" (assignment_expression "uVar5 = param_2" (identifier "uVar5") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);" (assignment_expression "iVar1 = FUN_0001c504(param_1,param_2,&local_18,0)" (identifier "iVar1") (= "=") (call_expression "FUN_0001c504(param_1,param_2,&local_18,0)" (identifier "FUN_0001c504") (argument_list "(param_1,param_2,&local_18,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_18" (& "&") (identifier "local_18")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = (*(code *)PTR_abort_00031288)();\n        return uVar5;\n      }" ({ "{") (expression_statement "uVar5 = (*(code *)PTR_abort_00031288)();" (assignment_expression "uVar5 = (*(code *)PTR_abort_00031288)()" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_abort_00031288)()" (parenthesized_expression "(*(code *)PTR_abort_00031288)" (( "(") (pointer_expression "*(code *)PTR_abort_00031288" (* "*") (cast_expression "(code *)PTR_abort_00031288" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_00031288"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (*local_18 == 0) {\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }\n  else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }" (if "if") (parenthesized_expression "(*local_18 == 0)" (( "(") (binary_expression "*local_18 == 0" (pointer_expression "*local_18" (* "*") (identifier "local_18")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *local_18 = param_2;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;\n    uVar2 = 1;\n  }" ({ "{") (expression_statement "*local_18 = param_2;" (assignment_expression "*local_18 = param_2" (pointer_expression "*local_18" (* "*") (identifier "local_18")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 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 "*(int *)(param_1 + 0x10) + 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")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 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 "*(int *)(param_1 + 0xc) + 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")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 1;\n  }" (else "else") (compound_statement "{\n    puVar4 = *(uint **)(param_1 + 0x24);\n    if (puVar4 == (uint *)0x0) {\n      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }\n    puVar4[1] = local_18[1];\n    local_18[1] = (uint)puVar4;\n    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;\n    uVar2 = 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_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }\n    else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\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_00031314)(8);\n      uVar2 = 0xffffffff;\n      if (puVar4 == (uint *)0x0) goto LAB_0001d288;\n      *puVar4 = param_2;\n    }" ({ "{") (expression_statement "puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);" (assignment_expression "puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8)" (identifier "puVar4") (= "=") (cast_expression "(uint *)(*(code *)PTR_malloc_00031314)(8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_00031314)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00031314)" (( "(") (pointer_expression "*(code *)PTR_malloc_00031314" (* "*") (cast_expression "(code *)PTR_malloc_00031314" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00031314"))) () ")")) (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (expression_statement "uVar2 = 0xffffffff;" (assignment_expression "uVar2 = 0xffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if (puVar4 == (uint *)0x0) goto LAB_0001d288;" (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"))) () ")")) (goto_statement "goto LAB_0001d288;" (goto "goto") (statement_identifier "LAB_0001d288") (; ";"))) (expression_statement "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\n    }" (else "else") (compound_statement "{\n      *(uint *)(param_1 + 0x24) = puVar4[1];\n      *puVar4 = param_2;\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 "*puVar4 = param_2;" (assignment_expression "*puVar4 = param_2" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "param_2")) (; ";")) (} "}")))) (expression_statement "puVar4[1] = local_18[1];" (assignment_expression "puVar4[1] = local_18[1]" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "local_18[1]" (identifier "local_18") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_18[1] = (uint)puVar4;" (assignment_expression "local_18[1] = (uint)puVar4" (subscript_expression "local_18[1]" (identifier "local_18") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar4"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 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 "*(int *)(param_1 + 0x10) + 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")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0001d288:\n  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }" (statement_identifier "LAB_0001d288") (: ":") (if_statement "if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(local_14 == *(int *)PTR___stack_chk_guard_00031358)" (( "(") (binary_expression "local_14 == *(int *)PTR___stack_chk_guard_00031358" (identifier "local_14") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_00031358" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00031358" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00031358")))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (expression_statement "puVar7 = PTR___stack_chk_fail_00031348;" (assignment_expression "puVar7 = PTR___stack_chk_fail_00031348" (identifier "puVar7") (= "=") (identifier "PTR___stack_chk_fail_00031348")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00031348)();" (call_expression "(*(code *)PTR___stack_chk_fail_00031348)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00031348)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00031348" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00031348" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00031348"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = **(int **)(puVar7 + 0x13e58);" (assignment_expression "iVar1 = **(int **)(puVar7 + 0x13e58)" (identifier "iVar1") (= "=") (pointer_expression "**(int **)(puVar7 + 0x13e58)" (* "*") (pointer_expression "*(int **)(puVar7 + 0x13e58)" (* "*") (cast_expression "(int **)(puVar7 + 0x13e58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x13e58)" (( "(") (binary_expression "puVar7 + 0x13e58" (identifier "puVar7") (+ "+") (number_literal "0x13e58")) () ")")))))) (; ";")) (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    uVar5 = 0;\n  }\n  else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    uVar5 = 0;\n  }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" (else "else") (if_statement "if (iVar3 == 0) {\n    uVar5 = uStack_40;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar5 = uStack_40;\n  }" ({ "{") (expression_statement "uVar5 = uStack_40;" (assignment_expression "uVar5 = uStack_40" (identifier "uVar5") (= "=") (identifier "uStack_40")) (; ";")) (} "}"))))) (if_statement "if (iVar1 != **(int **)(puVar7 + 0x13e58)) {\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }" (if "if") (parenthesized_expression "(iVar1 != **(int **)(puVar7 + 0x13e58))" (( "(") (binary_expression "iVar1 != **(int **)(puVar7 + 0x13e58)" (identifier "iVar1") (!= "!=") (pointer_expression "**(int **)(puVar7 + 0x13e58)" (* "*") (pointer_expression "*(int **)(puVar7 + 0x13e58)" (* "*") (cast_expression "(int **)(puVar7 + 0x13e58)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x13e58)" (( "(") (binary_expression "puVar7 + 0x13e58" (identifier "puVar7") (+ "+") (number_literal "0x13e58")) () ")")))))) () ")")) (compound_statement "{\n    pcVar8 = *(code **)(puVar7 + 0x13e48);\n    (*pcVar8)();\n    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);\n    uVar5 = FUN_0001c504();\n    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }\n    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }\n    (**(code **)(pcVar8 + 0x13dbc))();\n    *(undefined1 *)(puVar4 + 7) = 1;\n    puVar4[5] = 0;\n    puVar4[6] = 0;\n    *puVar4 = uVar2;\n    puVar4[1] = uVar2;\n    puVar4[2] = uVar2;\n    puVar4[3] = uVar2;\n    puVar4[4] = uVar2;\n    return 1;\n  }" ({ "{") (expression_statement "pcVar8 = *(code **)(puVar7 + 0x13e48);" (assignment_expression "pcVar8 = *(code **)(puVar7 + 0x13e48)" (identifier "pcVar8") (= "=") (pointer_expression "*(code **)(puVar7 + 0x13e48)" (* "*") (cast_expression "(code **)(puVar7 + 0x13e48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar7 + 0x13e48)" (( "(") (binary_expression "puVar7 + 0x13e48" (identifier "puVar7") (+ "+") (number_literal "0x13e48")) () ")"))))) (; ";")) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);" (assignment_expression "puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc)" (identifier "puVar4") (= "=") (cast_expression "(uint *)**(int **)(pcVar8 + 0x13dcc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar8 + 0x13dcc)" (* "*") (pointer_expression "*(int **)(pcVar8 + 0x13dcc)" (* "*") (cast_expression "(int **)(pcVar8 + 0x13dcc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x13dcc)" (( "(") (binary_expression "pcVar8 + 0x13dcc" (identifier "pcVar8") (+ "+") (number_literal "0x13dcc")) () ")"))))))) (; ";")) (expression_statement "uVar5 = FUN_0001c504();" (assignment_expression "uVar5 = FUN_0001c504()" (identifier "uVar5") (= "=") (call_expression "FUN_0001c504()" (identifier "FUN_0001c504") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0))" (( "(") (binary_expression "(uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)" (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)" (( "(") (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 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 "*piStack_70 == 0" (pointer_expression "*piStack_70" (* "*") (identifier "piStack_70")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar3 = *(int *)(iVar1 + 0xc) + -1;\n      *(int *)(iVar1 + 0xc) = iVar3;\n      dVar9 = (double)iVar3;\n      if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      dVar10 = (double)*(int *)(iVar1 + 8);\n      if (*(int *)(iVar1 + 8) < 0) {\n        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }\n      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }\n    }" ({ "{") (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")) (; ";")) (expression_statement "dVar9 = (double)iVar3;" (assignment_expression "dVar9 = (double)iVar3" (identifier "dVar9") (= "=") (cast_expression "(double)iVar3" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar3 < 0) {\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" ({ "{") (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar9") (= "=") (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar9") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (* "*") (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar10 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar10 = (double)*(int *)(iVar1 + 8)" (identifier "dVar10") (= "=") (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        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n      }" ({ "{") (expression_statement "dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar10") (= "=") (binary_expression "dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar10") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (* "*") (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (if_statement "if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14))" (( "(") (binary_expression "(float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)" (cast_expression "(float)dVar9" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar9")) (< "<") (binary_expression "(float)dVar10 * **(float **)(iVar1 + 0x14)" (cast_expression "(float)dVar10" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar10")) (* "*") (pointer_expression "**(float **)(iVar1 + 0x14)" (* "*") (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")) () ")"))))))) () ")")) (compound_statement "{\n        FUN_0001c0b0(iVar1);\n        pfVar6 = *(float **)(iVar1 + 0x14);\n        dVar9 = (double)*(int *)(iVar1 + 8);\n        if (*(int *)(iVar1 + 8) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        fVar11 = (float)dVar9;\n        dVar9 = (double)*(int *)(iVar1 + 0xc);\n        if (*(int *)(iVar1 + 0xc) < 0) {\n          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }\n        if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "FUN_0001c0b0(iVar1);" (call_expression "FUN_0001c0b0(iVar1)" (identifier "FUN_0001c0b0") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (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 "dVar9 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar9 = (double)*(int *)(iVar1 + 8)" (identifier "dVar9") (= "=") (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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }" ({ "{") (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar9") (= "=") (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar9") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (* "*") (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (expression_statement "fVar11 = (float)dVar9;" (assignment_expression "fVar11 = (float)dVar9" (identifier "fVar11") (= "=") (cast_expression "(float)dVar9" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar9"))) (; ";")) (expression_statement "dVar9 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar9 = (double)*(int *)(iVar1 + 0xc)" (identifier "dVar9") (= "=") (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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\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          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);\n        }" ({ "{") (expression_statement "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);" (assignment_expression "dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar9") (= "=") (binary_expression "dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (identifier "dVar9") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (* "*") (cast_expression "(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x260)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x260" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x260")) () ")")))))) (; ";")) (} "}"))) (if_statement "if ((float)dVar9 < fVar11 * *pfVar6) {\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }" (if "if") (parenthesized_expression "((float)dVar9 < fVar11 * *pfVar6)" (( "(") (binary_expression "(float)dVar9 < fVar11 * *pfVar6" (cast_expression "(float)dVar9" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar9")) (< "<") (binary_expression "fVar11 * *pfVar6" (identifier "fVar11") (* "*") (pointer_expression "*pfVar6" (* "*") (identifier "pfVar6")))) () ")")) (compound_statement "{\n          if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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 **)(pcVar8 + 0x13dd4))();\n            }\n            *(undefined4 *)(iVar1 + 0x24) = 0;\n          }\n        }" ({ "{") (if_statement "if (*(char *)(pfVar6 + 4) == '\0') {\n            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }\n          else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\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            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" ({ "{") (expression_statement "fVar11 = fVar11 * pfVar6[1] * pfVar6[2];" (assignment_expression "fVar11 = fVar11 * pfVar6[1] * pfVar6[2]" (identifier "fVar11") (= "=") (binary_expression "fVar11 * pfVar6[1] * pfVar6[2]" (binary_expression "fVar11 * pfVar6[1]" (identifier "fVar11") (* "*") (subscript_expression "pfVar6[1]" (identifier "pfVar6") ([ "[") (number_literal "1") (] "]"))) (* "*") (subscript_expression "pfVar6[2]" (identifier "pfVar6") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" (if "if") (parenthesized_expression "(fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" (( "(") (binary_expression "fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (identifier "fVar11") (< "<") (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (* "*") (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x254")) () ")"))))) () ")")) (compound_statement "{\n              uVar2 = (uint)fVar11;\n            }" ({ "{") (expression_statement "uVar2 = (uint)fVar11;" (assignment_expression "uVar2 = (uint)fVar11" (identifier "uVar2") (= "=") (cast_expression "(uint)fVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar11"))) (; ";")) (} "}")) (else_clause "else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" (else "else") (compound_statement "{\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" ({ "{") (expression_statement "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (identifier "uVar2") (= "=") (binary_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" (( "(") (binary_expression "fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (identifier "fVar11") (- "-") (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (* "*") (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x254")) () ")"))))) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" (else "else") (compound_statement "{\n            fVar11 = fVar11 * pfVar6[1];\n            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }\n          }" ({ "{") (expression_statement "fVar11 = fVar11 * pfVar6[1];" (assignment_expression "fVar11 = fVar11 * pfVar6[1]" (identifier "fVar11") (= "=") (binary_expression "fVar11 * pfVar6[1]" (identifier "fVar11") (* "*") (subscript_expression "pfVar6[1]" (identifier "pfVar6") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {\n              uVar2 = (uint)fVar11;\n            }\n            else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" (if "if") (parenthesized_expression "(fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" (( "(") (binary_expression "fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (identifier "fVar11") (< "<") (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (* "*") (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x254")) () ")"))))) () ")")) (compound_statement "{\n              uVar2 = (uint)fVar11;\n            }" ({ "{") (expression_statement "uVar2 = (uint)fVar11;" (assignment_expression "uVar2 = (uint)fVar11" (identifier "uVar2") (= "=") (cast_expression "(uint)fVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar11"))) (; ";")) (} "}")) (else_clause "else {\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" (else "else") (compound_statement "{\n              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;\n            }" ({ "{") (expression_statement "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;" (assignment_expression "uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (identifier "uVar2") (= "=") (binary_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000" (cast_expression "(int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254))" (( "(") (binary_expression "fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (identifier "fVar11") (- "-") (pointer_expression "*(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (* "*") (cast_expression "(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar8 + 0x13b7c) + 0x254)" (( "(") (binary_expression "*(int *)(pcVar8 + 0x13b7c) + 0x254" (pointer_expression "*(int *)(pcVar8 + 0x13b7c)" (* "*") (cast_expression "(int *)(pcVar8 + 0x13b7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar8 + 0x13b7c)" (( "(") (binary_expression "pcVar8 + 0x13b7c" (identifier "pcVar8") (+ "+") (number_literal "0x13b7c")) () ")")))) (+ "+") (number_literal "0x254")) () ")"))))) () ")"))) (| "|") (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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();\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 **)(pcVar8 + 0x13dd4))();" (call_expression "(**(code **)(pcVar8 + 0x13dd4))()" (parenthesized_expression "(**(code **)(pcVar8 + 0x13dd4))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x13dd4)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x13dd4)" (* "*") (cast_expression "(code **)(pcVar8 + 0x13dd4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x13dd4)" (( "(") (binary_expression "pcVar8 + 0x13dd4" (identifier "pcVar8") (+ "+") (number_literal "0x13dd4")) () ")"))))) () ")")) (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")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {\n      return uVar5;\n    }" (if "if") (parenthesized_expression "(puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc))" (( "(") (binary_expression "puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)" (identifier "puVar4") (== "==") (cast_expression "(uint *)**(int **)(pcVar8 + 0x13dcc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(pcVar8 + 0x13dcc)" (* "*") (pointer_expression "*(int **)(pcVar8 + 0x13dcc)" (* "*") (cast_expression "(int **)(pcVar8 + 0x13dcc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x13dcc)" (( "(") (binary_expression "pcVar8 + 0x13dcc" (identifier "pcVar8") (+ "+") (number_literal "0x13dcc")) () ")"))))))) () ")")) (compound_statement "{\n      return uVar5;\n    }" ({ "{") (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar8 + 0x13dbc))();" (call_expression "(**(code **)(pcVar8 + 0x13dbc))()" (parenthesized_expression "(**(code **)(pcVar8 + 0x13dbc))" (( "(") (pointer_expression "**(code **)(pcVar8 + 0x13dbc)" (* "*") (pointer_expression "*(code **)(pcVar8 + 0x13dbc)" (* "*") (cast_expression "(code **)(pcVar8 + 0x13dbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar8 + 0x13dbc)" (( "(") (binary_expression "pcVar8 + 0x13dbc" (identifier "pcVar8") (+ "+") (number_literal "0x13dbc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (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[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 "*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") (; ";")) (} "}"))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))
(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: (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: (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: (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 (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 (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)))))) (goto_statement label: (statement_identifier)))) (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 (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))))))) (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: (identifier)))) (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: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (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: (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: (identifier))) consequence: (goto_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: (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))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (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: (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: (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: (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)))))) (expression_statement (assignment_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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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: (pointer_expression argument: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (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: (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: (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: (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: (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: (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)))))))) consequence: (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))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (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: (pointer_expression argument: (identifier)) right: (number_literal)))))) consequence: (compound_statement (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))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (subscript_expression argument: (identifier) index: (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: (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: (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: (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: (number_literal)))))))) alternative: (else_clause (compound_statement (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: (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))))))) 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: (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: (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))))))))))) (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: (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))))))))) 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: (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: (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: (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)))) (return_statement (identifier)))))

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

{
  int iVar1;
  uint uVar2;
  int iVar3;
  uint *puVar4;
  uint uVar5;
  float *pfVar6;
  undefined *puVar7;
  code *pcVar8;
  double dVar9;
  double dVar10;
  float fVar11;
  int *piStack_70;
  uint uStack_40;
  uint *local_18;
  int local_14;
  
  local_14 = *(int *)PTR___stack_chk_guard_00031358;
  if (param_2 == 0) {
    uVar5 = (*(code *)PTR_abort_00031288)();
    return uVar5;
  }
  uVar5 = param_2;
  iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);
  if (iVar1 != 0) {
    if (param_3 == (int *)0x0) {
      uVar2 = 0;
    }
    else {
      *param_3 = iVar1;
      uVar2 = 0;
    }
    goto LAB_0001d288;
  }
  dVar9 = (double)*(int *)(param_1 + 0xc);
  if (*(int *)(param_1 + 0xc) < 0) {
    dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);
  }
  dVar10 = (double)*(int *)(param_1 + 8);
  if (*(int *)(param_1 + 8) < 0) {
    dVar10 = dVar10 + *(double *)(PTR_UINT_00031108 + 0x260);
  }
  if ((float)dVar10 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar9) {
    FUN_0001c0b0(param_1);
    iVar1 = *(int *)(param_1 + 0x14);
    dVar9 = (double)*(int *)(param_1 + 8);
    if (*(int *)(param_1 + 8) < 0) {
      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);
    }
    fVar11 = (float)dVar9;
    dVar9 = (double)*(int *)(param_1 + 0xc);
    if (*(int *)(param_1 + 0xc) < 0) {
      dVar9 = dVar9 + *(double *)(PTR_UINT_00031108 + 0x260);
    }
    if (*(float *)(iVar1 + 8) * fVar11 < (float)dVar9) {
      if (*(char *)(iVar1 + 0x10) == '\0') {
        fVar11 = fVar11 * *(float *)(iVar1 + 0xc) * *(float *)(iVar1 + 8);
      }
      else {
        fVar11 = fVar11 * *(float *)(iVar1 + 0xc);
      }
      uVar2 = 0xffffffff;
      if (*(float *)(PTR_UINT_00031108 + 0x250) <= fVar11) goto LAB_0001d288;
      if (fVar11 < *(float *)(PTR_UINT_00031108 + 0x254)) {
        uVar5 = (uint)fVar11;
      }
      else {
        uVar5 = (int)(fVar11 - *(float *)(PTR_UINT_00031108 + 0x254)) | 0x80000000;
      }
      iVar1 = hash_rehash(param_1);
      uVar2 = 0xffffffff;
      if (iVar1 == 0) goto LAB_0001d288;
      uVar5 = param_2;
      iVar1 = FUN_0001c504(param_1,param_2,&local_18,0);
      if (iVar1 != 0) {
        uVar5 = (*(code *)PTR_abort_00031288)();
        return uVar5;
      }
    }
  }
  if (*local_18 == 0) {
    *local_18 = param_2;
    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
    *(int *)(param_1 + 0xc) = *(int *)(param_1 + 0xc) + 1;
    uVar2 = 1;
  }
  else {
    puVar4 = *(uint **)(param_1 + 0x24);
    if (puVar4 == (uint *)0x0) {
      puVar4 = (uint *)(*(code *)PTR_malloc_00031314)(8);
      uVar2 = 0xffffffff;
      if (puVar4 == (uint *)0x0) goto LAB_0001d288;
      *puVar4 = param_2;
    }
    else {
      *(uint *)(param_1 + 0x24) = puVar4[1];
      *puVar4 = param_2;
    }
    puVar4[1] = local_18[1];
    local_18[1] = (uint)puVar4;
    *(int *)(param_1 + 0x10) = *(int *)(param_1 + 0x10) + 1;
    uVar2 = 1;
  }
LAB_0001d288:
  if (local_14 == *(int *)PTR___stack_chk_guard_00031358) {
    return uVar2;
  }
  puVar7 = PTR___stack_chk_fail_00031348;
  (*(code *)PTR___stack_chk_fail_00031348)();
  iVar1 = **(int **)(puVar7 + 0x13e58);
  uVar2 = uVar5;
  iVar3 = MASKED();
  if (iVar3 == -1) {
    uVar5 = 0;
  }
  else if (iVar3 == 0) {
    uVar5 = uStack_40;
  }
  if (iVar1 != **(int **)(puVar7 + 0x13e58)) {
    pcVar8 = *(code **)(puVar7 + 0x13e48);
    (*pcVar8)();
    puVar4 = (uint *)**(int **)(pcVar8 + 0x13dcc);
    uVar5 = FUN_0001c504();
    if ((uVar5 != 0) && (*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, *piStack_70 == 0)) {
      iVar3 = *(int *)(iVar1 + 0xc) + -1;
      *(int *)(iVar1 + 0xc) = iVar3;
      dVar9 = (double)iVar3;
      if (iVar3 < 0) {
        dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
      }
      dVar10 = (double)*(int *)(iVar1 + 8);
      if (*(int *)(iVar1 + 8) < 0) {
        dVar10 = dVar10 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
      }
      if ((float)dVar9 < (float)dVar10 * **(float **)(iVar1 + 0x14)) {
        FUN_0001c0b0(iVar1);
        pfVar6 = *(float **)(iVar1 + 0x14);
        dVar9 = (double)*(int *)(iVar1 + 8);
        if (*(int *)(iVar1 + 8) < 0) {
          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
        }
        fVar11 = (float)dVar9;
        dVar9 = (double)*(int *)(iVar1 + 0xc);
        if (*(int *)(iVar1 + 0xc) < 0) {
          dVar9 = dVar9 + *(double *)(*(int *)(pcVar8 + 0x13b7c) + 0x260);
        }
        if ((float)dVar9 < fVar11 * *pfVar6) {
          if (*(char *)(pfVar6 + 4) == '\0') {
            fVar11 = fVar11 * pfVar6[1] * pfVar6[2];
            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {
              uVar2 = (uint)fVar11;
            }
            else {
              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;
            }
          }
          else {
            fVar11 = fVar11 * pfVar6[1];
            if (fVar11 < *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) {
              uVar2 = (uint)fVar11;
            }
            else {
              uVar2 = (int)(fVar11 - *(float *)(*(int *)(pcVar8 + 0x13b7c) + 0x254)) | 0x80000000;
            }
          }
          iVar3 = hash_rehash(iVar1);
          if (iVar3 == 0) {
            iVar3 = *(int *)(iVar1 + 0x24);
            while (iVar3 != 0) {
              iVar3 = *(int *)(iVar3 + 4);
              (**(code **)(pcVar8 + 0x13dd4))();
            }
            *(undefined4 *)(iVar1 + 0x24) = 0;
          }
        }
      }
    }
    if (puVar4 == (uint *)**(int **)(pcVar8 + 0x13dcc)) {
      return uVar5;
    }
    (**(code **)(pcVar8 + 0x13dbc))();
    *(undefined1 *)(puVar4 + 7) = 1;
    puVar4[5] = 0;
    puVar4[6] = 0;
    *puVar4 = uVar2;
    puVar4[1] = uVar2;
    puVar4[2] = uVar2;
    puVar4[3] = uVar2;
    puVar4[4] = uVar2;
    return 1;
  }
  return uVar5;
}

