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

_Bool is_basic(char c)

{
  return (_Bool)((byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1);
}



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

uint FUN_0002ad80(uint param_1)

{
  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;
}


CALL 0x000143d5
ADD EDX,0x1d067
MOV ECX,dword ptr [ESP + 0x4]
MOV EAX,ECX
SHR AL,0x5
MOVZX EAX,AL
MOV EAX,dword ptr [EDX + EAX*0x4 + 0xffff4a34]
SHR EAX,CL
AND EAX,0x1
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nuint FUN_0002ad80(uint param_1)\n\n{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}\n\n" comment (function_definition "uint FUN_0002ad80(uint param_1)\n\n{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}" type_identifier (function_declarator "FUN_0002ad80(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}" { (return_statement "return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;" return (binary_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1" (binary_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f)" (pointer_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" * (cast_expression "(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" ( (binary_expression "&DAT_0003c820 + (param_1 >> 5 & 7) * 4" (pointer_expression "&DAT_0003c820" & identifier) + (binary_expression "(param_1 >> 5 & 7) * 4" (parenthesized_expression "(param_1 >> 5 & 7)" ( (binary_expression "param_1 >> 5 & 7" (binary_expression "param_1 >> 5" identifier >> number_literal) & number_literal) )) * number_literal)) )))) >> (parenthesized_expression "((byte)param_1 & 0x1f)" ( (binary_expression "(byte)param_1 & 0x1f" (cast_expression "(byte)param_1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) & number_literal) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n/* WARNING: Unknown calling convention */\n\n_Bool is_basic(char c)\n\n{\n  return (_Bool)((byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1);\n}\n\n" comment comment (function_definition "_Bool is_basic(char c)\n\n{\n  return (_Bool)((byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1);\n}" type_identifier (function_declarator "is_basic(char c)" identifier (parameter_list "(char c)" ( (parameter_declaration "char c" primitive_type identifier) ))) (compound_statement "{\n  return (_Bool)((byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1);\n}" { (return_statement "return (_Bool)((byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1);" return (call_expression "(_Bool)((byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1)" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "((byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1)" ( (binary_expression "(byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)) & 1" (call_expression "(byte)(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU))" ( (binary_expression "*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4) >> (c & 0x1fU)" (pointer_expression "*(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4)" * (cast_expression "(uint *)(is_basic_table + (uint)((byte)c >> 5) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(is_basic_table + (uint)((byte)c >> 5) * 4)" ( (binary_expression "is_basic_table + (uint)((byte)c >> 5) * 4" identifier + (binary_expression "(uint)((byte)c >> 5) * 4" (call_expression "(uint)((byte)c >> 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((byte)c >> 5)" ( (binary_expression "(byte)c >> 5" (cast_expression "(byte)c" ( (type_descriptor "byte" type_identifier) ) identifier) >> number_literal) ))) * number_literal)) )))) >> (parenthesized_expression "(c & 0x1fU)" ( (binary_expression "c & 0x1fU" identifier & number_literal) ))) ))) & number_literal) ))) ;) })))
(translation_unit "uint FUN_0002ad80(uint param_1)\n\n{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}\n\n" (function_definition "uint FUN_0002ad80(uint param_1)\n\n{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}" type_identifier (function_declarator "FUN_0002ad80(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}" { (return_statement "return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;" return (binary_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1" (binary_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f)" (pointer_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" * (cast_expression "(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" ( (binary_expression "&DAT_0003c820 + (param_1 >> 5 & 7) * 4" (pointer_expression "&DAT_0003c820" & identifier) + (binary_expression "(param_1 >> 5 & 7) * 4" (parenthesized_expression "(param_1 >> 5 & 7)" ( (binary_expression "param_1 >> 5 & 7" (binary_expression "param_1 >> 5" identifier >> number_literal) & number_literal) )) * number_literal)) )))) >> (parenthesized_expression "((byte)param_1 & 0x1f)" ( (binary_expression "(byte)param_1 & 0x1f" (cast_expression "(byte)param_1" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) & number_literal) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (return_statement return (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) * LIT)) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) & LIT) ;) })))
(function_definition "uint FUN_0002ad80(uint param_1)\n\n{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}" (type_identifier "uint") (function_declarator "FUN_0002ad80(uint param_1)" (identifier "FUN_0002ad80") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;\n}" ({ "{") (return_statement "return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;" (return "return") (binary_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1" (binary_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f)" (pointer_expression "*(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" (* "*") (cast_expression "(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_0003c820 + (param_1 >> 5 & 7) * 4)" (( "(") (binary_expression "&DAT_0003c820 + (param_1 >> 5 & 7) * 4" (pointer_expression "&DAT_0003c820" (& "&") (identifier "DAT_0003c820")) (+ "+") (binary_expression "(param_1 >> 5 & 7) * 4" (parenthesized_expression "(param_1 >> 5 & 7)" (( "(") (binary_expression "param_1 >> 5 & 7" (binary_expression "param_1 >> 5" (identifier "param_1") (>> ">>") (number_literal "5")) (& "&") (number_literal "7")) () ")")) (* "*") (number_literal "4"))) () ")")))) (>> ">>") (parenthesized_expression "((byte)param_1 & 0x1f)" (( "(") (binary_expression "(byte)param_1 & 0x1f" (cast_expression "(byte)param_1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_1")) (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) (; ";")) (} "}")))

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

type_1 function_1(char var_2)

{
  return (type_1)((type_3)(*(type_2 *)(var_1 + (type_2)((type_3)var_2 >> 5) * 4) >> (var_2 & 0x1fU)) & 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 (return_statement (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: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal))))))

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

uint MASKED(uint param_1)

{
  return *(uint *)(&DAT_0003c820 + (param_1 >> 5 & 7) * 4) >> ((byte)param_1 & 0x1f) & 1;
}

