
char * next_compl(int action,char *prev)

{
  char *pcVar1;
  
  if (action == 0x11) {
    pcVar1 = forw_textlist(&tk_tlist,prev);
  }
  else {
    pcVar1 = "?";
    if (action == 0x12) {
      pcVar1 = back_textlist(&tk_tlist,prev);
    }
  }
  return pcVar1;
}



undefined * FUN_001088c0(int param_1)

{
  undefined *puVar1;
  
  if (param_1 == 0x11) {
    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);
  }
  else {
    puVar1 = &DAT_0011a896;
    if (param_1 == 0x12) {
      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);
    }
  }
  return puVar1;
}


SUB RSP,0x8
CMP EDI,0x11
JZ 0x001088e8
LEA RAX,[0x11a896]
CMP EDI,0x12
JNZ 0x001088f9
LEA RDI,[0x129a60]
MOV EAX,0x0
CALL 0x0010cfdf
JMP 0x001088f9
LEA RDI,[0x129a60]
MOV EAX,0x0
CALL 0x0010cf8f
ADD RSP,0x8
RET
(translation_unit "undefined * FUN_001088c0(int param_1)\n\n{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}\n\n" (function_definition "undefined * FUN_001088c0(int param_1)\n\n{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}" type_identifier (pointer_declarator "* FUN_001088c0(int param_1)" * (function_declarator "FUN_001088c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (if_statement "if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" if (parenthesized_expression "(param_1 == 0x11)" ( (binary_expression "param_1 == 0x11" identifier == number_literal) )) (compound_statement "{\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }" { (expression_statement "puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);" (assignment_expression "puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60)" identifier = (cast_expression "(undefined *)FUN_0010cf8f(&DAT_00129a60)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010cf8f(&DAT_00129a60)" identifier (argument_list "(&DAT_00129a60)" ( (pointer_expression "&DAT_00129a60" & identifier) ))))) ;) }) (else_clause "else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" else (compound_statement "{\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" { (expression_statement "puVar1 = &DAT_0011a896;" (assignment_expression "puVar1 = &DAT_0011a896" identifier = (pointer_expression "&DAT_0011a896" & identifier)) ;) (if_statement "if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }" if (parenthesized_expression "(param_1 == 0x12)" ( (binary_expression "param_1 == 0x12" identifier == number_literal) )) (compound_statement "{\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }" { (expression_statement "puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);" (assignment_expression "puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60)" identifier = (cast_expression "(undefined *)FUN_0010cfdf(&DAT_00129a60)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010cfdf(&DAT_00129a60)" identifier (argument_list "(&DAT_00129a60)" ( (pointer_expression "&DAT_00129a60" & identifier) ))))) ;) })) }))) (return_statement "return puVar1;" return identifier ;) })))
(translation_unit "char * next_compl(int action,char *prev)\n\n{\n  char *pcVar1;\n  \n  if (action == 0x11) {\n    pcVar1 = forw_textlist(&tk_tlist,prev);\n  }\n  else {\n    pcVar1 = "?";\n    if (action == 0x12) {\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }\n  }\n  return pcVar1;\n}\n\n" (function_definition "char * next_compl(int action,char *prev)\n\n{\n  char *pcVar1;\n  \n  if (action == 0x11) {\n    pcVar1 = forw_textlist(&tk_tlist,prev);\n  }\n  else {\n    pcVar1 = "?";\n    if (action == 0x12) {\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }\n  }\n  return pcVar1;\n}" primitive_type (pointer_declarator "* next_compl(int action,char *prev)" * (function_declarator "next_compl(int action,char *prev)" identifier (parameter_list "(int action,char *prev)" ( (parameter_declaration "int action" primitive_type identifier) , (parameter_declaration "char *prev" primitive_type (pointer_declarator "*prev" * identifier)) )))) (compound_statement "{\n  char *pcVar1;\n  \n  if (action == 0x11) {\n    pcVar1 = forw_textlist(&tk_tlist,prev);\n  }\n  else {\n    pcVar1 = "?";\n    if (action == 0x12) {\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }\n  }\n  return pcVar1;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (if_statement "if (action == 0x11) {\n    pcVar1 = forw_textlist(&tk_tlist,prev);\n  }\n  else {\n    pcVar1 = "?";\n    if (action == 0x12) {\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }\n  }" if (parenthesized_expression "(action == 0x11)" ( (binary_expression "action == 0x11" identifier == number_literal) )) (compound_statement "{\n    pcVar1 = forw_textlist(&tk_tlist,prev);\n  }" { (expression_statement "pcVar1 = forw_textlist(&tk_tlist,prev);" (assignment_expression "pcVar1 = forw_textlist(&tk_tlist,prev)" identifier = (call_expression "forw_textlist(&tk_tlist,prev)" identifier (argument_list "(&tk_tlist,prev)" ( (pointer_expression "&tk_tlist" & identifier) , identifier )))) ;) }) (else_clause "else {\n    pcVar1 = "?";\n    if (action == 0x12) {\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }\n  }" else (compound_statement "{\n    pcVar1 = "?";\n    if (action == 0x12) {\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }\n  }" { (expression_statement "pcVar1 = "?";" (assignment_expression "pcVar1 = "?"" identifier = (string_literal ""?"" " string_content ")) ;) (if_statement "if (action == 0x12) {\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }" if (parenthesized_expression "(action == 0x12)" ( (binary_expression "action == 0x12" identifier == number_literal) )) (compound_statement "{\n      pcVar1 = back_textlist(&tk_tlist,prev);\n    }" { (expression_statement "pcVar1 = back_textlist(&tk_tlist,prev);" (assignment_expression "pcVar1 = back_textlist(&tk_tlist,prev)" identifier = (call_expression "back_textlist(&tk_tlist,prev)" identifier (argument_list "(&tk_tlist,prev)" ( (pointer_expression "&tk_tlist" & identifier) , identifier )))) ;) })) }))) (return_statement "return pcVar1;" return identifier ;) })))
(translation_unit "undefined * FUN_001088c0(int param_1)\n\n{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}\n\n" (function_definition "undefined * FUN_001088c0(int param_1)\n\n{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}" type_identifier (pointer_declarator "* FUN_001088c0(int param_1)" * (function_declarator "FUN_001088c0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) )))) (compound_statement "{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (if_statement "if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" if (parenthesized_expression "(param_1 == 0x11)" ( (binary_expression "param_1 == 0x11" identifier == number_literal) )) (compound_statement "{\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }" { (expression_statement "puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);" (assignment_expression "puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60)" identifier = (cast_expression "(undefined *)FUN_0010cf8f(&DAT_00129a60)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010cf8f(&DAT_00129a60)" identifier (argument_list "(&DAT_00129a60)" ( (pointer_expression "&DAT_00129a60" & identifier) ))))) ;) }) (else_clause "else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" else (compound_statement "{\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" { (expression_statement "puVar1 = &DAT_0011a896;" (assignment_expression "puVar1 = &DAT_0011a896" identifier = (pointer_expression "&DAT_0011a896" & identifier)) ;) (if_statement "if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }" if (parenthesized_expression "(param_1 == 0x12)" ( (binary_expression "param_1 == 0x12" identifier == number_literal) )) (compound_statement "{\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }" { (expression_statement "puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);" (assignment_expression "puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60)" identifier = (cast_expression "(undefined *)FUN_0010cfdf(&DAT_00129a60)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010cfdf(&DAT_00129a60)" identifier (argument_list "(&DAT_00129a60)" ( (pointer_expression "&DAT_00129a60" & identifier) ))))) ;) })) }))) (return_statement "return puVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))))) ;) })) }))) (return_statement return IDENT ;) })))
(function_definition "undefined * FUN_001088c0(int param_1)\n\n{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}" (type_identifier "undefined") (pointer_declarator "* FUN_001088c0(int param_1)" (* "*") (function_declarator "FUN_001088c0(int param_1)" (identifier "FUN_001088c0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")")))) (compound_statement "{\n  undefined *puVar1;\n  \n  if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }\n  return puVar1;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (if_statement "if (param_1 == 0x11) {\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }\n  else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 0x11)" (( "(") (binary_expression "param_1 == 0x11" (identifier "param_1") (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);\n  }" ({ "{") (expression_statement "puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);" (assignment_expression "puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60)" (identifier "puVar1") (= "=") (cast_expression "(undefined *)FUN_0010cf8f(&DAT_00129a60)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010cf8f(&DAT_00129a60)" (identifier "FUN_0010cf8f") (argument_list "(&DAT_00129a60)" (( "(") (pointer_expression "&DAT_00129a60" (& "&") (identifier "DAT_00129a60")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" (else "else") (compound_statement "{\n    puVar1 = &DAT_0011a896;\n    if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }\n  }" ({ "{") (expression_statement "puVar1 = &DAT_0011a896;" (assignment_expression "puVar1 = &DAT_0011a896" (identifier "puVar1") (= "=") (pointer_expression "&DAT_0011a896" (& "&") (identifier "DAT_0011a896"))) (; ";")) (if_statement "if (param_1 == 0x12) {\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }" (if "if") (parenthesized_expression "(param_1 == 0x12)" (( "(") (binary_expression "param_1 == 0x12" (identifier "param_1") (== "==") (number_literal "0x12")) () ")")) (compound_statement "{\n      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);\n    }" ({ "{") (expression_statement "puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);" (assignment_expression "puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60)" (identifier "puVar1") (= "=") (cast_expression "(undefined *)FUN_0010cfdf(&DAT_00129a60)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010cfdf(&DAT_00129a60)" (identifier "FUN_0010cfdf") (argument_list "(&DAT_00129a60)" (( "(") (pointer_expression "&DAT_00129a60" (& "&") (identifier "DAT_00129a60")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (return_statement "return puVar1;" (return "return") (identifier "puVar1") (; ";")) (} "}")))

char * function_1(int var_1,char *prev)

{
  char *pcVar1;
  
  if (var_1 == 0x11) {
    pcVar1 = var_2(&tk_tlist,prev);
  }
  else {
    pcVar1 = "?";
    if (var_1 == 0x12) {
      pcVar1 = var_3(&tk_tlist,prev);
    }
  }
  return pcVar1;
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))))))))) (return_statement (identifier)))))

undefined * MASKED(int param_1)

{
  undefined *puVar1;
  
  if (param_1 == 0x11) {
    puVar1 = (undefined *)FUN_0010cf8f(&DAT_00129a60);
  }
  else {
    puVar1 = &DAT_0011a896;
    if (param_1 == 0x12) {
      puVar1 = (undefined *)FUN_0010cfdf(&DAT_00129a60);
    }
  }
  return puVar1;
}

