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

{
  undefined *puVar1;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  void *pvVar2;
  int iVar3;
  uint uVar4;
  size_t sVar5;
  _Bool _Var9;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  hash_entry *phVar10;
  void *pvVar11;
  Hash_tuning *pHVar12;
  size_t sVar13;
  Hash_table *pHVar14;
  hash_entry *phVar15;
  Hash_table *unaff_s0;
  hash_entry *unaff_s1;
  int *piVar16;
  int *piVar17;
  int iVar18;
  hash_entry *unaff_s3;
  hash_entry **unaff_s4;
  undefined *puVar19;
  code *pcVar20;
  code *pcVar21;
  ulonglong uVar22;
  ulonglong extraout_f0_1;
  double dVar23;
  ulonglong in_f2_3;
  float fVar25;
  double dVar24;
  float fVar26;
  uint uStack_bc;
  hash_entry *phStack_90;
  int iStack_8c;
  hash_entry *phStack_84;
  int *piStack_80;
  undefined *puStack_7c;
  hash_entry *phStack_78;
  code *pcStack_74;
  undefined *puStack_60;
  hash_entry *phStack_58;
  Hash_table *pHStack_54;
  Hash_table *pHStack_4c;
  hash_entry *phStack_48;
  code *pcStack_44;
  hash_entry *bucket;
  Hash_table *local_24;
  
  puVar1 = PTR___stack_chk_guard_00045cc8;
  local_24 = *(Hash_table **)PTR___stack_chk_guard_00045cc8;
  if (entry == (void *)0x0) goto LAB_000284f0;
  unaff_s4 = &bucket;
  unaff_s1 = (hash_entry *)(PTR_LAB_0004586c + 0x71e0);
  phVar15 = (hash_entry *)entry;
  pvVar2 = hash_find_entry(table,entry,unaff_s4,false);
  if (pvVar2 == (void *)0x0) {
    dVar23 = (double)(int)table->n_buckets_used;
    if ((int)table->n_buckets_used < 0) {
      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
    }
    dVar24 = (double)(int)table->n_buckets;
    if ((int)table->n_buckets < 0) {
      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
    }
    if ((float)dVar24 * table->tuning->growth_threshold < (float)dVar23) {
      check_tuning((Hash_table *)&table->tuning);
      pHVar12 = table->tuning;
      dVar23 = (double)(int)table->n_buckets;
      if ((int)table->n_buckets < 0) {
        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
      }
      dVar24 = (double)(int)table->n_buckets_used;
      if ((int)table->n_buckets_used < 0) {
        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
      }
      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {
        fVar25 = (float)dVar23 * pHVar12->growth_factor;
        if (pHVar12->is_n_buckets == false) {
          fVar25 = fVar25 * pHVar12->growth_threshold;
        }
        uVar22 = (ulonglong)(uint)fVar25;
        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {
LAB_00028454:
          iVar3 = -1;
          goto LAB_000282f0;
        }
        in_f2_3 = (ulonglong)
                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);
        uVar4 = 0x80000000;
        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {
          phVar15 = (hash_entry *)(int)fVar25;
          goto LAB_000284bc;
        }
        while( true ) {
          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);
LAB_000284bc:
          _Var9 = hash_rehash(table,(size_t)phVar15);
          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;
          phVar15 = (hash_entry *)entry;
          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);
          unaff_s0 = table;
          unaff_s3 = (hash_entry *)entry;
          if (pvVar2 == (void *)0x0) break;
LAB_000284f0:
          entry = unaff_s3;
          table = unaff_s0;
          uVar4 = (*(code *)PTR_abort_00045be0)();
          uVar22 = extraout_f0_1;
        }
      }
    }
    iVar3 = 1;
    unaff_s1 = bucket;
    if (bucket->data == (void *)0x0) {
      sVar13 = table->n_entries;
      sVar5 = table->n_buckets_used;
      bucket->data = entry;
      table->n_entries = sVar13 + 1;
      table->n_buckets_used = sVar5 + 1;
    }
    else {
      phVar10 = table->free_entry_list;
      if (phVar10 == (hash_entry *)0x0) {
        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);
        if (phVar10 == (hash_entry *)0x0) {
          iVar3 = -1;
          goto LAB_000282f0;
        }
      }
      else {
        table->free_entry_list = phVar10->next;
      }
      sVar5 = table->n_entries;
      iVar3 = 1;
      phVar15 = bucket->next;
      phVar10->data = entry;
      phVar10->next = phVar15;
      bucket->next = phVar10;
      table->n_entries = sVar5 + 1;
    }
  }
  else if (matched_ent == (void **)0x0) {
    iVar3 = 0;
  }
  else {
    *matched_ent = pvVar2;
    iVar3 = 0;
  }
LAB_000282f0:
  if (local_24 == *(Hash_table **)puVar1) {
    return iVar3;
  }
  pcVar20 = hash_insert;
  pHVar14 = local_24;
  puVar19 = PTR___stack_chk_fail_00045ca8;
  (*(code *)PTR___stack_chk_fail_00045ca8)();
  puStack_60 = puVar19 + 0x25314;
  piVar16 = *(int **)(puVar19 + 0x1d7ac);
  pHStack_54 = (Hash_table *)*piVar16;
  phVar10 = phVar15;
  pHStack_4c = table;
  phStack_48 = unaff_s1;
  pcStack_44 = pcVar20;
  iVar3 = hash_insert_if_absent(pHVar14,phVar15,&phStack_58);
  if (iVar3 == -1) {
    phStack_58 = (hash_entry *)0x0;
  }
  else if (iVar3 != 0) {
    phStack_58 = phVar15;
  }
  if (pHStack_54 == (Hash_table *)*piVar16) {
    return (int)phStack_58;
  }
  pcVar20 = *(code **)(puStack_60 + -0x7b88);
  pcVar21 = hash_delete;
  pHVar14 = pHStack_54;
  (*pcVar20)();
  piVar17 = *(int **)(pcVar20 + 0x1d720);
  puStack_7c = puVar1;
  iStack_8c = *piVar17;
  phStack_84 = phVar15;
  piStack_80 = piVar16;
  phStack_78 = (hash_entry *)entry;
  pcStack_74 = pcVar21;
  pvVar2 = hash_find_entry(pHVar14,phVar10,&phStack_90,true);
  if ((pvVar2 == (void *)0x0) ||
     (pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,
     pvVar11 != (void *)0x0)) goto LAB_0002861c;
  sVar5 = pHVar14->n_buckets_used - 1;
  pHVar14->n_buckets_used = sVar5;
  if ((int)sVar5 < 0) {
    pHVar12 = pHVar14->tuning;
    fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0));
    dVar23 = (double)(int)pHVar14->n_buckets;
    if ((int)pHVar14->n_buckets < 0) {
      iVar3 = *(int *)(pcVar20 + 0x1d2c0);
      goto LAB_00028774;
    }
LAB_00028678:
    if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;
  }
  else {
    fVar25 = (float)(int)sVar5;
    pHVar12 = pHVar14->tuning;
    dVar23 = (double)(int)pHVar14->n_buckets;
    if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;
    iVar3 = *(int *)(pcVar20 + 0x1d2c0);
LAB_00028774:
    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)
    goto LAB_0002861c;
  }
  check_tuning((Hash_table *)&pHVar14->tuning);
  pHVar12 = pHVar14->tuning;
  dVar23 = (double)(int)pHVar14->n_buckets;
  if ((int)pHVar14->n_buckets < 0) {
    dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);
  }
  dVar24 = (double)(int)pHVar14->n_buckets_used;
  if ((int)pHVar14->n_buckets_used < 0) {
    dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);
  }
  if ((float)dVar23 * pHVar12->shrink_threshold <= (float)dVar24) goto LAB_0002861c;
  fVar25 = (float)dVar23 * pHVar12->shrink_factor;
  if (pHVar12->is_n_buckets == false) {
    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);
    fVar25 = fVar25 * pHVar12->growth_threshold;
    if (fVar26 <= fVar25) goto LAB_0002871c;
LAB_000287e4:
    sVar5 = (size_t)fVar25;
  }
  else {
    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);
    if (fVar25 < fVar26) goto LAB_000287e4;
LAB_0002871c:
    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;
  }
  _Var9 = hash_rehash(pHVar14,sVar5);
  if (CONCAT31(extraout_var_00,_Var9) == 0) {
    phVar15 = pHVar14->free_entry_list;
    while (phVar15 != (hash_entry *)0x0) {
      phVar15 = phVar15->next;
      (**(code **)(pcVar20 + 0x1d730))();
    }
    pHVar14->free_entry_list = (hash_entry *)0x0;
  }
LAB_0002861c:
  if (iStack_8c == *piVar17) {
    return (int)pvVar2;
  }
  pcVar20 = *(code **)(pcVar20 + 0x1d700);
  iVar3 = iStack_8c;
  (*pcVar20)();
  if (iVar3 != 0) {
    iVar6 = (**(code **)(pcVar20 + 0x1d41c))();
    if (((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&
       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),
       iVar7 == 0)) {
      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);
      if (iVar3 != 0) {
        **(int **)(pcVar20 + 0x1d34c) = iVar18;
        piVar16 = *(int **)(pcVar20 + 0x1d428);
        *piVar16 = iVar18;
        return (int)piVar16;
      }
      iVar3 = iVar6 + 4;
      **(int **)(pcVar20 + 0x1d3f8) = iVar3;
    }
    **(int **)(pcVar20 + 0x1d34c) = iVar3;
    piVar16 = *(int **)(pcVar20 + 0x1d428);
    *piVar16 = iVar3;
    return (int)piVar16;
  }
  iVar6 = 1;
  iVar3 = *(int *)(pcVar20 + 0x1d068) + 0x36d0;
  (**(code **)(pcVar20 + 0x1d49c))(iVar3);
  pcVar21 = *(code **)(pcVar20 + 0x1d3e0);
  (*pcVar21)();
  if (iVar6 == 0) {
    (**(code **)(pcVar21 + 0x1d2c4))();
  }
  else {
    (**(code **)(pcVar21 + 0x1d2c4))();
  }
  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5);
  (**(code **)(pcVar21 + 0x1d2c4))(iVar3,1,*(undefined4 *)(pcVar21 + 0x1d220),uVar8,0x7e3);
  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5);
  (**(code **)(pcVar21 + 0x1d2a0))(uVar8,iVar3);
  if (uStack_bc < 10) {
                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))
                      ();
    return iVar3;
  }
  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5);
  iVar3 = (**(code **)(pcVar21 + 0x1d2c4))
                    (iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),
                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),
                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),
                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),
                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050));
  return iVar3;
}



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

{
  int iVar1;
  int *piVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  undefined4 uVar6;
  uint *puVar7;
  int iVar8;
  float *pfVar9;
  int unaff_s0;
  int *unaff_s3;
  uint **unaff_s4;
  undefined *puVar10;
  code *pcVar11;
  code *pcVar12;
  ulonglong uVar13;
  ulonglong extraout_f0_1;
  double dVar14;
  uint uVar15;
  ulonglong in_f2_3;
  float fVar17;
  double dVar16;
  float fVar18;
  uint uStack_bc;
  int *piStack_90;
  int *piStack_58;
  uint *local_28;
  int local_24;
  
  puVar10 = PTR___stack_chk_guard_00045cc8;
  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;
  if (param_2 == (int *)0x0) goto LAB_000284f0;
  unaff_s4 = &local_28;
  piVar4 = param_2;
  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);
  if (iVar1 == 0) {
    dVar14 = (double)*(int *)(param_1 + 0xc);
    if (*(int *)(param_1 + 0xc) < 0) {
      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
    }
    dVar16 = (double)*(int *)(param_1 + 8);
    if (*(int *)(param_1 + 8) < 0) {
      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
    }
    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {
      FUN_00027328(param_1 + 0x14);
      iVar1 = *(int *)(param_1 + 0x14);
      dVar14 = (double)*(int *)(param_1 + 8);
      if (*(int *)(param_1 + 8) < 0) {
        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
      }
      dVar16 = (double)*(int *)(param_1 + 0xc);
      if (*(int *)(param_1 + 0xc) < 0) {
        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
      }
      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {
        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);
        if (*(char *)(iVar1 + 0x10) == '\0') {
          fVar17 = fVar17 * *(float *)(iVar1 + 8);
        }
        uVar13 = (ulonglong)(uint)fVar17;
        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {
LAB_00028454:
          piVar2 = (int *)0xffffffff;
          goto LAB_000282f0;
        }
        in_f2_3 = (ulonglong)
                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);
        uVar15 = 0x80000000;
        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {
          piVar4 = (int *)(int)fVar17;
          goto LAB_000284bc;
        }
        while( true ) {
          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);
LAB_000284bc:
          iVar1 = hash_rehash(param_1);
          if (iVar1 == 0) goto LAB_00028454;
          piVar4 = param_2;
          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);
          unaff_s0 = param_1;
          unaff_s3 = param_2;
          if (iVar1 == 0) break;
LAB_000284f0:
          param_2 = unaff_s3;
          param_1 = unaff_s0;
          uVar15 = (*(code *)PTR_abort_00045be0)();
          uVar13 = extraout_f0_1;
        }
      }
    }
    piVar2 = (int *)0x1;
    if (*local_28 == 0) {
      iVar3 = *(int *)(param_1 + 0x10);
      iVar1 = *(int *)(param_1 + 0xc);
      *local_28 = (uint)param_2;
      *(int *)(param_1 + 0x10) = iVar3 + 1;
      *(int *)(param_1 + 0xc) = iVar1 + 1;
    }
    else {
      puVar7 = *(uint **)(param_1 + 0x24);
      if (puVar7 == (uint *)0x0) {
        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);
        if (puVar7 == (uint *)0x0) {
          piVar2 = (int *)0xffffffff;
          goto LAB_000282f0;
        }
      }
      else {
        *(uint *)(param_1 + 0x24) = puVar7[1];
      }
      iVar1 = *(int *)(param_1 + 0x10);
      piVar2 = (int *)0x1;
      piVar4 = (int *)local_28[1];
      *puVar7 = (uint)param_2;
      puVar7[1] = (uint)piVar4;
      local_28[1] = (uint)puVar7;
      *(int *)(param_1 + 0x10) = iVar1 + 1;
    }
  }
  else if (param_3 == (int *)0x0) {
    piVar2 = (int *)0x0;
  }
  else {
    *param_3 = iVar1;
    piVar2 = (int *)0x0;
  }
LAB_000282f0:
  if (local_24 == *(int *)puVar10) {
    return piVar2;
  }
  puVar10 = PTR___stack_chk_fail_00045ca8;
  (*(code *)PTR___stack_chk_fail_00045ca8)();
  piVar2 = *(int **)(puVar10 + 0x1d7ac);
  iVar1 = *piVar2;
  iVar3 = hash_insert_if_absent();
  if (iVar3 == -1) {
    piStack_58 = (int *)0x0;
  }
  else if (iVar3 != 0) {
    piStack_58 = piVar4;
  }
  if (iVar1 == *piVar2) {
    return piStack_58;
  }
  pcVar11 = *(code **)(puVar10 + 0x1d78c);
  (*pcVar11)();
  piVar2 = *(int **)(pcVar11 + 0x1d720);
  iVar3 = *piVar2;
  piVar4 = (int *)FUN_000271e0();
  if ((piVar4 == (int *)0x0) ||
     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))
  goto LAB_0002861c;
  iVar8 = *(int *)(iVar1 + 0xc) + -1;
  *(int *)(iVar1 + 0xc) = iVar8;
  if (iVar8 < 0) {
    pfVar9 = *(float **)(iVar1 + 0x14);
    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));
    dVar14 = (double)*(int *)(iVar1 + 8);
    if (*(int *)(iVar1 + 8) < 0) {
      iVar8 = *(int *)(pcVar11 + 0x1d2c0);
      goto LAB_00028774;
    }
LAB_00028678:
    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;
  }
  else {
    fVar17 = (float)iVar8;
    pfVar9 = *(float **)(iVar1 + 0x14);
    dVar14 = (double)*(int *)(iVar1 + 8);
    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;
    iVar8 = *(int *)(pcVar11 + 0x1d2c0);
LAB_00028774:
    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;
  }
  FUN_00027328(iVar1 + 0x14);
  pfVar9 = *(float **)(iVar1 + 0x14);
  dVar14 = (double)*(int *)(iVar1 + 8);
  if (*(int *)(iVar1 + 8) < 0) {
    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);
  }
  dVar16 = (double)*(int *)(iVar1 + 0xc);
  if (*(int *)(iVar1 + 0xc) < 0) {
    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);
  }
  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;
  fVar17 = (float)dVar14 * pfVar9[1];
  if (*(char *)(pfVar9 + 4) == '\0') {
    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);
    fVar17 = fVar17 * pfVar9[2];
    if (fVar18 <= fVar17) goto LAB_0002871c;
LAB_000287e4:
    uVar15 = (uint)fVar17;
  }
  else {
    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);
    if (fVar17 < fVar18) goto LAB_000287e4;
LAB_0002871c:
    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;
  }
  iVar8 = hash_rehash(iVar1,uVar15);
  if (iVar8 == 0) {
    iVar8 = *(int *)(iVar1 + 0x24);
    while (iVar8 != 0) {
      iVar8 = *(int *)(iVar8 + 4);
      (**(code **)(pcVar11 + 0x1d730))();
    }
    *(undefined4 *)(iVar1 + 0x24) = 0;
  }
LAB_0002861c:
  if (iVar3 == *piVar2) {
    return piVar4;
  }
  pcVar11 = *(code **)(pcVar11 + 0x1d700);
  (*pcVar11)();
  if (iVar3 != 0) {
    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();
    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&
       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),
       iVar5 == 0)) {
      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);
      if (iVar3 != 0) {
        **(int **)(pcVar11 + 0x1d34c) = iVar8;
        piVar4 = *(int **)(pcVar11 + 0x1d428);
        *piVar4 = iVar8;
        return piVar4;
      }
      iVar3 = iVar1 + 4;
      **(int **)(pcVar11 + 0x1d3f8) = iVar3;
    }
    **(int **)(pcVar11 + 0x1d34c) = iVar3;
    piVar4 = *(int **)(pcVar11 + 0x1d428);
    *piVar4 = iVar3;
    return piVar4;
  }
  iVar3 = 1;
  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;
  (**(code **)(pcVar11 + 0x1d49c))(iVar1);
  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);
  (*pcVar12)();
  if (iVar3 == 0) {
    (**(code **)(pcVar12 + 0x1d2c4))();
  }
  else {
    (**(code **)(pcVar12 + 0x1d2c4))();
  }
  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);
  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);
  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);
  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);
  if (uStack_bc < 10) {
                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    piVar4 = (int *)(*(pcVar12 +
                      (int)(&UNK_00024f00 +
                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();
    return piVar4;
  }
  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);
  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))
                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),
                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),
                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),
                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),
                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));
  return piVar4;
}


lui gp,0x2
addiu gp,gp,0x55c0
addu gp,gp,t9
addiu sp,sp,-0x40
sw s2,0x2c(sp)
lw s2,-0x7b68(gp)
sw gp,0x10(sp)
sw ra,0x3c(sp)
sw s5,0x38(sp)
sw s4,0x34(sp)
sw s3,0x30(sp)
sw s1,0x28(sp)
sw s0,0x24(sp)
lw v0,0x0(s2)
sw v0,0x1c(sp)
beq a1,zero,0x000284f0
_or a3,zero,zero
lw s1,-0x7fc4(gp)
addiu s4,sp,0x18
or s5,a2,zero
addiu s1,s1,0x71e0
or a2,s4,zero
or t9,s1,zero
or s3,a1,zero
bal 0x000271e0
_or s0,a0,zero
beq v0,zero,0x00028320
_lw gp,0x10(sp)
beq s5,zero,0x000283c0
_nop
sw v0,0x0(s5)
or v0,zero,zero
lw a0,0x1c(sp)
lw v1,0x0(s2)
bne a0,v1,0x00028510
_lw ra,0x3c(sp)
lw s5,0x38(sp)
lw s4,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x40
lw v0,0xc(s0)
mtc1 v0,f0
bgez v0,0x0002833c
_cvt.d.W f0,f0
lw v0,-0x7fc8(gp)
ldc1 f2,0x36c0(v0)
add.D f0,f0,f2
lw v0,0x8(s0)
cvt.s.D f2,f0
lw v1,0x14(s0)
mtc1 v0,f0
bgez v0,0x00028360
_cvt.d.W f0,f0
lw v0,-0x7fc8(gp)
ldc1 f4,0x36c0(v0)
add.D f0,f0,f4
lwc1 f4,0x8(v1)
cvt.s.D f0,f0
mul.S f0,f0,f4
c.lt.S f0,f2
bc1t 0x000283c8
_lw t9,-0x7fc4(gp)
lw s1,0x18(sp)
lw v0,0x0(s1)
beq v0,zero,0x0002845c
_li v0,0x1
lw v1,0x24(s0)
beq v1,zero,0x0002847c
_lw t9,-0x7bb0(gp)
lw v0,0x4(v1)
sw v0,0x24(s0)
lw a0,0x10(s0)
li v0,0x1
lw a1,0x4(s1)
sw s3,0x0(v1)
addiu a0,a0,0x1
sw a1,0x4(v1)
sw v1,0x4(s1)
b 0x000282f0
_sw a0,0x10(s0)
b 0x000282f0
_or v0,zero,zero
addiu t9,t9,0x7328
bal 0x00027328
_addiu a0,s0,0x14
lw v0,0x8(s0)
lw v1,0x14(s0)
lw gp,0x10(sp)
mtc1 v0,f0
lwc1 f4,0x8(v1)
bgez v0,0x000283fc
_cvt.d.W f0,f0
lw v0,-0x7fc8(gp)
ldc1 f2,0x36c0(v0)
add.D f0,f0,f2
lw v0,0xc(s0)
cvt.s.D f0,f0
mtc1 v0,f2
bgez v0,0x0002841c
_cvt.d.W f2,f2
lw v0,-0x7fc8(gp)
ldc1 f6,0x36c0(v0)
add.D f2,f2,f6
cvt.s.D f2,f2
mul.S f6,f4,f0
c.lt.S f6,f2
bc1f 0x1,0x00028378
_nop
lwc1 f2,0xc(v1)
lbu v0,0x10(v1)
beq v0,zero,0x00028498
_mul.S f0,f0,f2
lw v0,-0x7fc8(gp)
lwc1 f2,0x36b8(v0)
c.le.S f2,f0
bc1f 0x2,0x000284a0
_nop
b 0x000282f0
_li v0,-0x1
lw a0,0x10(s0)
lw v1,0xc(s0)
sw s3,0x0(s1)
addiu a0,a0,0x1
addiu v1,v1,0x1
sw a0,0x10(s0)
b 0x000282f0
_sw v1,0xc(s0)
jalr t9
_li a0,0x8
lw gp,0x10(sp)
bne v0,zero,0x0002839c
_or v1,v0,zero
b 0x000282f0
_li v0,-0x1
b 0x00028440
_mul.S f0,f0,f4
lw v0,-0x7fc8(gp)
lwc1 f2,0x36bc(v0)
c.le.S f2,f0
bc1t 0x3,0x000284fc
_lui v0,0x8000
trunc.w.S f0,f0
mfc1 a1,f0
lw t9,-0x7cec(gp)
bal 0x00028008
_or a0,s0,zero
beq v0,zero,0x00028454
_lw gp,0x10(sp)
or a3,zero,zero
or a2,s4,zero
or a1,s3,zero
or t9,s1,zero
bal 0x000271e0
_or a0,s0,zero
beq v0,zero,0x00028378
_lw gp,0x10(sp)
lw t9,-0x7c50(gp)
jalr t9
_nop
sub.S S f0,f0,f2
trunc.w.S f0,f0
mfc1 a1,f0
b 0x000284bc
_or a1,a1,v0
lw t9,-0x7b88(gp)
jalr t9
_nop
(translation_unit "int * hash_insert_if_absent(int param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}\n\n" (function_definition "int * hash_insert_if_absent(int param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}" primitive_type (pointer_declarator "* hash_insert_if_absent(int param_1,int *param_2,int *param_3)" * (function_declarator "hash_insert_if_absent(int param_1,int *param_2,int *param_3)" identifier (parameter_list "(int param_1,int *param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "float *pfVar9;" primitive_type (pointer_declarator "*pfVar9" * identifier) ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint **unaff_s4;" type_identifier (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * 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 "ulonglong uVar13;" type_identifier identifier ;) (declaration "ulonglong extraout_f0_1;" type_identifier identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "ulonglong in_f2_3;" type_identifier identifier ;) (declaration "float fVar17;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "float fVar18;" primitive_type identifier ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "int *piStack_90;" primitive_type (pointer_declarator "*piStack_90" * identifier) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar10 = PTR___stack_chk_guard_00045cc8;" (assignment_expression "puVar10 = PTR___stack_chk_guard_00045cc8" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_00045cc8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_00045cc8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00045cc8" * (cast_expression "(int *)PTR___stack_chk_guard_00045cc8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == (int *)0x0) goto LAB_000284f0;" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000284f0;" goto statement_identifier ;)) (expression_statement "unaff_s4 = &local_28;" (assignment_expression "unaff_s4 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "piVar4 = param_2;" (assignment_expression "piVar4 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);" (assignment_expression "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier = (call_expression "FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier (argument_list "(param_1,param_2,unaff_s4,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }" { (expression_statement "dVar14 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar14 = (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      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" { (expression_statement "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar16 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar16 = (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      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" { (expression_statement "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }" if (parenthesized_expression "((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14)" ( (binary_expression "(float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14" (binary_expression "(float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar16" ( (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)dVar14" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }" { (expression_statement "FUN_00027328(param_1 + 0x14);" (call_expression "FUN_00027328(param_1 + 0x14)" identifier (argument_list "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar14 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar14 = (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        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" { (expression_statement "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar16 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar16 = (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        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" { (expression_statement "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (if_statement "if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }" if (parenthesized_expression "(*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16)" ( (binary_expression "*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16" (binary_expression "*(float *)(iVar1 + 8) * (float)dVar14" (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) * (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier)) < (cast_expression "(float)dVar16" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }" { (expression_statement "fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc)" identifier = (binary_expression "(float)dVar14 * *(float *)(iVar1 + 0xc)" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*(float *)(iVar1 + 0xc)" * (cast_expression "(float *)(iVar1 + 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x10) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x10)" * (cast_expression "(char *)(iVar1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }" { (expression_statement "fVar17 = fVar17 * *(float *)(iVar1 + 8);" (assignment_expression "fVar17 = fVar17 * *(float *)(iVar1 + 8)" identifier = (binary_expression "fVar17 * *(float *)(iVar1 + 8)" identifier * (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (ulonglong)(uint)fVar17;" (assignment_expression "uVar13 = (ulonglong)(uint)fVar17" identifier = (cast_expression "(ulonglong)(uint)fVar17" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)fVar17" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" if (parenthesized_expression "(*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17)" ( (binary_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17" (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" { (labeled_statement "LAB_00028454:\n          piVar2 = (int *)0xffffffff;" statement_identifier : (expression_statement "piVar2 = (int *)0xffffffff;" (assignment_expression "piVar2 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_000282f0;" goto statement_identifier ;) })) (expression_statement "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);" (assignment_expression "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" identifier = (binary_expression "(ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (call_expression "(ulonglong)\n                  (uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = 0x80000000;" (assignment_expression "uVar15 = 0x80000000" identifier = number_literal) ;) (if_statement "if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }" if (parenthesized_expression "(fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc))" ( (binary_expression "fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" identifier < (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" identifier + number_literal) ))))) )) (compound_statement "{\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }" { (expression_statement "piVar4 = (int *)(int)fVar17;" (assignment_expression "piVar4 = (int *)(int)fVar17" identifier = (cast_expression "(int *)(int)fVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_000284bc;" goto statement_identifier ;) })) (while_statement "while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }" { (expression_statement "piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);" (assignment_expression "piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15)" identifier = (cast_expression "(int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((float)uVar13 - (float)in_f2_3) | uVar15)" ( (binary_expression "(int)((float)uVar13 - (float)in_f2_3) | uVar15" (cast_expression "(int)((float)uVar13 - (float)in_f2_3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((float)uVar13 - (float)in_f2_3)" ( (binary_expression "(float)uVar13 - (float)in_f2_3" (cast_expression "(float)uVar13" ( (type_descriptor "float" primitive_type) ) identifier) - (cast_expression "(float)in_f2_3" ( (type_descriptor "float" primitive_type) ) identifier)) ))) | identifier) )))) ;) (labeled_statement "LAB_000284bc:\n          iVar1 = hash_rehash(param_1);" statement_identifier : (expression_statement "iVar1 = hash_rehash(param_1);" (assignment_expression "iVar1 = hash_rehash(param_1)" identifier = (call_expression "hash_rehash(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (if_statement "if (iVar1 == 0) goto LAB_00028454;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028454;" goto statement_identifier ;)) (expression_statement "piVar4 = param_2;" (assignment_expression "piVar4 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);" (assignment_expression "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier = (call_expression "FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier (argument_list "(param_1,param_2,unaff_s4,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s3 = param_2;" (assignment_expression "unaff_s3 = param_2" identifier = identifier) ;) (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000284f0:\n          param_2 = unaff_s3;" statement_identifier : (expression_statement "param_2 = unaff_s3;" (assignment_expression "param_2 = unaff_s3" identifier = identifier) ;)) (expression_statement "param_1 = unaff_s0;" (assignment_expression "param_1 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar15 = (*(code *)PTR_abort_00045be0)();" (assignment_expression "uVar15 = (*(code *)PTR_abort_00045be0)()" identifier = (call_expression "(*(code *)PTR_abort_00045be0)()" (parenthesized_expression "(*(code *)PTR_abort_00045be0)" ( (pointer_expression "*(code *)PTR_abort_00045be0" * (cast_expression "(code *)PTR_abort_00045be0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar13 = extraout_f0_1;" (assignment_expression "uVar13 = extraout_f0_1" identifier = identifier) ;) })) })) })) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" if (parenthesized_expression "(*local_28 == 0)" ( (binary_expression "*local_28 == 0" (pointer_expression "*local_28" * identifier) == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*local_28 = (uint)param_2;" (assignment_expression "*local_28 = (uint)param_2" (pointer_expression "*local_28" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0xc) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" else (compound_statement "{\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" { (expression_statement "puVar7 = *(uint **)(param_1 + 0x24);" (assignment_expression "puVar7 = *(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 (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }" { (expression_statement "puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);" (assignment_expression "puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00045c80)(8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00045c80)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00045c80)" ( (pointer_expression "*(code *)PTR_malloc_00045c80" * (cast_expression "(code *)PTR_malloc_00045c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" { (expression_statement "piVar2 = (int *)0xffffffff;" (assignment_expression "piVar2 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000282f0;" goto statement_identifier ;) })) }) (else_clause "else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" else (compound_statement "{\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" { (expression_statement "*(uint *)(param_1 + 0x24) = puVar7[1];" (assignment_expression "*(uint *)(param_1 + 0x24) = puVar7[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 "puVar7[1]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar1 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar4 = (int *)local_28[1];" (assignment_expression "piVar4 = (int *)local_28[1]" identifier = (cast_expression "(int *)local_28[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar7 = (uint)param_2;" (assignment_expression "*puVar7 = (uint)param_2" (pointer_expression "*puVar7" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar7[1] = (uint)piVar4;" (assignment_expression "puVar7[1] = (uint)piVar4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)piVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_28[1] = (uint)puVar7;" (assignment_expression "local_28[1] = (uint)puVar7" (subscript_expression "local_28[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" else (if_statement "if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\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    piVar2 = (int *)0x0;\n  }" { (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" else (compound_statement "{\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" { (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (labeled_statement "LAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar10)" ( (binary_expression "local_24 == *(int *)puVar10" identifier == (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar2;\n  }" { (return_statement "return piVar2;" return identifier ;) }))) (expression_statement "puVar10 = PTR___stack_chk_fail_00045ca8;" (assignment_expression "puVar10 = PTR___stack_chk_fail_00045ca8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00045ca8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00045ca8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00045ca8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00045ca8" * (cast_expression "(code *)PTR___stack_chk_fail_00045ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = *(int **)(puVar10 + 0x1d7ac);" (assignment_expression "piVar2 = *(int **)(puVar10 + 0x1d7ac)" identifier = (pointer_expression "*(int **)(puVar10 + 0x1d7ac)" * (cast_expression "(int **)(puVar10 + 0x1d7ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1d7ac)" ( (binary_expression "puVar10 + 0x1d7ac" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar2;" (assignment_expression "iVar1 = *piVar2" identifier = (pointer_expression "*piVar2" * 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    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    piStack_58 = (int *)0x0;\n  }" { (expression_statement "piStack_58 = (int *)0x0;" (assignment_expression "piStack_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" else (if_statement "if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    piStack_58 = piVar4;\n  }" { (expression_statement "piStack_58 = piVar4;" (assignment_expression "piStack_58 = piVar4" identifier = identifier) ;) })))) (if_statement "if (iVar1 == *piVar2) {\n    return piStack_58;\n  }" if (parenthesized_expression "(iVar1 == *piVar2)" ( (binary_expression "iVar1 == *piVar2" identifier == (pointer_expression "*piVar2" * identifier)) )) (compound_statement "{\n    return piStack_58;\n  }" { (return_statement "return piStack_58;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x1d78c);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x1d78c)" identifier = (pointer_expression "*(code **)(puVar10 + 0x1d78c)" * (cast_expression "(code **)(puVar10 + 0x1d78c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1d78c)" ( (binary_expression "puVar10 + 0x1d78c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = *(int **)(pcVar11 + 0x1d720);" (assignment_expression "piVar2 = *(int **)(pcVar11 + 0x1d720)" identifier = (pointer_expression "*(int **)(pcVar11 + 0x1d720)" * (cast_expression "(int **)(pcVar11 + 0x1d720)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d720)" ( (binary_expression "pcVar11 + 0x1d720" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar4 = (int *)FUN_000271e0();" (assignment_expression "piVar4 = (int *)FUN_000271e0()" identifier = (cast_expression "(int *)FUN_000271e0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000271e0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;" if (parenthesized_expression "((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))" ( (binary_expression "(piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0)" (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0)" ( (comma_expression "iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0" (assignment_expression "iVar8 = *piStack_90" identifier = (pointer_expression "*piStack_90" * identifier)) , (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 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 "iVar8 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(iVar1 + 0xc) + -1;" (assignment_expression "iVar8 = *(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) = iVar8;" (assignment_expression "*(int *)(iVar1 + 0xc) = iVar8" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" { (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(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 "fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));" (assignment_expression "fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" identifier = (cast_expression "(float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" ( (binary_expression "(double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier) + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (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      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\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      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }" { (expression_statement "iVar8 = *(int *)(pcVar11 + 0x1d2c0);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x1d2c0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00028774;" goto statement_identifier ;) })) (labeled_statement "LAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;" statement_identifier : (if_statement "if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;" if (parenthesized_expression "((float)dVar14 * *pfVar9 <= fVar17)" ( (binary_expression "(float)dVar14 * *pfVar9 <= fVar17" (binary_expression "(float)dVar14 * *pfVar9" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar9" * identifier)) <= identifier) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;))) }) (else_clause "else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" else (compound_statement "{\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" { (expression_statement "fVar17 = (float)iVar8;" (assignment_expression "fVar17 = (float)iVar8" identifier = (cast_expression "(float)iVar8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(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 "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;" if (parenthesized_expression "(-1 < *(int *)(iVar1 + 8))" ( (binary_expression "-1 < *(int *)(iVar1 + 8)" number_literal < (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00028678;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x1d2c0);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x1d2c0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;" statement_identifier : (if_statement "if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;" if (parenthesized_expression "((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17)" ( (binary_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17" (binary_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9" (cast_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar14 + *(double *)(iVar8 + 0x36c0))" ( (binary_expression "dVar14 + *(double *)(iVar8 + 0x36c0)" identifier + (pointer_expression "*(double *)(iVar8 + 0x36c0)" * (cast_expression "(double *)(iVar8 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36c0)" ( (binary_expression "iVar8 + 0x36c0" identifier + number_literal) ))))) ))) * (pointer_expression "*pfVar9" * identifier)) <= identifier) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;))) }))) (expression_statement "FUN_00027328(iVar1 + 0x14);" (call_expression "FUN_00027328(iVar1 + 0x14)" identifier (argument_list "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(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 "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (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    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\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    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }" { (expression_statement "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier = (binary_expression "dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar16 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar16 = (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    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\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    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }" { (expression_statement "dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier = (binary_expression "dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;" if (parenthesized_expression "((float)dVar14 * *pfVar9 <= (float)dVar16)" ( (binary_expression "(float)dVar14 * *pfVar9 <= (float)dVar16" (binary_expression "(float)dVar14 * *pfVar9" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar9" * identifier)) <= (cast_expression "(float)dVar16" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;)) (expression_statement "fVar17 = (float)dVar14 * pfVar9[1];" (assignment_expression "fVar17 = (float)dVar14 * pfVar9[1]" identifier = (binary_expression "(float)dVar14 * pfVar9[1]" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (subscript_expression "pfVar9[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" if (parenthesized_expression "(*(char *)(pfVar9 + 4) == '\0')" ( (binary_expression "*(char *)(pfVar9 + 4) == '\0'" (pointer_expression "*(char *)(pfVar9 + 4)" * (cast_expression "(char *)(pfVar9 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pfVar9 + 4)" ( (binary_expression "pfVar9 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }" { (expression_statement "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "fVar17 = fVar17 * pfVar9[2];" (assignment_expression "fVar17 = fVar17 * pfVar9[2]" identifier = (binary_expression "fVar17 * pfVar9[2]" identifier * (subscript_expression "pfVar9[2]" identifier [ number_literal ]))) ;) (if_statement "if (fVar18 <= fVar17) goto LAB_0002871c;" if (parenthesized_expression "(fVar18 <= fVar17)" ( (binary_expression "fVar18 <= fVar17" identifier <= identifier) )) (goto_statement "goto LAB_0002871c;" goto statement_identifier ;)) (labeled_statement "LAB_000287e4:\n    uVar15 = (uint)fVar17;" statement_identifier : (expression_statement "uVar15 = (uint)fVar17;" (assignment_expression "uVar15 = (uint)fVar17" identifier = (cast_expression "(uint)fVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) }) (else_clause "else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" else (compound_statement "{\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" { (expression_statement "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (fVar17 < fVar18) goto LAB_000287e4;" if (parenthesized_expression "(fVar17 < fVar18)" ( (binary_expression "fVar17 < fVar18" identifier < identifier) )) (goto_statement "goto LAB_000287e4;" goto statement_identifier ;)) (labeled_statement "LAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;" statement_identifier : (expression_statement "uVar15 = (int)(fVar17 - fVar18) | 0x80000000;" (assignment_expression "uVar15 = (int)(fVar17 - fVar18) | 0x80000000" identifier = (binary_expression "(int)(fVar17 - fVar18) | 0x80000000" (cast_expression "(int)(fVar17 - fVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar17 - fVar18)" ( (binary_expression "fVar17 - fVar18" identifier - identifier) ))) | number_literal)) ;)) }))) (expression_statement "iVar8 = hash_rehash(iVar1,uVar15);" (assignment_expression "iVar8 = hash_rehash(iVar1,uVar15)" identifier = (call_expression "hash_rehash(iVar1,uVar15)" identifier (argument_list "(iVar1,uVar15)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" { (expression_statement "iVar8 = *(int *)(iVar1 + 0x24);" (assignment_expression "iVar8 = *(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 (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }" while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }" { (expression_statement "iVar8 = *(int *)(iVar8 + 4);" (assignment_expression "iVar8 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar11 + 0x1d730))();" (call_expression "(**(code **)(pcVar11 + 0x1d730))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d730))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d730)" * (pointer_expression "*(code **)(pcVar11 + 0x1d730)" * (cast_expression "(code **)(pcVar11 + 0x1d730)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d730)" ( (binary_expression "pcVar11 + 0x1d730" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" * (cast_expression "(undefined4 *)(iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }" statement_identifier : (if_statement "if (iVar3 == *piVar2) {\n    return piVar4;\n  }" if (parenthesized_expression "(iVar3 == *piVar2)" ( (binary_expression "iVar3 == *piVar2" identifier == (pointer_expression "*piVar2" * identifier)) )) (compound_statement "{\n    return piVar4;\n  }" { (return_statement "return piVar4;" return identifier ;) }))) (expression_statement "pcVar11 = *(code **)(pcVar11 + 0x1d700);" (assignment_expression "pcVar11 = *(code **)(pcVar11 + 0x1d700)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x1d700)" * (cast_expression "(code **)(pcVar11 + 0x1d700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d700)" ( (binary_expression "pcVar11 + 0x1d700" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }" { (expression_statement "iVar1 = (**(code **)(pcVar11 + 0x1d41c))();" (assignment_expression "iVar1 = (**(code **)(pcVar11 + 0x1d41c))()" identifier = (call_expression "(**(code **)(pcVar11 + 0x1d41c))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d41c))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d41c)" * (pointer_expression "*(code **)(pcVar11 + 0x1d41c)" * (cast_expression "(code **)(pcVar11 + 0x1d41c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d41c)" ( (binary_expression "pcVar11 + 0x1d41c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }" if (parenthesized_expression "(((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0))" ( (binary_expression "((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)" (parenthesized_expression "((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3))" ( (binary_expression "(iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)" ( (comma_expression "iVar8 = iVar1 + 1, 6 < iVar8 - iVar3" (assignment_expression "iVar8 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) , (binary_expression "6 < iVar8 - iVar3" number_literal < (binary_expression "iVar8 - iVar3" identifier - identifier))) ))) )) && (parenthesized_expression "(iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)" ( (comma_expression "iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" identifier = (call_expression "(**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d3e8))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d3e8)" * (pointer_expression "*(code **)(pcVar11 + 0x1d3e8)" * (cast_expression "(code **)(pcVar11 + 0x1d3e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3e8)" ( (binary_expression "pcVar11 + 0x1d3e8" identifier + number_literal) ))))) )) (argument_list "(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" ( (binary_expression "iVar1 + -6" identifier + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x3708" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" * (cast_expression "(int *)(pcVar11 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d068)" ( (binary_expression "pcVar11 + 0x1d068" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);" (assignment_expression "iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" identifier = (call_expression "(**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d3e8))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d3e8)" * (pointer_expression "*(code **)(pcVar11 + 0x1d3e8)" * (cast_expression "(code **)(pcVar11 + 0x1d3e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3e8)" ( (binary_expression "pcVar11 + 0x1d3e8" identifier + number_literal) ))))) )) (argument_list "(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" ( identifier , (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x3710" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" * (cast_expression "(int *)(pcVar11 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d068)" ( (binary_expression "pcVar11 + 0x1d068" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }" { (expression_statement "**(int **)(pcVar11 + 0x1d34c) = iVar8;" (assignment_expression "**(int **)(pcVar11 + 0x1d34c) = iVar8" (pointer_expression "**(int **)(pcVar11 + 0x1d34c)" * (pointer_expression "*(int **)(pcVar11 + 0x1d34c)" * (cast_expression "(int **)(pcVar11 + 0x1d34c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d34c)" ( (binary_expression "pcVar11 + 0x1d34c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar4 = *(int **)(pcVar11 + 0x1d428);" (assignment_expression "piVar4 = *(int **)(pcVar11 + 0x1d428)" identifier = (pointer_expression "*(int **)(pcVar11 + 0x1d428)" * (cast_expression "(int **)(pcVar11 + 0x1d428)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d428)" ( (binary_expression "pcVar11 + 0x1d428" identifier + number_literal) ))))) ;) (expression_statement "*piVar4 = iVar8;" (assignment_expression "*piVar4 = iVar8" (pointer_expression "*piVar4" * identifier) = identifier) ;) (return_statement "return piVar4;" return identifier ;) })) (expression_statement "iVar3 = iVar1 + 4;" (assignment_expression "iVar3 = iVar1 + 4" identifier = (binary_expression "iVar1 + 4" identifier + number_literal)) ;) (expression_statement "**(int **)(pcVar11 + 0x1d3f8) = iVar3;" (assignment_expression "**(int **)(pcVar11 + 0x1d3f8) = iVar3" (pointer_expression "**(int **)(pcVar11 + 0x1d3f8)" * (pointer_expression "*(int **)(pcVar11 + 0x1d3f8)" * (cast_expression "(int **)(pcVar11 + 0x1d3f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3f8)" ( (binary_expression "pcVar11 + 0x1d3f8" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(int **)(pcVar11 + 0x1d34c) = iVar3;" (assignment_expression "**(int **)(pcVar11 + 0x1d34c) = iVar3" (pointer_expression "**(int **)(pcVar11 + 0x1d34c)" * (pointer_expression "*(int **)(pcVar11 + 0x1d34c)" * (cast_expression "(int **)(pcVar11 + 0x1d34c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d34c)" ( (binary_expression "pcVar11 + 0x1d34c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar4 = *(int **)(pcVar11 + 0x1d428);" (assignment_expression "piVar4 = *(int **)(pcVar11 + 0x1d428)" identifier = (pointer_expression "*(int **)(pcVar11 + 0x1d428)" * (cast_expression "(int **)(pcVar11 + 0x1d428)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d428)" ( (binary_expression "pcVar11 + 0x1d428" identifier + number_literal) ))))) ;) (expression_statement "*piVar4 = iVar3;" (assignment_expression "*piVar4 = iVar3" (pointer_expression "*piVar4" * identifier) = identifier) ;) (return_statement "return piVar4;" return identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;" (assignment_expression "iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0" identifier = (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x36d0" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" * (cast_expression "(int *)(pcVar11 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d068)" ( (binary_expression "pcVar11 + 0x1d068" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar11 + 0x1d49c))(iVar1);" (call_expression "(**(code **)(pcVar11 + 0x1d49c))(iVar1)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d49c))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d49c)" * (pointer_expression "*(code **)(pcVar11 + 0x1d49c)" * (cast_expression "(code **)(pcVar11 + 0x1d49c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d49c)" ( (binary_expression "pcVar11 + 0x1d49c" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x1d3e0);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x1d3e0)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x1d3e0)" * (cast_expression "(code **)(pcVar11 + 0x1d3e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3e0)" ( (binary_expression "pcVar11 + 0x1d3e0" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" { (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" else (compound_statement "{\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" { (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" identifier = (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d380)" * (pointer_expression "*(code **)(pcVar12 + 0x1d380)" * (cast_expression "(code **)(pcVar12 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d380)" ( (binary_expression "pcVar12 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3728" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(pcVar12 + 0x1d220)" * (cast_expression "(undefined4 *)(pcVar12 + 0x1d220)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1d220)" ( (binary_expression "pcVar12 + 0x1d220" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" identifier = (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d380)" * (pointer_expression "*(code **)(pcVar12 + 0x1d380)" * (cast_expression "(code **)(pcVar12 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d380)" ( (binary_expression "pcVar12 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x372c" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);" (call_expression "(**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2a0))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2a0)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2a0)" * (cast_expression "(code **)(pcVar12 + 0x1d2a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2a0)" ( (binary_expression "pcVar12 + 0x1d2a0" identifier + number_literal) ))))) )) (argument_list "(uVar6,iVar1)" ( identifier , identifier ))) ;) (if_statement "if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }" if (parenthesized_expression "(uStack_bc < 10)" ( (binary_expression "uStack_bc < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }" { comment comment (expression_statement "piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();" (assignment_expression "piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" identifier = (cast_expression "(int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" (parenthesized_expression "(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))" ( (pointer_expression "*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)))" * (parenthesized_expression "(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)))" ( (binary_expression "pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" identifier + (cast_expression "(int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" ( (binary_expression "&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" (pointer_expression "&UNK_00024f00" & identifier) + (pointer_expression "*(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" * (cast_expression "(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" ( (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4" (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3a20" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_bc * 4" identifier * number_literal)) ))))) )))) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar4;" return identifier ;) })) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" identifier = (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d380)" * (pointer_expression "*(code **)(pcVar12 + 0x1d380)" * (cast_expression "(code **)(pcVar12 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d380)" ( (binary_expression "pcVar12 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3938" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" identifier = (cast_expression "(int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "(iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25030)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25030)" ( (binary_expression "pcVar11 + 0x25030" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25034)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25034)" ( (binary_expression "pcVar11 + 0x25034" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25038)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25038)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25038)" ( (binary_expression "pcVar11 + 0x25038" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x2503c)" * (cast_expression "(undefined4 *)(pcVar11 + 0x2503c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2503c)" ( (binary_expression "pcVar11 + 0x2503c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25040)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25040)" ( (binary_expression "pcVar11 + 0x25040" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25044)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25044)" ( (binary_expression "pcVar11 + 0x25044" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25048)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25048)" ( (binary_expression "pcVar11 + 0x25048" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x2504c)" * (cast_expression "(undefined4 *)(pcVar11 + 0x2504c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2504c)" ( (binary_expression "pcVar11 + 0x2504c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25050)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25050)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25050)" ( (binary_expression "pcVar11 + 0x25050" identifier + number_literal) )))) ))))) ;) (return_statement "return piVar4;" return identifier ;) })))
(translation_unit "int hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar2;\n  int iVar3;\n  uint uVar4;\n  size_t sVar5;\n  _Bool _Var9;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  hash_entry *phVar10;\n  void *pvVar11;\n  Hash_tuning *pHVar12;\n  size_t sVar13;\n  Hash_table *pHVar14;\n  hash_entry *phVar15;\n  Hash_table *unaff_s0;\n  hash_entry *unaff_s1;\n  int *piVar16;\n  int *piVar17;\n  int iVar18;\n  hash_entry *unaff_s3;\n  hash_entry **unaff_s4;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  ulonglong uVar22;\n  ulonglong extraout_f0_1;\n  double dVar23;\n  ulonglong in_f2_3;\n  float fVar25;\n  double dVar24;\n  float fVar26;\n  uint uStack_bc;\n  hash_entry *phStack_90;\n  int iStack_8c;\n  hash_entry *phStack_84;\n  int *piStack_80;\n  undefined *puStack_7c;\n  hash_entry *phStack_78;\n  code *pcStack_74;\n  undefined *puStack_60;\n  hash_entry *phStack_58;\n  Hash_table *pHStack_54;\n  Hash_table *pHStack_4c;\n  hash_entry *phStack_48;\n  code *pcStack_44;\n  hash_entry *bucket;\n  Hash_table *local_24;\n  \n  puVar1 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(Hash_table **)PTR___stack_chk_guard_00045cc8;\n  if (entry == (void *)0x0) goto LAB_000284f0;\n  unaff_s4 = &bucket;\n  unaff_s1 = (hash_entry *)(PTR_LAB_0004586c + 0x71e0);\n  phVar15 = (hash_entry *)entry;\n  pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n  if (pvVar2 == (void *)0x0) {\n    dVar23 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar24 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar24 * table->tuning->growth_threshold < (float)dVar23) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar12 = table->tuning;\n      dVar23 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar24 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }\n    }\n    iVar3 = 1;\n    unaff_s1 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar13 = table->n_entries;\n      sVar5 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar13 + 1;\n      table->n_buckets_used = sVar5 + 1;\n    }\n    else {\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }\nLAB_000282f0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }\n  pcVar20 = hash_insert;\n  pHVar14 = local_24;\n  puVar19 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  puStack_60 = puVar19 + 0x25314;\n  piVar16 = *(int **)(puVar19 + 0x1d7ac);\n  pHStack_54 = (Hash_table *)*piVar16;\n  phVar10 = phVar15;\n  pHStack_4c = table;\n  phStack_48 = unaff_s1;\n  pcStack_44 = pcVar20;\n  iVar3 = hash_insert_if_absent(pHVar14,phVar15,&phStack_58);\n  if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar15;\n  }\n  if (pHStack_54 == (Hash_table *)*piVar16) {\n    return (int)phStack_58;\n  }\n  pcVar20 = *(code **)(puStack_60 + -0x7b88);\n  pcVar21 = hash_delete;\n  pHVar14 = pHStack_54;\n  (*pcVar20)();\n  piVar17 = *(int **)(pcVar20 + 0x1d720);\n  puStack_7c = puVar1;\n  iStack_8c = *piVar17;\n  phStack_84 = phVar15;\n  piStack_80 = piVar16;\n  phStack_78 = (hash_entry *)entry;\n  pcStack_74 = pcVar21;\n  pvVar2 = hash_find_entry(pHVar14,phVar10,&phStack_90,true);\n  if ((pvVar2 == (void *)0x0) ||\n     (pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0)) goto LAB_0002861c;\n  sVar5 = pHVar14->n_buckets_used - 1;\n  pHVar14->n_buckets_used = sVar5;\n  if ((int)sVar5 < 0) {\n    pHVar12 = pHVar14->tuning;\n    fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0));\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if ((int)pHVar14->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar20 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;\n  }\n  else {\n    fVar25 = (float)(int)sVar5;\n    pHVar12 = pHVar14->tuning;\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;\n    iVar3 = *(int *)(pcVar20 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;\n  }\n  check_tuning((Hash_table *)&pHVar14->tuning);\n  pHVar12 = pHVar14->tuning;\n  dVar23 = (double)(int)pHVar14->n_buckets;\n  if ((int)pHVar14->n_buckets < 0) {\n    dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }\n  dVar24 = (double)(int)pHVar14->n_buckets_used;\n  if ((int)pHVar14->n_buckets_used < 0) {\n    dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar23 * pHVar12->shrink_threshold <= (float)dVar24) goto LAB_0002861c;\n  fVar25 = (float)dVar23 * pHVar12->shrink_factor;\n  if (pHVar12->is_n_buckets == false) {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    fVar25 = fVar25 * pHVar12->growth_threshold;\n    if (fVar26 <= fVar25) goto LAB_0002871c;\nLAB_000287e4:\n    sVar5 = (size_t)fVar25;\n  }\n  else {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    if (fVar25 < fVar26) goto LAB_000287e4;\nLAB_0002871c:\n    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;\n  }\n  _Var9 = hash_rehash(pHVar14,sVar5);\n  if (CONCAT31(extraout_var_00,_Var9) == 0) {\n    phVar15 = pHVar14->free_entry_list;\n    while (phVar15 != (hash_entry *)0x0) {\n      phVar15 = phVar15->next;\n      (**(code **)(pcVar20 + 0x1d730))();\n    }\n    pHVar14->free_entry_list = (hash_entry *)0x0;\n  }\nLAB_0002861c:\n  if (iStack_8c == *piVar17) {\n    return (int)pvVar2;\n  }\n  pcVar20 = *(code **)(pcVar20 + 0x1d700);\n  iVar3 = iStack_8c;\n  (*pcVar20)();\n  if (iVar3 != 0) {\n    iVar6 = (**(code **)(pcVar20 + 0x1d41c))();\n    if (((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)) {\n      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }\n      iVar3 = iVar6 + 4;\n      **(int **)(pcVar20 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar20 + 0x1d34c) = iVar3;\n    piVar16 = *(int **)(pcVar20 + 0x1d428);\n    *piVar16 = iVar3;\n    return (int)piVar16;\n  }\n  iVar6 = 1;\n  iVar3 = *(int *)(pcVar20 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar20 + 0x1d49c))(iVar3);\n  pcVar21 = *(code **)(pcVar20 + 0x1d3e0);\n  (*pcVar21)();\n  if (iVar6 == 0) {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar21 + 0x1d2c4))(iVar3,1,*(undefined4 *)(pcVar21 + 0x1d220),uVar8,0x7e3);\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar21 + 0x1d2a0))(uVar8,iVar3);\n  if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ();\n    return iVar3;\n  }\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5);\n  iVar3 = (**(code **)(pcVar21 + 0x1d2c4))\n                    (iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),\n                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),\n                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),\n                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),\n                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050));\n  return iVar3;\n}\n\n" (function_definition "int hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar2;\n  int iVar3;\n  uint uVar4;\n  size_t sVar5;\n  _Bool _Var9;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  hash_entry *phVar10;\n  void *pvVar11;\n  Hash_tuning *pHVar12;\n  size_t sVar13;\n  Hash_table *pHVar14;\n  hash_entry *phVar15;\n  Hash_table *unaff_s0;\n  hash_entry *unaff_s1;\n  int *piVar16;\n  int *piVar17;\n  int iVar18;\n  hash_entry *unaff_s3;\n  hash_entry **unaff_s4;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  ulonglong uVar22;\n  ulonglong extraout_f0_1;\n  double dVar23;\n  ulonglong in_f2_3;\n  float fVar25;\n  double dVar24;\n  float fVar26;\n  uint uStack_bc;\n  hash_entry *phStack_90;\n  int iStack_8c;\n  hash_entry *phStack_84;\n  int *piStack_80;\n  undefined *puStack_7c;\n  hash_entry *phStack_78;\n  code *pcStack_74;\n  undefined *puStack_60;\n  hash_entry *phStack_58;\n  Hash_table *pHStack_54;\n  Hash_table *pHStack_4c;\n  hash_entry *phStack_48;\n  code *pcStack_44;\n  hash_entry *bucket;\n  Hash_table *local_24;\n  \n  puVar1 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(Hash_table **)PTR___stack_chk_guard_00045cc8;\n  if (entry == (void *)0x0) goto LAB_000284f0;\n  unaff_s4 = &bucket;\n  unaff_s1 = (hash_entry *)(PTR_LAB_0004586c + 0x71e0);\n  phVar15 = (hash_entry *)entry;\n  pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n  if (pvVar2 == (void *)0x0) {\n    dVar23 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar24 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar24 * table->tuning->growth_threshold < (float)dVar23) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar12 = table->tuning;\n      dVar23 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar24 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }\n    }\n    iVar3 = 1;\n    unaff_s1 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar13 = table->n_entries;\n      sVar5 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar13 + 1;\n      table->n_buckets_used = sVar5 + 1;\n    }\n    else {\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }\nLAB_000282f0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }\n  pcVar20 = hash_insert;\n  pHVar14 = local_24;\n  puVar19 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  puStack_60 = puVar19 + 0x25314;\n  piVar16 = *(int **)(puVar19 + 0x1d7ac);\n  pHStack_54 = (Hash_table *)*piVar16;\n  phVar10 = phVar15;\n  pHStack_4c = table;\n  phStack_48 = unaff_s1;\n  pcStack_44 = pcVar20;\n  iVar3 = hash_insert_if_absent(pHVar14,phVar15,&phStack_58);\n  if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar15;\n  }\n  if (pHStack_54 == (Hash_table *)*piVar16) {\n    return (int)phStack_58;\n  }\n  pcVar20 = *(code **)(puStack_60 + -0x7b88);\n  pcVar21 = hash_delete;\n  pHVar14 = pHStack_54;\n  (*pcVar20)();\n  piVar17 = *(int **)(pcVar20 + 0x1d720);\n  puStack_7c = puVar1;\n  iStack_8c = *piVar17;\n  phStack_84 = phVar15;\n  piStack_80 = piVar16;\n  phStack_78 = (hash_entry *)entry;\n  pcStack_74 = pcVar21;\n  pvVar2 = hash_find_entry(pHVar14,phVar10,&phStack_90,true);\n  if ((pvVar2 == (void *)0x0) ||\n     (pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0)) goto LAB_0002861c;\n  sVar5 = pHVar14->n_buckets_used - 1;\n  pHVar14->n_buckets_used = sVar5;\n  if ((int)sVar5 < 0) {\n    pHVar12 = pHVar14->tuning;\n    fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0));\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if ((int)pHVar14->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar20 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;\n  }\n  else {\n    fVar25 = (float)(int)sVar5;\n    pHVar12 = pHVar14->tuning;\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;\n    iVar3 = *(int *)(pcVar20 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;\n  }\n  check_tuning((Hash_table *)&pHVar14->tuning);\n  pHVar12 = pHVar14->tuning;\n  dVar23 = (double)(int)pHVar14->n_buckets;\n  if ((int)pHVar14->n_buckets < 0) {\n    dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }\n  dVar24 = (double)(int)pHVar14->n_buckets_used;\n  if ((int)pHVar14->n_buckets_used < 0) {\n    dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar23 * pHVar12->shrink_threshold <= (float)dVar24) goto LAB_0002861c;\n  fVar25 = (float)dVar23 * pHVar12->shrink_factor;\n  if (pHVar12->is_n_buckets == false) {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    fVar25 = fVar25 * pHVar12->growth_threshold;\n    if (fVar26 <= fVar25) goto LAB_0002871c;\nLAB_000287e4:\n    sVar5 = (size_t)fVar25;\n  }\n  else {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    if (fVar25 < fVar26) goto LAB_000287e4;\nLAB_0002871c:\n    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;\n  }\n  _Var9 = hash_rehash(pHVar14,sVar5);\n  if (CONCAT31(extraout_var_00,_Var9) == 0) {\n    phVar15 = pHVar14->free_entry_list;\n    while (phVar15 != (hash_entry *)0x0) {\n      phVar15 = phVar15->next;\n      (**(code **)(pcVar20 + 0x1d730))();\n    }\n    pHVar14->free_entry_list = (hash_entry *)0x0;\n  }\nLAB_0002861c:\n  if (iStack_8c == *piVar17) {\n    return (int)pvVar2;\n  }\n  pcVar20 = *(code **)(pcVar20 + 0x1d700);\n  iVar3 = iStack_8c;\n  (*pcVar20)();\n  if (iVar3 != 0) {\n    iVar6 = (**(code **)(pcVar20 + 0x1d41c))();\n    if (((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)) {\n      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }\n      iVar3 = iVar6 + 4;\n      **(int **)(pcVar20 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar20 + 0x1d34c) = iVar3;\n    piVar16 = *(int **)(pcVar20 + 0x1d428);\n    *piVar16 = iVar3;\n    return (int)piVar16;\n  }\n  iVar6 = 1;\n  iVar3 = *(int *)(pcVar20 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar20 + 0x1d49c))(iVar3);\n  pcVar21 = *(code **)(pcVar20 + 0x1d3e0);\n  (*pcVar21)();\n  if (iVar6 == 0) {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar21 + 0x1d2c4))(iVar3,1,*(undefined4 *)(pcVar21 + 0x1d220),uVar8,0x7e3);\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar21 + 0x1d2a0))(uVar8,iVar3);\n  if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ();\n    return iVar3;\n  }\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5);\n  iVar3 = (**(code **)(pcVar21 + 0x1d2c4))\n                    (iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),\n                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),\n                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),\n                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),\n                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050));\n  return iVar3;\n}" primitive_type (function_declarator "hash_insert_if_absent(Hash_table *table,void *entry,void **matched_ent)" identifier (parameter_list "(Hash_table *table,void *entry,void **matched_ent)" ( (parameter_declaration "Hash_table *table" type_identifier (pointer_declarator "*table" * identifier)) , (parameter_declaration "void *entry" primitive_type (pointer_declarator "*entry" * identifier)) , (parameter_declaration "void **matched_ent" primitive_type (pointer_declarator "**matched_ent" * (pointer_declarator "*matched_ent" * identifier))) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  void *pvVar2;\n  int iVar3;\n  uint uVar4;\n  size_t sVar5;\n  _Bool _Var9;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  hash_entry *phVar10;\n  void *pvVar11;\n  Hash_tuning *pHVar12;\n  size_t sVar13;\n  Hash_table *pHVar14;\n  hash_entry *phVar15;\n  Hash_table *unaff_s0;\n  hash_entry *unaff_s1;\n  int *piVar16;\n  int *piVar17;\n  int iVar18;\n  hash_entry *unaff_s3;\n  hash_entry **unaff_s4;\n  undefined *puVar19;\n  code *pcVar20;\n  code *pcVar21;\n  ulonglong uVar22;\n  ulonglong extraout_f0_1;\n  double dVar23;\n  ulonglong in_f2_3;\n  float fVar25;\n  double dVar24;\n  float fVar26;\n  uint uStack_bc;\n  hash_entry *phStack_90;\n  int iStack_8c;\n  hash_entry *phStack_84;\n  int *piStack_80;\n  undefined *puStack_7c;\n  hash_entry *phStack_78;\n  code *pcStack_74;\n  undefined *puStack_60;\n  hash_entry *phStack_58;\n  Hash_table *pHStack_54;\n  Hash_table *pHStack_4c;\n  hash_entry *phStack_48;\n  code *pcStack_44;\n  hash_entry *bucket;\n  Hash_table *local_24;\n  \n  puVar1 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(Hash_table **)PTR___stack_chk_guard_00045cc8;\n  if (entry == (void *)0x0) goto LAB_000284f0;\n  unaff_s4 = &bucket;\n  unaff_s1 = (hash_entry *)(PTR_LAB_0004586c + 0x71e0);\n  phVar15 = (hash_entry *)entry;\n  pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n  if (pvVar2 == (void *)0x0) {\n    dVar23 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar24 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar24 * table->tuning->growth_threshold < (float)dVar23) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar12 = table->tuning;\n      dVar23 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar24 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }\n    }\n    iVar3 = 1;\n    unaff_s1 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar13 = table->n_entries;\n      sVar5 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar13 + 1;\n      table->n_buckets_used = sVar5 + 1;\n    }\n    else {\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }\nLAB_000282f0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }\n  pcVar20 = hash_insert;\n  pHVar14 = local_24;\n  puVar19 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  puStack_60 = puVar19 + 0x25314;\n  piVar16 = *(int **)(puVar19 + 0x1d7ac);\n  pHStack_54 = (Hash_table *)*piVar16;\n  phVar10 = phVar15;\n  pHStack_4c = table;\n  phStack_48 = unaff_s1;\n  pcStack_44 = pcVar20;\n  iVar3 = hash_insert_if_absent(pHVar14,phVar15,&phStack_58);\n  if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar15;\n  }\n  if (pHStack_54 == (Hash_table *)*piVar16) {\n    return (int)phStack_58;\n  }\n  pcVar20 = *(code **)(puStack_60 + -0x7b88);\n  pcVar21 = hash_delete;\n  pHVar14 = pHStack_54;\n  (*pcVar20)();\n  piVar17 = *(int **)(pcVar20 + 0x1d720);\n  puStack_7c = puVar1;\n  iStack_8c = *piVar17;\n  phStack_84 = phVar15;\n  piStack_80 = piVar16;\n  phStack_78 = (hash_entry *)entry;\n  pcStack_74 = pcVar21;\n  pvVar2 = hash_find_entry(pHVar14,phVar10,&phStack_90,true);\n  if ((pvVar2 == (void *)0x0) ||\n     (pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0)) goto LAB_0002861c;\n  sVar5 = pHVar14->n_buckets_used - 1;\n  pHVar14->n_buckets_used = sVar5;\n  if ((int)sVar5 < 0) {\n    pHVar12 = pHVar14->tuning;\n    fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0));\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if ((int)pHVar14->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar20 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;\n  }\n  else {\n    fVar25 = (float)(int)sVar5;\n    pHVar12 = pHVar14->tuning;\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;\n    iVar3 = *(int *)(pcVar20 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;\n  }\n  check_tuning((Hash_table *)&pHVar14->tuning);\n  pHVar12 = pHVar14->tuning;\n  dVar23 = (double)(int)pHVar14->n_buckets;\n  if ((int)pHVar14->n_buckets < 0) {\n    dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }\n  dVar24 = (double)(int)pHVar14->n_buckets_used;\n  if ((int)pHVar14->n_buckets_used < 0) {\n    dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar23 * pHVar12->shrink_threshold <= (float)dVar24) goto LAB_0002861c;\n  fVar25 = (float)dVar23 * pHVar12->shrink_factor;\n  if (pHVar12->is_n_buckets == false) {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    fVar25 = fVar25 * pHVar12->growth_threshold;\n    if (fVar26 <= fVar25) goto LAB_0002871c;\nLAB_000287e4:\n    sVar5 = (size_t)fVar25;\n  }\n  else {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    if (fVar25 < fVar26) goto LAB_000287e4;\nLAB_0002871c:\n    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;\n  }\n  _Var9 = hash_rehash(pHVar14,sVar5);\n  if (CONCAT31(extraout_var_00,_Var9) == 0) {\n    phVar15 = pHVar14->free_entry_list;\n    while (phVar15 != (hash_entry *)0x0) {\n      phVar15 = phVar15->next;\n      (**(code **)(pcVar20 + 0x1d730))();\n    }\n    pHVar14->free_entry_list = (hash_entry *)0x0;\n  }\nLAB_0002861c:\n  if (iStack_8c == *piVar17) {\n    return (int)pvVar2;\n  }\n  pcVar20 = *(code **)(pcVar20 + 0x1d700);\n  iVar3 = iStack_8c;\n  (*pcVar20)();\n  if (iVar3 != 0) {\n    iVar6 = (**(code **)(pcVar20 + 0x1d41c))();\n    if (((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)) {\n      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }\n      iVar3 = iVar6 + 4;\n      **(int **)(pcVar20 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar20 + 0x1d34c) = iVar3;\n    piVar16 = *(int **)(pcVar20 + 0x1d428);\n    *piVar16 = iVar3;\n    return (int)piVar16;\n  }\n  iVar6 = 1;\n  iVar3 = *(int *)(pcVar20 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar20 + 0x1d49c))(iVar3);\n  pcVar21 = *(code **)(pcVar20 + 0x1d3e0);\n  (*pcVar21)();\n  if (iVar6 == 0) {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar21 + 0x1d2c4))(iVar3,1,*(undefined4 *)(pcVar21 + 0x1d220),uVar8,0x7e3);\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar21 + 0x1d2a0))(uVar8,iVar3);\n  if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ();\n    return iVar3;\n  }\n  uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5);\n  iVar3 = (**(code **)(pcVar21 + 0x1d2c4))\n                    (iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),\n                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),\n                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),\n                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),\n                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050));\n  return iVar3;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "_Bool _Var9;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "hash_entry *phVar10;" type_identifier (pointer_declarator "*phVar10" * identifier) ;) (declaration "void *pvVar11;" primitive_type (pointer_declarator "*pvVar11" * identifier) ;) (declaration "Hash_tuning *pHVar12;" type_identifier (pointer_declarator "*pHVar12" * identifier) ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "Hash_table *pHVar14;" type_identifier (pointer_declarator "*pHVar14" * identifier) ;) (declaration "hash_entry *phVar15;" type_identifier (pointer_declarator "*phVar15" * identifier) ;) (declaration "Hash_table *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "hash_entry *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "hash_entry *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "hash_entry **unaff_s4;" type_identifier (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * identifier)) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "ulonglong uVar22;" type_identifier identifier ;) (declaration "ulonglong extraout_f0_1;" type_identifier identifier ;) (declaration "double dVar23;" primitive_type identifier ;) (declaration "ulonglong in_f2_3;" type_identifier identifier ;) (declaration "float fVar25;" primitive_type identifier ;) (declaration "double dVar24;" primitive_type identifier ;) (declaration "float fVar26;" primitive_type identifier ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "hash_entry *phStack_90;" type_identifier (pointer_declarator "*phStack_90" * identifier) ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "hash_entry *phStack_84;" type_identifier (pointer_declarator "*phStack_84" * identifier) ;) (declaration "int *piStack_80;" primitive_type (pointer_declarator "*piStack_80" * identifier) ;) (declaration "undefined *puStack_7c;" type_identifier (pointer_declarator "*puStack_7c" * identifier) ;) (declaration "hash_entry *phStack_78;" type_identifier (pointer_declarator "*phStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "hash_entry *phStack_58;" type_identifier (pointer_declarator "*phStack_58" * identifier) ;) (declaration "Hash_table *pHStack_54;" type_identifier (pointer_declarator "*pHStack_54" * identifier) ;) (declaration "Hash_table *pHStack_4c;" type_identifier (pointer_declarator "*pHStack_4c" * identifier) ;) (declaration "hash_entry *phStack_48;" type_identifier (pointer_declarator "*phStack_48" * identifier) ;) (declaration "code *pcStack_44;" type_identifier (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "hash_entry *bucket;" type_identifier (pointer_declarator "*bucket" * identifier) ;) (declaration "Hash_table *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_00045cc8;" (assignment_expression "puVar1 = PTR___stack_chk_guard_00045cc8" identifier = identifier) ;) (expression_statement "local_24 = *(Hash_table **)PTR___stack_chk_guard_00045cc8;" (assignment_expression "local_24 = *(Hash_table **)PTR___stack_chk_guard_00045cc8" identifier = (pointer_expression "*(Hash_table **)PTR___stack_chk_guard_00045cc8" * (cast_expression "(Hash_table **)PTR___stack_chk_guard_00045cc8" ( (type_descriptor "Hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (entry == (void *)0x0) goto LAB_000284f0;" 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)) )) (goto_statement "goto LAB_000284f0;" goto statement_identifier ;)) (expression_statement "unaff_s4 = &bucket;" (assignment_expression "unaff_s4 = &bucket" identifier = (pointer_expression "&bucket" & identifier)) ;) (expression_statement "unaff_s1 = (hash_entry *)(PTR_LAB_0004586c + 0x71e0);" (assignment_expression "unaff_s1 = (hash_entry *)(PTR_LAB_0004586c + 0x71e0)" identifier = (cast_expression "(hash_entry *)(PTR_LAB_0004586c + 0x71e0)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0004586c + 0x71e0)" ( (binary_expression "PTR_LAB_0004586c + 0x71e0" identifier + number_literal) )))) ;) (expression_statement "phVar15 = (hash_entry *)entry;" (assignment_expression "phVar15 = (hash_entry *)entry" identifier = (cast_expression "(hash_entry *)entry" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pvVar2 = hash_find_entry(table,entry,unaff_s4,false);" (assignment_expression "pvVar2 = hash_find_entry(table,entry,unaff_s4,false)" identifier = (call_expression "hash_find_entry(table,entry,unaff_s4,false)" identifier (argument_list "(table,entry,unaff_s4,false)" ( identifier , identifier , identifier , false )))) ;) (if_statement "if (pvVar2 == (void *)0x0) {\n    dVar23 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar24 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar24 * table->tuning->growth_threshold < (float)dVar23) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar12 = table->tuning;\n      dVar23 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar24 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }\n    }\n    iVar3 = 1;\n    unaff_s1 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar13 = table->n_entries;\n      sVar5 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar13 + 1;\n      table->n_buckets_used = sVar5 + 1;\n    }\n    else {\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 1;\n    }\n  }\n  else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(pvVar2 == (void *)0x0)" ( (binary_expression "pvVar2 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    dVar23 = (double)(int)table->n_buckets_used;\n    if ((int)table->n_buckets_used < 0) {\n      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar24 = (double)(int)table->n_buckets;\n    if ((int)table->n_buckets < 0) {\n      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar24 * table->tuning->growth_threshold < (float)dVar23) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar12 = table->tuning;\n      dVar23 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar24 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }\n    }\n    iVar3 = 1;\n    unaff_s1 = bucket;\n    if (bucket->data == (void *)0x0) {\n      sVar13 = table->n_entries;\n      sVar5 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar13 + 1;\n      table->n_buckets_used = sVar5 + 1;\n    }\n    else {\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 1;\n    }\n  }" { (expression_statement "dVar23 = (double)(int)table->n_buckets_used;" (assignment_expression "dVar23 = (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      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" { (expression_statement "dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar24 = (double)(int)table->n_buckets;" (assignment_expression "dVar24 = (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      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" { (expression_statement "dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar24 * table->tuning->growth_threshold < (float)dVar23) {\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar12 = table->tuning;\n      dVar23 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar24 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }\n    }" if (parenthesized_expression "((float)dVar24 * table->tuning->growth_threshold < (float)dVar23)" ( (binary_expression "(float)dVar24 * table->tuning->growth_threshold < (float)dVar23" (binary_expression "(float)dVar24 * table->tuning->growth_threshold" (cast_expression "(float)dVar24" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "table->tuning->growth_threshold" (field_expression "table->tuning" identifier -> field_identifier) -> field_identifier)) < (cast_expression "(float)dVar23" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      check_tuning((Hash_table *)&table->tuning);\n      pHVar12 = table->tuning;\n      dVar23 = (double)(int)table->n_buckets;\n      if ((int)table->n_buckets < 0) {\n        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar24 = (double)(int)table->n_buckets_used;\n      if ((int)table->n_buckets_used < 0) {\n        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }\n    }" { (expression_statement "check_tuning((Hash_table *)&table->tuning);" (call_expression "check_tuning((Hash_table *)&table->tuning)" identifier (argument_list "((Hash_table *)&table->tuning)" ( (cast_expression "(Hash_table *)&table->tuning" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&table->tuning" & (field_expression "table->tuning" identifier -> field_identifier))) ))) ;) (expression_statement "pHVar12 = table->tuning;" (assignment_expression "pHVar12 = table->tuning" identifier = (field_expression "table->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar23 = (double)(int)table->n_buckets;" (assignment_expression "dVar23 = (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        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" { (expression_statement "dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar23 = dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar23 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar24 = (double)(int)table->n_buckets_used;" (assignment_expression "dVar24 = (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        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" { (expression_statement "dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar24 = dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar24 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (if_statement "if (pHVar12->growth_threshold * (float)dVar23 < (float)dVar24) {\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }" if (parenthesized_expression "(pHVar12->growth_threshold * (float)dVar23 < (float)dVar24)" ( (binary_expression "pHVar12->growth_threshold * (float)dVar23 < (float)dVar24" (binary_expression "pHVar12->growth_threshold * (float)dVar23" (field_expression "pHVar12->growth_threshold" identifier -> field_identifier) * (cast_expression "(float)dVar23" ( (type_descriptor "float" primitive_type) ) identifier)) < (cast_expression "(float)dVar24" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n        fVar25 = (float)dVar23 * pHVar12->growth_factor;\n        if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }\n        uVar22 = (ulonglong)(uint)fVar25;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar4 = 0x80000000;\n        if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }\n      }" { (expression_statement "fVar25 = (float)dVar23 * pHVar12->growth_factor;" (assignment_expression "fVar25 = (float)dVar23 * pHVar12->growth_factor" identifier = (binary_expression "(float)dVar23 * pHVar12->growth_factor" (cast_expression "(float)dVar23" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar12->growth_factor" identifier -> field_identifier))) ;) (if_statement "if (pHVar12->is_n_buckets == false) {\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }" if (parenthesized_expression "(pHVar12->is_n_buckets == false)" ( (binary_expression "pHVar12->is_n_buckets == false" (field_expression "pHVar12->is_n_buckets" identifier -> field_identifier) == false) )) (compound_statement "{\n          fVar25 = fVar25 * pHVar12->growth_threshold;\n        }" { (expression_statement "fVar25 = fVar25 * pHVar12->growth_threshold;" (assignment_expression "fVar25 = fVar25 * pHVar12->growth_threshold" identifier = (binary_expression "fVar25 * pHVar12->growth_threshold" identifier * (field_expression "pHVar12->growth_threshold" identifier -> field_identifier))) ;) })) (expression_statement "uVar22 = (ulonglong)(uint)fVar25;" (assignment_expression "uVar22 = (ulonglong)(uint)fVar25" identifier = (cast_expression "(ulonglong)(uint)fVar25" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)fVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25) {\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }" if (parenthesized_expression "(*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25)" ( (binary_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar25" (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_00028454:\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }" { (labeled_statement "LAB_00028454:\n          iVar3 = -1;" statement_identifier : (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;)) (goto_statement "goto LAB_000282f0;" goto statement_identifier ;) })) (expression_statement "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);" (assignment_expression "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" identifier = (binary_expression "(ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (call_expression "(ulonglong)\n                  (uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = 0x80000000;" (assignment_expression "uVar4 = 0x80000000" identifier = number_literal) ;) (if_statement "if (fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }" if (parenthesized_expression "(fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc))" ( (binary_expression "fVar25 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" identifier < (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" identifier + number_literal) ))))) )) (compound_statement "{\n          phVar15 = (hash_entry *)(int)fVar25;\n          goto LAB_000284bc;\n        }" { (expression_statement "phVar15 = (hash_entry *)(int)fVar25;" (assignment_expression "phVar15 = (hash_entry *)(int)fVar25" identifier = (cast_expression "(hash_entry *)(int)fVar25" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_000284bc;" goto statement_identifier ;) })) (while_statement "while( true ) {\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);\nLAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);\n          if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;\n          phVar15 = (hash_entry *)entry;\n          pvVar2 = hash_find_entry(table,entry,unaff_s4,false);\n          unaff_s0 = table;\n          unaff_s3 = (hash_entry *)entry;\n          if (pvVar2 == (void *)0x0) break;\nLAB_000284f0:\n          entry = unaff_s3;\n          table = unaff_s0;\n          uVar4 = (*(code *)PTR_abort_00045be0)();\n          uVar22 = extraout_f0_1;\n        }" { (expression_statement "phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4);" (assignment_expression "phVar15 = (hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4)" identifier = (cast_expression "(hash_entry *)((int)((float)uVar22 - (float)in_f2_3) | uVar4)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((float)uVar22 - (float)in_f2_3) | uVar4)" ( (binary_expression "(int)((float)uVar22 - (float)in_f2_3) | uVar4" (cast_expression "(int)((float)uVar22 - (float)in_f2_3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((float)uVar22 - (float)in_f2_3)" ( (binary_expression "(float)uVar22 - (float)in_f2_3" (cast_expression "(float)uVar22" ( (type_descriptor "float" primitive_type) ) identifier) - (cast_expression "(float)in_f2_3" ( (type_descriptor "float" primitive_type) ) identifier)) ))) | identifier) )))) ;) (labeled_statement "LAB_000284bc:\n          _Var9 = hash_rehash(table,(size_t)phVar15);" statement_identifier : (expression_statement "_Var9 = hash_rehash(table,(size_t)phVar15);" (assignment_expression "_Var9 = hash_rehash(table,(size_t)phVar15)" identifier = (call_expression "hash_rehash(table,(size_t)phVar15)" identifier (argument_list "(table,(size_t)phVar15)" ( identifier , (cast_expression "(size_t)phVar15" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;)) (if_statement "if (CONCAT31(extraout_var,_Var9) == 0) goto LAB_00028454;" if (parenthesized_expression "(CONCAT31(extraout_var,_Var9) == 0)" ( (binary_expression "CONCAT31(extraout_var,_Var9) == 0" (call_expression "CONCAT31(extraout_var,_Var9)" identifier (argument_list "(extraout_var,_Var9)" ( identifier , identifier ))) == number_literal) )) (goto_statement "goto LAB_00028454;" goto statement_identifier ;)) (expression_statement "phVar15 = (hash_entry *)entry;" (assignment_expression "phVar15 = (hash_entry *)entry" identifier = (cast_expression "(hash_entry *)entry" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pvVar2 = hash_find_entry(table,entry,unaff_s4,false);" (assignment_expression "pvVar2 = hash_find_entry(table,entry,unaff_s4,false)" identifier = (call_expression "hash_find_entry(table,entry,unaff_s4,false)" identifier (argument_list "(table,entry,unaff_s4,false)" ( identifier , identifier , identifier , false )))) ;) (expression_statement "unaff_s0 = table;" (assignment_expression "unaff_s0 = table" identifier = identifier) ;) (expression_statement "unaff_s3 = (hash_entry *)entry;" (assignment_expression "unaff_s3 = (hash_entry *)entry" identifier = (cast_expression "(hash_entry *)entry" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pvVar2 == (void *)0x0) break;" if (parenthesized_expression "(pvVar2 == (void *)0x0)" ( (binary_expression "pvVar2 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000284f0:\n          entry = unaff_s3;" statement_identifier : (expression_statement "entry = unaff_s3;" (assignment_expression "entry = unaff_s3" identifier = identifier) ;)) (expression_statement "table = unaff_s0;" (assignment_expression "table = unaff_s0" identifier = identifier) ;) (expression_statement "uVar4 = (*(code *)PTR_abort_00045be0)();" (assignment_expression "uVar4 = (*(code *)PTR_abort_00045be0)()" identifier = (call_expression "(*(code *)PTR_abort_00045be0)()" (parenthesized_expression "(*(code *)PTR_abort_00045be0)" ( (pointer_expression "*(code *)PTR_abort_00045be0" * (cast_expression "(code *)PTR_abort_00045be0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar22 = extraout_f0_1;" (assignment_expression "uVar22 = extraout_f0_1" identifier = identifier) ;) })) })) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "unaff_s1 = bucket;" (assignment_expression "unaff_s1 = bucket" identifier = identifier) ;) (if_statement "if (bucket->data == (void *)0x0) {\n      sVar13 = table->n_entries;\n      sVar5 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar13 + 1;\n      table->n_buckets_used = sVar5 + 1;\n    }\n    else {\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 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      sVar13 = table->n_entries;\n      sVar5 = table->n_buckets_used;\n      bucket->data = entry;\n      table->n_entries = sVar13 + 1;\n      table->n_buckets_used = sVar5 + 1;\n    }" { (expression_statement "sVar13 = table->n_entries;" (assignment_expression "sVar13 = table->n_entries" identifier = (field_expression "table->n_entries" identifier -> field_identifier)) ;) (expression_statement "sVar5 = table->n_buckets_used;" (assignment_expression "sVar5 = table->n_buckets_used" identifier = (field_expression "table->n_buckets_used" identifier -> field_identifier)) ;) (expression_statement "bucket->data = entry;" (assignment_expression "bucket->data = entry" (field_expression "bucket->data" identifier -> field_identifier) = identifier) ;) (expression_statement "table->n_entries = sVar13 + 1;" (assignment_expression "table->n_entries = sVar13 + 1" (field_expression "table->n_entries" identifier -> field_identifier) = (binary_expression "sVar13 + 1" identifier + number_literal)) ;) (expression_statement "table->n_buckets_used = sVar5 + 1;" (assignment_expression "table->n_buckets_used = sVar5 + 1" (field_expression "table->n_buckets_used" identifier -> field_identifier) = (binary_expression "sVar5 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 1;\n    }" else (compound_statement "{\n      phVar10 = table->free_entry_list;\n      if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }\n      sVar5 = table->n_entries;\n      iVar3 = 1;\n      phVar15 = bucket->next;\n      phVar10->data = entry;\n      phVar10->next = phVar15;\n      bucket->next = phVar10;\n      table->n_entries = sVar5 + 1;\n    }" { (expression_statement "phVar10 = table->free_entry_list;" (assignment_expression "phVar10 = table->free_entry_list" identifier = (field_expression "table->free_entry_list" identifier -> field_identifier)) ;) (if_statement "if (phVar10 == (hash_entry *)0x0) {\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        table->free_entry_list = phVar10->next;\n      }" if (parenthesized_expression "(phVar10 == (hash_entry *)0x0)" ( (binary_expression "phVar10 == (hash_entry *)0x0" identifier == (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);\n        if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }\n      }" { (expression_statement "phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8);" (assignment_expression "phVar10 = (hash_entry *)(*(code *)PTR_malloc_00045c80)(8)" identifier = (cast_expression "(hash_entry *)(*(code *)PTR_malloc_00045c80)(8)" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00045c80)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00045c80)" ( (pointer_expression "*(code *)PTR_malloc_00045c80" * (cast_expression "(code *)PTR_malloc_00045c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (phVar10 == (hash_entry *)0x0) {\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }" if (parenthesized_expression "(phVar10 == (hash_entry *)0x0)" ( (binary_expression "phVar10 == (hash_entry *)0x0" identifier == (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar3 = -1;\n          goto LAB_000282f0;\n        }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_000282f0;" goto statement_identifier ;) })) }) (else_clause "else {\n        table->free_entry_list = phVar10->next;\n      }" else (compound_statement "{\n        table->free_entry_list = phVar10->next;\n      }" { (expression_statement "table->free_entry_list = phVar10->next;" (assignment_expression "table->free_entry_list = phVar10->next" (field_expression "table->free_entry_list" identifier -> field_identifier) = (field_expression "phVar10->next" identifier -> field_identifier)) ;) }))) (expression_statement "sVar5 = table->n_entries;" (assignment_expression "sVar5 = table->n_entries" identifier = (field_expression "table->n_entries" identifier -> field_identifier)) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "phVar15 = bucket->next;" (assignment_expression "phVar15 = bucket->next" identifier = (field_expression "bucket->next" identifier -> field_identifier)) ;) (expression_statement "phVar10->data = entry;" (assignment_expression "phVar10->data = entry" (field_expression "phVar10->data" identifier -> field_identifier) = identifier) ;) (expression_statement "phVar10->next = phVar15;" (assignment_expression "phVar10->next = phVar15" (field_expression "phVar10->next" identifier -> field_identifier) = identifier) ;) (expression_statement "bucket->next = phVar10;" (assignment_expression "bucket->next = phVar10" (field_expression "bucket->next" identifier -> field_identifier) = identifier) ;) (expression_statement "table->n_entries = sVar5 + 1;" (assignment_expression "table->n_entries = sVar5 + 1" (field_expression "table->n_entries" identifier -> field_identifier) = (binary_expression "sVar5 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" else (if_statement "if (matched_ent == (void **)0x0) {\n    iVar3 = 0;\n  }\n  else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(matched_ent == (void **)0x0)" ( (binary_expression "matched_ent == (void **)0x0" identifier == (cast_expression "(void **)0x0" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    iVar3 = 0;\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" else (compound_statement "{\n    *matched_ent = pvVar2;\n    iVar3 = 0;\n  }" { (expression_statement "*matched_ent = pvVar2;" (assignment_expression "*matched_ent = pvVar2" (pointer_expression "*matched_ent" * identifier) = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }))))) (labeled_statement "LAB_000282f0:\n  if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }" statement_identifier : (if_statement "if (local_24 == *(Hash_table **)puVar1) {\n    return iVar3;\n  }" if (parenthesized_expression "(local_24 == *(Hash_table **)puVar1)" ( (binary_expression "local_24 == *(Hash_table **)puVar1" identifier == (pointer_expression "*(Hash_table **)puVar1" * (cast_expression "(Hash_table **)puVar1" ( (type_descriptor "Hash_table **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) }))) (expression_statement "pcVar20 = hash_insert;" (assignment_expression "pcVar20 = hash_insert" identifier = identifier) ;) (expression_statement "pHVar14 = local_24;" (assignment_expression "pHVar14 = local_24" identifier = identifier) ;) (expression_statement "puVar19 = PTR___stack_chk_fail_00045ca8;" (assignment_expression "puVar19 = PTR___stack_chk_fail_00045ca8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00045ca8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00045ca8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00045ca8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00045ca8" * (cast_expression "(code *)PTR___stack_chk_fail_00045ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_60 = puVar19 + 0x25314;" (assignment_expression "puStack_60 = puVar19 + 0x25314" identifier = (binary_expression "puVar19 + 0x25314" identifier + number_literal)) ;) (expression_statement "piVar16 = *(int **)(puVar19 + 0x1d7ac);" (assignment_expression "piVar16 = *(int **)(puVar19 + 0x1d7ac)" identifier = (pointer_expression "*(int **)(puVar19 + 0x1d7ac)" * (cast_expression "(int **)(puVar19 + 0x1d7ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x1d7ac)" ( (binary_expression "puVar19 + 0x1d7ac" identifier + number_literal) ))))) ;) (expression_statement "pHStack_54 = (Hash_table *)*piVar16;" (assignment_expression "pHStack_54 = (Hash_table *)*piVar16" identifier = (cast_expression "(Hash_table *)*piVar16" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;) (expression_statement "phVar10 = phVar15;" (assignment_expression "phVar10 = phVar15" identifier = identifier) ;) (expression_statement "pHStack_4c = table;" (assignment_expression "pHStack_4c = table" identifier = identifier) ;) (expression_statement "phStack_48 = unaff_s1;" (assignment_expression "phStack_48 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar20;" (assignment_expression "pcStack_44 = pcVar20" identifier = identifier) ;) (expression_statement "iVar3 = hash_insert_if_absent(pHVar14,phVar15,&phStack_58);" (assignment_expression "iVar3 = hash_insert_if_absent(pHVar14,phVar15,&phStack_58)" identifier = (call_expression "hash_insert_if_absent(pHVar14,phVar15,&phStack_58)" identifier (argument_list "(pHVar14,phVar15,&phStack_58)" ( identifier , identifier , (pointer_expression "&phStack_58" & identifier) )))) ;) (if_statement "if (iVar3 == -1) {\n    phStack_58 = (hash_entry *)0x0;\n  }\n  else if (iVar3 != 0) {\n    phStack_58 = phVar15;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    phStack_58 = (hash_entry *)0x0;\n  }" { (expression_statement "phStack_58 = (hash_entry *)0x0;" (assignment_expression "phStack_58 = (hash_entry *)0x0" identifier = (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 != 0) {\n    phStack_58 = phVar15;\n  }" else (if_statement "if (iVar3 != 0) {\n    phStack_58 = phVar15;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    phStack_58 = phVar15;\n  }" { (expression_statement "phStack_58 = phVar15;" (assignment_expression "phStack_58 = phVar15" identifier = identifier) ;) })))) (if_statement "if (pHStack_54 == (Hash_table *)*piVar16) {\n    return (int)phStack_58;\n  }" if (parenthesized_expression "(pHStack_54 == (Hash_table *)*piVar16)" ( (binary_expression "pHStack_54 == (Hash_table *)*piVar16" identifier == (cast_expression "(Hash_table *)*piVar16" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) )) (compound_statement "{\n    return (int)phStack_58;\n  }" { (return_statement "return (int)phStack_58;" return (cast_expression "(int)phStack_58" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "pcVar20 = *(code **)(puStack_60 + -0x7b88);" (assignment_expression "pcVar20 = *(code **)(puStack_60 + -0x7b88)" identifier = (pointer_expression "*(code **)(puStack_60 + -0x7b88)" * (cast_expression "(code **)(puStack_60 + -0x7b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_60 + -0x7b88)" ( (binary_expression "puStack_60 + -0x7b88" identifier + number_literal) ))))) ;) (expression_statement "pcVar21 = hash_delete;" (assignment_expression "pcVar21 = hash_delete" identifier = identifier) ;) (expression_statement "pHVar14 = pHStack_54;" (assignment_expression "pHVar14 = pHStack_54" identifier = identifier) ;) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(pcVar20 + 0x1d720);" (assignment_expression "piVar17 = *(int **)(pcVar20 + 0x1d720)" identifier = (pointer_expression "*(int **)(pcVar20 + 0x1d720)" * (cast_expression "(int **)(pcVar20 + 0x1d720)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d720)" ( (binary_expression "pcVar20 + 0x1d720" identifier + number_literal) ))))) ;) (expression_statement "puStack_7c = puVar1;" (assignment_expression "puStack_7c = puVar1" identifier = identifier) ;) (expression_statement "iStack_8c = *piVar17;" (assignment_expression "iStack_8c = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "phStack_84 = phVar15;" (assignment_expression "phStack_84 = phVar15" identifier = identifier) ;) (expression_statement "piStack_80 = piVar16;" (assignment_expression "piStack_80 = piVar16" identifier = identifier) ;) (expression_statement "phStack_78 = (hash_entry *)entry;" (assignment_expression "phStack_78 = (hash_entry *)entry" identifier = (cast_expression "(hash_entry *)entry" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_74 = pcVar21;" (assignment_expression "pcStack_74 = pcVar21" identifier = identifier) ;) (expression_statement "pvVar2 = hash_find_entry(pHVar14,phVar10,&phStack_90,true);" (assignment_expression "pvVar2 = hash_find_entry(pHVar14,phVar10,&phStack_90,true)" identifier = (call_expression "hash_find_entry(pHVar14,phVar10,&phStack_90,true)" identifier (argument_list "(pHVar14,phVar10,&phStack_90,true)" ( identifier , identifier , (pointer_expression "&phStack_90" & identifier) , true )))) ;) (if_statement "if ((pvVar2 == (void *)0x0) ||\n     (pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0)) goto LAB_0002861c;" if (parenthesized_expression "((pvVar2 == (void *)0x0) ||\n     (pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0))" ( (binary_expression "(pvVar2 == (void *)0x0) ||\n     (pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0)" (parenthesized_expression "(pvVar2 == (void *)0x0)" ( (binary_expression "pvVar2 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0)" ( (comma_expression "pvVar11 = phStack_90->data, pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0" (assignment_expression "pvVar11 = phStack_90->data" identifier = (field_expression "phStack_90->data" identifier -> field_identifier)) , (comma_expression "pHVar14->n_entries = pHVar14->n_entries - 1,\n     pvVar11 != (void *)0x0" (assignment_expression "pHVar14->n_entries = pHVar14->n_entries - 1" (field_expression "pHVar14->n_entries" identifier -> field_identifier) = (binary_expression "pHVar14->n_entries - 1" (field_expression "pHVar14->n_entries" identifier -> field_identifier) - number_literal)) , (binary_expression "pvVar11 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;)) (expression_statement "sVar5 = pHVar14->n_buckets_used - 1;" (assignment_expression "sVar5 = pHVar14->n_buckets_used - 1" identifier = (binary_expression "pHVar14->n_buckets_used - 1" (field_expression "pHVar14->n_buckets_used" identifier -> field_identifier) - number_literal)) ;) (expression_statement "pHVar14->n_buckets_used = sVar5;" (assignment_expression "pHVar14->n_buckets_used = sVar5" (field_expression "pHVar14->n_buckets_used" identifier -> field_identifier) = identifier) ;) (if_statement "if ((int)sVar5 < 0) {\n    pHVar12 = pHVar14->tuning;\n    fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0));\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if ((int)pHVar14->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar20 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;\n  }\n  else {\n    fVar25 = (float)(int)sVar5;\n    pHVar12 = pHVar14->tuning;\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;\n    iVar3 = *(int *)(pcVar20 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;\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    pHVar12 = pHVar14->tuning;\n    fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0));\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if ((int)pHVar14->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar20 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;\n  }" { (expression_statement "pHVar12 = pHVar14->tuning;" (assignment_expression "pHVar12 = pHVar14->tuning" identifier = (field_expression "pHVar14->tuning" identifier -> field_identifier)) ;) (expression_statement "fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0));" (assignment_expression "fVar25 = (float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0))" identifier = (cast_expression "(float)((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0))" ( (binary_expression "(double)(int)sVar5 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" (cast_expression "(double)(int)sVar5" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)sVar5" ( (type_descriptor "int" primitive_type) ) identifier)) + (pointer_expression "*(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar20 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar20 + 0x1d2c0)" * (cast_expression "(int *)(pcVar20 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d2c0)" ( (binary_expression "pcVar20 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "dVar23 = (double)(int)pHVar14->n_buckets;" (assignment_expression "dVar23 = (double)(int)pHVar14->n_buckets" identifier = (cast_expression "(double)(int)pHVar14->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar14->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar14->n_buckets < 0) {\n      iVar3 = *(int *)(pcVar20 + 0x1d2c0);\n      goto LAB_00028774;\n    }" if (parenthesized_expression "((int)pHVar14->n_buckets < 0)" ( (binary_expression "(int)pHVar14->n_buckets < 0" (cast_expression "(int)pHVar14->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(pcVar20 + 0x1d2c0);\n      goto LAB_00028774;\n    }" { (expression_statement "iVar3 = *(int *)(pcVar20 + 0x1d2c0);" (assignment_expression "iVar3 = *(int *)(pcVar20 + 0x1d2c0)" identifier = (pointer_expression "*(int *)(pcVar20 + 0x1d2c0)" * (cast_expression "(int *)(pcVar20 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d2c0)" ( (binary_expression "pcVar20 + 0x1d2c0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00028774;" goto statement_identifier ;) })) (labeled_statement "LAB_00028678:\n    if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;" statement_identifier : (if_statement "if ((float)dVar23 * pHVar12->shrink_threshold <= fVar25) goto LAB_0002861c;" if (parenthesized_expression "((float)dVar23 * pHVar12->shrink_threshold <= fVar25)" ( (binary_expression "(float)dVar23 * pHVar12->shrink_threshold <= fVar25" (binary_expression "(float)dVar23 * pHVar12->shrink_threshold" (cast_expression "(float)dVar23" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar12->shrink_threshold" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;))) }) (else_clause "else {\n    fVar25 = (float)(int)sVar5;\n    pHVar12 = pHVar14->tuning;\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;\n    iVar3 = *(int *)(pcVar20 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;\n  }" else (compound_statement "{\n    fVar25 = (float)(int)sVar5;\n    pHVar12 = pHVar14->tuning;\n    dVar23 = (double)(int)pHVar14->n_buckets;\n    if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;\n    iVar3 = *(int *)(pcVar20 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;\n  }" { (expression_statement "fVar25 = (float)(int)sVar5;" (assignment_expression "fVar25 = (float)(int)sVar5" identifier = (cast_expression "(float)(int)sVar5" ( (type_descriptor "float" primitive_type) ) (cast_expression "(int)sVar5" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pHVar12 = pHVar14->tuning;" (assignment_expression "pHVar12 = pHVar14->tuning" identifier = (field_expression "pHVar14->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar23 = (double)(int)pHVar14->n_buckets;" (assignment_expression "dVar23 = (double)(int)pHVar14->n_buckets" identifier = (cast_expression "(double)(int)pHVar14->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar14->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if (-1 < (int)pHVar14->n_buckets) goto LAB_00028678;" if (parenthesized_expression "(-1 < (int)pHVar14->n_buckets)" ( (binary_expression "-1 < (int)pHVar14->n_buckets" number_literal < (cast_expression "(int)pHVar14->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets" identifier -> field_identifier))) )) (goto_statement "goto LAB_00028678;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pcVar20 + 0x1d2c0);" (assignment_expression "iVar3 = *(int *)(pcVar20 + 0x1d2c0)" identifier = (pointer_expression "*(int *)(pcVar20 + 0x1d2c0)" * (cast_expression "(int *)(pcVar20 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d2c0)" ( (binary_expression "pcVar20 + 0x1d2c0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00028774:\n    if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;" statement_identifier : (if_statement "if ((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)\n    goto LAB_0002861c;" if (parenthesized_expression "((float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25)" ( (binary_expression "(float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold <= fVar25" (binary_expression "(float)(dVar23 + *(double *)(iVar3 + 0x36c0)) * pHVar12->shrink_threshold" (cast_expression "(float)(dVar23 + *(double *)(iVar3 + 0x36c0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar23 + *(double *)(iVar3 + 0x36c0))" ( (binary_expression "dVar23 + *(double *)(iVar3 + 0x36c0)" identifier + (pointer_expression "*(double *)(iVar3 + 0x36c0)" * (cast_expression "(double *)(iVar3 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x36c0)" ( (binary_expression "iVar3 + 0x36c0" identifier + number_literal) ))))) ))) * (field_expression "pHVar12->shrink_threshold" identifier -> field_identifier)) <= identifier) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;))) }))) (expression_statement "check_tuning((Hash_table *)&pHVar14->tuning);" (call_expression "check_tuning((Hash_table *)&pHVar14->tuning)" identifier (argument_list "((Hash_table *)&pHVar14->tuning)" ( (cast_expression "(Hash_table *)&pHVar14->tuning" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pHVar14->tuning" & (field_expression "pHVar14->tuning" identifier -> field_identifier))) ))) ;) (expression_statement "pHVar12 = pHVar14->tuning;" (assignment_expression "pHVar12 = pHVar14->tuning" identifier = (field_expression "pHVar14->tuning" identifier -> field_identifier)) ;) (expression_statement "dVar23 = (double)(int)pHVar14->n_buckets;" (assignment_expression "dVar23 = (double)(int)pHVar14->n_buckets" identifier = (cast_expression "(double)(int)pHVar14->n_buckets" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar14->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar14->n_buckets < 0) {\n    dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }" if (parenthesized_expression "((int)pHVar14->n_buckets < 0)" ( (binary_expression "(int)pHVar14->n_buckets < 0" (cast_expression "(int)pHVar14->n_buckets" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n    dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }" { (expression_statement "dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar23 = dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" identifier = (binary_expression "dVar23 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar20 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar20 + 0x1d2c0)" * (cast_expression "(int *)(pcVar20 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d2c0)" ( (binary_expression "pcVar20 + 0x1d2c0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar24 = (double)(int)pHVar14->n_buckets_used;" (assignment_expression "dVar24 = (double)(int)pHVar14->n_buckets_used" identifier = (cast_expression "(double)(int)pHVar14->n_buckets_used" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)pHVar14->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets_used" identifier -> field_identifier)))) ;) (if_statement "if ((int)pHVar14->n_buckets_used < 0) {\n    dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }" if (parenthesized_expression "((int)pHVar14->n_buckets_used < 0)" ( (binary_expression "(int)pHVar14->n_buckets_used < 0" (cast_expression "(int)pHVar14->n_buckets_used" ( (type_descriptor "int" primitive_type) ) (field_expression "pHVar14->n_buckets_used" identifier -> field_identifier)) < number_literal) )) (compound_statement "{\n    dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);\n  }" { (expression_statement "dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar24 = dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" identifier = (binary_expression "dVar24 + *(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar20 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar20 + 0x1d2c0)" * (cast_expression "(int *)(pcVar20 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d2c0)" ( (binary_expression "pcVar20 + 0x1d2c0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar23 * pHVar12->shrink_threshold <= (float)dVar24) goto LAB_0002861c;" if (parenthesized_expression "((float)dVar23 * pHVar12->shrink_threshold <= (float)dVar24)" ( (binary_expression "(float)dVar23 * pHVar12->shrink_threshold <= (float)dVar24" (binary_expression "(float)dVar23 * pHVar12->shrink_threshold" (cast_expression "(float)dVar23" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar12->shrink_threshold" identifier -> field_identifier)) <= (cast_expression "(float)dVar24" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;)) (expression_statement "fVar25 = (float)dVar23 * pHVar12->shrink_factor;" (assignment_expression "fVar25 = (float)dVar23 * pHVar12->shrink_factor" identifier = (binary_expression "(float)dVar23 * pHVar12->shrink_factor" (cast_expression "(float)dVar23" ( (type_descriptor "float" primitive_type) ) identifier) * (field_expression "pHVar12->shrink_factor" identifier -> field_identifier))) ;) (if_statement "if (pHVar12->is_n_buckets == false) {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    fVar25 = fVar25 * pHVar12->growth_threshold;\n    if (fVar26 <= fVar25) goto LAB_0002871c;\nLAB_000287e4:\n    sVar5 = (size_t)fVar25;\n  }\n  else {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    if (fVar25 < fVar26) goto LAB_000287e4;\nLAB_0002871c:\n    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;\n  }" if (parenthesized_expression "(pHVar12->is_n_buckets == false)" ( (binary_expression "pHVar12->is_n_buckets == false" (field_expression "pHVar12->is_n_buckets" identifier -> field_identifier) == false) )) (compound_statement "{\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    fVar25 = fVar25 * pHVar12->growth_threshold;\n    if (fVar26 <= fVar25) goto LAB_0002871c;\nLAB_000287e4:\n    sVar5 = (size_t)fVar25;\n  }" { (expression_statement "fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" * (cast_expression "(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" ( (binary_expression "*(int *)(pcVar20 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar20 + 0x1d2c0)" * (cast_expression "(int *)(pcVar20 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d2c0)" ( (binary_expression "pcVar20 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "fVar25 = fVar25 * pHVar12->growth_threshold;" (assignment_expression "fVar25 = fVar25 * pHVar12->growth_threshold" identifier = (binary_expression "fVar25 * pHVar12->growth_threshold" identifier * (field_expression "pHVar12->growth_threshold" identifier -> field_identifier))) ;) (if_statement "if (fVar26 <= fVar25) goto LAB_0002871c;" if (parenthesized_expression "(fVar26 <= fVar25)" ( (binary_expression "fVar26 <= fVar25" identifier <= identifier) )) (goto_statement "goto LAB_0002871c;" goto statement_identifier ;)) (labeled_statement "LAB_000287e4:\n    sVar5 = (size_t)fVar25;" statement_identifier : (expression_statement "sVar5 = (size_t)fVar25;" (assignment_expression "sVar5 = (size_t)fVar25" identifier = (cast_expression "(size_t)fVar25" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;)) }) (else_clause "else {\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    if (fVar25 < fVar26) goto LAB_000287e4;\nLAB_0002871c:\n    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;\n  }" else (compound_statement "{\n    fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);\n    if (fVar25 < fVar26) goto LAB_000287e4;\nLAB_0002871c:\n    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;\n  }" { (expression_statement "fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar26 = *(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" * (cast_expression "(float *)(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar20 + 0x1d2c0) + 0x36bc)" ( (binary_expression "*(int *)(pcVar20 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar20 + 0x1d2c0)" * (cast_expression "(int *)(pcVar20 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d2c0)" ( (binary_expression "pcVar20 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (fVar25 < fVar26) goto LAB_000287e4;" if (parenthesized_expression "(fVar25 < fVar26)" ( (binary_expression "fVar25 < fVar26" identifier < identifier) )) (goto_statement "goto LAB_000287e4;" goto statement_identifier ;)) (labeled_statement "LAB_0002871c:\n    sVar5 = (int)(fVar25 - fVar26) | 0x80000000;" statement_identifier : (expression_statement "sVar5 = (int)(fVar25 - fVar26) | 0x80000000;" (assignment_expression "sVar5 = (int)(fVar25 - fVar26) | 0x80000000" identifier = (binary_expression "(int)(fVar25 - fVar26) | 0x80000000" (cast_expression "(int)(fVar25 - fVar26)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar25 - fVar26)" ( (binary_expression "fVar25 - fVar26" identifier - identifier) ))) | number_literal)) ;)) }))) (expression_statement "_Var9 = hash_rehash(pHVar14,sVar5);" (assignment_expression "_Var9 = hash_rehash(pHVar14,sVar5)" identifier = (call_expression "hash_rehash(pHVar14,sVar5)" identifier (argument_list "(pHVar14,sVar5)" ( identifier , identifier )))) ;) (if_statement "if (CONCAT31(extraout_var_00,_Var9) == 0) {\n    phVar15 = pHVar14->free_entry_list;\n    while (phVar15 != (hash_entry *)0x0) {\n      phVar15 = phVar15->next;\n      (**(code **)(pcVar20 + 0x1d730))();\n    }\n    pHVar14->free_entry_list = (hash_entry *)0x0;\n  }" if (parenthesized_expression "(CONCAT31(extraout_var_00,_Var9) == 0)" ( (binary_expression "CONCAT31(extraout_var_00,_Var9) == 0" (call_expression "CONCAT31(extraout_var_00,_Var9)" identifier (argument_list "(extraout_var_00,_Var9)" ( identifier , identifier ))) == number_literal) )) (compound_statement "{\n    phVar15 = pHVar14->free_entry_list;\n    while (phVar15 != (hash_entry *)0x0) {\n      phVar15 = phVar15->next;\n      (**(code **)(pcVar20 + 0x1d730))();\n    }\n    pHVar14->free_entry_list = (hash_entry *)0x0;\n  }" { (expression_statement "phVar15 = pHVar14->free_entry_list;" (assignment_expression "phVar15 = pHVar14->free_entry_list" identifier = (field_expression "pHVar14->free_entry_list" identifier -> field_identifier)) ;) (while_statement "while (phVar15 != (hash_entry *)0x0) {\n      phVar15 = phVar15->next;\n      (**(code **)(pcVar20 + 0x1d730))();\n    }" while (parenthesized_expression "(phVar15 != (hash_entry *)0x0)" ( (binary_expression "phVar15 != (hash_entry *)0x0" identifier != (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      phVar15 = phVar15->next;\n      (**(code **)(pcVar20 + 0x1d730))();\n    }" { (expression_statement "phVar15 = phVar15->next;" (assignment_expression "phVar15 = phVar15->next" identifier = (field_expression "phVar15->next" identifier -> field_identifier)) ;) (expression_statement "(**(code **)(pcVar20 + 0x1d730))();" (call_expression "(**(code **)(pcVar20 + 0x1d730))()" (parenthesized_expression "(**(code **)(pcVar20 + 0x1d730))" ( (pointer_expression "**(code **)(pcVar20 + 0x1d730)" * (pointer_expression "*(code **)(pcVar20 + 0x1d730)" * (cast_expression "(code **)(pcVar20 + 0x1d730)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d730)" ( (binary_expression "pcVar20 + 0x1d730" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pHVar14->free_entry_list = (hash_entry *)0x0;" (assignment_expression "pHVar14->free_entry_list = (hash_entry *)0x0" (field_expression "pHVar14->free_entry_list" identifier -> field_identifier) = (cast_expression "(hash_entry *)0x0" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (labeled_statement "LAB_0002861c:\n  if (iStack_8c == *piVar17) {\n    return (int)pvVar2;\n  }" statement_identifier : (if_statement "if (iStack_8c == *piVar17) {\n    return (int)pvVar2;\n  }" if (parenthesized_expression "(iStack_8c == *piVar17)" ( (binary_expression "iStack_8c == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n    return (int)pvVar2;\n  }" { (return_statement "return (int)pvVar2;" return (cast_expression "(int)pvVar2" ( (type_descriptor "int" primitive_type) ) identifier) ;) }))) (expression_statement "pcVar20 = *(code **)(pcVar20 + 0x1d700);" (assignment_expression "pcVar20 = *(code **)(pcVar20 + 0x1d700)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x1d700)" * (cast_expression "(code **)(pcVar20 + 0x1d700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d700)" ( (binary_expression "pcVar20 + 0x1d700" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = iStack_8c;" (assignment_expression "iVar3 = iStack_8c" identifier = identifier) ;) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar3 != 0) {\n    iVar6 = (**(code **)(pcVar20 + 0x1d41c))();\n    if (((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)) {\n      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }\n      iVar3 = iVar6 + 4;\n      **(int **)(pcVar20 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar20 + 0x1d34c) = iVar3;\n    piVar16 = *(int **)(pcVar20 + 0x1d428);\n    *piVar16 = iVar3;\n    return (int)piVar16;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar6 = (**(code **)(pcVar20 + 0x1d41c))();\n    if (((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)) {\n      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }\n      iVar3 = iVar6 + 4;\n      **(int **)(pcVar20 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar20 + 0x1d34c) = iVar3;\n    piVar16 = *(int **)(pcVar20 + 0x1d428);\n    *piVar16 = iVar3;\n    return (int)piVar16;\n  }" { (expression_statement "iVar6 = (**(code **)(pcVar20 + 0x1d41c))();" (assignment_expression "iVar6 = (**(code **)(pcVar20 + 0x1d41c))()" identifier = (call_expression "(**(code **)(pcVar20 + 0x1d41c))()" (parenthesized_expression "(**(code **)(pcVar20 + 0x1d41c))" ( (pointer_expression "**(code **)(pcVar20 + 0x1d41c)" * (pointer_expression "*(code **)(pcVar20 + 0x1d41c)" * (cast_expression "(code **)(pcVar20 + 0x1d41c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d41c)" ( (binary_expression "pcVar20 + 0x1d41c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)) {\n      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }\n      iVar3 = iVar6 + 4;\n      **(int **)(pcVar20 + 0x1d3f8) = iVar3;\n    }" if (parenthesized_expression "(((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0))" ( (binary_expression "((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)) &&\n       (iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)" (parenthesized_expression "((iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3))" ( (binary_expression "(iVar6 != 0) && (iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar18 = iVar6 + 1, 6 < iVar18 - iVar3)" ( (comma_expression "iVar18 = iVar6 + 1, 6 < iVar18 - iVar3" (assignment_expression "iVar18 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) , (binary_expression "6 < iVar18 - iVar3" number_literal < (binary_expression "iVar18 - iVar3" identifier - identifier))) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7),\n       iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7)" identifier = (call_expression "(**(code **)(pcVar20 + 0x1d3e8))(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1d3e8))" ( (pointer_expression "**(code **)(pcVar20 + 0x1d3e8)" * (pointer_expression "*(code **)(pcVar20 + 0x1d3e8)" * (cast_expression "(code **)(pcVar20 + 0x1d3e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d3e8)" ( (binary_expression "pcVar20 + 0x1d3e8" identifier + number_literal) ))))) )) (argument_list "(iVar6 + -6,*(int *)(pcVar20 + 0x1d068) + 0x3708,7)" ( (binary_expression "iVar6 + -6" identifier + number_literal) , (binary_expression "*(int *)(pcVar20 + 0x1d068) + 0x3708" (pointer_expression "*(int *)(pcVar20 + 0x1d068)" * (cast_expression "(int *)(pcVar20 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d068)" ( (binary_expression "pcVar20 + 0x1d068" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }\n      iVar3 = iVar6 + 4;\n      **(int **)(pcVar20 + 0x1d3f8) = iVar3;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3);" (assignment_expression "iVar3 = (**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3)" identifier = (call_expression "(**(code **)(pcVar20 + 0x1d3e8))(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1d3e8))" ( (pointer_expression "**(code **)(pcVar20 + 0x1d3e8)" * (pointer_expression "*(code **)(pcVar20 + 0x1d3e8)" * (cast_expression "(code **)(pcVar20 + 0x1d3e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d3e8)" ( (binary_expression "pcVar20 + 0x1d3e8" identifier + number_literal) ))))) )) (argument_list "(iVar18,*(int *)(pcVar20 + 0x1d068) + 0x3710,3)" ( identifier , (binary_expression "*(int *)(pcVar20 + 0x1d068) + 0x3710" (pointer_expression "*(int *)(pcVar20 + 0x1d068)" * (cast_expression "(int *)(pcVar20 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d068)" ( (binary_expression "pcVar20 + 0x1d068" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        **(int **)(pcVar20 + 0x1d34c) = iVar18;\n        piVar16 = *(int **)(pcVar20 + 0x1d428);\n        *piVar16 = iVar18;\n        return (int)piVar16;\n      }" { (expression_statement "**(int **)(pcVar20 + 0x1d34c) = iVar18;" (assignment_expression "**(int **)(pcVar20 + 0x1d34c) = iVar18" (pointer_expression "**(int **)(pcVar20 + 0x1d34c)" * (pointer_expression "*(int **)(pcVar20 + 0x1d34c)" * (cast_expression "(int **)(pcVar20 + 0x1d34c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d34c)" ( (binary_expression "pcVar20 + 0x1d34c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar16 = *(int **)(pcVar20 + 0x1d428);" (assignment_expression "piVar16 = *(int **)(pcVar20 + 0x1d428)" identifier = (pointer_expression "*(int **)(pcVar20 + 0x1d428)" * (cast_expression "(int **)(pcVar20 + 0x1d428)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d428)" ( (binary_expression "pcVar20 + 0x1d428" identifier + number_literal) ))))) ;) (expression_statement "*piVar16 = iVar18;" (assignment_expression "*piVar16 = iVar18" (pointer_expression "*piVar16" * identifier) = identifier) ;) (return_statement "return (int)piVar16;" return (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "iVar3 = iVar6 + 4;" (assignment_expression "iVar3 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "**(int **)(pcVar20 + 0x1d3f8) = iVar3;" (assignment_expression "**(int **)(pcVar20 + 0x1d3f8) = iVar3" (pointer_expression "**(int **)(pcVar20 + 0x1d3f8)" * (pointer_expression "*(int **)(pcVar20 + 0x1d3f8)" * (cast_expression "(int **)(pcVar20 + 0x1d3f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d3f8)" ( (binary_expression "pcVar20 + 0x1d3f8" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(int **)(pcVar20 + 0x1d34c) = iVar3;" (assignment_expression "**(int **)(pcVar20 + 0x1d34c) = iVar3" (pointer_expression "**(int **)(pcVar20 + 0x1d34c)" * (pointer_expression "*(int **)(pcVar20 + 0x1d34c)" * (cast_expression "(int **)(pcVar20 + 0x1d34c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d34c)" ( (binary_expression "pcVar20 + 0x1d34c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar16 = *(int **)(pcVar20 + 0x1d428);" (assignment_expression "piVar16 = *(int **)(pcVar20 + 0x1d428)" identifier = (pointer_expression "*(int **)(pcVar20 + 0x1d428)" * (cast_expression "(int **)(pcVar20 + 0x1d428)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d428)" ( (binary_expression "pcVar20 + 0x1d428" identifier + number_literal) ))))) ;) (expression_statement "*piVar16 = iVar3;" (assignment_expression "*piVar16 = iVar3" (pointer_expression "*piVar16" * identifier) = identifier) ;) (return_statement "return (int)piVar16;" return (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = *(int *)(pcVar20 + 0x1d068) + 0x36d0;" (assignment_expression "iVar3 = *(int *)(pcVar20 + 0x1d068) + 0x36d0" identifier = (binary_expression "*(int *)(pcVar20 + 0x1d068) + 0x36d0" (pointer_expression "*(int *)(pcVar20 + 0x1d068)" * (cast_expression "(int *)(pcVar20 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x1d068)" ( (binary_expression "pcVar20 + 0x1d068" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar20 + 0x1d49c))(iVar3);" (call_expression "(**(code **)(pcVar20 + 0x1d49c))(iVar3)" (parenthesized_expression "(**(code **)(pcVar20 + 0x1d49c))" ( (pointer_expression "**(code **)(pcVar20 + 0x1d49c)" * (pointer_expression "*(code **)(pcVar20 + 0x1d49c)" * (cast_expression "(code **)(pcVar20 + 0x1d49c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d49c)" ( (binary_expression "pcVar20 + 0x1d49c" identifier + number_literal) ))))) )) (argument_list "(iVar3)" ( identifier ))) ;) (expression_statement "pcVar21 = *(code **)(pcVar20 + 0x1d3e0);" (assignment_expression "pcVar21 = *(code **)(pcVar20 + 0x1d3e0)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x1d3e0)" * (cast_expression "(code **)(pcVar20 + 0x1d3e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x1d3e0)" ( (binary_expression "pcVar20 + 0x1d3e0" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar6 == 0) {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }" { (expression_statement "(**(code **)(pcVar21 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar21 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar21 + 0x1d2c4)" * (cast_expression "(code **)(pcVar21 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d2c4)" ( (binary_expression "pcVar21 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }" else (compound_statement "{\n    (**(code **)(pcVar21 + 0x1d2c4))();\n  }" { (expression_statement "(**(code **)(pcVar21 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar21 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar21 + 0x1d2c4)" * (cast_expression "(code **)(pcVar21 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d2c4)" ( (binary_expression "pcVar21 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5);" (assignment_expression "uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5)" identifier = (call_expression "(**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5)" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d380)" * (pointer_expression "*(code **)(pcVar21 + 0x1d380)" * (cast_expression "(code **)(pcVar21 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d380)" ( (binary_expression "pcVar21 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar21 + 0x1cf38) + 0x3728,5)" ( number_literal , (binary_expression "*(int *)(pcVar21 + 0x1cf38) + 0x3728" (pointer_expression "*(int *)(pcVar21 + 0x1cf38)" * (cast_expression "(int *)(pcVar21 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x1cf38)" ( (binary_expression "pcVar21 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar21 + 0x1d2c4))(iVar3,1,*(undefined4 *)(pcVar21 + 0x1d220),uVar8,0x7e3);" (call_expression "(**(code **)(pcVar21 + 0x1d2c4))(iVar3,1,*(undefined4 *)(pcVar21 + 0x1d220),uVar8,0x7e3)" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar21 + 0x1d2c4)" * (cast_expression "(code **)(pcVar21 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d2c4)" ( (binary_expression "pcVar21 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "(iVar3,1,*(undefined4 *)(pcVar21 + 0x1d220),uVar8,0x7e3)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(pcVar21 + 0x1d220)" * (cast_expression "(undefined4 *)(pcVar21 + 0x1d220)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x1d220)" ( (binary_expression "pcVar21 + 0x1d220" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5);" (assignment_expression "uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5)" identifier = (call_expression "(**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5)" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d380)" * (pointer_expression "*(code **)(pcVar21 + 0x1d380)" * (cast_expression "(code **)(pcVar21 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d380)" ( (binary_expression "pcVar21 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar21 + 0x1cf38) + 0x372c,5)" ( number_literal , (binary_expression "*(int *)(pcVar21 + 0x1cf38) + 0x372c" (pointer_expression "*(int *)(pcVar21 + 0x1cf38)" * (cast_expression "(int *)(pcVar21 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x1cf38)" ( (binary_expression "pcVar21 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar21 + 0x1d2a0))(uVar8,iVar3);" (call_expression "(**(code **)(pcVar21 + 0x1d2a0))(uVar8,iVar3)" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d2a0))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d2a0)" * (pointer_expression "*(code **)(pcVar21 + 0x1d2a0)" * (cast_expression "(code **)(pcVar21 + 0x1d2a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d2a0)" ( (binary_expression "pcVar21 + 0x1d2a0" identifier + number_literal) ))))) )) (argument_list "(uVar8,iVar3)" ( identifier , identifier ))) ;) (if_statement "if (uStack_bc < 10) {\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ();\n    return iVar3;\n  }" if (parenthesized_expression "(uStack_bc < 10)" ( (binary_expression "uStack_bc < 10" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ();\n    return iVar3;\n  }" { comment comment (expression_statement "iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ();" (assignment_expression "iVar3 = (*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ()" identifier = (call_expression "(*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))\n                      ()" (parenthesized_expression "(*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00))" ( (pointer_expression "*(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00)" * (parenthesized_expression "(pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00)" ( (binary_expression "pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4) + 0x24f00" (binary_expression "pcVar21 + *(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" * (cast_expression "(int *)(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" ( (binary_expression "*(int *)(pcVar21 + 0x1cf38) + 0x3a20 + uStack_bc * 4" (binary_expression "*(int *)(pcVar21 + 0x1cf38) + 0x3a20" (pointer_expression "*(int *)(pcVar21 + 0x1cf38)" * (cast_expression "(int *)(pcVar21 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x1cf38)" ( (binary_expression "pcVar21 + 0x1cf38" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_bc * 4" identifier * number_literal)) ))))) + number_literal) ))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar3;" return identifier ;) })) (expression_statement "uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5);" (assignment_expression "uVar8 = (**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5)" identifier = (call_expression "(**(code **)(pcVar21 + 0x1d380))(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5)" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d380)" * (pointer_expression "*(code **)(pcVar21 + 0x1d380)" * (cast_expression "(code **)(pcVar21 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d380)" ( (binary_expression "pcVar21 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar21 + 0x1cf38) + 0x3938,5)" ( number_literal , (binary_expression "*(int *)(pcVar21 + 0x1cf38) + 0x3938" (pointer_expression "*(int *)(pcVar21 + 0x1cf38)" * (cast_expression "(int *)(pcVar21 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x1cf38)" ( (binary_expression "pcVar21 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "iVar3 = (**(code **)(pcVar21 + 0x1d2c4))\n                    (iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),\n                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),\n                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),\n                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),\n                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050));" (assignment_expression "iVar3 = (**(code **)(pcVar21 + 0x1d2c4))\n                    (iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),\n                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),\n                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),\n                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),\n                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050))" identifier = (call_expression "(**(code **)(pcVar21 + 0x1d2c4))\n                    (iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),\n                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),\n                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),\n                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),\n                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050))" (parenthesized_expression "(**(code **)(pcVar21 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar21 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar21 + 0x1d2c4)" * (cast_expression "(code **)(pcVar21 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x1d2c4)" ( (binary_expression "pcVar21 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "(iVar3,1,uVar8,*(undefined4 *)(pcVar20 + 0x25030),\n                     *(undefined4 *)(pcVar20 + 0x25034),*(undefined4 *)(pcVar20 + 0x25038),\n                     *(undefined4 *)(pcVar20 + 0x2503c),*(undefined4 *)(pcVar20 + 0x25040),\n                     *(undefined4 *)(pcVar20 + 0x25044),*(undefined4 *)(pcVar20 + 0x25048),\n                     *(undefined4 *)(pcVar20 + 0x2504c),*(undefined4 *)(pcVar20 + 0x25050))" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(pcVar20 + 0x25030)" * (cast_expression "(undefined4 *)(pcVar20 + 0x25030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x25030)" ( (binary_expression "pcVar20 + 0x25030" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x25034)" * (cast_expression "(undefined4 *)(pcVar20 + 0x25034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x25034)" ( (binary_expression "pcVar20 + 0x25034" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x25038)" * (cast_expression "(undefined4 *)(pcVar20 + 0x25038)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x25038)" ( (binary_expression "pcVar20 + 0x25038" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x2503c)" * (cast_expression "(undefined4 *)(pcVar20 + 0x2503c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x2503c)" ( (binary_expression "pcVar20 + 0x2503c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x25040)" * (cast_expression "(undefined4 *)(pcVar20 + 0x25040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x25040)" ( (binary_expression "pcVar20 + 0x25040" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x25044)" * (cast_expression "(undefined4 *)(pcVar20 + 0x25044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x25044)" ( (binary_expression "pcVar20 + 0x25044" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x25048)" * (cast_expression "(undefined4 *)(pcVar20 + 0x25048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x25048)" ( (binary_expression "pcVar20 + 0x25048" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x2504c)" * (cast_expression "(undefined4 *)(pcVar20 + 0x2504c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x2504c)" ( (binary_expression "pcVar20 + 0x2504c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar20 + 0x25050)" * (cast_expression "(undefined4 *)(pcVar20 + 0x25050)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x25050)" ( (binary_expression "pcVar20 + 0x25050" identifier + number_literal) )))) )))) ;) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "int * hash_insert_if_absent(int param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}\n\n" (function_definition "int * hash_insert_if_absent(int param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}" primitive_type (pointer_declarator "* hash_insert_if_absent(int param_1,int *param_2,int *param_3)" * (function_declarator "hash_insert_if_absent(int param_1,int *param_2,int *param_3)" identifier (parameter_list "(int param_1,int *param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "float *pfVar9;" primitive_type (pointer_declarator "*pfVar9" * identifier) ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint **unaff_s4;" type_identifier (pointer_declarator "**unaff_s4" * (pointer_declarator "*unaff_s4" * 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 "ulonglong uVar13;" type_identifier identifier ;) (declaration "ulonglong extraout_f0_1;" type_identifier identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "ulonglong in_f2_3;" type_identifier identifier ;) (declaration "float fVar17;" primitive_type identifier ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "float fVar18;" primitive_type identifier ;) (declaration "uint uStack_bc;" type_identifier identifier ;) (declaration "int *piStack_90;" primitive_type (pointer_declarator "*piStack_90" * identifier) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "uint *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar10 = PTR___stack_chk_guard_00045cc8;" (assignment_expression "puVar10 = PTR___stack_chk_guard_00045cc8" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_00045cc8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_00045cc8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00045cc8" * (cast_expression "(int *)PTR___stack_chk_guard_00045cc8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == (int *)0x0) goto LAB_000284f0;" if (parenthesized_expression "(param_2 == (int *)0x0)" ( (binary_expression "param_2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000284f0;" goto statement_identifier ;)) (expression_statement "unaff_s4 = &local_28;" (assignment_expression "unaff_s4 = &local_28" identifier = (pointer_expression "&local_28" & identifier)) ;) (expression_statement "piVar4 = param_2;" (assignment_expression "piVar4 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);" (assignment_expression "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier = (call_expression "FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier (argument_list "(param_1,param_2,unaff_s4,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }" { (expression_statement "dVar14 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar14 = (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      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" { (expression_statement "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar16 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar16 = (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      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" { (expression_statement "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (if_statement "if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }" if (parenthesized_expression "((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14)" ( (binary_expression "(float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14" (binary_expression "(float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar16" ( (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)dVar14" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }" { (expression_statement "FUN_00027328(param_1 + 0x14);" (call_expression "FUN_00027328(param_1 + 0x14)" identifier (argument_list "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "dVar14 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar14 = (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        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" { (expression_statement "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar16 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar16 = (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        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" { (expression_statement "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier = (binary_expression "dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" identifier + (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" * (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" identifier + number_literal) )))))) ;) })) (if_statement "if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }" if (parenthesized_expression "(*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16)" ( (binary_expression "*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16" (binary_expression "*(float *)(iVar1 + 8) * (float)dVar14" (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) * (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier)) < (cast_expression "(float)dVar16" ( (type_descriptor "float" primitive_type) ) identifier)) )) (compound_statement "{\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }" { (expression_statement "fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc)" identifier = (binary_expression "(float)dVar14 * *(float *)(iVar1 + 0xc)" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*(float *)(iVar1 + 0xc)" * (cast_expression "(float *)(iVar1 + 0xc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))))) ;) (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }" if (parenthesized_expression "(*(char *)(iVar1 + 0x10) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x10)" * (cast_expression "(char *)(iVar1 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x10)" ( (binary_expression "iVar1 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }" { (expression_statement "fVar17 = fVar17 * *(float *)(iVar1 + 8);" (assignment_expression "fVar17 = fVar17 * *(float *)(iVar1 + 8)" identifier = (binary_expression "fVar17 * *(float *)(iVar1 + 8)" identifier * (pointer_expression "*(float *)(iVar1 + 8)" * (cast_expression "(float *)(iVar1 + 8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) })) (expression_statement "uVar13 = (ulonglong)(uint)fVar17;" (assignment_expression "uVar13 = (ulonglong)(uint)fVar17" identifier = (cast_expression "(ulonglong)(uint)fVar17" ( (type_descriptor "ulonglong" type_identifier) ) (cast_expression "(uint)fVar17" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" if (parenthesized_expression "(*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17)" ( (binary_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17" (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" { (labeled_statement "LAB_00028454:\n          piVar2 = (int *)0xffffffff;" statement_identifier : (expression_statement "piVar2 = (int *)0xffffffff;" (assignment_expression "piVar2 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (goto_statement "goto LAB_000282f0;" goto statement_identifier ;) })) (expression_statement "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);" (assignment_expression "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" identifier = (binary_expression "(ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (call_expression "(ulonglong)\n                  (uint)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uint)" ( identifier ))) * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = 0x80000000;" (assignment_expression "uVar15 = 0x80000000" identifier = number_literal) ;) (if_statement "if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }" if (parenthesized_expression "(fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc))" ( (binary_expression "fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" identifier < (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" * (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" ( (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" identifier + number_literal) ))))) )) (compound_statement "{\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }" { (expression_statement "piVar4 = (int *)(int)fVar17;" (assignment_expression "piVar4 = (int *)(int)fVar17" identifier = (cast_expression "(int *)(int)fVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)fVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_000284bc;" goto statement_identifier ;) })) (while_statement "while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }" { (expression_statement "piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);" (assignment_expression "piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15)" identifier = (cast_expression "(int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((float)uVar13 - (float)in_f2_3) | uVar15)" ( (binary_expression "(int)((float)uVar13 - (float)in_f2_3) | uVar15" (cast_expression "(int)((float)uVar13 - (float)in_f2_3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((float)uVar13 - (float)in_f2_3)" ( (binary_expression "(float)uVar13 - (float)in_f2_3" (cast_expression "(float)uVar13" ( (type_descriptor "float" primitive_type) ) identifier) - (cast_expression "(float)in_f2_3" ( (type_descriptor "float" primitive_type) ) identifier)) ))) | identifier) )))) ;) (labeled_statement "LAB_000284bc:\n          iVar1 = hash_rehash(param_1);" statement_identifier : (expression_statement "iVar1 = hash_rehash(param_1);" (assignment_expression "iVar1 = hash_rehash(param_1)" identifier = (call_expression "hash_rehash(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (if_statement "if (iVar1 == 0) goto LAB_00028454;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028454;" goto statement_identifier ;)) (expression_statement "piVar4 = param_2;" (assignment_expression "piVar4 = param_2" identifier = identifier) ;) (expression_statement "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);" (assignment_expression "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier = (call_expression "FUN_000271e0(param_1,param_2,unaff_s4,0)" identifier (argument_list "(param_1,param_2,unaff_s4,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s3 = param_2;" (assignment_expression "unaff_s3 = param_2" identifier = identifier) ;) (if_statement "if (iVar1 == 0) break;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000284f0:\n          param_2 = unaff_s3;" statement_identifier : (expression_statement "param_2 = unaff_s3;" (assignment_expression "param_2 = unaff_s3" identifier = identifier) ;)) (expression_statement "param_1 = unaff_s0;" (assignment_expression "param_1 = unaff_s0" identifier = identifier) ;) (expression_statement "uVar15 = (*(code *)PTR_abort_00045be0)();" (assignment_expression "uVar15 = (*(code *)PTR_abort_00045be0)()" identifier = (call_expression "(*(code *)PTR_abort_00045be0)()" (parenthesized_expression "(*(code *)PTR_abort_00045be0)" ( (pointer_expression "*(code *)PTR_abort_00045be0" * (cast_expression "(code *)PTR_abort_00045be0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar13 = extraout_f0_1;" (assignment_expression "uVar13 = extraout_f0_1" identifier = identifier) ;) })) })) })) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" if (parenthesized_expression "(*local_28 == 0)" ( (binary_expression "*local_28 == 0" (pointer_expression "*local_28" * identifier) == number_literal) )) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*local_28 = (uint)param_2;" (assignment_expression "*local_28 = (uint)param_2" (pointer_expression "*local_28" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)(param_1 + 0xc) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" else (compound_statement "{\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" { (expression_statement "puVar7 = *(uint **)(param_1 + 0x24);" (assignment_expression "puVar7 = *(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 (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }" { (expression_statement "puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);" (assignment_expression "puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8)" identifier = (cast_expression "(uint *)(*(code *)PTR_malloc_00045c80)(8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_00045c80)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00045c80)" ( (pointer_expression "*(code *)PTR_malloc_00045c80" * (cast_expression "(code *)PTR_malloc_00045c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(8)" ( number_literal ))))) ;) (if_statement "if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" if (parenthesized_expression "(puVar7 == (uint *)0x0)" ( (binary_expression "puVar7 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" { (expression_statement "piVar2 = (int *)0xffffffff;" (assignment_expression "piVar2 = (int *)0xffffffff" identifier = (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000282f0;" goto statement_identifier ;) })) }) (else_clause "else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" else (compound_statement "{\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" { (expression_statement "*(uint *)(param_1 + 0x24) = puVar7[1];" (assignment_expression "*(uint *)(param_1 + 0x24) = puVar7[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 "puVar7[1]" identifier [ number_literal ])) ;) }))) (expression_statement "iVar1 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar4 = (int *)local_28[1];" (assignment_expression "piVar4 = (int *)local_28[1]" identifier = (cast_expression "(int *)local_28[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[1]" identifier [ number_literal ]))) ;) (expression_statement "*puVar7 = (uint)param_2;" (assignment_expression "*puVar7 = (uint)param_2" (pointer_expression "*puVar7" * identifier) = (cast_expression "(uint)param_2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar7[1] = (uint)piVar4;" (assignment_expression "puVar7[1] = (uint)piVar4" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = (cast_expression "(uint)piVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_28[1] = (uint)puVar7;" (assignment_expression "local_28[1] = (uint)puVar7" (subscript_expression "local_28[1]" identifier [ number_literal ]) = (cast_expression "(uint)puVar7" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }))) }) (else_clause "else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" else (if_statement "if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\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    piVar2 = (int *)0x0;\n  }" { (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" else (compound_statement "{\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" { (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (labeled_statement "LAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }" if (parenthesized_expression "(local_24 == *(int *)puVar10)" ( (binary_expression "local_24 == *(int *)puVar10" identifier == (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar2;\n  }" { (return_statement "return piVar2;" return identifier ;) }))) (expression_statement "puVar10 = PTR___stack_chk_fail_00045ca8;" (assignment_expression "puVar10 = PTR___stack_chk_fail_00045ca8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00045ca8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00045ca8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00045ca8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00045ca8" * (cast_expression "(code *)PTR___stack_chk_fail_00045ca8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = *(int **)(puVar10 + 0x1d7ac);" (assignment_expression "piVar2 = *(int **)(puVar10 + 0x1d7ac)" identifier = (pointer_expression "*(int **)(puVar10 + 0x1d7ac)" * (cast_expression "(int **)(puVar10 + 0x1d7ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1d7ac)" ( (binary_expression "puVar10 + 0x1d7ac" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *piVar2;" (assignment_expression "iVar1 = *piVar2" identifier = (pointer_expression "*piVar2" * 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    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n    piStack_58 = (int *)0x0;\n  }" { (expression_statement "piStack_58 = (int *)0x0;" (assignment_expression "piStack_58 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" else (if_statement "if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    piStack_58 = piVar4;\n  }" { (expression_statement "piStack_58 = piVar4;" (assignment_expression "piStack_58 = piVar4" identifier = identifier) ;) })))) (if_statement "if (iVar1 == *piVar2) {\n    return piStack_58;\n  }" if (parenthesized_expression "(iVar1 == *piVar2)" ( (binary_expression "iVar1 == *piVar2" identifier == (pointer_expression "*piVar2" * identifier)) )) (compound_statement "{\n    return piStack_58;\n  }" { (return_statement "return piStack_58;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x1d78c);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x1d78c)" identifier = (pointer_expression "*(code **)(puVar10 + 0x1d78c)" * (cast_expression "(code **)(puVar10 + 0x1d78c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x1d78c)" ( (binary_expression "puVar10 + 0x1d78c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar2 = *(int **)(pcVar11 + 0x1d720);" (assignment_expression "piVar2 = *(int **)(pcVar11 + 0x1d720)" identifier = (pointer_expression "*(int **)(pcVar11 + 0x1d720)" * (cast_expression "(int **)(pcVar11 + 0x1d720)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d720)" ( (binary_expression "pcVar11 + 0x1d720" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "piVar4 = (int *)FUN_000271e0();" (assignment_expression "piVar4 = (int *)FUN_000271e0()" identifier = (cast_expression "(int *)FUN_000271e0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000271e0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;" if (parenthesized_expression "((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))" ( (binary_expression "(piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0)" (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0)" ( (comma_expression "iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0" (assignment_expression "iVar8 = *piStack_90" identifier = (pointer_expression "*piStack_90" * identifier)) , (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 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 "iVar8 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(iVar1 + 0xc) + -1;" (assignment_expression "iVar8 = *(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) = iVar8;" (assignment_expression "*(int *)(iVar1 + 0xc) = iVar8" (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" if (parenthesized_expression "(iVar8 < 0)" ( (binary_expression "iVar8 < 0" identifier < number_literal) )) (compound_statement "{\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" { (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(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 "fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));" (assignment_expression "fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" identifier = (cast_expression "(float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" ( (binary_expression "(double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (cast_expression "(double)iVar8" ( (type_descriptor "double" primitive_type) ) identifier) + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) )))) ;) (expression_statement "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (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      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\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      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }" { (expression_statement "iVar8 = *(int *)(pcVar11 + 0x1d2c0);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x1d2c0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00028774;" goto statement_identifier ;) })) (labeled_statement "LAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;" statement_identifier : (if_statement "if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;" if (parenthesized_expression "((float)dVar14 * *pfVar9 <= fVar17)" ( (binary_expression "(float)dVar14 * *pfVar9 <= fVar17" (binary_expression "(float)dVar14 * *pfVar9" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar9" * identifier)) <= identifier) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;))) }) (else_clause "else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" else (compound_statement "{\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" { (expression_statement "fVar17 = (float)iVar8;" (assignment_expression "fVar17 = (float)iVar8" identifier = (cast_expression "(float)iVar8" ( (type_descriptor "float" primitive_type) ) identifier)) ;) (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(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 "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (double)*(int *)(iVar1 + 8)" identifier = (cast_expression "(double)*(int *)(iVar1 + 8)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))))) ;) (if_statement "if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;" if (parenthesized_expression "(-1 < *(int *)(iVar1 + 8))" ( (binary_expression "-1 < *(int *)(iVar1 + 8)" number_literal < (pointer_expression "*(int *)(iVar1 + 8)" * (cast_expression "(int *)(iVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00028678;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x1d2c0);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x1d2c0)" identifier = (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;" statement_identifier : (if_statement "if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;" if (parenthesized_expression "((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17)" ( (binary_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17" (binary_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9" (cast_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0))" ( (type_descriptor "float" primitive_type) ) (parenthesized_expression "(dVar14 + *(double *)(iVar8 + 0x36c0))" ( (binary_expression "dVar14 + *(double *)(iVar8 + 0x36c0)" identifier + (pointer_expression "*(double *)(iVar8 + 0x36c0)" * (cast_expression "(double *)(iVar8 + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x36c0)" ( (binary_expression "iVar8 + 0x36c0" identifier + number_literal) ))))) ))) * (pointer_expression "*pfVar9" * identifier)) <= identifier) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;))) }))) (expression_statement "FUN_00027328(iVar1 + 0x14);" (call_expression "FUN_00027328(iVar1 + 0x14)" identifier (argument_list "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))) ;) (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(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 "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (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    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\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    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }" { (expression_statement "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier = (binary_expression "dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar16 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar16 = (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    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\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    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }" { (expression_statement "dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier = (binary_expression "dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" identifier + (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" * (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (if_statement "if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;" if (parenthesized_expression "((float)dVar14 * *pfVar9 <= (float)dVar16)" ( (binary_expression "(float)dVar14 * *pfVar9 <= (float)dVar16" (binary_expression "(float)dVar14 * *pfVar9" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (pointer_expression "*pfVar9" * identifier)) <= (cast_expression "(float)dVar16" ( (type_descriptor "float" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002861c;" goto statement_identifier ;)) (expression_statement "fVar17 = (float)dVar14 * pfVar9[1];" (assignment_expression "fVar17 = (float)dVar14 * pfVar9[1]" identifier = (binary_expression "(float)dVar14 * pfVar9[1]" (cast_expression "(float)dVar14" ( (type_descriptor "float" primitive_type) ) identifier) * (subscript_expression "pfVar9[1]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" if (parenthesized_expression "(*(char *)(pfVar9 + 4) == '\0')" ( (binary_expression "*(char *)(pfVar9 + 4) == '\0'" (pointer_expression "*(char *)(pfVar9 + 4)" * (cast_expression "(char *)(pfVar9 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pfVar9 + 4)" ( (binary_expression "pfVar9 + 4" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }" { (expression_statement "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "fVar17 = fVar17 * pfVar9[2];" (assignment_expression "fVar17 = fVar17 * pfVar9[2]" identifier = (binary_expression "fVar17 * pfVar9[2]" identifier * (subscript_expression "pfVar9[2]" identifier [ number_literal ]))) ;) (if_statement "if (fVar18 <= fVar17) goto LAB_0002871c;" if (parenthesized_expression "(fVar18 <= fVar17)" ( (binary_expression "fVar18 <= fVar17" identifier <= identifier) )) (goto_statement "goto LAB_0002871c;" goto statement_identifier ;)) (labeled_statement "LAB_000287e4:\n    uVar15 = (uint)fVar17;" statement_identifier : (expression_statement "uVar15 = (uint)fVar17;" (assignment_expression "uVar15 = (uint)fVar17" identifier = (cast_expression "(uint)fVar17" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) }) (else_clause "else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" else (compound_statement "{\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" { (expression_statement "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" identifier = (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" * (cast_expression "(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" ( (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" * (cast_expression "(int *)(pcVar11 + 0x1d2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d2c0)" ( (binary_expression "pcVar11 + 0x1d2c0" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (fVar17 < fVar18) goto LAB_000287e4;" if (parenthesized_expression "(fVar17 < fVar18)" ( (binary_expression "fVar17 < fVar18" identifier < identifier) )) (goto_statement "goto LAB_000287e4;" goto statement_identifier ;)) (labeled_statement "LAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;" statement_identifier : (expression_statement "uVar15 = (int)(fVar17 - fVar18) | 0x80000000;" (assignment_expression "uVar15 = (int)(fVar17 - fVar18) | 0x80000000" identifier = (binary_expression "(int)(fVar17 - fVar18) | 0x80000000" (cast_expression "(int)(fVar17 - fVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(fVar17 - fVar18)" ( (binary_expression "fVar17 - fVar18" identifier - identifier) ))) | number_literal)) ;)) }))) (expression_statement "iVar8 = hash_rehash(iVar1,uVar15);" (assignment_expression "iVar8 = hash_rehash(iVar1,uVar15)" identifier = (call_expression "hash_rehash(iVar1,uVar15)" identifier (argument_list "(iVar1,uVar15)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" { (expression_statement "iVar8 = *(int *)(iVar1 + 0x24);" (assignment_expression "iVar8 = *(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 (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }" while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }" { (expression_statement "iVar8 = *(int *)(iVar8 + 4);" (assignment_expression "iVar8 = *(int *)(iVar8 + 4)" identifier = (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar11 + 0x1d730))();" (call_expression "(**(code **)(pcVar11 + 0x1d730))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d730))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d730)" * (pointer_expression "*(code **)(pcVar11 + 0x1d730)" * (cast_expression "(code **)(pcVar11 + 0x1d730)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d730)" ( (binary_expression "pcVar11 + 0x1d730" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" * (cast_expression "(undefined4 *)(iVar1 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }" statement_identifier : (if_statement "if (iVar3 == *piVar2) {\n    return piVar4;\n  }" if (parenthesized_expression "(iVar3 == *piVar2)" ( (binary_expression "iVar3 == *piVar2" identifier == (pointer_expression "*piVar2" * identifier)) )) (compound_statement "{\n    return piVar4;\n  }" { (return_statement "return piVar4;" return identifier ;) }))) (expression_statement "pcVar11 = *(code **)(pcVar11 + 0x1d700);" (assignment_expression "pcVar11 = *(code **)(pcVar11 + 0x1d700)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x1d700)" * (cast_expression "(code **)(pcVar11 + 0x1d700)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d700)" ( (binary_expression "pcVar11 + 0x1d700" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }" { (expression_statement "iVar1 = (**(code **)(pcVar11 + 0x1d41c))();" (assignment_expression "iVar1 = (**(code **)(pcVar11 + 0x1d41c))()" identifier = (call_expression "(**(code **)(pcVar11 + 0x1d41c))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d41c))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d41c)" * (pointer_expression "*(code **)(pcVar11 + 0x1d41c)" * (cast_expression "(code **)(pcVar11 + 0x1d41c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d41c)" ( (binary_expression "pcVar11 + 0x1d41c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }" if (parenthesized_expression "(((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0))" ( (binary_expression "((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)" (parenthesized_expression "((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3))" ( (binary_expression "(iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)" ( (comma_expression "iVar8 = iVar1 + 1, 6 < iVar8 - iVar3" (assignment_expression "iVar8 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) , (binary_expression "6 < iVar8 - iVar3" number_literal < (binary_expression "iVar8 - iVar3" identifier - identifier))) ))) )) && (parenthesized_expression "(iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)" ( (comma_expression "iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" identifier = (call_expression "(**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d3e8))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d3e8)" * (pointer_expression "*(code **)(pcVar11 + 0x1d3e8)" * (cast_expression "(code **)(pcVar11 + 0x1d3e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3e8)" ( (binary_expression "pcVar11 + 0x1d3e8" identifier + number_literal) ))))) )) (argument_list "(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" ( (binary_expression "iVar1 + -6" identifier + number_literal) , (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x3708" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" * (cast_expression "(int *)(pcVar11 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d068)" ( (binary_expression "pcVar11 + 0x1d068" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);" (assignment_expression "iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" identifier = (call_expression "(**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d3e8))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d3e8)" * (pointer_expression "*(code **)(pcVar11 + 0x1d3e8)" * (cast_expression "(code **)(pcVar11 + 0x1d3e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3e8)" ( (binary_expression "pcVar11 + 0x1d3e8" identifier + number_literal) ))))) )) (argument_list "(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" ( identifier , (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x3710" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" * (cast_expression "(int *)(pcVar11 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d068)" ( (binary_expression "pcVar11 + 0x1d068" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }" { (expression_statement "**(int **)(pcVar11 + 0x1d34c) = iVar8;" (assignment_expression "**(int **)(pcVar11 + 0x1d34c) = iVar8" (pointer_expression "**(int **)(pcVar11 + 0x1d34c)" * (pointer_expression "*(int **)(pcVar11 + 0x1d34c)" * (cast_expression "(int **)(pcVar11 + 0x1d34c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d34c)" ( (binary_expression "pcVar11 + 0x1d34c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar4 = *(int **)(pcVar11 + 0x1d428);" (assignment_expression "piVar4 = *(int **)(pcVar11 + 0x1d428)" identifier = (pointer_expression "*(int **)(pcVar11 + 0x1d428)" * (cast_expression "(int **)(pcVar11 + 0x1d428)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d428)" ( (binary_expression "pcVar11 + 0x1d428" identifier + number_literal) ))))) ;) (expression_statement "*piVar4 = iVar8;" (assignment_expression "*piVar4 = iVar8" (pointer_expression "*piVar4" * identifier) = identifier) ;) (return_statement "return piVar4;" return identifier ;) })) (expression_statement "iVar3 = iVar1 + 4;" (assignment_expression "iVar3 = iVar1 + 4" identifier = (binary_expression "iVar1 + 4" identifier + number_literal)) ;) (expression_statement "**(int **)(pcVar11 + 0x1d3f8) = iVar3;" (assignment_expression "**(int **)(pcVar11 + 0x1d3f8) = iVar3" (pointer_expression "**(int **)(pcVar11 + 0x1d3f8)" * (pointer_expression "*(int **)(pcVar11 + 0x1d3f8)" * (cast_expression "(int **)(pcVar11 + 0x1d3f8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3f8)" ( (binary_expression "pcVar11 + 0x1d3f8" identifier + number_literal) ))))) = identifier) ;) })) (expression_statement "**(int **)(pcVar11 + 0x1d34c) = iVar3;" (assignment_expression "**(int **)(pcVar11 + 0x1d34c) = iVar3" (pointer_expression "**(int **)(pcVar11 + 0x1d34c)" * (pointer_expression "*(int **)(pcVar11 + 0x1d34c)" * (cast_expression "(int **)(pcVar11 + 0x1d34c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d34c)" ( (binary_expression "pcVar11 + 0x1d34c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "piVar4 = *(int **)(pcVar11 + 0x1d428);" (assignment_expression "piVar4 = *(int **)(pcVar11 + 0x1d428)" identifier = (pointer_expression "*(int **)(pcVar11 + 0x1d428)" * (cast_expression "(int **)(pcVar11 + 0x1d428)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d428)" ( (binary_expression "pcVar11 + 0x1d428" identifier + number_literal) ))))) ;) (expression_statement "*piVar4 = iVar3;" (assignment_expression "*piVar4 = iVar3" (pointer_expression "*piVar4" * identifier) = identifier) ;) (return_statement "return piVar4;" return identifier ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;" (assignment_expression "iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0" identifier = (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x36d0" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" * (cast_expression "(int *)(pcVar11 + 0x1d068)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x1d068)" ( (binary_expression "pcVar11 + 0x1d068" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar11 + 0x1d49c))(iVar1);" (call_expression "(**(code **)(pcVar11 + 0x1d49c))(iVar1)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d49c))" ( (pointer_expression "**(code **)(pcVar11 + 0x1d49c)" * (pointer_expression "*(code **)(pcVar11 + 0x1d49c)" * (cast_expression "(code **)(pcVar11 + 0x1d49c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d49c)" ( (binary_expression "pcVar11 + 0x1d49c" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x1d3e0);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x1d3e0)" identifier = (pointer_expression "*(code **)(pcVar11 + 0x1d3e0)" * (cast_expression "(code **)(pcVar11 + 0x1d3e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x1d3e0)" ( (binary_expression "pcVar11 + 0x1d3e0" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" { (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" else (compound_statement "{\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" { (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" identifier = (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d380)" * (pointer_expression "*(code **)(pcVar12 + 0x1d380)" * (cast_expression "(code **)(pcVar12 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d380)" ( (binary_expression "pcVar12 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3728" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3)" ( identifier , number_literal , (pointer_expression "*(undefined4 *)(pcVar12 + 0x1d220)" * (cast_expression "(undefined4 *)(pcVar12 + 0x1d220)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1d220)" ( (binary_expression "pcVar12 + 0x1d220" identifier + number_literal) )))) , identifier , number_literal ))) ;) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" identifier = (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d380)" * (pointer_expression "*(code **)(pcVar12 + 0x1d380)" * (cast_expression "(code **)(pcVar12 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d380)" ( (binary_expression "pcVar12 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x372c" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);" (call_expression "(**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2a0))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2a0)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2a0)" * (cast_expression "(code **)(pcVar12 + 0x1d2a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2a0)" ( (binary_expression "pcVar12 + 0x1d2a0" identifier + number_literal) ))))) )) (argument_list "(uVar6,iVar1)" ( identifier , identifier ))) ;) (if_statement "if (uStack_bc < 10) {\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }" if (parenthesized_expression "(uStack_bc < 10)" ( (binary_expression "uStack_bc < 10" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }" { (expression_statement "piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();" (assignment_expression "piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" identifier = (cast_expression "(int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" (parenthesized_expression "(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))" ( (pointer_expression "*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)))" * (parenthesized_expression "(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)))" ( (binary_expression "pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" identifier + (cast_expression "(int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" ( (binary_expression "&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" (pointer_expression "&UNK_00024f00" & identifier) + (pointer_expression "*(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" * (cast_expression "(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" ( (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4" (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3a20" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) + (binary_expression "uStack_bc * 4" identifier * number_literal)) ))))) )))) ))) )) (argument_list "()" ( ))))) ;) (return_statement "return piVar4;" return identifier ;) })) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" identifier = (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d380)" * (pointer_expression "*(code **)(pcVar12 + 0x1d380)" * (cast_expression "(code **)(pcVar12 + 0x1d380)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d380)" ( (binary_expression "pcVar12 + 0x1d380" identifier + number_literal) ))))) )) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" ( number_literal , (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3938" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" * (cast_expression "(int *)(pcVar12 + 0x1cf38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0x1cf38)" ( (binary_expression "pcVar12 + 0x1cf38" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" identifier = (cast_expression "(int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" ( (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" * (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" * (cast_expression "(code **)(pcVar12 + 0x1d2c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar12 + 0x1d2c4)" ( (binary_expression "pcVar12 + 0x1d2c4" identifier + number_literal) ))))) )) (argument_list "(iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25030)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25030)" ( (binary_expression "pcVar11 + 0x25030" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25034)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25034)" ( (binary_expression "pcVar11 + 0x25034" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25038)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25038)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25038)" ( (binary_expression "pcVar11 + 0x25038" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x2503c)" * (cast_expression "(undefined4 *)(pcVar11 + 0x2503c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2503c)" ( (binary_expression "pcVar11 + 0x2503c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25040)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25040)" ( (binary_expression "pcVar11 + 0x25040" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25044)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25044)" ( (binary_expression "pcVar11 + 0x25044" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25048)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25048)" ( (binary_expression "pcVar11 + 0x25048" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x2504c)" * (cast_expression "(undefined4 *)(pcVar11 + 0x2504c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x2504c)" ( (binary_expression "pcVar11 + 0x2504c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(pcVar11 + 0x25050)" * (cast_expression "(undefined4 *)(pcVar11 + 0x25050)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x25050)" ( (binary_expression "pcVar11 + 0x25050" identifier + number_literal) )))) ))))) ;) (return_statement "return piVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (cast_expression ( (type_descriptor TYPE) ) IDENT)) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) * (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 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 (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) | IDENT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (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 , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) , (binary_expression IDENT != LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * IDENT)) <= IDENT) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) * (pointer_expression * IDENT)) <= IDENT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (pointer_expression * IDENT)) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) | LIT)) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression LIT < (binary_expression IDENT - IDENT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (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 (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (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 (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ( ))) ;) }) (else_clause else (compound_statement { (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 IDENT = (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (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 ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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 ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) )))) ))) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (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 ( LIT , (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( IDENT , LIT , 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) )))) , (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) )))) , (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) )))) , (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) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (return_statement return IDENT ;) })))
(function_definition "int * hash_insert_if_absent(int param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}" (primitive_type "int") (pointer_declarator "* hash_insert_if_absent(int param_1,int *param_2,int *param_3)" (* "*") (function_declarator "hash_insert_if_absent(int param_1,int *param_2,int *param_3)" (identifier "hash_insert_if_absent") (parameter_list "(int param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  undefined4 uVar6;\n  uint *puVar7;\n  int iVar8;\n  float *pfVar9;\n  int unaff_s0;\n  int *unaff_s3;\n  uint **unaff_s4;\n  undefined *puVar10;\n  code *pcVar11;\n  code *pcVar12;\n  ulonglong uVar13;\n  ulonglong extraout_f0_1;\n  double dVar14;\n  uint uVar15;\n  ulonglong in_f2_3;\n  float fVar17;\n  double dVar16;\n  float fVar18;\n  uint uStack_bc;\n  int *piStack_90;\n  int *piStack_58;\n  uint *local_28;\n  int local_24;\n  \n  puVar10 = PTR___stack_chk_guard_00045cc8;\n  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;\n  if (param_2 == (int *)0x0) goto LAB_000284f0;\n  unaff_s4 = &local_28;\n  piVar4 = param_2;\n  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n  if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }\nLAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }\n  puVar10 = PTR___stack_chk_fail_00045ca8;\n  (*(code *)PTR___stack_chk_fail_00045ca8)();\n  piVar2 = *(int **)(puVar10 + 0x1d7ac);\n  iVar1 = *piVar2;\n  iVar3 = hash_insert_if_absent();\n  if (iVar3 == -1) {\n    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }\n  if (iVar1 == *piVar2) {\n    return piStack_58;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x1d78c);\n  (*pcVar11)();\n  piVar2 = *(int **)(pcVar11 + 0x1d720);\n  iVar3 = *piVar2;\n  piVar4 = (int *)FUN_000271e0();\n  if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;\n  iVar8 = *(int *)(iVar1 + 0xc) + -1;\n  *(int *)(iVar1 + 0xc) = iVar8;\n  if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  FUN_00027328(iVar1 + 0x14);\n  pfVar9 = *(float **)(iVar1 + 0x14);\n  dVar14 = (double)*(int *)(iVar1 + 8);\n  if (*(int *)(iVar1 + 8) < 0) {\n    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  dVar16 = (double)*(int *)(iVar1 + 0xc);\n  if (*(int *)(iVar1 + 0xc) < 0) {\n    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }\n  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;\n  fVar17 = (float)dVar14 * pfVar9[1];\n  if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }\n  iVar8 = hash_rehash(iVar1,uVar15);\n  if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }\nLAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }\n  pcVar11 = *(code **)(pcVar11 + 0x1d700);\n  (*pcVar11)();\n  if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }\n  iVar3 = 1;\n  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;\n  (**(code **)(pcVar11 + 0x1d49c))(iVar1);\n  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);\n  (*pcVar12)();\n  if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);\n  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);\n  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);\n  if (uStack_bc < 10) {\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }\n  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);\n  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));\n  return piVar4;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "float *pfVar9;" (primitive_type "float") (pointer_declarator "*pfVar9" (* "*") (identifier "pfVar9")) (; ";")) (declaration "int unaff_s0;" (primitive_type "int") (identifier "unaff_s0") (; ";")) (declaration "int *unaff_s3;" (primitive_type "int") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "uint **unaff_s4;" (type_identifier "uint") (pointer_declarator "**unaff_s4" (* "*") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4"))) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "ulonglong uVar13;" (type_identifier "ulonglong") (identifier "uVar13") (; ";")) (declaration "ulonglong extraout_f0_1;" (type_identifier "ulonglong") (identifier "extraout_f0_1") (; ";")) (declaration "double dVar14;" (primitive_type "double") (identifier "dVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "ulonglong in_f2_3;" (type_identifier "ulonglong") (identifier "in_f2_3") (; ";")) (declaration "float fVar17;" (primitive_type "float") (identifier "fVar17") (; ";")) (declaration "double dVar16;" (primitive_type "double") (identifier "dVar16") (; ";")) (declaration "float fVar18;" (primitive_type "float") (identifier "fVar18") (; ";")) (declaration "uint uStack_bc;" (type_identifier "uint") (identifier "uStack_bc") (; ";")) (declaration "int *piStack_90;" (primitive_type "int") (pointer_declarator "*piStack_90" (* "*") (identifier "piStack_90")) (; ";")) (declaration "int *piStack_58;" (primitive_type "int") (pointer_declarator "*piStack_58" (* "*") (identifier "piStack_58")) (; ";")) (declaration "uint *local_28;" (type_identifier "uint") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar10 = PTR___stack_chk_guard_00045cc8;" (assignment_expression "puVar10 = PTR___stack_chk_guard_00045cc8" (identifier "puVar10") (= "=") (identifier "PTR___stack_chk_guard_00045cc8")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_00045cc8;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_00045cc8" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00045cc8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00045cc8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00045cc8")))) (; ";")) (if_statement "if (param_2 == (int *)0x0) goto LAB_000284f0;" (if "if") (parenthesized_expression "(param_2 == (int *)0x0)" (( "(") (binary_expression "param_2 == (int *)0x0" (identifier "param_2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000284f0;" (goto "goto") (statement_identifier "LAB_000284f0") (; ";"))) (expression_statement "unaff_s4 = &local_28;" (assignment_expression "unaff_s4 = &local_28" (identifier "unaff_s4") (= "=") (pointer_expression "&local_28" (& "&") (identifier "local_28"))) (; ";")) (expression_statement "piVar4 = param_2;" (assignment_expression "piVar4 = param_2" (identifier "piVar4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);" (assignment_expression "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0)" (identifier "iVar1") (= "=") (call_expression "FUN_000271e0(param_1,param_2,unaff_s4,0)" (identifier "FUN_000271e0") (argument_list "(param_1,param_2,unaff_s4,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "unaff_s4") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }\n  else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    dVar14 = (double)*(int *)(param_1 + 0xc);\n    if (*(int *)(param_1 + 0xc) < 0) {\n      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    dVar16 = (double)*(int *)(param_1 + 8);\n    if (*(int *)(param_1 + 8) < 0) {\n      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }\n    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }\n    piVar2 = (int *)0x1;\n    if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }\n  }" ({ "{") (expression_statement "dVar14 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar14 = (double)*(int *)(param_1 + 0xc)" (identifier "dVar14") (= "=") (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      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" ({ "{") (expression_statement "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar14") (= "=") (binary_expression "dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar14") (+ "+") (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (* "*") (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" (identifier "PTR_s_canner_internal_error__end_of_bu_00045868") (+ "+") (number_literal "0x36c0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar16 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar16 = (double)*(int *)(param_1 + 8)" (identifier "dVar16") (= "=") (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      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n    }" ({ "{") (expression_statement "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar16") (= "=") (binary_expression "dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar16") (+ "+") (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (* "*") (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" (identifier "PTR_s_canner_internal_error__end_of_bu_00045868") (+ "+") (number_literal "0x36c0")) () ")")))))) (; ";")) (} "}"))) (if_statement "if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }" (if "if") (parenthesized_expression "((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14)" (( "(") (binary_expression "(float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14" (binary_expression "(float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8)" (cast_expression "(float)dVar16" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar16")) (* "*") (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)dVar14" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar14"))) () ")")) (compound_statement "{\n      FUN_00027328(param_1 + 0x14);\n      iVar1 = *(int *)(param_1 + 0x14);\n      dVar14 = (double)*(int *)(param_1 + 8);\n      if (*(int *)(param_1 + 8) < 0) {\n        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      dVar16 = (double)*(int *)(param_1 + 0xc);\n      if (*(int *)(param_1 + 0xc) < 0) {\n        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }\n      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }\n    }" ({ "{") (expression_statement "FUN_00027328(param_1 + 0x14);" (call_expression "FUN_00027328(param_1 + 0x14)" (identifier "FUN_00027328") (argument_list "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x14)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "dVar14 = (double)*(int *)(param_1 + 8);" (assignment_expression "dVar14 = (double)*(int *)(param_1 + 8)" (identifier "dVar14") (= "=") (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        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" ({ "{") (expression_statement "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar14") (= "=") (binary_expression "dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar14") (+ "+") (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (* "*") (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" (identifier "PTR_s_canner_internal_error__end_of_bu_00045868") (+ "+") (number_literal "0x36c0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar16 = (double)*(int *)(param_1 + 0xc);" (assignment_expression "dVar16 = (double)*(int *)(param_1 + 0xc)" (identifier "dVar16") (= "=") (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        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\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        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);\n      }" ({ "{") (expression_statement "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar16") (= "=") (binary_expression "dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (identifier "dVar16") (+ "+") (pointer_expression "*(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (* "*") (cast_expression "(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0)" (( "(") (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0" (identifier "PTR_s_canner_internal_error__end_of_bu_00045868") (+ "+") (number_literal "0x36c0")) () ")")))))) (; ";")) (} "}"))) (if_statement "if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }" (if "if") (parenthesized_expression "(*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16)" (( "(") (binary_expression "*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16" (binary_expression "*(float *)(iVar1 + 8) * (float)dVar14" (pointer_expression "*(float *)(iVar1 + 8)" (* "*") (cast_expression "(float *)(iVar1 + 8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (* "*") (cast_expression "(float)dVar14" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar14"))) (< "<") (cast_expression "(float)dVar16" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar16"))) () ")")) (compound_statement "{\n        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);\n        if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }\n        uVar13 = (ulonglong)(uint)fVar17;\n        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n        in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);\n        uVar15 = 0x80000000;\n        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }\n        while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }\n      }" ({ "{") (expression_statement "fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);" (assignment_expression "fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc)" (identifier "fVar17") (= "=") (binary_expression "(float)dVar14 * *(float *)(iVar1 + 0xc)" (cast_expression "(float)dVar14" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar14")) (* "*") (pointer_expression "*(float *)(iVar1 + 0xc)" (* "*") (cast_expression "(float *)(iVar1 + 0xc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (*(char *)(iVar1 + 0x10) == '\0') {\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }" (if "if") (parenthesized_expression "(*(char *)(iVar1 + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x10) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x10)" (* "*") (cast_expression "(char *)(iVar1 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x10)" (( "(") (binary_expression "iVar1 + 0x10" (identifier "iVar1") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          fVar17 = fVar17 * *(float *)(iVar1 + 8);\n        }" ({ "{") (expression_statement "fVar17 = fVar17 * *(float *)(iVar1 + 8);" (assignment_expression "fVar17 = fVar17 * *(float *)(iVar1 + 8)" (identifier "fVar17") (= "=") (binary_expression "fVar17 * *(float *)(iVar1 + 8)" (identifier "fVar17") (* "*") (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")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar13 = (ulonglong)(uint)fVar17;" (assignment_expression "uVar13 = (ulonglong)(uint)fVar17" (identifier "uVar13") (= "=") (cast_expression "(ulonglong)(uint)fVar17" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (cast_expression "(uint)fVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar17")))) (; ";")) (if_statement "if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" (if "if") (parenthesized_expression "(*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17)" (( "(") (binary_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17" (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" (* "*") (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8)" (( "(") (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8" (identifier "PTR_s_canner_internal_error__end_of_bu_00045868") (+ "+") (number_literal "0x36b8")) () ")")))) (<= "<=") (identifier "fVar17")) () ")")) (compound_statement "{\nLAB_00028454:\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" ({ "{") (labeled_statement "LAB_00028454:\n          piVar2 = (int *)0xffffffff;" (statement_identifier "LAB_00028454") (: ":") (expression_statement "piVar2 = (int *)0xffffffff;" (assignment_expression "piVar2 = (int *)0xffffffff" (identifier "piVar2") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";"))) (goto_statement "goto LAB_000282f0;" (goto "goto") (statement_identifier "LAB_000282f0") (; ";")) (} "}"))) (expression_statement "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);" (assignment_expression "in_f2_3 = (ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (identifier "in_f2_3") (= "=") (binary_expression "(ulonglong)\n                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (call_expression "(ulonglong)\n                  (uint)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (( "(") (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" (identifier "PTR_s_canner_internal_error__end_of_bu_00045868") (+ "+") (number_literal "0x36bc")) () ")"))))) (; ";")) (expression_statement "uVar15 = 0x80000000;" (assignment_expression "uVar15 = 0x80000000" (identifier "uVar15") (= "=") (number_literal "0x80000000")) (; ";")) (if_statement "if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }" (if "if") (parenthesized_expression "(fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc))" (( "(") (binary_expression "fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (identifier "fVar17") (< "<") (pointer_expression "*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (* "*") (cast_expression "(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)" (( "(") (binary_expression "PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc" (identifier "PTR_s_canner_internal_error__end_of_bu_00045868") (+ "+") (number_literal "0x36bc")) () ")"))))) () ")")) (compound_statement "{\n          piVar4 = (int *)(int)fVar17;\n          goto LAB_000284bc;\n        }" ({ "{") (expression_statement "piVar4 = (int *)(int)fVar17;" (assignment_expression "piVar4 = (int *)(int)fVar17" (identifier "piVar4") (= "=") (cast_expression "(int *)(int)fVar17" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)fVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "fVar17")))) (; ";")) (goto_statement "goto LAB_000284bc;" (goto "goto") (statement_identifier "LAB_000284bc") (; ";")) (} "}"))) (while_statement "while( true ) {\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);\nLAB_000284bc:\n          iVar1 = hash_rehash(param_1);\n          if (iVar1 == 0) goto LAB_00028454;\n          piVar4 = param_2;\n          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);\n          unaff_s0 = param_1;\n          unaff_s3 = param_2;\n          if (iVar1 == 0) break;\nLAB_000284f0:\n          param_2 = unaff_s3;\n          param_1 = unaff_s0;\n          uVar15 = (*(code *)PTR_abort_00045be0)();\n          uVar13 = extraout_f0_1;\n        }" ({ "{") (expression_statement "piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);" (assignment_expression "piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15)" (identifier "piVar4") (= "=") (cast_expression "(int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)((float)uVar13 - (float)in_f2_3) | uVar15)" (( "(") (binary_expression "(int)((float)uVar13 - (float)in_f2_3) | uVar15" (cast_expression "(int)((float)uVar13 - (float)in_f2_3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((float)uVar13 - (float)in_f2_3)" (( "(") (binary_expression "(float)uVar13 - (float)in_f2_3" (cast_expression "(float)uVar13" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "uVar13")) (- "-") (cast_expression "(float)in_f2_3" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "in_f2_3"))) () ")"))) (| "|") (identifier "uVar15")) () ")")))) (; ";")) (labeled_statement "LAB_000284bc:\n          iVar1 = hash_rehash(param_1);" (statement_identifier "LAB_000284bc") (: ":") (expression_statement "iVar1 = hash_rehash(param_1);" (assignment_expression "iVar1 = hash_rehash(param_1)" (identifier "iVar1") (= "=") (call_expression "hash_rehash(param_1)" (identifier "hash_rehash") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";"))) (if_statement "if (iVar1 == 0) goto LAB_00028454;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028454;" (goto "goto") (statement_identifier "LAB_00028454") (; ";"))) (expression_statement "piVar4 = param_2;" (assignment_expression "piVar4 = param_2" (identifier "piVar4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);" (assignment_expression "iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0)" (identifier "iVar1") (= "=") (call_expression "FUN_000271e0(param_1,param_2,unaff_s4,0)" (identifier "FUN_000271e0") (argument_list "(param_1,param_2,unaff_s4,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "unaff_s4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "unaff_s3 = param_2;" (assignment_expression "unaff_s3 = param_2" (identifier "unaff_s3") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (iVar1 == 0) break;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000284f0:\n          param_2 = unaff_s3;" (statement_identifier "LAB_000284f0") (: ":") (expression_statement "param_2 = unaff_s3;" (assignment_expression "param_2 = unaff_s3" (identifier "param_2") (= "=") (identifier "unaff_s3")) (; ";"))) (expression_statement "param_1 = unaff_s0;" (assignment_expression "param_1 = unaff_s0" (identifier "param_1") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "uVar15 = (*(code *)PTR_abort_00045be0)();" (assignment_expression "uVar15 = (*(code *)PTR_abort_00045be0)()" (identifier "uVar15") (= "=") (call_expression "(*(code *)PTR_abort_00045be0)()" (parenthesized_expression "(*(code *)PTR_abort_00045be0)" (( "(") (pointer_expression "*(code *)PTR_abort_00045be0" (* "*") (cast_expression "(code *)PTR_abort_00045be0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_abort_00045be0"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar13 = extraout_f0_1;" (assignment_expression "uVar13 = extraout_f0_1" (identifier "uVar13") (= "=") (identifier "extraout_f0_1")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" (identifier "piVar2") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (*local_28 == 0) {\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }\n    else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" (if "if") (parenthesized_expression "(*local_28 == 0)" (( "(") (binary_expression "*local_28 == 0" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(param_1 + 0x10);\n      iVar1 = *(int *)(param_1 + 0xc);\n      *local_28 = (uint)param_2;\n      *(int *)(param_1 + 0x10) = iVar3 + 1;\n      *(int *)(param_1 + 0xc) = iVar1 + 1;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar3 = *(int *)(param_1 + 0x10)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xc)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*local_28 = (uint)param_2;" (assignment_expression "*local_28 = (uint)param_2" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (= "=") (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x10) = iVar3 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)(param_1 + 0xc) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0xc) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" (else "else") (compound_statement "{\n      puVar7 = *(uint **)(param_1 + 0x24);\n      if (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }\n      iVar1 = *(int *)(param_1 + 0x10);\n      piVar2 = (int *)0x1;\n      piVar4 = (int *)local_28[1];\n      *puVar7 = (uint)param_2;\n      puVar7[1] = (uint)piVar4;\n      local_28[1] = (uint)puVar7;\n      *(int *)(param_1 + 0x10) = iVar1 + 1;\n    }" ({ "{") (expression_statement "puVar7 = *(uint **)(param_1 + 0x24);" (assignment_expression "puVar7 = *(uint **)(param_1 + 0x24)" (identifier "puVar7") (= "=") (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 (puVar7 == (uint *)0x0) {\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }\n      else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" (if "if") (parenthesized_expression "(puVar7 == (uint *)0x0)" (( "(") (binary_expression "puVar7 == (uint *)0x0" (identifier "puVar7") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);\n        if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }\n      }" ({ "{") (expression_statement "puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);" (assignment_expression "puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8)" (identifier "puVar7") (= "=") (cast_expression "(uint *)(*(code *)PTR_malloc_00045c80)(8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_00045c80)(8)" (parenthesized_expression "(*(code *)PTR_malloc_00045c80)" (( "(") (pointer_expression "*(code *)PTR_malloc_00045c80" (* "*") (cast_expression "(code *)PTR_malloc_00045c80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_00045c80"))) () ")")) (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";")) (if_statement "if (puVar7 == (uint *)0x0) {\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" (if "if") (parenthesized_expression "(puVar7 == (uint *)0x0)" (( "(") (binary_expression "puVar7 == (uint *)0x0" (identifier "puVar7") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar2 = (int *)0xffffffff;\n          goto LAB_000282f0;\n        }" ({ "{") (expression_statement "piVar2 = (int *)0xffffffff;" (assignment_expression "piVar2 = (int *)0xffffffff" (identifier "piVar2") (= "=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (goto_statement "goto LAB_000282f0;" (goto "goto") (statement_identifier "LAB_000282f0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" (else "else") (compound_statement "{\n        *(uint *)(param_1 + 0x24) = puVar7[1];\n      }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x24) = puVar7[1];" (assignment_expression "*(uint *)(param_1 + 0x24) = puVar7[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 "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (expression_statement "iVar1 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "piVar2 = (int *)0x1;" (assignment_expression "piVar2 = (int *)0x1" (identifier "piVar2") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "piVar4 = (int *)local_28[1];" (assignment_expression "piVar4 = (int *)local_28[1]" (identifier "piVar4") (= "=") (cast_expression "(int *)local_28[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*puVar7 = (uint)param_2;" (assignment_expression "*puVar7 = (uint)param_2" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (cast_expression "(uint)param_2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "puVar7[1] = (uint)piVar4;" (assignment_expression "puVar7[1] = (uint)piVar4" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)piVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar4"))) (; ";")) (expression_statement "local_28[1] = (uint)puVar7;" (assignment_expression "local_28[1] = (uint)puVar7" (subscript_expression "local_28[1]" (identifier "local_28") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(uint)puVar7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar7"))) (; ";")) (expression_statement "*(int *)(param_1 + 0x10) = iVar1 + 1;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar1 + 1" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" (else "else") (if_statement "if (param_3 == (int *)0x0) {\n    piVar2 = (int *)0x0;\n  }\n  else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\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    piVar2 = (int *)0x0;\n  }" ({ "{") (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" (else "else") (compound_statement "{\n    *param_3 = iVar1;\n    piVar2 = (int *)0x0;\n  }" ({ "{") (expression_statement "*param_3 = iVar1;" (assignment_expression "*param_3 = iVar1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "piVar2 = (int *)0x0;" (assignment_expression "piVar2 = (int *)0x0" (identifier "piVar2") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))))) (labeled_statement "LAB_000282f0:\n  if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }" (statement_identifier "LAB_000282f0") (: ":") (if_statement "if (local_24 == *(int *)puVar10) {\n    return piVar2;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar10)" (( "(") (binary_expression "local_24 == *(int *)puVar10" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar10" (* "*") (cast_expression "(int *)puVar10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10")))) () ")")) (compound_statement "{\n    return piVar2;\n  }" ({ "{") (return_statement "return piVar2;" (return "return") (identifier "piVar2") (; ";")) (} "}")))) (expression_statement "puVar10 = PTR___stack_chk_fail_00045ca8;" (assignment_expression "puVar10 = PTR___stack_chk_fail_00045ca8" (identifier "puVar10") (= "=") (identifier "PTR___stack_chk_fail_00045ca8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00045ca8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00045ca8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00045ca8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00045ca8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00045ca8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00045ca8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar2 = *(int **)(puVar10 + 0x1d7ac);" (assignment_expression "piVar2 = *(int **)(puVar10 + 0x1d7ac)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(puVar10 + 0x1d7ac)" (* "*") (cast_expression "(int **)(puVar10 + 0x1d7ac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x1d7ac)" (( "(") (binary_expression "puVar10 + 0x1d7ac" (identifier "puVar10") (+ "+") (number_literal "0x1d7ac")) () ")"))))) (; ";")) (expression_statement "iVar1 = *piVar2;" (assignment_expression "iVar1 = *piVar2" (identifier "iVar1") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (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    piStack_58 = (int *)0x0;\n  }\n  else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    piStack_58 = (int *)0x0;\n  }" ({ "{") (expression_statement "piStack_58 = (int *)0x0;" (assignment_expression "piStack_58 = (int *)0x0" (identifier "piStack_58") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" (else "else") (if_statement "if (iVar3 != 0) {\n    piStack_58 = piVar4;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piStack_58 = piVar4;\n  }" ({ "{") (expression_statement "piStack_58 = piVar4;" (assignment_expression "piStack_58 = piVar4" (identifier "piStack_58") (= "=") (identifier "piVar4")) (; ";")) (} "}"))))) (if_statement "if (iVar1 == *piVar2) {\n    return piStack_58;\n  }" (if "if") (parenthesized_expression "(iVar1 == *piVar2)" (( "(") (binary_expression "iVar1 == *piVar2" (identifier "iVar1") (== "==") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) (compound_statement "{\n    return piStack_58;\n  }" ({ "{") (return_statement "return piStack_58;" (return "return") (identifier "piStack_58") (; ";")) (} "}"))) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x1d78c);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x1d78c)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(puVar10 + 0x1d78c)" (* "*") (cast_expression "(code **)(puVar10 + 0x1d78c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x1d78c)" (( "(") (binary_expression "puVar10 + 0x1d78c" (identifier "puVar10") (+ "+") (number_literal "0x1d78c")) () ")"))))) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar2 = *(int **)(pcVar11 + 0x1d720);" (assignment_expression "piVar2 = *(int **)(pcVar11 + 0x1d720)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(pcVar11 + 0x1d720)" (* "*") (cast_expression "(int **)(pcVar11 + 0x1d720)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d720)" (( "(") (binary_expression "pcVar11 + 0x1d720" (identifier "pcVar11") (+ "+") (number_literal "0x1d720")) () ")"))))) (; ";")) (expression_statement "iVar3 = *piVar2;" (assignment_expression "iVar3 = *piVar2" (identifier "iVar3") (= "=") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (; ";")) (expression_statement "piVar4 = (int *)FUN_000271e0();" (assignment_expression "piVar4 = (int *)FUN_000271e0()" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_000271e0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000271e0()" (identifier "FUN_000271e0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))\n  goto LAB_0002861c;" (if "if") (parenthesized_expression "((piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))" (( "(") (binary_expression "(piVar4 == (int *)0x0) ||\n     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0)" (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0)" (( "(") (comma_expression "iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0" (assignment_expression "iVar8 = *piStack_90" (identifier "iVar8") (= "=") (pointer_expression "*piStack_90" (* "*") (identifier "piStack_90"))) (, ",") (comma_expression "*(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 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 "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_0002861c;" (goto "goto") (statement_identifier "LAB_0002861c") (; ";"))) (expression_statement "iVar8 = *(int *)(iVar1 + 0xc) + -1;" (assignment_expression "iVar8 = *(int *)(iVar1 + 0xc) + -1" (identifier "iVar8") (= "=") (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) = iVar8;" (assignment_expression "*(int *)(iVar1 + 0xc) = iVar8" (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 "iVar8")) (; ";")) (if_statement "if (iVar8 < 0) {\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }\n  else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" (if "if") (parenthesized_expression "(iVar8 < 0)" (( "(") (binary_expression "iVar8 < 0" (identifier "iVar8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (*(int *)(iVar1 + 8) < 0) {\n      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }\nLAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" ({ "{") (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(float **)(iVar1 + 0x14)" (identifier "pfVar9") (= "=") (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 "fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));" (assignment_expression "fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" (identifier "fVar17") (= "=") (cast_expression "(float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0))" (( "(") (binary_expression "(double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (cast_expression "(double)iVar8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar8")) (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (* "*") (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d2c0)" (( "(") (binary_expression "pcVar11 + 0x1d2c0" (identifier "pcVar11") (+ "+") (number_literal "0x1d2c0")) () ")")))) (+ "+") (number_literal "0x36c0")) () ")"))))) () ")")))) (; ";")) (expression_statement "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (double)*(int *)(iVar1 + 8)" (identifier "dVar14") (= "=") (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      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\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      iVar8 = *(int *)(pcVar11 + 0x1d2c0);\n      goto LAB_00028774;\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar11 + 0x1d2c0);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x1d2c0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d2c0)" (( "(") (binary_expression "pcVar11 + 0x1d2c0" (identifier "pcVar11") (+ "+") (number_literal "0x1d2c0")) () ")"))))) (; ";")) (goto_statement "goto LAB_00028774;" (goto "goto") (statement_identifier "LAB_00028774") (; ";")) (} "}"))) (labeled_statement "LAB_00028678:\n    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;" (statement_identifier "LAB_00028678") (: ":") (if_statement "if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;" (if "if") (parenthesized_expression "((float)dVar14 * *pfVar9 <= fVar17)" (( "(") (binary_expression "(float)dVar14 * *pfVar9 <= fVar17" (binary_expression "(float)dVar14 * *pfVar9" (cast_expression "(float)dVar14" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar14")) (* "*") (pointer_expression "*pfVar9" (* "*") (identifier "pfVar9"))) (<= "<=") (identifier "fVar17")) () ")")) (goto_statement "goto LAB_0002861c;" (goto "goto") (statement_identifier "LAB_0002861c") (; ";")))) (} "}")) (else_clause "else {\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" (else "else") (compound_statement "{\n    fVar17 = (float)iVar8;\n    pfVar9 = *(float **)(iVar1 + 0x14);\n    dVar14 = (double)*(int *)(iVar1 + 8);\n    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;\n    iVar8 = *(int *)(pcVar11 + 0x1d2c0);\nLAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;\n  }" ({ "{") (expression_statement "fVar17 = (float)iVar8;" (assignment_expression "fVar17 = (float)iVar8" (identifier "fVar17") (= "=") (cast_expression "(float)iVar8" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "iVar8"))) (; ";")) (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(float **)(iVar1 + 0x14)" (identifier "pfVar9") (= "=") (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 "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (double)*(int *)(iVar1 + 8)" (identifier "dVar14") (= "=") (cast_expression "(double)*(int *)(iVar1 + 8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;" (if "if") (parenthesized_expression "(-1 < *(int *)(iVar1 + 8))" (( "(") (binary_expression "-1 < *(int *)(iVar1 + 8)" (number_literal "-1") (< "<") (pointer_expression "*(int *)(iVar1 + 8)" (* "*") (cast_expression "(int *)(iVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (goto_statement "goto LAB_00028678;" (goto "goto") (statement_identifier "LAB_00028678") (; ";"))) (expression_statement "iVar8 = *(int *)(pcVar11 + 0x1d2c0);" (assignment_expression "iVar8 = *(int *)(pcVar11 + 0x1d2c0)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d2c0)" (( "(") (binary_expression "pcVar11 + 0x1d2c0" (identifier "pcVar11") (+ "+") (number_literal "0x1d2c0")) () ")"))))) (; ";")) (labeled_statement "LAB_00028774:\n    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;" (statement_identifier "LAB_00028774") (: ":") (if_statement "if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;" (if "if") (parenthesized_expression "((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17)" (( "(") (binary_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17" (binary_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9" (cast_expression "(float)(dVar14 + *(double *)(iVar8 + 0x36c0))" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (parenthesized_expression "(dVar14 + *(double *)(iVar8 + 0x36c0))" (( "(") (binary_expression "dVar14 + *(double *)(iVar8 + 0x36c0)" (identifier "dVar14") (+ "+") (pointer_expression "*(double *)(iVar8 + 0x36c0)" (* "*") (cast_expression "(double *)(iVar8 + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x36c0)" (( "(") (binary_expression "iVar8 + 0x36c0" (identifier "iVar8") (+ "+") (number_literal "0x36c0")) () ")"))))) () ")"))) (* "*") (pointer_expression "*pfVar9" (* "*") (identifier "pfVar9"))) (<= "<=") (identifier "fVar17")) () ")")) (goto_statement "goto LAB_0002861c;" (goto "goto") (statement_identifier "LAB_0002861c") (; ";")))) (} "}")))) (expression_statement "FUN_00027328(iVar1 + 0x14);" (call_expression "FUN_00027328(iVar1 + 0x14)" (identifier "FUN_00027328") (argument_list "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))) (; ";")) (expression_statement "pfVar9 = *(float **)(iVar1 + 0x14);" (assignment_expression "pfVar9 = *(float **)(iVar1 + 0x14)" (identifier "pfVar9") (= "=") (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 "dVar14 = (double)*(int *)(iVar1 + 8);" (assignment_expression "dVar14 = (double)*(int *)(iVar1 + 8)" (identifier "dVar14") (= "=") (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    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\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    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }" ({ "{") (expression_statement "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (identifier "dVar14") (= "=") (binary_expression "dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (identifier "dVar14") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (* "*") (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d2c0)" (( "(") (binary_expression "pcVar11 + 0x1d2c0" (identifier "pcVar11") (+ "+") (number_literal "0x1d2c0")) () ")")))) (+ "+") (number_literal "0x36c0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar16 = (double)*(int *)(iVar1 + 0xc);" (assignment_expression "dVar16 = (double)*(int *)(iVar1 + 0xc)" (identifier "dVar16") (= "=") (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    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\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    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);\n  }" ({ "{") (expression_statement "dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);" (assignment_expression "dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (identifier "dVar16") (= "=") (binary_expression "dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (identifier "dVar16") (+ "+") (pointer_expression "*(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (* "*") (cast_expression "(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36c0" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d2c0)" (( "(") (binary_expression "pcVar11 + 0x1d2c0" (identifier "pcVar11") (+ "+") (number_literal "0x1d2c0")) () ")")))) (+ "+") (number_literal "0x36c0")) () ")")))))) (; ";")) (} "}"))) (if_statement "if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;" (if "if") (parenthesized_expression "((float)dVar14 * *pfVar9 <= (float)dVar16)" (( "(") (binary_expression "(float)dVar14 * *pfVar9 <= (float)dVar16" (binary_expression "(float)dVar14 * *pfVar9" (cast_expression "(float)dVar14" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar14")) (* "*") (pointer_expression "*pfVar9" (* "*") (identifier "pfVar9"))) (<= "<=") (cast_expression "(float)dVar16" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar16"))) () ")")) (goto_statement "goto LAB_0002861c;" (goto "goto") (statement_identifier "LAB_0002861c") (; ";"))) (expression_statement "fVar17 = (float)dVar14 * pfVar9[1];" (assignment_expression "fVar17 = (float)dVar14 * pfVar9[1]" (identifier "fVar17") (= "=") (binary_expression "(float)dVar14 * pfVar9[1]" (cast_expression "(float)dVar14" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar14")) (* "*") (subscript_expression "pfVar9[1]" (identifier "pfVar9") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (*(char *)(pfVar9 + 4) == '\0') {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }\n  else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" (if "if") (parenthesized_expression "(*(char *)(pfVar9 + 4) == '\0')" (( "(") (binary_expression "*(char *)(pfVar9 + 4) == '\0'" (pointer_expression "*(char *)(pfVar9 + 4)" (* "*") (cast_expression "(char *)(pfVar9 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pfVar9 + 4)" (( "(") (binary_expression "pfVar9 + 4" (identifier "pfVar9") (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    fVar17 = fVar17 * pfVar9[2];\n    if (fVar18 <= fVar17) goto LAB_0002871c;\nLAB_000287e4:\n    uVar15 = (uint)fVar17;\n  }" ({ "{") (expression_statement "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (identifier "fVar18") (= "=") (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (* "*") (cast_expression "(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d2c0)" (( "(") (binary_expression "pcVar11 + 0x1d2c0" (identifier "pcVar11") (+ "+") (number_literal "0x1d2c0")) () ")")))) (+ "+") (number_literal "0x36bc")) () ")"))))) (; ";")) (expression_statement "fVar17 = fVar17 * pfVar9[2];" (assignment_expression "fVar17 = fVar17 * pfVar9[2]" (identifier "fVar17") (= "=") (binary_expression "fVar17 * pfVar9[2]" (identifier "fVar17") (* "*") (subscript_expression "pfVar9[2]" (identifier "pfVar9") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (fVar18 <= fVar17) goto LAB_0002871c;" (if "if") (parenthesized_expression "(fVar18 <= fVar17)" (( "(") (binary_expression "fVar18 <= fVar17" (identifier "fVar18") (<= "<=") (identifier "fVar17")) () ")")) (goto_statement "goto LAB_0002871c;" (goto "goto") (statement_identifier "LAB_0002871c") (; ";"))) (labeled_statement "LAB_000287e4:\n    uVar15 = (uint)fVar17;" (statement_identifier "LAB_000287e4") (: ":") (expression_statement "uVar15 = (uint)fVar17;" (assignment_expression "uVar15 = (uint)fVar17" (identifier "uVar15") (= "=") (cast_expression "(uint)fVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "fVar17"))) (; ";"))) (} "}")) (else_clause "else {\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" (else "else") (compound_statement "{\n    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);\n    if (fVar17 < fVar18) goto LAB_000287e4;\nLAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;\n  }" ({ "{") (expression_statement "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);" (assignment_expression "fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (identifier "fVar18") (= "=") (pointer_expression "*(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (* "*") (cast_expression "(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc)" (( "(") (binary_expression "*(int *)(pcVar11 + 0x1d2c0) + 0x36bc" (pointer_expression "*(int *)(pcVar11 + 0x1d2c0)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d2c0)" (( "(") (binary_expression "pcVar11 + 0x1d2c0" (identifier "pcVar11") (+ "+") (number_literal "0x1d2c0")) () ")")))) (+ "+") (number_literal "0x36bc")) () ")"))))) (; ";")) (if_statement "if (fVar17 < fVar18) goto LAB_000287e4;" (if "if") (parenthesized_expression "(fVar17 < fVar18)" (( "(") (binary_expression "fVar17 < fVar18" (identifier "fVar17") (< "<") (identifier "fVar18")) () ")")) (goto_statement "goto LAB_000287e4;" (goto "goto") (statement_identifier "LAB_000287e4") (; ";"))) (labeled_statement "LAB_0002871c:\n    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;" (statement_identifier "LAB_0002871c") (: ":") (expression_statement "uVar15 = (int)(fVar17 - fVar18) | 0x80000000;" (assignment_expression "uVar15 = (int)(fVar17 - fVar18) | 0x80000000" (identifier "uVar15") (= "=") (binary_expression "(int)(fVar17 - fVar18) | 0x80000000" (cast_expression "(int)(fVar17 - fVar18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(fVar17 - fVar18)" (( "(") (binary_expression "fVar17 - fVar18" (identifier "fVar17") (- "-") (identifier "fVar18")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";"))) (} "}")))) (expression_statement "iVar8 = hash_rehash(iVar1,uVar15);" (assignment_expression "iVar8 = hash_rehash(iVar1,uVar15)" (identifier "iVar8") (= "=") (call_expression "hash_rehash(iVar1,uVar15)" (identifier "hash_rehash") (argument_list "(iVar1,uVar15)" (( "(") (identifier "iVar1") (, ",") (identifier "uVar15") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar8 = *(int *)(iVar1 + 0x24);\n    while (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }\n    *(undefined4 *)(iVar1 + 0x24) = 0;\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar1 + 0x24);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x24)" (identifier "iVar8") (= "=") (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 (iVar8 != 0) {\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }" (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = *(int *)(iVar8 + 4);\n      (**(code **)(pcVar11 + 0x1d730))();\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar8 + 4);" (assignment_expression "iVar8 = *(int *)(iVar8 + 4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar11 + 0x1d730))();" (call_expression "(**(code **)(pcVar11 + 0x1d730))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d730))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x1d730)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x1d730)" (* "*") (cast_expression "(code **)(pcVar11 + 0x1d730)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d730)" (( "(") (binary_expression "pcVar11 + 0x1d730" (identifier "pcVar11") (+ "+") (number_literal "0x1d730")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar1 + 0x24) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x24) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x24)" (( "(") (binary_expression "iVar1 + 0x24" (identifier "iVar1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_0002861c:\n  if (iVar3 == *piVar2) {\n    return piVar4;\n  }" (statement_identifier "LAB_0002861c") (: ":") (if_statement "if (iVar3 == *piVar2) {\n    return piVar4;\n  }" (if "if") (parenthesized_expression "(iVar3 == *piVar2)" (( "(") (binary_expression "iVar3 == *piVar2" (identifier "iVar3") (== "==") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) () ")")) (compound_statement "{\n    return piVar4;\n  }" ({ "{") (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}")))) (expression_statement "pcVar11 = *(code **)(pcVar11 + 0x1d700);" (assignment_expression "pcVar11 = *(code **)(pcVar11 + 0x1d700)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x1d700)" (* "*") (cast_expression "(code **)(pcVar11 + 0x1d700)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d700)" (( "(") (binary_expression "pcVar11 + 0x1d700" (identifier "pcVar11") (+ "+") (number_literal "0x1d700")) () ")"))))) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar3 != 0) {\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();\n    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }\n    **(int **)(pcVar11 + 0x1d34c) = iVar3;\n    piVar4 = *(int **)(pcVar11 + 0x1d428);\n    *piVar4 = iVar3;\n    return piVar4;\n  }" ({ "{") (expression_statement "iVar1 = (**(code **)(pcVar11 + 0x1d41c))();" (assignment_expression "iVar1 = (**(code **)(pcVar11 + 0x1d41c))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(pcVar11 + 0x1d41c))()" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d41c))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x1d41c)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x1d41c)" (* "*") (cast_expression "(code **)(pcVar11 + 0x1d41c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d41c)" (( "(") (binary_expression "pcVar11 + 0x1d41c" (identifier "pcVar11") (+ "+") (number_literal "0x1d41c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)) {\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }" (if "if") (parenthesized_expression "(((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0))" (( "(") (binary_expression "((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&\n       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)" (parenthesized_expression "((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3))" (( "(") (binary_expression "(iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)" (( "(") (comma_expression "iVar8 = iVar1 + 1, 6 < iVar8 - iVar3" (assignment_expression "iVar8 = iVar1 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (, ",") (binary_expression "6 < iVar8 - iVar3" (number_literal "6") (< "<") (binary_expression "iVar8 - iVar3" (identifier "iVar8") (- "-") (identifier "iVar3")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0)" (( "(") (comma_expression "iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),\n       iVar5 == 0" (assignment_expression "iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d3e8))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x1d3e8)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x1d3e8)" (* "*") (cast_expression "(code **)(pcVar11 + 0x1d3e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d3e8)" (( "(") (binary_expression "pcVar11 + 0x1d3e8" (identifier "pcVar11") (+ "+") (number_literal "0x1d3e8")) () ")"))))) () ")")) (argument_list "(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7)" (( "(") (binary_expression "iVar1 + -6" (identifier "iVar1") (+ "+") (number_literal "-6")) (, ",") (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x3708" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d068)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d068)" (( "(") (binary_expression "pcVar11 + 0x1d068" (identifier "pcVar11") (+ "+") (number_literal "0x1d068")) () ")")))) (+ "+") (number_literal "0x3708")) (, ",") (number_literal "7") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);\n      if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }\n      iVar3 = iVar1 + 4;\n      **(int **)(pcVar11 + 0x1d3f8) = iVar3;\n    }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);" (assignment_expression "iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d3e8))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x1d3e8)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x1d3e8)" (* "*") (cast_expression "(code **)(pcVar11 + 0x1d3e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d3e8)" (( "(") (binary_expression "pcVar11 + 0x1d3e8" (identifier "pcVar11") (+ "+") (number_literal "0x1d3e8")) () ")"))))) () ")")) (argument_list "(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3)" (( "(") (identifier "iVar8") (, ",") (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x3710" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d068)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d068)" (( "(") (binary_expression "pcVar11 + 0x1d068" (identifier "pcVar11") (+ "+") (number_literal "0x1d068")) () ")")))) (+ "+") (number_literal "0x3710")) (, ",") (number_literal "3") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        **(int **)(pcVar11 + 0x1d34c) = iVar8;\n        piVar4 = *(int **)(pcVar11 + 0x1d428);\n        *piVar4 = iVar8;\n        return piVar4;\n      }" ({ "{") (expression_statement "**(int **)(pcVar11 + 0x1d34c) = iVar8;" (assignment_expression "**(int **)(pcVar11 + 0x1d34c) = iVar8" (pointer_expression "**(int **)(pcVar11 + 0x1d34c)" (* "*") (pointer_expression "*(int **)(pcVar11 + 0x1d34c)" (* "*") (cast_expression "(int **)(pcVar11 + 0x1d34c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d34c)" (( "(") (binary_expression "pcVar11 + 0x1d34c" (identifier "pcVar11") (+ "+") (number_literal "0x1d34c")) () ")"))))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "piVar4 = *(int **)(pcVar11 + 0x1d428);" (assignment_expression "piVar4 = *(int **)(pcVar11 + 0x1d428)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(pcVar11 + 0x1d428)" (* "*") (cast_expression "(int **)(pcVar11 + 0x1d428)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d428)" (( "(") (binary_expression "pcVar11 + 0x1d428" (identifier "pcVar11") (+ "+") (number_literal "0x1d428")) () ")"))))) (; ";")) (expression_statement "*piVar4 = iVar8;" (assignment_expression "*piVar4 = iVar8" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar8")) (; ";")) (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}"))) (expression_statement "iVar3 = iVar1 + 4;" (assignment_expression "iVar3 = iVar1 + 4" (identifier "iVar3") (= "=") (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "**(int **)(pcVar11 + 0x1d3f8) = iVar3;" (assignment_expression "**(int **)(pcVar11 + 0x1d3f8) = iVar3" (pointer_expression "**(int **)(pcVar11 + 0x1d3f8)" (* "*") (pointer_expression "*(int **)(pcVar11 + 0x1d3f8)" (* "*") (cast_expression "(int **)(pcVar11 + 0x1d3f8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d3f8)" (( "(") (binary_expression "pcVar11 + 0x1d3f8" (identifier "pcVar11") (+ "+") (number_literal "0x1d3f8")) () ")"))))) (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (expression_statement "**(int **)(pcVar11 + 0x1d34c) = iVar3;" (assignment_expression "**(int **)(pcVar11 + 0x1d34c) = iVar3" (pointer_expression "**(int **)(pcVar11 + 0x1d34c)" (* "*") (pointer_expression "*(int **)(pcVar11 + 0x1d34c)" (* "*") (cast_expression "(int **)(pcVar11 + 0x1d34c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d34c)" (( "(") (binary_expression "pcVar11 + 0x1d34c" (identifier "pcVar11") (+ "+") (number_literal "0x1d34c")) () ")"))))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar4 = *(int **)(pcVar11 + 0x1d428);" (assignment_expression "piVar4 = *(int **)(pcVar11 + 0x1d428)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(pcVar11 + 0x1d428)" (* "*") (cast_expression "(int **)(pcVar11 + 0x1d428)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d428)" (( "(") (binary_expression "pcVar11 + 0x1d428" (identifier "pcVar11") (+ "+") (number_literal "0x1d428")) () ")"))))) (; ";")) (expression_statement "*piVar4 = iVar3;" (assignment_expression "*piVar4 = iVar3" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (identifier "iVar3")) (; ";")) (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}"))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;" (assignment_expression "iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0" (identifier "iVar1") (= "=") (binary_expression "*(int *)(pcVar11 + 0x1d068) + 0x36d0" (pointer_expression "*(int *)(pcVar11 + 0x1d068)" (* "*") (cast_expression "(int *)(pcVar11 + 0x1d068)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x1d068)" (( "(") (binary_expression "pcVar11 + 0x1d068" (identifier "pcVar11") (+ "+") (number_literal "0x1d068")) () ")")))) (+ "+") (number_literal "0x36d0"))) (; ";")) (expression_statement "(**(code **)(pcVar11 + 0x1d49c))(iVar1);" (call_expression "(**(code **)(pcVar11 + 0x1d49c))(iVar1)" (parenthesized_expression "(**(code **)(pcVar11 + 0x1d49c))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x1d49c)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x1d49c)" (* "*") (cast_expression "(code **)(pcVar11 + 0x1d49c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d49c)" (( "(") (binary_expression "pcVar11 + 0x1d49c" (identifier "pcVar11") (+ "+") (number_literal "0x1d49c")) () ")"))))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "pcVar12 = *(code **)(pcVar11 + 0x1d3e0);" (assignment_expression "pcVar12 = *(code **)(pcVar11 + 0x1d3e0)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(pcVar11 + 0x1d3e0)" (* "*") (cast_expression "(code **)(pcVar11 + 0x1d3e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x1d3e0)" (( "(") (binary_expression "pcVar11 + 0x1d3e0" (identifier "pcVar11") (+ "+") (number_literal "0x1d3e0")) () ")"))))) (; ";")) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar3 == 0) {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }\n  else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" ({ "{") (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d2c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d2c4)" (( "(") (binary_expression "pcVar12 + 0x1d2c4" (identifier "pcVar12") (+ "+") (number_literal "0x1d2c4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" (else "else") (compound_statement "{\n    (**(code **)(pcVar12 + 0x1d2c4))();\n  }" ({ "{") (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))();" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))()" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d2c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d2c4)" (( "(") (binary_expression "pcVar12 + 0x1d2c4" (identifier "pcVar12") (+ "+") (number_literal "0x1d2c4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d380)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d380)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d380)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d380)" (( "(") (binary_expression "pcVar12 + 0x1d380" (identifier "pcVar12") (+ "+") (number_literal "0x1d380")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3728" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" (* "*") (cast_expression "(int *)(pcVar12 + 0x1cf38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x1cf38)" (( "(") (binary_expression "pcVar12 + 0x1cf38" (identifier "pcVar12") (+ "+") (number_literal "0x1cf38")) () ")")))) (+ "+") (number_literal "0x3728")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);" (call_expression "(**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d2c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d2c4)" (( "(") (binary_expression "pcVar12 + 0x1d2c4" (identifier "pcVar12") (+ "+") (number_literal "0x1d2c4")) () ")"))))) () ")")) (argument_list "(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3)" (( "(") (identifier "iVar1") (, ",") (number_literal "1") (, ",") (pointer_expression "*(undefined4 *)(pcVar12 + 0x1d220)" (* "*") (cast_expression "(undefined4 *)(pcVar12 + 0x1d220)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x1d220)" (( "(") (binary_expression "pcVar12 + 0x1d220" (identifier "pcVar12") (+ "+") (number_literal "0x1d220")) () ")")))) (, ",") (identifier "uVar6") (, ",") (number_literal "0x7e3") () ")"))) (; ";")) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d380)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d380)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d380)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d380)" (( "(") (binary_expression "pcVar12 + 0x1d380" (identifier "pcVar12") (+ "+") (number_literal "0x1d380")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x372c" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" (* "*") (cast_expression "(int *)(pcVar12 + 0x1cf38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x1cf38)" (( "(") (binary_expression "pcVar12 + 0x1cf38" (identifier "pcVar12") (+ "+") (number_literal "0x1cf38")) () ")")))) (+ "+") (number_literal "0x372c")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);" (call_expression "(**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2a0))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d2a0)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d2a0)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d2a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d2a0)" (( "(") (binary_expression "pcVar12 + 0x1d2a0" (identifier "pcVar12") (+ "+") (number_literal "0x1d2a0")) () ")"))))) () ")")) (argument_list "(uVar6,iVar1)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar1") () ")"))) (; ";")) (if_statement "if (uStack_bc < 10) {\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }" (if "if") (parenthesized_expression "(uStack_bc < 10)" (( "(") (binary_expression "uStack_bc < 10" (identifier "uStack_bc") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                    \n                    \n    piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();\n    return piVar4;\n  }" ({ "{") (expression_statement "piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();" (assignment_expression "piVar4 = (int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))()" (parenthesized_expression "(*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))" (( "(") (pointer_expression "*(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)))" (* "*") (parenthesized_expression "(pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)))" (( "(") (binary_expression "pcVar12 +\n                      (int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" (identifier "pcVar12") (+ "+") (cast_expression "(int)(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))" (( "(") (binary_expression "&UNK_00024f00 +\n                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" (pointer_expression "&UNK_00024f00" (& "&") (identifier "UNK_00024f00")) (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4)" (( "(") (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4" (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3a20" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" (* "*") (cast_expression "(int *)(pcVar12 + 0x1cf38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x1cf38)" (( "(") (binary_expression "pcVar12 + 0x1cf38" (identifier "pcVar12") (+ "+") (number_literal "0x1cf38")) () ")")))) (+ "+") (number_literal "0x3a20")) (+ "+") (binary_expression "uStack_bc * 4" (identifier "uStack_bc") (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}"))) (expression_statement "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);" (assignment_expression "uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d380))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d380)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d380)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d380)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d380)" (( "(") (binary_expression "pcVar12 + 0x1d380" (identifier "pcVar12") (+ "+") (number_literal "0x1d380")) () ")"))))) () ")")) (argument_list "(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5)" (( "(") (number_literal "0") (, ",") (binary_expression "*(int *)(pcVar12 + 0x1cf38) + 0x3938" (pointer_expression "*(int *)(pcVar12 + 0x1cf38)" (* "*") (cast_expression "(int *)(pcVar12 + 0x1cf38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0x1cf38)" (( "(") (binary_expression "pcVar12 + 0x1cf38" (identifier "pcVar12") (+ "+") (number_literal "0x1cf38")) () ")")))) (+ "+") (number_literal "0x3938")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));" (assignment_expression "piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar12 + 0x1d2c4))\n                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" (parenthesized_expression "(**(code **)(pcVar12 + 0x1d2c4))" (( "(") (pointer_expression "**(code **)(pcVar12 + 0x1d2c4)" (* "*") (pointer_expression "*(code **)(pcVar12 + 0x1d2c4)" (* "*") (cast_expression "(code **)(pcVar12 + 0x1d2c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar12 + 0x1d2c4)" (( "(") (binary_expression "pcVar12 + 0x1d2c4" (identifier "pcVar12") (+ "+") (number_literal "0x1d2c4")) () ")"))))) () ")")) (argument_list "(iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),\n                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),\n                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),\n                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),\n                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050))" (( "(") (identifier "iVar1") (, ",") (number_literal "1") (, ",") (identifier "uVar6") (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x25030)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x25030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x25030)" (( "(") (binary_expression "pcVar11 + 0x25030" (identifier "pcVar11") (+ "+") (number_literal "0x25030")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x25034)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x25034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x25034)" (( "(") (binary_expression "pcVar11 + 0x25034" (identifier "pcVar11") (+ "+") (number_literal "0x25034")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x25038)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x25038)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x25038)" (( "(") (binary_expression "pcVar11 + 0x25038" (identifier "pcVar11") (+ "+") (number_literal "0x25038")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x2503c)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x2503c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2503c)" (( "(") (binary_expression "pcVar11 + 0x2503c" (identifier "pcVar11") (+ "+") (number_literal "0x2503c")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x25040)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x25040)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x25040)" (( "(") (binary_expression "pcVar11 + 0x25040" (identifier "pcVar11") (+ "+") (number_literal "0x25040")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x25044)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x25044)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x25044)" (( "(") (binary_expression "pcVar11 + 0x25044" (identifier "pcVar11") (+ "+") (number_literal "0x25044")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x25048)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x25048)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x25048)" (( "(") (binary_expression "pcVar11 + 0x25048" (identifier "pcVar11") (+ "+") (number_literal "0x25048")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x2504c)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x2504c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x2504c)" (( "(") (binary_expression "pcVar11 + 0x2504c" (identifier "pcVar11") (+ "+") (number_literal "0x2504c")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(pcVar11 + 0x25050)" (* "*") (cast_expression "(undefined4 *)(pcVar11 + 0x25050)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar11 + 0x25050)" (( "(") (binary_expression "pcVar11 + 0x25050" (identifier "pcVar11") (+ "+") (number_literal "0x25050")) () ")")))) () ")"))))) (; ";")) (return_statement "return piVar4;" (return "return") (identifier "piVar4") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) right: (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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (goto_statement label: (statement_identifier)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (comma_expression left: (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (identifier))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) right: (pointer_expression argument: (identifier))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (identifier))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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 (binary_expression left: (identifier) right: (number_literal)) (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)) (number_literal)))) right: (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: (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 (identifier) (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)) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (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: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (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 (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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)))) alternative: (else_clause (compound_statement (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: (identifier) right: (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 (number_literal) (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)) (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 (identifier) (number_literal) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (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)) (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 (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))))))))))) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal) (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)) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (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 (identifier) (number_literal) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (return_statement (identifier)))))

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

{
  int iVar1;
  int *piVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  undefined4 uVar6;
  uint *puVar7;
  int iVar8;
  float *pfVar9;
  int unaff_s0;
  int *unaff_s3;
  uint **unaff_s4;
  undefined *puVar10;
  code *pcVar11;
  code *pcVar12;
  ulonglong uVar13;
  ulonglong extraout_f0_1;
  double dVar14;
  uint uVar15;
  ulonglong in_f2_3;
  float fVar17;
  double dVar16;
  float fVar18;
  uint uStack_bc;
  int *piStack_90;
  int *piStack_58;
  uint *local_28;
  int local_24;
  
  puVar10 = PTR___stack_chk_guard_00045cc8;
  local_24 = *(int *)PTR___stack_chk_guard_00045cc8;
  if (param_2 == (int *)0x0) goto LAB_000284f0;
  unaff_s4 = &local_28;
  piVar4 = param_2;
  iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);
  if (iVar1 == 0) {
    dVar14 = (double)*(int *)(param_1 + 0xc);
    if (*(int *)(param_1 + 0xc) < 0) {
      dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
    }
    dVar16 = (double)*(int *)(param_1 + 8);
    if (*(int *)(param_1 + 8) < 0) {
      dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
    }
    if ((float)dVar16 * *(float *)(*(int *)(param_1 + 0x14) + 8) < (float)dVar14) {
      FUN_00027328(param_1 + 0x14);
      iVar1 = *(int *)(param_1 + 0x14);
      dVar14 = (double)*(int *)(param_1 + 8);
      if (*(int *)(param_1 + 8) < 0) {
        dVar14 = dVar14 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
      }
      dVar16 = (double)*(int *)(param_1 + 0xc);
      if (*(int *)(param_1 + 0xc) < 0) {
        dVar16 = dVar16 + *(double *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36c0);
      }
      if (*(float *)(iVar1 + 8) * (float)dVar14 < (float)dVar16) {
        fVar17 = (float)dVar14 * *(float *)(iVar1 + 0xc);
        if (*(char *)(iVar1 + 0x10) == '\0') {
          fVar17 = fVar17 * *(float *)(iVar1 + 8);
        }
        uVar13 = (ulonglong)(uint)fVar17;
        if (*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36b8) <= fVar17) {
LAB_00028454:
          piVar2 = (int *)0xffffffff;
          goto LAB_000282f0;
        }
        in_f2_3 = (ulonglong)
                  (uint)*(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc);
        uVar15 = 0x80000000;
        if (fVar17 < *(float *)(PTR_s_canner_internal_error__end_of_bu_00045868 + 0x36bc)) {
          piVar4 = (int *)(int)fVar17;
          goto LAB_000284bc;
        }
        while( true ) {
          piVar4 = (int *)((int)((float)uVar13 - (float)in_f2_3) | uVar15);
LAB_000284bc:
          iVar1 = hash_rehash(param_1);
          if (iVar1 == 0) goto LAB_00028454;
          piVar4 = param_2;
          iVar1 = FUN_000271e0(param_1,param_2,unaff_s4,0);
          unaff_s0 = param_1;
          unaff_s3 = param_2;
          if (iVar1 == 0) break;
LAB_000284f0:
          param_2 = unaff_s3;
          param_1 = unaff_s0;
          uVar15 = (*(code *)PTR_abort_00045be0)();
          uVar13 = extraout_f0_1;
        }
      }
    }
    piVar2 = (int *)0x1;
    if (*local_28 == 0) {
      iVar3 = *(int *)(param_1 + 0x10);
      iVar1 = *(int *)(param_1 + 0xc);
      *local_28 = (uint)param_2;
      *(int *)(param_1 + 0x10) = iVar3 + 1;
      *(int *)(param_1 + 0xc) = iVar1 + 1;
    }
    else {
      puVar7 = *(uint **)(param_1 + 0x24);
      if (puVar7 == (uint *)0x0) {
        puVar7 = (uint *)(*(code *)PTR_malloc_00045c80)(8);
        if (puVar7 == (uint *)0x0) {
          piVar2 = (int *)0xffffffff;
          goto LAB_000282f0;
        }
      }
      else {
        *(uint *)(param_1 + 0x24) = puVar7[1];
      }
      iVar1 = *(int *)(param_1 + 0x10);
      piVar2 = (int *)0x1;
      piVar4 = (int *)local_28[1];
      *puVar7 = (uint)param_2;
      puVar7[1] = (uint)piVar4;
      local_28[1] = (uint)puVar7;
      *(int *)(param_1 + 0x10) = iVar1 + 1;
    }
  }
  else if (param_3 == (int *)0x0) {
    piVar2 = (int *)0x0;
  }
  else {
    *param_3 = iVar1;
    piVar2 = (int *)0x0;
  }
LAB_000282f0:
  if (local_24 == *(int *)puVar10) {
    return piVar2;
  }
  puVar10 = PTR___stack_chk_fail_00045ca8;
  (*(code *)PTR___stack_chk_fail_00045ca8)();
  piVar2 = *(int **)(puVar10 + 0x1d7ac);
  iVar1 = *piVar2;
  iVar3 = MASKED();
  if (iVar3 == -1) {
    piStack_58 = (int *)0x0;
  }
  else if (iVar3 != 0) {
    piStack_58 = piVar4;
  }
  if (iVar1 == *piVar2) {
    return piStack_58;
  }
  pcVar11 = *(code **)(puVar10 + 0x1d78c);
  (*pcVar11)();
  piVar2 = *(int **)(pcVar11 + 0x1d720);
  iVar3 = *piVar2;
  piVar4 = (int *)FUN_000271e0();
  if ((piVar4 == (int *)0x0) ||
     (iVar8 = *piStack_90, *(int *)(iVar1 + 0x10) = *(int *)(iVar1 + 0x10) + -1, iVar8 != 0))
  goto LAB_0002861c;
  iVar8 = *(int *)(iVar1 + 0xc) + -1;
  *(int *)(iVar1 + 0xc) = iVar8;
  if (iVar8 < 0) {
    pfVar9 = *(float **)(iVar1 + 0x14);
    fVar17 = (float)((double)iVar8 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0));
    dVar14 = (double)*(int *)(iVar1 + 8);
    if (*(int *)(iVar1 + 8) < 0) {
      iVar8 = *(int *)(pcVar11 + 0x1d2c0);
      goto LAB_00028774;
    }
LAB_00028678:
    if ((float)dVar14 * *pfVar9 <= fVar17) goto LAB_0002861c;
  }
  else {
    fVar17 = (float)iVar8;
    pfVar9 = *(float **)(iVar1 + 0x14);
    dVar14 = (double)*(int *)(iVar1 + 8);
    if (-1 < *(int *)(iVar1 + 8)) goto LAB_00028678;
    iVar8 = *(int *)(pcVar11 + 0x1d2c0);
LAB_00028774:
    if ((float)(dVar14 + *(double *)(iVar8 + 0x36c0)) * *pfVar9 <= fVar17) goto LAB_0002861c;
  }
  FUN_00027328(iVar1 + 0x14);
  pfVar9 = *(float **)(iVar1 + 0x14);
  dVar14 = (double)*(int *)(iVar1 + 8);
  if (*(int *)(iVar1 + 8) < 0) {
    dVar14 = dVar14 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);
  }
  dVar16 = (double)*(int *)(iVar1 + 0xc);
  if (*(int *)(iVar1 + 0xc) < 0) {
    dVar16 = dVar16 + *(double *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36c0);
  }
  if ((float)dVar14 * *pfVar9 <= (float)dVar16) goto LAB_0002861c;
  fVar17 = (float)dVar14 * pfVar9[1];
  if (*(char *)(pfVar9 + 4) == '\0') {
    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);
    fVar17 = fVar17 * pfVar9[2];
    if (fVar18 <= fVar17) goto LAB_0002871c;
LAB_000287e4:
    uVar15 = (uint)fVar17;
  }
  else {
    fVar18 = *(float *)(*(int *)(pcVar11 + 0x1d2c0) + 0x36bc);
    if (fVar17 < fVar18) goto LAB_000287e4;
LAB_0002871c:
    uVar15 = (int)(fVar17 - fVar18) | 0x80000000;
  }
  iVar8 = hash_rehash(iVar1,uVar15);
  if (iVar8 == 0) {
    iVar8 = *(int *)(iVar1 + 0x24);
    while (iVar8 != 0) {
      iVar8 = *(int *)(iVar8 + 4);
      (**(code **)(pcVar11 + 0x1d730))();
    }
    *(undefined4 *)(iVar1 + 0x24) = 0;
  }
LAB_0002861c:
  if (iVar3 == *piVar2) {
    return piVar4;
  }
  pcVar11 = *(code **)(pcVar11 + 0x1d700);
  (*pcVar11)();
  if (iVar3 != 0) {
    iVar1 = (**(code **)(pcVar11 + 0x1d41c))();
    if (((iVar1 != 0) && (iVar8 = iVar1 + 1, 6 < iVar8 - iVar3)) &&
       (iVar5 = (**(code **)(pcVar11 + 0x1d3e8))(iVar1 + -6,*(int *)(pcVar11 + 0x1d068) + 0x3708,7),
       iVar5 == 0)) {
      iVar3 = (**(code **)(pcVar11 + 0x1d3e8))(iVar8,*(int *)(pcVar11 + 0x1d068) + 0x3710,3);
      if (iVar3 != 0) {
        **(int **)(pcVar11 + 0x1d34c) = iVar8;
        piVar4 = *(int **)(pcVar11 + 0x1d428);
        *piVar4 = iVar8;
        return piVar4;
      }
      iVar3 = iVar1 + 4;
      **(int **)(pcVar11 + 0x1d3f8) = iVar3;
    }
    **(int **)(pcVar11 + 0x1d34c) = iVar3;
    piVar4 = *(int **)(pcVar11 + 0x1d428);
    *piVar4 = iVar3;
    return piVar4;
  }
  iVar3 = 1;
  iVar1 = *(int *)(pcVar11 + 0x1d068) + 0x36d0;
  (**(code **)(pcVar11 + 0x1d49c))(iVar1);
  pcVar12 = *(code **)(pcVar11 + 0x1d3e0);
  (*pcVar12)();
  if (iVar3 == 0) {
    (**(code **)(pcVar12 + 0x1d2c4))();
  }
  else {
    (**(code **)(pcVar12 + 0x1d2c4))();
  }
  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3728,5);
  (**(code **)(pcVar12 + 0x1d2c4))(iVar1,1,*(undefined4 *)(pcVar12 + 0x1d220),uVar6,0x7e3);
  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x372c,5);
  (**(code **)(pcVar12 + 0x1d2a0))(uVar6,iVar1);
  if (uStack_bc < 10) {
                    /* WARNING: Could not recover jumptable at 0x00028a24. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    piVar4 = (int *)(*(pcVar12 +
                      (int)(&UNK_00024f00 +
                           *(int *)(*(int *)(pcVar12 + 0x1cf38) + 0x3a20 + uStack_bc * 4))))();
    return piVar4;
  }
  uVar6 = (**(code **)(pcVar12 + 0x1d380))(0,*(int *)(pcVar12 + 0x1cf38) + 0x3938,5);
  piVar4 = (int *)(**(code **)(pcVar12 + 0x1d2c4))
                            (iVar1,1,uVar6,*(undefined4 *)(pcVar11 + 0x25030),
                             *(undefined4 *)(pcVar11 + 0x25034),*(undefined4 *)(pcVar11 + 0x25038),
                             *(undefined4 *)(pcVar11 + 0x2503c),*(undefined4 *)(pcVar11 + 0x25040),
                             *(undefined4 *)(pcVar11 + 0x25044),*(undefined4 *)(pcVar11 + 0x25048),
                             *(undefined4 *)(pcVar11 + 0x2504c),*(undefined4 *)(pcVar11 + 0x25050));
  return piVar4;
}

