
/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

_Bool __regparm3 check_tuning(Hash_table *table)

{
  float fVar1;
  Hash_tuning *pHVar2;
  float fVar3;
  
  pHVar2 = (Hash_tuning *)table->bucket;
  if (pHVar2 == &default_tuning) {
    return true;
  }
  fVar1 = pHVar2->growth_threshold;
  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))
     && (0.0 <= pHVar2->shrink_threshold)) {
    fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc;
    if (((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)) {
      return true;
    }
  }
  table->bucket = (hash_entry *)&default_tuning;
  return false;
}



/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

undefined4 __regparm3 FUN_0001b0c0(undefined4 *param_1)

{
  float fVar1;
  float *pfVar2;
  float fVar3;
  
  pfVar2 = (float *)*param_1;
  if (pfVar2 == (float *)&DAT_0001ecc8) {
    return 1;
  }
  fVar1 = pfVar2[2];
  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&
     (0.0 <= *pfVar2)) {
    fVar3 = *pfVar2 + DAT_0001ecdc;
    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {
      return 1;
    }
  }
  *param_1 = &DAT_0001ecc8;
  return 0;
}


CALL 0x00012d65
ADD EDX,0x9f3b
PUSH ESI
PUSH EBX
MOV ECX,dword ptr [EAX]
LEA ESI,[EDX + 0xffff9cc8]
CMP ECX,ESI
JZ 0x0001b190
FLD dword ptr [EDX + 0xffff9cdc]
FLD dword ptr [ECX + 0x8]
MOV EBX,EAX
FCOMI ST0,ST1
JBE 0x0001b130
FLD dword ptr [EDX + 0xffff9ce0]
FCOMIP ST0,ST1
JBE 0x0001b140
FLD dword ptr [EDX + 0xffff9ce4]
FLD dword ptr [ECX + 0xc]
FCOMIP ST0,ST1
FSTP ST0
JBE 0x0001b150
FLDZ
FLD dword ptr [ECX]
FCOMI ST0,ST1
FSTP ST1
JC 0x0001b160
FADDP ST2,ST0
FLD dword ptr [ECX + 0x4]
FCOMI ST0,ST2
JBE 0x0001b170
FLD1
FCOMIP ST0,ST1
FSTP ST0
JC 0x0001b180
FCOMIP ST0,ST1
FSTP ST0
MOV EAX,0x1
JA 0x0001b18c
JMP 0x0001b188
FSTP ST0
FSTP ST0
JMP 0x0001b188
FSTP ST0
FSTP ST0
JMP 0x0001b188
FSTP ST0
FSTP ST0
JMP 0x0001b188
FSTP ST0
FSTP ST0
FSTP ST0
JMP 0x0001b188
FSTP ST0
FSTP ST0
FSTP ST0
JMP 0x0001b188
FSTP ST0
FSTP ST0
LEA ESI,[ESI]
MOV dword ptr [EBX],ESI
XOR EAX,EAX
POP EBX
POP ESI
RET
MOV EAX,0x1
POP EBX
POP ESI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nundefined4 __regparm3 FUN_0001b0c0(undefined4 *param_1)\n\n{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_0001b0c0(undefined4 *param_1)\n\n{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0001b0c0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "float *pfVar2;" primitive_type (pointer_declarator "*pfVar2" * identifier) ;) (declaration "float fVar3;" primitive_type identifier ;) (expression_statement "pfVar2 = (float *)*param_1;" (assignment_expression "pfVar2 = (float *)*param_1" identifier = (cast_expression "(float *)*param_1" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }" if (parenthesized_expression "(pfVar2 == (float *)&DAT_0001ecc8)" ( (binary_expression "pfVar2 == (float *)&DAT_0001ecc8" identifier == (cast_expression "(float *)&DAT_0001ecc8" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0001ecc8" & identifier))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "fVar1 = pfVar2[2];" (assignment_expression "fVar1 = pfVar2[2]" identifier = (subscript_expression "pfVar2[2]" identifier [ number_literal ])) ;) (if_statement "if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }" if (parenthesized_expression "((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2))" ( (binary_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)" (parenthesized_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3]))" ( (binary_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])" (parenthesized_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0))" ( (binary_expression "(DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)" (parenthesized_expression "(DAT_0001ecdc < fVar1)" ( (binary_expression "DAT_0001ecdc < fVar1" identifier < identifier) )) && (parenthesized_expression "(fVar1 < DAT_0001ece0)" ( (binary_expression "fVar1 < DAT_0001ece0" identifier < identifier) ))) )) && (parenthesized_expression "(DAT_0001ece4 < pfVar2[3])" ( (binary_expression "DAT_0001ece4 < pfVar2[3]" identifier < (subscript_expression "pfVar2[3]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(0.0 <= *pfVar2)" ( (binary_expression "0.0 <= *pfVar2" number_literal <= (pointer_expression "*pfVar2" * identifier)) ))) )) (compound_statement "{\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }" { (expression_statement "fVar3 = *pfVar2 + DAT_0001ecdc;" (assignment_expression "fVar3 = *pfVar2 + DAT_0001ecdc" identifier = (binary_expression "*pfVar2 + DAT_0001ecdc" (pointer_expression "*pfVar2" * identifier) + identifier)) ;) (if_statement "if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }" if (parenthesized_expression "(((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1))" ( (binary_expression "((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)" (parenthesized_expression "((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0))" ( (binary_expression "(fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)" (parenthesized_expression "(fVar3 < pfVar2[1])" ( (binary_expression "fVar3 < pfVar2[1]" identifier < (subscript_expression "pfVar2[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(pfVar2[1] <= 1.0)" ( (binary_expression "pfVar2[1] <= 1.0" (subscript_expression "pfVar2[1]" identifier [ number_literal ]) <= number_literal) ))) )) && (parenthesized_expression "(fVar3 < fVar1)" ( (binary_expression "fVar3 < fVar1" identifier < identifier) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "*param_1 = &DAT_0001ecc8;" (assignment_expression "*param_1 = &DAT_0001ecc8" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_0001ecc8" & identifier)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\n_Bool __regparm3 check_tuning(Hash_table *table)\n\n{\n  float fVar1;\n  Hash_tuning *pHVar2;\n  float fVar3;\n  \n  pHVar2 = (Hash_tuning *)table->bucket;\n  if (pHVar2 == &default_tuning) {\n    return true;\n  }\n  fVar1 = pHVar2->growth_threshold;\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))\n     && (0.0 <= pHVar2->shrink_threshold)) {\n    fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc;\n    if (((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)) {\n      return true;\n    }\n  }\n  table->bucket = (hash_entry *)&default_tuning;\n  return false;\n}\n\n" comment (function_definition "_Bool __regparm3 check_tuning(Hash_table *table)\n\n{\n  float fVar1;\n  Hash_tuning *pHVar2;\n  float fVar3;\n  \n  pHVar2 = (Hash_tuning *)table->bucket;\n  if (pHVar2 == &default_tuning) {\n    return true;\n  }\n  fVar1 = pHVar2->growth_threshold;\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))\n     && (0.0 <= pHVar2->shrink_threshold)) {\n    fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc;\n    if (((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)) {\n      return true;\n    }\n  }\n  table->bucket = (hash_entry *)&default_tuning;\n  return false;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "check_tuning(Hash_table *table)" identifier (parameter_list "(Hash_table *table)" ( (parameter_declaration "Hash_table *table" type_identifier (pointer_declarator "*table" * identifier)) ))) (compound_statement "{\n  float fVar1;\n  Hash_tuning *pHVar2;\n  float fVar3;\n  \n  pHVar2 = (Hash_tuning *)table->bucket;\n  if (pHVar2 == &default_tuning) {\n    return true;\n  }\n  fVar1 = pHVar2->growth_threshold;\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))\n     && (0.0 <= pHVar2->shrink_threshold)) {\n    fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc;\n    if (((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)) {\n      return true;\n    }\n  }\n  table->bucket = (hash_entry *)&default_tuning;\n  return false;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "Hash_tuning *pHVar2;" type_identifier (pointer_declarator "*pHVar2" * identifier) ;) (declaration "float fVar3;" primitive_type identifier ;) (expression_statement "pHVar2 = (Hash_tuning *)table->bucket;" (assignment_expression "pHVar2 = (Hash_tuning *)table->bucket" identifier = (cast_expression "(Hash_tuning *)table->bucket" ( (type_descriptor "Hash_tuning *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "table->bucket" identifier -> field_identifier))) ;) (if_statement "if (pHVar2 == &default_tuning) {\n    return true;\n  }" if (parenthesized_expression "(pHVar2 == &default_tuning)" ( (binary_expression "pHVar2 == &default_tuning" identifier == (pointer_expression "&default_tuning" & identifier)) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (expression_statement "fVar1 = pHVar2->growth_threshold;" (assignment_expression "fVar1 = pHVar2->growth_threshold" identifier = (field_expression "pHVar2->growth_threshold" identifier -> field_identifier)) ;) (if_statement "if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))\n     && (0.0 <= pHVar2->shrink_threshold)) {\n    fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc;\n    if (((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)) {\n      return true;\n    }\n  }" if (parenthesized_expression "((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))\n     && (0.0 <= pHVar2->shrink_threshold))" ( (binary_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))\n     && (0.0 <= pHVar2->shrink_threshold)" (parenthesized_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor))" ( (binary_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pHVar2->growth_factor)" (parenthesized_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0))" ( (binary_expression "(DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)" (parenthesized_expression "(DAT_0001ecdc < fVar1)" ( (binary_expression "DAT_0001ecdc < fVar1" identifier < identifier) )) && (parenthesized_expression "(fVar1 < DAT_0001ece0)" ( (binary_expression "fVar1 < DAT_0001ece0" identifier < identifier) ))) )) && (parenthesized_expression "(DAT_0001ece4 < pHVar2->growth_factor)" ( (binary_expression "DAT_0001ece4 < pHVar2->growth_factor" identifier < (field_expression "pHVar2->growth_factor" identifier -> field_identifier)) ))) )) && (parenthesized_expression "(0.0 <= pHVar2->shrink_threshold)" ( (binary_expression "0.0 <= pHVar2->shrink_threshold" number_literal <= (field_expression "pHVar2->shrink_threshold" identifier -> field_identifier)) ))) )) (compound_statement "{\n    fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc;\n    if (((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)) {\n      return true;\n    }\n  }" { (expression_statement "fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc;" (assignment_expression "fVar3 = pHVar2->shrink_threshold + DAT_0001ecdc" identifier = (binary_expression "pHVar2->shrink_threshold + DAT_0001ecdc" (field_expression "pHVar2->shrink_threshold" identifier -> field_identifier) + identifier)) ;) (if_statement "if (((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)) {\n      return true;\n    }" if (parenthesized_expression "(((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1))" ( (binary_expression "((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)) && (fVar3 < fVar1)" (parenthesized_expression "((fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0))" ( (binary_expression "(fVar3 < pHVar2->shrink_factor) && (pHVar2->shrink_factor <= 1.0)" (parenthesized_expression "(fVar3 < pHVar2->shrink_factor)" ( (binary_expression "fVar3 < pHVar2->shrink_factor" identifier < (field_expression "pHVar2->shrink_factor" identifier -> field_identifier)) )) && (parenthesized_expression "(pHVar2->shrink_factor <= 1.0)" ( (binary_expression "pHVar2->shrink_factor <= 1.0" (field_expression "pHVar2->shrink_factor" identifier -> field_identifier) <= number_literal) ))) )) && (parenthesized_expression "(fVar3 < fVar1)" ( (binary_expression "fVar3 < fVar1" identifier < identifier) ))) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) })) (expression_statement "table->bucket = (hash_entry *)&default_tuning;" (assignment_expression "table->bucket = (hash_entry *)&default_tuning" (field_expression "table->bucket" identifier -> field_identifier) = (cast_expression "(hash_entry *)&default_tuning" ( (type_descriptor "hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&default_tuning" & identifier))) ;) (return_statement "return false;" return false ;) })))
(translation_unit "undefined4 __regparm3 FUN_0001b0c0(undefined4 *param_1)\n\n{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_0001b0c0(undefined4 *param_1)\n\n{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0001b0c0(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "float *pfVar2;" primitive_type (pointer_declarator "*pfVar2" * identifier) ;) (declaration "float fVar3;" primitive_type identifier ;) (expression_statement "pfVar2 = (float *)*param_1;" (assignment_expression "pfVar2 = (float *)*param_1" identifier = (cast_expression "(float *)*param_1" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }" if (parenthesized_expression "(pfVar2 == (float *)&DAT_0001ecc8)" ( (binary_expression "pfVar2 == (float *)&DAT_0001ecc8" identifier == (cast_expression "(float *)&DAT_0001ecc8" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0001ecc8" & identifier))) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "fVar1 = pfVar2[2];" (assignment_expression "fVar1 = pfVar2[2]" identifier = (subscript_expression "pfVar2[2]" identifier [ number_literal ])) ;) (if_statement "if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }" if (parenthesized_expression "((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2))" ( (binary_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)" (parenthesized_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3]))" ( (binary_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])" (parenthesized_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0))" ( (binary_expression "(DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)" (parenthesized_expression "(DAT_0001ecdc < fVar1)" ( (binary_expression "DAT_0001ecdc < fVar1" identifier < identifier) )) && (parenthesized_expression "(fVar1 < DAT_0001ece0)" ( (binary_expression "fVar1 < DAT_0001ece0" identifier < identifier) ))) )) && (parenthesized_expression "(DAT_0001ece4 < pfVar2[3])" ( (binary_expression "DAT_0001ece4 < pfVar2[3]" identifier < (subscript_expression "pfVar2[3]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(0.0 <= *pfVar2)" ( (binary_expression "0.0 <= *pfVar2" number_literal <= (pointer_expression "*pfVar2" * identifier)) ))) )) (compound_statement "{\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }" { (expression_statement "fVar3 = *pfVar2 + DAT_0001ecdc;" (assignment_expression "fVar3 = *pfVar2 + DAT_0001ecdc" identifier = (binary_expression "*pfVar2 + DAT_0001ecdc" (pointer_expression "*pfVar2" * identifier) + identifier)) ;) (if_statement "if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }" if (parenthesized_expression "(((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1))" ( (binary_expression "((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)" (parenthesized_expression "((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0))" ( (binary_expression "(fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)" (parenthesized_expression "(fVar3 < pfVar2[1])" ( (binary_expression "fVar3 < pfVar2[1]" identifier < (subscript_expression "pfVar2[1]" identifier [ number_literal ])) )) && (parenthesized_expression "(pfVar2[1] <= 1.0)" ( (binary_expression "pfVar2[1] <= 1.0" (subscript_expression "pfVar2[1]" identifier [ number_literal ]) <= number_literal) ))) )) && (parenthesized_expression "(fVar3 < fVar1)" ( (binary_expression "fVar3 < fVar1" identifier < identifier) ))) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) })) (expression_statement "*param_1 = &DAT_0001ecc8;" (assignment_expression "*param_1 = &DAT_0001ecc8" (pointer_expression "*param_1" * identifier) = (pointer_expression "&DAT_0001ecc8" & identifier)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (binary_expression LIT <= (pointer_expression * IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression & IDENT)) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_0001b0c0(undefined4 *param_1)\n\n{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001b0c0(undefined4 *param_1)" (identifier "FUN_0001b0c0") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  float fVar1;\n  float *pfVar2;\n  float fVar3;\n  \n  pfVar2 = (float *)*param_1;\n  if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }\n  fVar1 = pfVar2[2];\n  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }\n  *param_1 = &DAT_0001ecc8;\n  return 0;\n}" ({ "{") (declaration "float fVar1;" (primitive_type "float") (identifier "fVar1") (; ";")) (declaration "float *pfVar2;" (primitive_type "float") (pointer_declarator "*pfVar2" (* "*") (identifier "pfVar2")) (; ";")) (declaration "float fVar3;" (primitive_type "float") (identifier "fVar3") (; ";")) (expression_statement "pfVar2 = (float *)*param_1;" (assignment_expression "pfVar2 = (float *)*param_1" (identifier "pfVar2") (= "=") (cast_expression "(float *)*param_1" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (pfVar2 == (float *)&DAT_0001ecc8) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(pfVar2 == (float *)&DAT_0001ecc8)" (( "(") (binary_expression "pfVar2 == (float *)&DAT_0001ecc8" (identifier "pfVar2") (== "==") (cast_expression "(float *)&DAT_0001ecc8" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0001ecc8" (& "&") (identifier "DAT_0001ecc8")))) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "fVar1 = pfVar2[2];" (assignment_expression "fVar1 = pfVar2[2]" (identifier "fVar1") (= "=") (subscript_expression "pfVar2[2]" (identifier "pfVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)) {\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2))" (( "(") (binary_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&\n     (0.0 <= *pfVar2)" (parenthesized_expression "(((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3]))" (( "(") (binary_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])" (parenthesized_expression "((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0))" (( "(") (binary_expression "(DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)" (parenthesized_expression "(DAT_0001ecdc < fVar1)" (( "(") (binary_expression "DAT_0001ecdc < fVar1" (identifier "DAT_0001ecdc") (< "<") (identifier "fVar1")) () ")")) (&& "&&") (parenthesized_expression "(fVar1 < DAT_0001ece0)" (( "(") (binary_expression "fVar1 < DAT_0001ece0" (identifier "fVar1") (< "<") (identifier "DAT_0001ece0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_0001ece4 < pfVar2[3])" (( "(") (binary_expression "DAT_0001ece4 < pfVar2[3]" (identifier "DAT_0001ece4") (< "<") (subscript_expression "pfVar2[3]" (identifier "pfVar2") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(0.0 <= *pfVar2)" (( "(") (binary_expression "0.0 <= *pfVar2" (number_literal "0.0") (<= "<=") (pointer_expression "*pfVar2" (* "*") (identifier "pfVar2"))) () ")"))) () ")")) (compound_statement "{\n    fVar3 = *pfVar2 + DAT_0001ecdc;\n    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "fVar3 = *pfVar2 + DAT_0001ecdc;" (assignment_expression "fVar3 = *pfVar2 + DAT_0001ecdc" (identifier "fVar3") (= "=") (binary_expression "*pfVar2 + DAT_0001ecdc" (pointer_expression "*pfVar2" (* "*") (identifier "pfVar2")) (+ "+") (identifier "DAT_0001ecdc"))) (; ";")) (if_statement "if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1))" (( "(") (binary_expression "((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)" (parenthesized_expression "((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0))" (( "(") (binary_expression "(fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)" (parenthesized_expression "(fVar3 < pfVar2[1])" (( "(") (binary_expression "fVar3 < pfVar2[1]" (identifier "fVar3") (< "<") (subscript_expression "pfVar2[1]" (identifier "pfVar2") ([ "[") (number_literal "1") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(pfVar2[1] <= 1.0)" (( "(") (binary_expression "pfVar2[1] <= 1.0" (subscript_expression "pfVar2[1]" (identifier "pfVar2") ([ "[") (number_literal "1") (] "]")) (<= "<=") (number_literal "1.0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(fVar3 < fVar1)" (( "(") (binary_expression "fVar3 < fVar1" (identifier "fVar3") (< "<") (identifier "fVar1")) () ")"))) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}"))) (expression_statement "*param_1 = &DAT_0001ecc8;" (assignment_expression "*param_1 = &DAT_0001ecc8" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (pointer_expression "&DAT_0001ecc8" (& "&") (identifier "DAT_0001ecc8"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

type_1 __regparm3 function_1(type_2 *table)

{
  float var_3;
  type_3 *var_1;
  float var_6;
  
  var_1 = (type_3 *)table->bucket;
  if (var_1 == &default_tuning) {
    return true;
  }
  var_3 = var_1->growth_threshold;
  if ((((var_2 < var_3) && (var_3 < var_4)) && (var_5 < var_1->growth_factor))
     && (0.0 <= var_1->shrink_threshold)) {
    var_6 = var_1->shrink_threshold + var_2;
    if (((var_6 < var_1->shrink_factor) && (var_1->shrink_factor <= 1.0)) && (var_6 < var_3)) {
      return true;
    }
  }
  table->bucket = (type_4 *)&default_tuning;
  return false;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) 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)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (return_statement (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (return_statement (number_literal)))))

/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

undefined4 __regparm3 MASKED(undefined4 *param_1)

{
  float fVar1;
  float *pfVar2;
  float fVar3;
  
  pfVar2 = (float *)*param_1;
  if (pfVar2 == (float *)&DAT_0001ecc8) {
    return 1;
  }
  fVar1 = pfVar2[2];
  if ((((DAT_0001ecdc < fVar1) && (fVar1 < DAT_0001ece0)) && (DAT_0001ece4 < pfVar2[3])) &&
     (0.0 <= *pfVar2)) {
    fVar3 = *pfVar2 + DAT_0001ecdc;
    if (((fVar3 < pfVar2[1]) && (pfVar2[1] <= 1.0)) && (fVar3 < fVar1)) {
      return 1;
    }
  }
  *param_1 = &DAT_0001ecc8;
  return 0;
}

