
void lex_push_file(FILE *file,char *name,uint sysrooted)

{
  YY_BUFFER_STATE pyVar1;
  char *fmt;
  
  if (9 < include_stack_ptr) {
    fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5);
    einfo(fmt);
  }
  file_name_stack[include_stack_ptr] = name;
  lineno_stack[include_stack_ptr] = lineno;
  sysrooted_stack[include_stack_ptr] = (byte)input_flags._0_1_ >> 3 & 1;
  pyVar1 = (YY_BUFFER_STATE)yy_buffer_stack;
  if (yy_buffer_stack != (YY_BUFFER_STATE *)0x0) {
    pyVar1 = yy_buffer_stack[yy_buffer_stack_top];
  }
  include_stack[include_stack_ptr] = pyVar1;
  lineno = 1;
  input_flags._0_1_ = input_flags._0_1_ & 0xf7 | (byte)((sysrooted & 1) << 3);
  yyin = file;
  include_stack_ptr = include_stack_ptr + 1;
  pyVar1 = yy_create_buffer(file,0x4000);
  yy_switch_to_buffer(pyVar1);
  return;
}



void FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)

{
  undefined8 uVar1;
  ulong uVar2;
  long lVar3;
  
  if (9 < DAT_002a56d4) {
    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);
    FUN_001283c0(uVar1);
  }
  uVar2 = (ulong)DAT_002a56d4;
  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;
  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;
  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;
  lVar3 = DAT_002a5838;
  if (DAT_002a5838 != 0) {
    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);
  }
  DAT_002a56d4 = DAT_002a56d4 + 1;
  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;
  DAT_002a66ec = 1;
  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);
  DAT_002a5678 = param_1;
  uVar1 = FUN_001105f0(param_1,0x4000);
  FUN_001103e0(uVar1);
  return;
}


MOV EAX,dword ptr [0x002a56d4]
PUSH R12
MOV R12,RSI
PUSH RBP
MOV RBP,RDI
PUSH RBX
MOV EBX,EDX
CMP EAX,0x9
JA 0x00112660
MOV ECX,EAX
LEA RDX,[0x2a5760]
MOV ESI,dword ptr [0x002a66ec]
MOV qword ptr [RDX + RCX*0x8],R12
LEA RDX,[0x2a5720]
MOV dword ptr [RDX + RCX*0x4],ESI
MOVZX EDX,byte ptr [0x002a6740]
LEA RSI,[0x2a56e0]
SHR DL,0x3
AND EDX,0x1
MOV dword ptr [RSI + RCX*0x4],EDX
MOV RDX,qword ptr [0x002a5838]
TEST RDX,RDX
JZ 0x00112606
MOV RSI,qword ptr [0x002a5848]
MOV RDX,qword ptr [RDX + RSI*0x8]
LEA RSI,[0x2a57c0]
AND EBX,0x1
MOV RDI,RBP
ADD EAX,0x1
MOV qword ptr [RSI + RCX*0x8],RDX
MOVZX EDX,byte ptr [0x002a6740]
SHL EBX,0x3
MOV ESI,0x4000
MOV qword ptr [0x002a5678],RBP
AND EDX,0xfffffff7
MOV dword ptr [0x002a56d4],EAX
MOV dword ptr [0x002a66ec],0x1
OR EDX,EBX
MOV byte ptr [0x002a6740],DL
CALL 0x001105f0
POP RBX
POP RBP
MOV RDI,RAX
POP R12
JMP 0x001103e0
MOV EDX,0x5
LEA RSI,[0x157218]
XOR EDI,EDI
CALL 0x0010c350
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001283c0
MOV EAX,dword ptr [0x002a56d4]
JMP 0x001125bb
(translation_unit "void FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}\n\n" (function_definition "void FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}" primitive_type (function_declarator "FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,uint param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }" if (parenthesized_expression "(9 < DAT_002a56d4)" ( (binary_expression "9 < DAT_002a56d4" number_literal < identifier) )) (compound_statement "{\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }" { (expression_statement "uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);" (assignment_expression "uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5)" identifier = (call_expression "dcgettext(0,"%F:includes nested too deeply\n",5)" identifier (argument_list "(0,"%F:includes nested too deeply\n",5)" ( number_literal , (string_literal ""%F:includes nested too deeply\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001283c0(uVar1);" (call_expression "FUN_001283c0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (expression_statement "uVar2 = (ulong)DAT_002a56d4;" (assignment_expression "uVar2 = (ulong)DAT_002a56d4" identifier = (cast_expression "(ulong)DAT_002a56d4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;" (assignment_expression "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2" (pointer_expression "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8)" * (cast_expression "(undefined8 *)(&DAT_002a5760 + uVar2 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a5760 + uVar2 * 8)" ( (binary_expression "&DAT_002a5760 + uVar2 * 8" (pointer_expression "&DAT_002a5760" & identifier) + (binary_expression "uVar2 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;" (assignment_expression "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec" (pointer_expression "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4)" * (cast_expression "(undefined4 *)(&DAT_002a5720 + uVar2 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a5720 + uVar2 * 4)" ( (binary_expression "&DAT_002a5720 + uVar2 * 4" (pointer_expression "&DAT_002a5720" & identifier) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;" (assignment_expression "*(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1" (pointer_expression "*(uint *)(&DAT_002a56e0 + uVar2 * 4)" * (cast_expression "(uint *)(&DAT_002a56e0 + uVar2 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a56e0 + uVar2 * 4)" ( (binary_expression "&DAT_002a56e0 + uVar2 * 4" (pointer_expression "&DAT_002a56e0" & identifier) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) = (binary_expression "DAT_002a6740 >> 3 & 1" (binary_expression "DAT_002a6740 >> 3" identifier >> number_literal) & number_literal)) ;) (expression_statement "lVar3 = DAT_002a5838;" (assignment_expression "lVar3 = DAT_002a5838" identifier = identifier) ;) (if_statement "if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }" if (parenthesized_expression "(DAT_002a5838 != 0)" ( (binary_expression "DAT_002a5838 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }" { (expression_statement "lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);" (assignment_expression "lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8)" identifier = (pointer_expression "*(long *)(DAT_002a5838 + DAT_002a5848 * 8)" * (cast_expression "(long *)(DAT_002a5838 + DAT_002a5848 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002a5838 + DAT_002a5848 * 8)" ( (binary_expression "DAT_002a5838 + DAT_002a5848 * 8" identifier + (binary_expression "DAT_002a5848 * 8" identifier * number_literal)) ))))) ;) })) (expression_statement "DAT_002a56d4 = DAT_002a56d4 + 1;" (assignment_expression "DAT_002a56d4 = DAT_002a56d4 + 1" identifier = (binary_expression "DAT_002a56d4 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;" (assignment_expression "*(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3" (pointer_expression "*(long *)(&DAT_002a57c0 + uVar2 * 8)" * (cast_expression "(long *)(&DAT_002a57c0 + uVar2 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a57c0 + uVar2 * 8)" ( (binary_expression "&DAT_002a57c0 + uVar2 * 8" (pointer_expression "&DAT_002a57c0" & identifier) + (binary_expression "uVar2 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "DAT_002a66ec = 1;" (assignment_expression "DAT_002a66ec = 1" identifier = number_literal) ;) (expression_statement "DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);" (assignment_expression "DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3)" identifier = (binary_expression "DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3)" (binary_expression "DAT_002a6740 & 0xf7" identifier & number_literal) | (call_expression "(byte)((param_3 & 1) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((param_3 & 1) << 3)" ( (binary_expression "(param_3 & 1) << 3" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "DAT_002a5678 = param_1;" (assignment_expression "DAT_002a5678 = param_1" identifier = identifier) ;) (expression_statement "uVar1 = FUN_001105f0(param_1,0x4000);" (assignment_expression "uVar1 = FUN_001105f0(param_1,0x4000)" identifier = (call_expression "FUN_001105f0(param_1,0x4000)" identifier (argument_list "(param_1,0x4000)" ( identifier , number_literal )))) ;) (expression_statement "FUN_001103e0(uVar1);" (call_expression "FUN_001103e0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void lex_push_file(FILE *file,char *name,uint sysrooted)\n\n{\n  YY_BUFFER_STATE pyVar1;\n  char *fmt;\n  \n  if (9 < include_stack_ptr) {\n    fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5);\n    einfo(fmt);\n  }\n  file_name_stack[include_stack_ptr] = name;\n  lineno_stack[include_stack_ptr] = lineno;\n  sysrooted_stack[include_stack_ptr] = (byte)input_flags._0_1_ >> 3 & 1;\n  pyVar1 = (YY_BUFFER_STATE)yy_buffer_stack;\n  if (yy_buffer_stack != (YY_BUFFER_STATE *)0x0) {\n    pyVar1 = yy_buffer_stack[yy_buffer_stack_top];\n  }\n  include_stack[include_stack_ptr] = pyVar1;\n  lineno = 1;\n  input_flags._0_1_ = input_flags._0_1_ & 0xf7 | (byte)((sysrooted & 1) << 3);\n  yyin = file;\n  include_stack_ptr = include_stack_ptr + 1;\n  pyVar1 = yy_create_buffer(file,0x4000);\n  yy_switch_to_buffer(pyVar1);\n  return;\n}\n\n" (function_definition "void lex_push_file(FILE *file,char *name,uint sysrooted)\n\n{\n  YY_BUFFER_STATE pyVar1;\n  char *fmt;\n  \n  if (9 < include_stack_ptr) {\n    fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5);\n    einfo(fmt);\n  }\n  file_name_stack[include_stack_ptr] = name;\n  lineno_stack[include_stack_ptr] = lineno;\n  sysrooted_stack[include_stack_ptr] = (byte)input_flags._0_1_ >> 3 & 1;\n  pyVar1 = (YY_BUFFER_STATE)yy_buffer_stack;\n  if (yy_buffer_stack != (YY_BUFFER_STATE *)0x0) {\n    pyVar1 = yy_buffer_stack[yy_buffer_stack_top];\n  }\n  include_stack[include_stack_ptr] = pyVar1;\n  lineno = 1;\n  input_flags._0_1_ = input_flags._0_1_ & 0xf7 | (byte)((sysrooted & 1) << 3);\n  yyin = file;\n  include_stack_ptr = include_stack_ptr + 1;\n  pyVar1 = yy_create_buffer(file,0x4000);\n  yy_switch_to_buffer(pyVar1);\n  return;\n}" primitive_type (function_declarator "lex_push_file(FILE *file,char *name,uint sysrooted)" identifier (parameter_list "(FILE *file,char *name,uint sysrooted)" ( (parameter_declaration "FILE *file" type_identifier (pointer_declarator "*file" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "uint sysrooted" type_identifier identifier) ))) (compound_statement "{\n  YY_BUFFER_STATE pyVar1;\n  char *fmt;\n  \n  if (9 < include_stack_ptr) {\n    fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5);\n    einfo(fmt);\n  }\n  file_name_stack[include_stack_ptr] = name;\n  lineno_stack[include_stack_ptr] = lineno;\n  sysrooted_stack[include_stack_ptr] = (byte)input_flags._0_1_ >> 3 & 1;\n  pyVar1 = (YY_BUFFER_STATE)yy_buffer_stack;\n  if (yy_buffer_stack != (YY_BUFFER_STATE *)0x0) {\n    pyVar1 = yy_buffer_stack[yy_buffer_stack_top];\n  }\n  include_stack[include_stack_ptr] = pyVar1;\n  lineno = 1;\n  input_flags._0_1_ = input_flags._0_1_ & 0xf7 | (byte)((sysrooted & 1) << 3);\n  yyin = file;\n  include_stack_ptr = include_stack_ptr + 1;\n  pyVar1 = yy_create_buffer(file,0x4000);\n  yy_switch_to_buffer(pyVar1);\n  return;\n}" { (declaration "YY_BUFFER_STATE pyVar1;" type_identifier identifier ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (if_statement "if (9 < include_stack_ptr) {\n    fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5);\n    einfo(fmt);\n  }" if (parenthesized_expression "(9 < include_stack_ptr)" ( (binary_expression "9 < include_stack_ptr" number_literal < identifier) )) (compound_statement "{\n    fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5);\n    einfo(fmt);\n  }" { (expression_statement "fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5);" (assignment_expression "fmt = (char *)dcgettext(0,"%F:includes nested too deeply\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F:includes nested too deeply\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F:includes nested too deeply\n",5)" identifier (argument_list "(0,"%F:includes nested too deeply\n",5)" ( number_literal , (string_literal ""%F:includes nested too deeply\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(fmt);" (call_expression "einfo(fmt)" identifier (argument_list "(fmt)" ( identifier ))) ;) })) (expression_statement "file_name_stack[include_stack_ptr] = name;" (assignment_expression "file_name_stack[include_stack_ptr] = name" (subscript_expression "file_name_stack[include_stack_ptr]" identifier [ identifier ]) = identifier) ;) (expression_statement "lineno_stack[include_stack_ptr] = lineno;" (assignment_expression "lineno_stack[include_stack_ptr] = lineno" (subscript_expression "lineno_stack[include_stack_ptr]" identifier [ identifier ]) = identifier) ;) (expression_statement "sysrooted_stack[include_stack_ptr] = (byte)input_flags._0_1_ >> 3 & 1;" (assignment_expression "sysrooted_stack[include_stack_ptr] = (byte)input_flags._0_1_ >> 3 & 1" (subscript_expression "sysrooted_stack[include_stack_ptr]" identifier [ identifier ]) = (binary_expression "(byte)input_flags._0_1_ >> 3 & 1" (binary_expression "(byte)input_flags._0_1_ >> 3" (cast_expression "(byte)input_flags._0_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "input_flags._0_1_" identifier . field_identifier)) >> number_literal) & number_literal)) ;) (expression_statement "pyVar1 = (YY_BUFFER_STATE)yy_buffer_stack;" (assignment_expression "pyVar1 = (YY_BUFFER_STATE)yy_buffer_stack" identifier = (cast_expression "(YY_BUFFER_STATE)yy_buffer_stack" ( (type_descriptor "YY_BUFFER_STATE" type_identifier) ) identifier)) ;) (if_statement "if (yy_buffer_stack != (YY_BUFFER_STATE *)0x0) {\n    pyVar1 = yy_buffer_stack[yy_buffer_stack_top];\n  }" if (parenthesized_expression "(yy_buffer_stack != (YY_BUFFER_STATE *)0x0)" ( (binary_expression "yy_buffer_stack != (YY_BUFFER_STATE *)0x0" identifier != (cast_expression "(YY_BUFFER_STATE *)0x0" ( (type_descriptor "YY_BUFFER_STATE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pyVar1 = yy_buffer_stack[yy_buffer_stack_top];\n  }" { (expression_statement "pyVar1 = yy_buffer_stack[yy_buffer_stack_top];" (assignment_expression "pyVar1 = yy_buffer_stack[yy_buffer_stack_top]" identifier = (subscript_expression "yy_buffer_stack[yy_buffer_stack_top]" identifier [ identifier ])) ;) })) (expression_statement "include_stack[include_stack_ptr] = pyVar1;" (assignment_expression "include_stack[include_stack_ptr] = pyVar1" (subscript_expression "include_stack[include_stack_ptr]" identifier [ identifier ]) = identifier) ;) (expression_statement "lineno = 1;" (assignment_expression "lineno = 1" identifier = number_literal) ;) (expression_statement "input_flags._0_1_ = input_flags._0_1_ & 0xf7 | (byte)((sysrooted & 1) << 3);" (assignment_expression "input_flags._0_1_ = input_flags._0_1_ & 0xf7 | (byte)((sysrooted & 1) << 3)" (field_expression "input_flags._0_1_" identifier . field_identifier) = (binary_expression "input_flags._0_1_ & 0xf7 | (byte)((sysrooted & 1) << 3)" (binary_expression "input_flags._0_1_ & 0xf7" (field_expression "input_flags._0_1_" identifier . field_identifier) & number_literal) | (call_expression "(byte)((sysrooted & 1) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((sysrooted & 1) << 3)" ( (binary_expression "(sysrooted & 1) << 3" (parenthesized_expression "(sysrooted & 1)" ( (binary_expression "sysrooted & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "yyin = file;" (assignment_expression "yyin = file" identifier = identifier) ;) (expression_statement "include_stack_ptr = include_stack_ptr + 1;" (assignment_expression "include_stack_ptr = include_stack_ptr + 1" identifier = (binary_expression "include_stack_ptr + 1" identifier + number_literal)) ;) (expression_statement "pyVar1 = yy_create_buffer(file,0x4000);" (assignment_expression "pyVar1 = yy_create_buffer(file,0x4000)" identifier = (call_expression "yy_create_buffer(file,0x4000)" identifier (argument_list "(file,0x4000)" ( identifier , number_literal )))) ;) (expression_statement "yy_switch_to_buffer(pyVar1);" (call_expression "yy_switch_to_buffer(pyVar1)" identifier (argument_list "(pyVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}\n\n" (function_definition "void FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}" primitive_type (function_declarator "FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,uint param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}" { (declaration "undefined8 uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }" if (parenthesized_expression "(9 < DAT_002a56d4)" ( (binary_expression "9 < DAT_002a56d4" number_literal < identifier) )) (compound_statement "{\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }" { (expression_statement "uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);" (assignment_expression "uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5)" identifier = (call_expression "dcgettext(0,"%F:includes nested too deeply\n",5)" identifier (argument_list "(0,"%F:includes nested too deeply\n",5)" ( number_literal , (string_literal ""%F:includes nested too deeply\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001283c0(uVar1);" (call_expression "FUN_001283c0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (expression_statement "uVar2 = (ulong)DAT_002a56d4;" (assignment_expression "uVar2 = (ulong)DAT_002a56d4" identifier = (cast_expression "(ulong)DAT_002a56d4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;" (assignment_expression "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2" (pointer_expression "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8)" * (cast_expression "(undefined8 *)(&DAT_002a5760 + uVar2 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a5760 + uVar2 * 8)" ( (binary_expression "&DAT_002a5760 + uVar2 * 8" (pointer_expression "&DAT_002a5760" & identifier) + (binary_expression "uVar2 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;" (assignment_expression "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec" (pointer_expression "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4)" * (cast_expression "(undefined4 *)(&DAT_002a5720 + uVar2 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a5720 + uVar2 * 4)" ( (binary_expression "&DAT_002a5720 + uVar2 * 4" (pointer_expression "&DAT_002a5720" & identifier) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) = identifier) ;) (expression_statement "*(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;" (assignment_expression "*(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1" (pointer_expression "*(uint *)(&DAT_002a56e0 + uVar2 * 4)" * (cast_expression "(uint *)(&DAT_002a56e0 + uVar2 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a56e0 + uVar2 * 4)" ( (binary_expression "&DAT_002a56e0 + uVar2 * 4" (pointer_expression "&DAT_002a56e0" & identifier) + (binary_expression "uVar2 * 4" identifier * number_literal)) )))) = (binary_expression "DAT_002a6740 >> 3 & 1" (binary_expression "DAT_002a6740 >> 3" identifier >> number_literal) & number_literal)) ;) (expression_statement "lVar3 = DAT_002a5838;" (assignment_expression "lVar3 = DAT_002a5838" identifier = identifier) ;) (if_statement "if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }" if (parenthesized_expression "(DAT_002a5838 != 0)" ( (binary_expression "DAT_002a5838 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }" { (expression_statement "lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);" (assignment_expression "lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8)" identifier = (pointer_expression "*(long *)(DAT_002a5838 + DAT_002a5848 * 8)" * (cast_expression "(long *)(DAT_002a5838 + DAT_002a5848 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002a5838 + DAT_002a5848 * 8)" ( (binary_expression "DAT_002a5838 + DAT_002a5848 * 8" identifier + (binary_expression "DAT_002a5848 * 8" identifier * number_literal)) ))))) ;) })) (expression_statement "DAT_002a56d4 = DAT_002a56d4 + 1;" (assignment_expression "DAT_002a56d4 = DAT_002a56d4 + 1" identifier = (binary_expression "DAT_002a56d4 + 1" identifier + number_literal)) ;) (expression_statement "*(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;" (assignment_expression "*(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3" (pointer_expression "*(long *)(&DAT_002a57c0 + uVar2 * 8)" * (cast_expression "(long *)(&DAT_002a57c0 + uVar2 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_002a57c0 + uVar2 * 8)" ( (binary_expression "&DAT_002a57c0 + uVar2 * 8" (pointer_expression "&DAT_002a57c0" & identifier) + (binary_expression "uVar2 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "DAT_002a66ec = 1;" (assignment_expression "DAT_002a66ec = 1" identifier = number_literal) ;) (expression_statement "DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);" (assignment_expression "DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3)" identifier = (binary_expression "DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3)" (binary_expression "DAT_002a6740 & 0xf7" identifier & number_literal) | (call_expression "(byte)((param_3 & 1) << 3)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((param_3 & 1) << 3)" ( (binary_expression "(param_3 & 1) << 3" (parenthesized_expression "(param_3 & 1)" ( (binary_expression "param_3 & 1" identifier & number_literal) )) << number_literal) ))))) ;) (expression_statement "DAT_002a5678 = param_1;" (assignment_expression "DAT_002a5678 = param_1" identifier = identifier) ;) (expression_statement "uVar1 = FUN_001105f0(param_1,0x4000);" (assignment_expression "uVar1 = FUN_001105f0(param_1,0x4000)" identifier = (call_expression "FUN_001105f0(param_1,0x4000)" identifier (argument_list "(param_1,0x4000)" ( identifier , number_literal )))) ;) (expression_statement "FUN_001103e0(uVar1);" (call_expression "FUN_001103e0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)\n\n{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001125a0(undefined8 param_1,undefined8 param_2,uint param_3)" (identifier "FUN_001125a0") (parameter_list "(undefined8 param_1,undefined8 param_2,uint param_3)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined8 uVar1;\n  ulong uVar2;\n  long lVar3;\n  \n  if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }\n  uVar2 = (ulong)DAT_002a56d4;\n  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;\n  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;\n  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;\n  lVar3 = DAT_002a5838;\n  if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }\n  DAT_002a56d4 = DAT_002a56d4 + 1;\n  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;\n  DAT_002a66ec = 1;\n  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);\n  DAT_002a5678 = param_1;\n  uVar1 = FUN_001105f0(param_1,0x4000);\n  FUN_001103e0(uVar1);\n  return;\n}" ({ "{") (declaration "undefined8 uVar1;" (type_identifier "undefined8") (identifier "uVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (if_statement "if (9 < DAT_002a56d4) {\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }" (if "if") (parenthesized_expression "(9 < DAT_002a56d4)" (( "(") (binary_expression "9 < DAT_002a56d4" (number_literal "9") (< "<") (identifier "DAT_002a56d4")) () ")")) (compound_statement "{\n    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);\n    FUN_001283c0(uVar1);\n  }" ({ "{") (expression_statement "uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);" (assignment_expression "uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"%F:includes nested too deeply\n",5)" (identifier "dcgettext") (argument_list "(0,"%F:includes nested too deeply\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F:includes nested too deeply\n"" (" """) (string_content "%F:includes nested too deeply") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001283c0(uVar1);" (call_expression "FUN_001283c0(uVar1)" (identifier "FUN_001283c0") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = (ulong)DAT_002a56d4;" (assignment_expression "uVar2 = (ulong)DAT_002a56d4" (identifier "uVar2") (= "=") (cast_expression "(ulong)DAT_002a56d4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "DAT_002a56d4"))) (; ";")) (expression_statement "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;" (assignment_expression "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2" (pointer_expression "*(undefined8 *)(&DAT_002a5760 + uVar2 * 8)" (* "*") (cast_expression "(undefined8 *)(&DAT_002a5760 + uVar2 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a5760 + uVar2 * 8)" (( "(") (binary_expression "&DAT_002a5760 + uVar2 * 8" (pointer_expression "&DAT_002a5760" (& "&") (identifier "DAT_002a5760")) (+ "+") (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;" (assignment_expression "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec" (pointer_expression "*(undefined4 *)(&DAT_002a5720 + uVar2 * 4)" (* "*") (cast_expression "(undefined4 *)(&DAT_002a5720 + uVar2 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a5720 + uVar2 * 4)" (( "(") (binary_expression "&DAT_002a5720 + uVar2 * 4" (pointer_expression "&DAT_002a5720" (& "&") (identifier "DAT_002a5720")) (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "DAT_002a66ec")) (; ";")) (expression_statement "*(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;" (assignment_expression "*(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1" (pointer_expression "*(uint *)(&DAT_002a56e0 + uVar2 * 4)" (* "*") (cast_expression "(uint *)(&DAT_002a56e0 + uVar2 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a56e0 + uVar2 * 4)" (( "(") (binary_expression "&DAT_002a56e0 + uVar2 * 4" (pointer_expression "&DAT_002a56e0" (& "&") (identifier "DAT_002a56e0")) (+ "+") (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4"))) () ")")))) (= "=") (binary_expression "DAT_002a6740 >> 3 & 1" (binary_expression "DAT_002a6740 >> 3" (identifier "DAT_002a6740") (>> ">>") (number_literal "3")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "lVar3 = DAT_002a5838;" (assignment_expression "lVar3 = DAT_002a5838" (identifier "lVar3") (= "=") (identifier "DAT_002a5838")) (; ";")) (if_statement "if (DAT_002a5838 != 0) {\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }" (if "if") (parenthesized_expression "(DAT_002a5838 != 0)" (( "(") (binary_expression "DAT_002a5838 != 0" (identifier "DAT_002a5838") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);\n  }" ({ "{") (expression_statement "lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);" (assignment_expression "lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(DAT_002a5838 + DAT_002a5848 * 8)" (* "*") (cast_expression "(long *)(DAT_002a5838 + DAT_002a5848 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002a5838 + DAT_002a5848 * 8)" (( "(") (binary_expression "DAT_002a5838 + DAT_002a5848 * 8" (identifier "DAT_002a5838") (+ "+") (binary_expression "DAT_002a5848 * 8" (identifier "DAT_002a5848") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}"))) (expression_statement "DAT_002a56d4 = DAT_002a56d4 + 1;" (assignment_expression "DAT_002a56d4 = DAT_002a56d4 + 1" (identifier "DAT_002a56d4") (= "=") (binary_expression "DAT_002a56d4 + 1" (identifier "DAT_002a56d4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;" (assignment_expression "*(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3" (pointer_expression "*(long *)(&DAT_002a57c0 + uVar2 * 8)" (* "*") (cast_expression "(long *)(&DAT_002a57c0 + uVar2 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_002a57c0 + uVar2 * 8)" (( "(") (binary_expression "&DAT_002a57c0 + uVar2 * 8" (pointer_expression "&DAT_002a57c0" (& "&") (identifier "DAT_002a57c0")) (+ "+") (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "lVar3")) (; ";")) (expression_statement "DAT_002a66ec = 1;" (assignment_expression "DAT_002a66ec = 1" (identifier "DAT_002a66ec") (= "=") (number_literal "1")) (; ";")) (expression_statement "DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);" (assignment_expression "DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3)" (identifier "DAT_002a6740") (= "=") (binary_expression "DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3)" (binary_expression "DAT_002a6740 & 0xf7" (identifier "DAT_002a6740") (& "&") (number_literal "0xf7")) (| "|") (call_expression "(byte)((param_3 & 1) << 3)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((param_3 & 1) << 3)" (( "(") (binary_expression "(param_3 & 1) << 3" (parenthesized_expression "(param_3 & 1)" (( "(") (binary_expression "param_3 & 1" (identifier "param_3") (& "&") (number_literal "1")) () ")")) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "DAT_002a5678 = param_1;" (assignment_expression "DAT_002a5678 = param_1" (identifier "DAT_002a5678") (= "=") (identifier "param_1")) (; ";")) (expression_statement "uVar1 = FUN_001105f0(param_1,0x4000);" (assignment_expression "uVar1 = FUN_001105f0(param_1,0x4000)" (identifier "uVar1") (= "=") (call_expression "FUN_001105f0(param_1,0x4000)" (identifier "FUN_001105f0") (argument_list "(param_1,0x4000)" (( "(") (identifier "param_1") (, ",") (number_literal "0x4000") () ")")))) (; ";")) (expression_statement "FUN_001103e0(uVar1);" (call_expression "FUN_001103e0(uVar1)" (identifier "FUN_001103e0") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *file,char *name,type_2 var_5)

{
  type_3 pyVar1;
  char *fmt;
  
  if (9 < var_1) {
    fmt = (char *)var_2(0,"%F:includes nested too deeply\n",5);
    var_3(fmt);
  }
  file_name_stack[var_1] = name;
  lineno_stack[var_1] = lineno;
  sysrooted_stack[var_1] = (type_4)input_flags._0_1_ >> 3 & 1;
  pyVar1 = (type_3)var_4;
  if (var_4 != (type_3 *)0x0) {
    pyVar1 = var_4[yy_buffer_stack_top];
  }
  include_stack[var_1] = pyVar1;
  lineno = 1;
  input_flags._0_1_ = input_flags._0_1_ & 0xf7 | (type_4)((var_5 & 1) << 3);
  yyin = file;
  var_1 = var_1 + 1;
  pyVar1 = var_6(file,0x4000);
  var_7(pyVar1);
  return;
}


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

void MASKED(undefined8 param_1,undefined8 param_2,uint param_3)

{
  undefined8 uVar1;
  ulong uVar2;
  long lVar3;
  
  if (9 < DAT_002a56d4) {
    uVar1 = dcgettext(0,"%F:includes nested too deeply\n",5);
    FUN_001283c0(uVar1);
  }
  uVar2 = (ulong)DAT_002a56d4;
  *(undefined8 *)(&DAT_002a5760 + uVar2 * 8) = param_2;
  *(undefined4 *)(&DAT_002a5720 + uVar2 * 4) = DAT_002a66ec;
  *(uint *)(&DAT_002a56e0 + uVar2 * 4) = DAT_002a6740 >> 3 & 1;
  lVar3 = DAT_002a5838;
  if (DAT_002a5838 != 0) {
    lVar3 = *(long *)(DAT_002a5838 + DAT_002a5848 * 8);
  }
  DAT_002a56d4 = DAT_002a56d4 + 1;
  *(long *)(&DAT_002a57c0 + uVar2 * 8) = lVar3;
  DAT_002a66ec = 1;
  DAT_002a6740 = DAT_002a6740 & 0xf7 | (byte)((param_3 & 1) << 3);
  DAT_002a5678 = param_1;
  uVar1 = FUN_001105f0(param_1,0x4000);
  FUN_001103e0(uVar1);
  return;
}

