
int sqlite3FtsUnicodeIsalnum(int c)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  
  if ((uint)c < 0x80) {
    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>
            (c & 0x1fU) ^ 1) & 1;
  }
  if (0x3fffff < (uint)c) {
    return 1;
  }
  iVar3 = 0;
  iVar2 = 0x195;
  iVar4 = 0;
  do {
    iVar1 = (iVar2 + iVar3) / 2;
    if ((c << 10 | 0x3ffU) <
        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {
      iVar2 = iVar1 + -1;
    }
    else {
      iVar3 = iVar1 + 1;
      iVar4 = iVar1;
    }
  } while (iVar3 <= iVar2);
  return (uint)c < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)
                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +
                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;
}



uint FUN_000502c8(uint param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  
  if (param_1 < 0x80) {
    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +
                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;
  }
  if (0x3fffff < param_1) {
    return 1;
  }
  iVar3 = 0;
  iVar2 = 0x195;
  iVar4 = 0;
  do {
    iVar1 = (iVar2 + iVar3) / 2;
    if ((param_1 << 10 | 0x3ff) <
        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {
      iVar2 = iVar1 + -1;
    }
    else {
      iVar3 = iVar1 + 1;
      iVar4 = iVar1;
    }
  } while (iVar3 <= iVar2);
  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)
                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +
                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;
}


lui gp,0x14
addiu gp,gp,0x7658
addu gp,gp,t9
sltiu v0,a0,0x80
bne v0,zero,0x000502f8
_sra v0,a0,0x5
lui v0,0x40
sltu v0,a0,v0
bne v0,zero,0x0005031c
_li v0,0x1
jr ra
_nop
sll v0,v0,0x2
lw v1,-0x7fc4(gp)
addiu v1,v1,0x4cd8
addu v0,v0,v1
lw v0,0x0(v0)
srlv a0,v0,a0
xori a0,a0,0x1
jr ra
_andi v0,a0,0x1
sll t0,a0,0xa
ori t0,t0,0x3ff
or a2,zero,zero
li a1,0x195
or t1,zero,zero
lw a3,-0x7fc4(gp)
b 0x0005034c
_addiu a3,a3,0x4680
addiu a1,v0,-0x1
slt v0,a1,a2
bne v0,zero,0x00050380
_lw v0,-0x7fc4(gp)
addu v1,a1,a2
srl v0,v1,0x1f
addu v0,v0,v1
sra v0,v0,0x1
sll v1,v0,0x2
addu v1,v1,a3
lw v1,0x0(v1)
sltu v1,t0,v1
bne v1,zero,0x0005033c
_nop
addiu a2,v0,0x1
b 0x00050340
_or t1,v0,zero
sll t1,t1,0x2
addiu v0,v0,0x4680
addu t1,t1,v0
lw v0,0x0(t1)
srl v1,v0,0xa
andi v0,v0,0x3ff
addu v0,v1,v0
sltu a0,a0,v0
jr ra
_xori v0,a0,0x1
(translation_unit "uint FUN_000502c8(uint param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}\n\n" (function_definition "uint FUN_000502c8(uint param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" type_identifier (function_declarator "FUN_000502c8(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (if_statement "if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }" if (parenthesized_expression "(param_1 < 0x80)" ( (binary_expression "param_1 < 0x80" identifier < number_literal) )) (compound_statement "{\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }" { (return_statement "return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;" return (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1" (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f)" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4" identifier + (binary_expression "((int)param_1 >> 5) * 4" (parenthesized_expression "((int)param_1 >> 5)" ( (binary_expression "(int)param_1 >> 5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal)) + number_literal) )))) >> (parenthesized_expression "(param_1 & 0x1f)" ( (binary_expression "param_1 & 0x1f" identifier & number_literal) ))) ^ number_literal) )) & number_literal) ;) })) (if_statement "if (0x3fffff < param_1) {\n    return 1;\n  }" if (parenthesized_expression "(0x3fffff < param_1)" ( (binary_expression "0x3fffff < param_1" number_literal < identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0x195;" (assignment_expression "iVar2 = 0x195" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);" do (compound_statement "{\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  }" { (expression_statement "iVar1 = (iVar2 + iVar3) / 2;" (assignment_expression "iVar1 = (iVar2 + iVar3) / 2" identifier = (binary_expression "(iVar2 + iVar3) / 2" (parenthesized_expression "(iVar2 + iVar3)" ( (binary_expression "iVar2 + iVar3" identifier + identifier) )) / number_literal)) ;) (if_statement "if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" if (parenthesized_expression "((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680))" ( (binary_expression "(param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" (parenthesized_expression "(param_1 << 10 | 0x3ff)" ( (binary_expression "param_1 << 10 | 0x3ff" (binary_expression "param_1 << 10" identifier << number_literal) | number_literal) )) < (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) + number_literal) ))))) )) (compound_statement "{\n      iVar2 = iVar1 + -1;\n    }" { (expression_statement "iVar2 = iVar1 + -1;" (assignment_expression "iVar2 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" else (compound_statement "{\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" { (expression_statement "iVar3 = iVar1 + 1;" (assignment_expression "iVar3 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) }))) }) while (parenthesized_expression "(iVar3 <= iVar2)" ( (binary_expression "iVar3 <= iVar2" identifier <= identifier) )) ;) (return_statement "return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;" return (binary_expression "param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1" (binary_expression "param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" identifier < (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) + number_literal) )))) >> number_literal) )) + (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) + number_literal) )))) & number_literal) )))) ^ number_literal) ;) })))
(translation_unit "int sqlite3FtsUnicodeIsalnum(int c)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if ((uint)c < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1) & 1;\n  }\n  if (0x3fffff < (uint)c) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return (uint)c < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}\n\n" (function_definition "int sqlite3FtsUnicodeIsalnum(int c)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if ((uint)c < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1) & 1;\n  }\n  if (0x3fffff < (uint)c) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return (uint)c < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" primitive_type (function_declarator "sqlite3FtsUnicodeIsalnum(int c)" identifier (parameter_list "(int c)" ( (parameter_declaration "int c" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if ((uint)c < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1) & 1;\n  }\n  if (0x3fffff < (uint)c) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return (uint)c < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (if_statement "if ((uint)c < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1) & 1;\n  }" if (parenthesized_expression "((uint)c < 0x80)" ( (binary_expression "(uint)c < 0x80" (cast_expression "(uint)c" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1) & 1;\n  }" { (return_statement "return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1) & 1;" return (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1) & 1" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU) ^ 1" (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8) >>\n            (c & 0x1fU)" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4 + 0x4cd8" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + (c >> 5) * 4" identifier + (binary_expression "(c >> 5) * 4" (parenthesized_expression "(c >> 5)" ( (binary_expression "c >> 5" identifier >> number_literal) )) * number_literal)) + number_literal) )))) >> (parenthesized_expression "(c & 0x1fU)" ( (binary_expression "c & 0x1fU" identifier & number_literal) ))) ^ number_literal) )) & number_literal) ;) })) (if_statement "if (0x3fffff < (uint)c) {\n    return 1;\n  }" if (parenthesized_expression "(0x3fffff < (uint)c)" ( (binary_expression "0x3fffff < (uint)c" number_literal < (cast_expression "(uint)c" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0x195;" (assignment_expression "iVar2 = 0x195" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);" do (compound_statement "{\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  }" { (expression_statement "iVar1 = (iVar2 + iVar3) / 2;" (assignment_expression "iVar1 = (iVar2 + iVar3) / 2" identifier = (binary_expression "(iVar2 + iVar3) / 2" (parenthesized_expression "(iVar2 + iVar3)" ( (binary_expression "iVar2 + iVar3" identifier + identifier) )) / number_literal)) ;) (if_statement "if ((c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" if (parenthesized_expression "((c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680))" ( (binary_expression "(c << 10 | 0x3ffU) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" (parenthesized_expression "(c << 10 | 0x3ffU)" ( (binary_expression "c << 10 | 0x3ffU" (binary_expression "c << 10" identifier << number_literal) | number_literal) )) < (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) + number_literal) ))))) )) (compound_statement "{\n      iVar2 = iVar1 + -1;\n    }" { (expression_statement "iVar2 = iVar1 + -1;" (assignment_expression "iVar2 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" else (compound_statement "{\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" { (expression_statement "iVar3 = iVar1 + 1;" (assignment_expression "iVar3 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) }))) }) while (parenthesized_expression "(iVar3 <= iVar2)" ( (binary_expression "iVar3 <= iVar2" identifier <= identifier) )) ;) (return_statement "return (uint)c < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;" return (binary_expression "(uint)c < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1" (binary_expression "(uint)c < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" (cast_expression "(uint)c" ( (type_descriptor "uint" type_identifier) ) identifier) < (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) + number_literal) )))) >> number_literal) )) + (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) + number_literal) )))) & number_literal) )))) ^ number_literal) ;) })))
(translation_unit "uint FUN_000502c8(uint param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}\n\n" (function_definition "uint FUN_000502c8(uint param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" type_identifier (function_declarator "FUN_000502c8(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (if_statement "if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }" if (parenthesized_expression "(param_1 < 0x80)" ( (binary_expression "param_1 < 0x80" identifier < number_literal) )) (compound_statement "{\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }" { (return_statement "return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;" return (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1" (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f)" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4" identifier + (binary_expression "((int)param_1 >> 5) * 4" (parenthesized_expression "((int)param_1 >> 5)" ( (binary_expression "(int)param_1 >> 5" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) * number_literal)) + number_literal) )))) >> (parenthesized_expression "(param_1 & 0x1f)" ( (binary_expression "param_1 & 0x1f" identifier & number_literal) ))) ^ number_literal) )) & number_literal) ;) })) (if_statement "if (0x3fffff < param_1) {\n    return 1;\n  }" if (parenthesized_expression "(0x3fffff < param_1)" ( (binary_expression "0x3fffff < param_1" number_literal < identifier) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0x195;" (assignment_expression "iVar2 = 0x195" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);" do (compound_statement "{\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  }" { (expression_statement "iVar1 = (iVar2 + iVar3) / 2;" (assignment_expression "iVar1 = (iVar2 + iVar3) / 2" identifier = (binary_expression "(iVar2 + iVar3) / 2" (parenthesized_expression "(iVar2 + iVar3)" ( (binary_expression "iVar2 + iVar3" identifier + identifier) )) / number_literal)) ;) (if_statement "if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" if (parenthesized_expression "((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680))" ( (binary_expression "(param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" (parenthesized_expression "(param_1 << 10 | 0x3ff)" ( (binary_expression "param_1 << 10 | 0x3ff" (binary_expression "param_1 << 10" identifier << number_literal) | number_literal) )) < (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) + number_literal) ))))) )) (compound_statement "{\n      iVar2 = iVar1 + -1;\n    }" { (expression_statement "iVar2 = iVar1 + -1;" (assignment_expression "iVar2 = iVar1 + -1" identifier = (binary_expression "iVar1 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" else (compound_statement "{\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" { (expression_statement "iVar3 = iVar1 + 1;" (assignment_expression "iVar3 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" identifier = identifier) ;) }))) }) while (parenthesized_expression "(iVar3 <= iVar2)" ( (binary_expression "iVar3 <= iVar2" identifier <= identifier) )) ;) (return_statement "return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;" return (binary_expression "param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1" (binary_expression "param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" identifier < (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) + number_literal) )))) >> number_literal) )) + (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" ( (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" * (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) + number_literal) )))) & number_literal) )))) ^ number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) * LIT)) + LIT) )))) >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ^ LIT) )) & LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) / LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | LIT) )) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (return_statement return (binary_expression (binary_expression IDENT < (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) >> LIT) )) + (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )))) ^ LIT) ;) })))
(function_definition "uint FUN_000502c8(uint param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" (type_identifier "uint") (function_declarator "FUN_000502c8(uint param_1)" (identifier "FUN_000502c8") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  \n  if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }\n  if (0x3fffff < param_1) {\n    return 1;\n  }\n  iVar3 = 0;\n  iVar2 = 0x195;\n  iVar4 = 0;\n  do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);\n  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (if_statement "if (param_1 < 0x80) {\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }" (if "if") (parenthesized_expression "(param_1 < 0x80)" (( "(") (binary_expression "param_1 < 0x80" (identifier "param_1") (< "<") (number_literal "0x80")) () ")")) (compound_statement "{\n    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;\n  }" ({ "{") (return_statement "return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;" (return "return") (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1)" (( "(") (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1" (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f)" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" (* "*") (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4 + 0x4cd8" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                     ((int)param_1 >> 5) * 4" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (binary_expression "((int)param_1 >> 5) * 4" (parenthesized_expression "((int)param_1 >> 5)" (( "(") (binary_expression "(int)param_1 >> 5" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (>> ">>") (number_literal "5")) () ")")) (* "*") (number_literal "4"))) (+ "+") (number_literal "0x4cd8")) () ")")))) (>> ">>") (parenthesized_expression "(param_1 & 0x1f)" (( "(") (binary_expression "param_1 & 0x1f" (identifier "param_1") (& "&") (number_literal "0x1f")) () ")"))) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (0x3fffff < param_1) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(0x3fffff < param_1)" (( "(") (binary_expression "0x3fffff < param_1" (number_literal "0x3fffff") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = 0x195;" (assignment_expression "iVar2 = 0x195" (identifier "iVar2") (= "=") (number_literal "0x195")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  } while (iVar3 <= iVar2);" (do "do") (compound_statement "{\n    iVar1 = (iVar2 + iVar3) / 2;\n    if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }\n  }" ({ "{") (expression_statement "iVar1 = (iVar2 + iVar3) / 2;" (assignment_expression "iVar1 = (iVar2 + iVar3) / 2" (identifier "iVar1") (= "=") (binary_expression "(iVar2 + iVar3) / 2" (parenthesized_expression "(iVar2 + iVar3)" (( "(") (binary_expression "iVar2 + iVar3" (identifier "iVar2") (+ "+") (identifier "iVar3")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (if_statement "if ((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {\n      iVar2 = iVar1 + -1;\n    }\n    else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" (if "if") (parenthesized_expression "((param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680))" (( "(") (binary_expression "(param_1 << 10 | 0x3ff) <\n        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" (parenthesized_expression "(param_1 << 10 | 0x3ff)" (( "(") (binary_expression "param_1 << 10 | 0x3ff" (binary_expression "param_1 << 10" (identifier "param_1") (<< "<<") (number_literal "10")) (| "|") (number_literal "0x3ff")) () ")")) (< "<") (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" (* "*") (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x4680")) () ")"))))) () ")")) (compound_statement "{\n      iVar2 = iVar1 + -1;\n    }" ({ "{") (expression_statement "iVar2 = iVar1 + -1;" (assignment_expression "iVar2 = iVar1 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" (else "else") (compound_statement "{\n      iVar3 = iVar1 + 1;\n      iVar4 = iVar1;\n    }" ({ "{") (expression_statement "iVar3 = iVar1 + 1;" (assignment_expression "iVar3 = iVar1 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = iVar1;" (assignment_expression "iVar4 = iVar1" (identifier "iVar4") (= "=") (identifier "iVar1")) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "(iVar3 <= iVar2)" (( "(") (binary_expression "iVar3 <= iVar2" (identifier "iVar3") (<= "<=") (identifier "iVar2")) () ")")) (; ";")) (return_statement "return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;" (return "return") (binary_expression "param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1" (binary_expression "param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" (identifier "param_1") (< "<") (binary_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10)" (( "(") (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)\n                   >> 10" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" (* "*") (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x4680")) () ")")))) (>> ">>") (number_literal "10")) () ")")) (+ "+") (parenthesized_expression "(*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff)" (( "(") (binary_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680) & 0x3ff" (pointer_expression "*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" (* "*") (cast_expression "(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680)" (( "(") (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4 + 0x4680" (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +\n                                      iVar4 * 4" (identifier "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) (+ "+") (number_literal "0x4680")) () ")")))) (& "&") (number_literal "0x3ff")) () ")")))) (^ "^") (number_literal "1")) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (return_statement (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))))

uint MASKED(uint param_1)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  
  if (param_1 < 0x80) {
    return (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +
                     ((int)param_1 >> 5) * 4 + 0x4cd8) >> (param_1 & 0x1f) ^ 1) & 1;
  }
  if (0x3fffff < param_1) {
    return 1;
  }
  iVar3 = 0;
  iVar2 = 0x195;
  iVar4 = 0;
  do {
    iVar1 = (iVar2 + iVar3) / 2;
    if ((param_1 << 10 | 0x3ff) <
        *(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar1 * 4 + 0x4680)) {
      iVar2 = iVar1 + -1;
    }
    else {
      iVar3 = iVar1 + 1;
      iVar4 = iVar1;
    }
  } while (iVar3 <= iVar2);
  return param_1 < (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + iVar4 * 4 + 0x4680)
                   >> 10) + (*(uint *)(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c +
                                      iVar4 * 4 + 0x4680) & 0x3ff) ^ 1;
}

