
void branch(dfa *dfa)

{
  long lVar1;
  
  closure(dfa);
  lVar1 = (dfa->parse).tok;
  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {
    closure(dfa);
    addtok(dfa,0x105);
    lVar1 = (dfa->parse).tok;
  }
  return;
}



void FUN_00110309(long param_1)

{
  long lVar1;
  
  FUN_0010ff35();
  lVar1 = *(long *)(param_1 + 0x2d0);
  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {
    FUN_0010ff35(param_1);
    FUN_0010c0ca(param_1,0x105);
    lVar1 = *(long *)(param_1 + 0x2d0);
  }
  return;
}


PUSH RBX
MOV RBX,RDI
CALL 0x0010ff35
MOV RAX,qword ptr [RBX + 0x2d0]
LEA RDX,[RAX + -0x106]
TEST RDX,-0x3
JZ 0x0011035f
TEST RAX,RAX
JS 0x0011035f
MOV RDI,RBX
CALL 0x0010ff35
MOV ESI,0x105
MOV RDI,RBX
CALL 0x0010c0ca
MOV RAX,qword ptr [RBX + 0x2d0]
LEA RDX,[RAX + -0x106]
TEST RDX,-0x3
JZ 0x0011035f
TEST RAX,RAX
JNS 0x0011032e
POP RBX
RET
(translation_unit "void FUN_00110309(long param_1)\n\n{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00110309(long param_1)\n\n{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00110309(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (expression_statement "FUN_0010ff35();" (call_expression "FUN_0010ff35()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x2d0);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(long *)(param_1 + 0x2d0)" * (cast_expression "(long *)(param_1 + 0x2d0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (while_statement "while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }" while (parenthesized_expression "(((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)))" ( (parenthesized_expression "((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))" ( (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)" (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0" (parenthesized_expression "(lVar1 - 0x106U & 0xfffffffffffffffd)" ( (binary_expression "lVar1 - 0x106U & 0xfffffffffffffffd" (binary_expression "lVar1 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) && (parenthesized_expression "(-1 < lVar1)" ( (binary_expression "-1 < lVar1" number_literal < identifier) ))) )) )) (compound_statement "{\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }" { (expression_statement "FUN_0010ff35(param_1);" (call_expression "FUN_0010ff35(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_0010c0ca(param_1,0x105);" (call_expression "FUN_0010c0ca(param_1,0x105)" identifier (argument_list "(param_1,0x105)" ( identifier , number_literal ))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x2d0);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(long *)(param_1 + 0x2d0)" * (cast_expression "(long *)(param_1 + 0x2d0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void branch(dfa *dfa)\n\n{\n  long lVar1;\n  \n  closure(dfa);\n  lVar1 = (dfa->parse).tok;\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    closure(dfa);\n    addtok(dfa,0x105);\n    lVar1 = (dfa->parse).tok;\n  }\n  return;\n}\n\n" (function_definition "void branch(dfa *dfa)\n\n{\n  long lVar1;\n  \n  closure(dfa);\n  lVar1 = (dfa->parse).tok;\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    closure(dfa);\n    addtok(dfa,0x105);\n    lVar1 = (dfa->parse).tok;\n  }\n  return;\n}" primitive_type (function_declarator "branch(dfa *dfa)" identifier (parameter_list "(dfa *dfa)" ( (parameter_declaration "dfa *dfa" type_identifier (pointer_declarator "*dfa" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  \n  closure(dfa);\n  lVar1 = (dfa->parse).tok;\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    closure(dfa);\n    addtok(dfa,0x105);\n    lVar1 = (dfa->parse).tok;\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (expression_statement "closure(dfa);" (call_expression "closure(dfa)" identifier (argument_list "(dfa)" ( identifier ))) ;) (expression_statement "lVar1 = (dfa->parse).tok;" (assignment_expression "lVar1 = (dfa->parse).tok" identifier = (field_expression "(dfa->parse).tok" (parenthesized_expression "(dfa->parse)" ( (field_expression "dfa->parse" identifier -> field_identifier) )) . field_identifier)) ;) (while_statement "while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    closure(dfa);\n    addtok(dfa,0x105);\n    lVar1 = (dfa->parse).tok;\n  }" while (parenthesized_expression "(((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)))" ( (parenthesized_expression "((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))" ( (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)" (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0" (parenthesized_expression "(lVar1 - 0x106U & 0xfffffffffffffffd)" ( (binary_expression "lVar1 - 0x106U & 0xfffffffffffffffd" (binary_expression "lVar1 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) && (parenthesized_expression "(-1 < lVar1)" ( (binary_expression "-1 < lVar1" number_literal < identifier) ))) )) )) (compound_statement "{\n    closure(dfa);\n    addtok(dfa,0x105);\n    lVar1 = (dfa->parse).tok;\n  }" { (expression_statement "closure(dfa);" (call_expression "closure(dfa)" identifier (argument_list "(dfa)" ( identifier ))) ;) (expression_statement "addtok(dfa,0x105);" (call_expression "addtok(dfa,0x105)" identifier (argument_list "(dfa,0x105)" ( identifier , number_literal ))) ;) (expression_statement "lVar1 = (dfa->parse).tok;" (assignment_expression "lVar1 = (dfa->parse).tok" identifier = (field_expression "(dfa->parse).tok" (parenthesized_expression "(dfa->parse)" ( (field_expression "dfa->parse" identifier -> field_identifier) )) . field_identifier)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00110309(long param_1)\n\n{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00110309(long param_1)\n\n{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00110309(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (expression_statement "FUN_0010ff35();" (call_expression "FUN_0010ff35()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x2d0);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(long *)(param_1 + 0x2d0)" * (cast_expression "(long *)(param_1 + 0x2d0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) (while_statement "while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }" while (parenthesized_expression "(((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)))" ( (parenthesized_expression "((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))" ( (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)" (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0" (parenthesized_expression "(lVar1 - 0x106U & 0xfffffffffffffffd)" ( (binary_expression "lVar1 - 0x106U & 0xfffffffffffffffd" (binary_expression "lVar1 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) && (parenthesized_expression "(-1 < lVar1)" ( (binary_expression "-1 < lVar1" number_literal < identifier) ))) )) )) (compound_statement "{\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }" { (expression_statement "FUN_0010ff35(param_1);" (call_expression "FUN_0010ff35(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "FUN_0010c0ca(param_1,0x105);" (call_expression "FUN_0010c0ca(param_1,0x105)" identifier (argument_list "(param_1,0x105)" ( identifier , number_literal ))) ;) (expression_statement "lVar1 = *(long *)(param_1 + 0x2d0);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x2d0)" identifier = (pointer_expression "*(long *)(param_1 + 0x2d0)" * (cast_expression "(long *)(param_1 + 0x2d0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2d0)" ( (binary_expression "param_1 + 0x2d0" identifier + number_literal) ))))) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00110309(long param_1)\n\n{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00110309(long param_1)" (identifier "FUN_00110309") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  long lVar1;\n  \n  FUN_0010ff35();\n  lVar1 = *(long *)(param_1 + 0x2d0);\n  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }\n  return;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (expression_statement "FUN_0010ff35();" (call_expression "FUN_0010ff35()" (identifier "FUN_0010ff35") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar1 = *(long *)(param_1 + 0x2d0);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x2d0)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x2d0)" (* "*") (cast_expression "(long *)(param_1 + 0x2d0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (while_statement "while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }" (while "while") (parenthesized_expression "(((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)))" (( "(") (parenthesized_expression "((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))" (( "(") (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1)" (binary_expression "(lVar1 - 0x106U & 0xfffffffffffffffd) != 0" (parenthesized_expression "(lVar1 - 0x106U & 0xfffffffffffffffd)" (( "(") (binary_expression "lVar1 - 0x106U & 0xfffffffffffffffd" (binary_expression "lVar1 - 0x106U" (identifier "lVar1") (- "-") (number_literal "0x106U")) (& "&") (number_literal "0xfffffffffffffffd")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(-1 < lVar1)" (( "(") (binary_expression "-1 < lVar1" (number_literal "-1") (< "<") (identifier "lVar1")) () ")"))) () ")")) () ")")) (compound_statement "{\n    FUN_0010ff35(param_1);\n    FUN_0010c0ca(param_1,0x105);\n    lVar1 = *(long *)(param_1 + 0x2d0);\n  }" ({ "{") (expression_statement "FUN_0010ff35(param_1);" (call_expression "FUN_0010ff35(param_1)" (identifier "FUN_0010ff35") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "FUN_0010c0ca(param_1,0x105);" (call_expression "FUN_0010c0ca(param_1,0x105)" (identifier "FUN_0010c0ca") (argument_list "(param_1,0x105)" (( "(") (identifier "param_1") (, ",") (number_literal "0x105") () ")"))) (; ";")) (expression_statement "lVar1 = *(long *)(param_1 + 0x2d0);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x2d0)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x2d0)" (* "*") (cast_expression "(long *)(param_1 + 0x2d0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2d0)" (( "(") (binary_expression "param_1 + 0x2d0" (identifier "param_1") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *type_1)

{
  long var_2;
  
  var_1(type_1);
  var_2 = (type_1->parse).tok;
  while (((var_2 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < var_2))) {
    var_1(type_1);
    var_3(type_1,0x105);
    var_2 = (type_1->parse).tok;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (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: (number_literal) right: (identifier)))))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (return_statement))))

void MASKED(long param_1)

{
  long lVar1;
  
  FUN_0010ff35();
  lVar1 = *(long *)(param_1 + 0x2d0);
  while (((lVar1 - 0x106U & 0xfffffffffffffffd) != 0 && (-1 < lVar1))) {
    FUN_0010ff35(param_1);
    FUN_0010c0ca(param_1,0x105);
    lVar1 = *(long *)(param_1 + 0x2d0);
  }
  return;
}

