
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void init_symbol_table(void)

{
  NODE *pNVar1;
  char *pcVar2;
  
  global_table = nextfree.lptr;
  if (nextfree.lptr == (exp_node *)0x0) {
    global_table = (NODE *)more_blocks(L'\0');
  }
  else {
    nextfree = ((nextfree.lptr)->sub).nodep.l;
  }
  pNVar1 = global_table;
  (global_table->sub).val.fltnum = 0.0;
  (pNVar1->sub).val.sp = (char *)0x0;
  (pNVar1->sub).val.slen = 0;
  (pNVar1->sub).val.sref = 0;
  (pNVar1->sub).nodep.name = (char *)0x0;
  (pNVar1->sub).nodep.reserved = 0;
  (pNVar1->sub).nodep.rn = (exp_node *)0x0;
  (pNVar1->sub).nodep.cnt = 0;
  (pNVar1->sub).nodep.reflags = 0;
  pNVar1->type = Node_illegal;
  pNVar1->flags = 0;
  null_array(pNVar1);
  param_table = (NODE *)nextfree;
  if (nextfree == (anon_union_8_4_7583dc62_for_l)0x0) {
    param_table = (NODE *)more_blocks(L'\0');
  }
  else {
    nextfree = ((nextfree.lptr)->sub).nodep.l;
  }
  pNVar1 = param_table;
  (param_table->sub).val.fltnum = 0.0;
  (pNVar1->sub).val.sp = (char *)0x0;
  (pNVar1->sub).val.slen = 0;
  (pNVar1->sub).val.sref = 0;
  (pNVar1->sub).nodep.name = (char *)0x0;
  (pNVar1->sub).nodep.reserved = 0;
  (pNVar1->sub).nodep.rn = (exp_node *)0x0;
  (pNVar1->sub).nodep.cnt = 0;
  (pNVar1->sub).nodep.reflags = 0;
  pNVar1->type = Node_illegal;
  pNVar1->flags = 0;
  null_array(pNVar1);
  installing_specials = true;
  pcVar2 = estrdup("FUNCTAB",7);
  func_table = install_symbol(pcVar2,Node_var_array);
  pcVar2 = estrdup("SYMTAB",6);
  symbol_table = install_symbol(pcVar2,Node_var_array);
  installing_specials = false;
  return;
}



void FUN_00160880(void)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  
  DAT_0039cbf8 = DAT_00396dc0;
  if (DAT_00396dc0 == (undefined8 *)0x0) {
    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);
  }
  else {
    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;
  }
  puVar1 = DAT_0039cbf8;
  *DAT_0039cbf8 = 0;
  puVar1[1] = 0;
  puVar1[2] = 0;
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  FUN_00109d21();
  DAT_0039cbf0 = DAT_00396dc0;
  if (DAT_00396dc0 == (undefined8 *)0x0) {
    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);
  }
  else {
    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;
  }
  puVar1 = DAT_0039cbf0;
  *DAT_0039cbf0 = 0;
  puVar1[1] = 0;
  puVar1[2] = 0;
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  FUN_00109d21();
  DAT_0039cbe8 = 1;
  uVar2 = FUN_00154d32("FUNCTAB",7);
  DAT_0039e4c8 = FUN_0016086b(uVar2,5);
  uVar2 = FUN_00154d32("SYMTAB",6);
  DAT_0039e4c0 = FUN_0016086b(uVar2,5);
  DAT_0039cbe8 = 0;
  return;
}


SUB RSP,0x8
MOV RAX,qword ptr [0x00396dc0]
MOV qword ptr [0x0039cbf8],RAX
TEST RAX,RAX
JZ 0x001609d9
MOV RAX,qword ptr [RAX]
MOV qword ptr [0x00396dc0],RAX
MOV RDI,qword ptr [0x0039cbf8]
MOV qword ptr [RDI],0x0
MOV qword ptr [RDI + 0x8],0x0
MOV qword ptr [RDI + 0x10],0x0
MOV qword ptr [RDI + 0x18],0x0
MOV qword ptr [RDI + 0x20],0x0
MOV qword ptr [RDI + 0x28],0x0
MOV qword ptr [RDI + 0x30],0x0
MOV qword ptr [RDI + 0x38],0x0
MOV qword ptr [RDI + 0x40],0x0
MOV qword ptr [RDI + 0x48],0x0
CALL 0x00109d21
MOV RAX,qword ptr [0x00396dc0]
MOV qword ptr [0x0039cbf0],RAX
TEST RAX,RAX
JZ 0x001609ef
MOV RAX,qword ptr [RAX]
MOV qword ptr [0x00396dc0],RAX
MOV RDI,qword ptr [0x0039cbf0]
MOV qword ptr [RDI],0x0
MOV qword ptr [RDI + 0x8],0x0
MOV qword ptr [RDI + 0x10],0x0
MOV qword ptr [RDI + 0x18],0x0
MOV qword ptr [RDI + 0x20],0x0
MOV qword ptr [RDI + 0x28],0x0
MOV qword ptr [RDI + 0x30],0x0
MOV qword ptr [RDI + 0x38],0x0
MOV qword ptr [RDI + 0x40],0x0
MOV qword ptr [RDI + 0x48],0x0
CALL 0x00109d21
MOV byte ptr [0x0039cbe8],0x1
MOV ESI,0x7
LEA RDI,[0x1858cd]
CALL 0x00154d32
MOV ESI,0x5
MOV RDI,RAX
CALL 0x0016086b
MOV qword ptr [0x0039e4c8],RAX
MOV ESI,0x6
LEA RDI,[0x1858d5]
CALL 0x00154d32
MOV ESI,0x5
MOV RDI,RAX
CALL 0x0016086b
MOV qword ptr [0x0039e4c0],RAX
MOV byte ptr [0x0039cbe8],0x0
ADD RSP,0x8
RET
MOV EDI,0x0
CALL 0x0015895f
MOV qword ptr [0x0039cbf8],RAX
JMP 0x001608a5
MOV EDI,0x0
CALL 0x0015895f
MOV qword ptr [0x0039cbf0],RAX
JMP 0x00160921
(translation_unit "void FUN_00160880(void)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}\n\n" (function_definition "void FUN_00160880(void)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}" primitive_type (function_declarator "FUN_00160880(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "DAT_0039cbf8 = DAT_00396dc0;" (assignment_expression "DAT_0039cbf8 = DAT_00396dc0" identifier = identifier) ;) (if_statement "if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" if (parenthesized_expression "(DAT_00396dc0 == (undefined8 *)0x0)" ( (binary_expression "DAT_00396dc0 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }" { (expression_statement "DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);" (assignment_expression "DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0)" identifier = (cast_expression "(undefined8 *)FUN_0015895f(0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0015895f(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) }) (else_clause "else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" else (compound_statement "{\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" { (expression_statement "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;" (assignment_expression "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0" identifier = (cast_expression "(undefined8 *)*DAT_00396dc0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00396dc0" * identifier))) ;) }))) (expression_statement "puVar1 = DAT_0039cbf8;" (assignment_expression "puVar1 = DAT_0039cbf8" identifier = identifier) ;) (expression_statement "*DAT_0039cbf8 = 0;" (assignment_expression "*DAT_0039cbf8 = 0" (pointer_expression "*DAT_0039cbf8" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00109d21();" (call_expression "FUN_00109d21()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0039cbf0 = DAT_00396dc0;" (assignment_expression "DAT_0039cbf0 = DAT_00396dc0" identifier = identifier) ;) (if_statement "if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" if (parenthesized_expression "(DAT_00396dc0 == (undefined8 *)0x0)" ( (binary_expression "DAT_00396dc0 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }" { (expression_statement "DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);" (assignment_expression "DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0)" identifier = (cast_expression "(undefined8 *)FUN_0015895f(0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0015895f(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) }) (else_clause "else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" else (compound_statement "{\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" { (expression_statement "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;" (assignment_expression "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0" identifier = (cast_expression "(undefined8 *)*DAT_00396dc0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00396dc0" * identifier))) ;) }))) (expression_statement "puVar1 = DAT_0039cbf0;" (assignment_expression "puVar1 = DAT_0039cbf0" identifier = identifier) ;) (expression_statement "*DAT_0039cbf0 = 0;" (assignment_expression "*DAT_0039cbf0 = 0" (pointer_expression "*DAT_0039cbf0" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00109d21();" (call_expression "FUN_00109d21()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0039cbe8 = 1;" (assignment_expression "DAT_0039cbe8 = 1" identifier = number_literal) ;) (expression_statement "uVar2 = FUN_00154d32("FUNCTAB",7);" (assignment_expression "uVar2 = FUN_00154d32("FUNCTAB",7)" identifier = (call_expression "FUN_00154d32("FUNCTAB",7)" identifier (argument_list "("FUNCTAB",7)" ( (string_literal ""FUNCTAB"" " string_content ") , number_literal )))) ;) (expression_statement "DAT_0039e4c8 = FUN_0016086b(uVar2,5);" (assignment_expression "DAT_0039e4c8 = FUN_0016086b(uVar2,5)" identifier = (call_expression "FUN_0016086b(uVar2,5)" identifier (argument_list "(uVar2,5)" ( identifier , number_literal )))) ;) (expression_statement "uVar2 = FUN_00154d32("SYMTAB",6);" (assignment_expression "uVar2 = FUN_00154d32("SYMTAB",6)" identifier = (call_expression "FUN_00154d32("SYMTAB",6)" identifier (argument_list "("SYMTAB",6)" ( (string_literal ""SYMTAB"" " string_content ") , number_literal )))) ;) (expression_statement "DAT_0039e4c0 = FUN_0016086b(uVar2,5);" (assignment_expression "DAT_0039e4c0 = FUN_0016086b(uVar2,5)" identifier = (call_expression "FUN_0016086b(uVar2,5)" identifier (argument_list "(uVar2,5)" ( identifier , number_literal )))) ;) (expression_statement "DAT_0039cbe8 = 0;" (assignment_expression "DAT_0039cbe8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid init_symbol_table(void)\n\n{\n  NODE *pNVar1;\n  char *pcVar2;\n  \n  global_table = nextfree.lptr;\n  if (nextfree.lptr == (exp_node *)0x0) {\n    global_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }\n  pNVar1 = global_table;\n  (global_table->sub).val.fltnum = 0.0;\n  (pNVar1->sub).val.sp = (char *)0x0;\n  (pNVar1->sub).val.slen = 0;\n  (pNVar1->sub).val.sref = 0;\n  (pNVar1->sub).nodep.name = (char *)0x0;\n  (pNVar1->sub).nodep.reserved = 0;\n  (pNVar1->sub).nodep.rn = (exp_node *)0x0;\n  (pNVar1->sub).nodep.cnt = 0;\n  (pNVar1->sub).nodep.reflags = 0;\n  pNVar1->type = Node_illegal;\n  pNVar1->flags = 0;\n  null_array(pNVar1);\n  param_table = (NODE *)nextfree;\n  if (nextfree == (anon_union_8_4_7583dc62_for_l)0x0) {\n    param_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }\n  pNVar1 = param_table;\n  (param_table->sub).val.fltnum = 0.0;\n  (pNVar1->sub).val.sp = (char *)0x0;\n  (pNVar1->sub).val.slen = 0;\n  (pNVar1->sub).val.sref = 0;\n  (pNVar1->sub).nodep.name = (char *)0x0;\n  (pNVar1->sub).nodep.reserved = 0;\n  (pNVar1->sub).nodep.rn = (exp_node *)0x0;\n  (pNVar1->sub).nodep.cnt = 0;\n  (pNVar1->sub).nodep.reflags = 0;\n  pNVar1->type = Node_illegal;\n  pNVar1->flags = 0;\n  null_array(pNVar1);\n  installing_specials = true;\n  pcVar2 = estrdup("FUNCTAB",7);\n  func_table = install_symbol(pcVar2,Node_var_array);\n  pcVar2 = estrdup("SYMTAB",6);\n  symbol_table = install_symbol(pcVar2,Node_var_array);\n  installing_specials = false;\n  return;\n}\n\n" comment (function_definition "void init_symbol_table(void)\n\n{\n  NODE *pNVar1;\n  char *pcVar2;\n  \n  global_table = nextfree.lptr;\n  if (nextfree.lptr == (exp_node *)0x0) {\n    global_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }\n  pNVar1 = global_table;\n  (global_table->sub).val.fltnum = 0.0;\n  (pNVar1->sub).val.sp = (char *)0x0;\n  (pNVar1->sub).val.slen = 0;\n  (pNVar1->sub).val.sref = 0;\n  (pNVar1->sub).nodep.name = (char *)0x0;\n  (pNVar1->sub).nodep.reserved = 0;\n  (pNVar1->sub).nodep.rn = (exp_node *)0x0;\n  (pNVar1->sub).nodep.cnt = 0;\n  (pNVar1->sub).nodep.reflags = 0;\n  pNVar1->type = Node_illegal;\n  pNVar1->flags = 0;\n  null_array(pNVar1);\n  param_table = (NODE *)nextfree;\n  if (nextfree == (anon_union_8_4_7583dc62_for_l)0x0) {\n    param_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }\n  pNVar1 = param_table;\n  (param_table->sub).val.fltnum = 0.0;\n  (pNVar1->sub).val.sp = (char *)0x0;\n  (pNVar1->sub).val.slen = 0;\n  (pNVar1->sub).val.sref = 0;\n  (pNVar1->sub).nodep.name = (char *)0x0;\n  (pNVar1->sub).nodep.reserved = 0;\n  (pNVar1->sub).nodep.rn = (exp_node *)0x0;\n  (pNVar1->sub).nodep.cnt = 0;\n  (pNVar1->sub).nodep.reflags = 0;\n  pNVar1->type = Node_illegal;\n  pNVar1->flags = 0;\n  null_array(pNVar1);\n  installing_specials = true;\n  pcVar2 = estrdup("FUNCTAB",7);\n  func_table = install_symbol(pcVar2,Node_var_array);\n  pcVar2 = estrdup("SYMTAB",6);\n  symbol_table = install_symbol(pcVar2,Node_var_array);\n  installing_specials = false;\n  return;\n}" primitive_type (function_declarator "init_symbol_table(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  NODE *pNVar1;\n  char *pcVar2;\n  \n  global_table = nextfree.lptr;\n  if (nextfree.lptr == (exp_node *)0x0) {\n    global_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }\n  pNVar1 = global_table;\n  (global_table->sub).val.fltnum = 0.0;\n  (pNVar1->sub).val.sp = (char *)0x0;\n  (pNVar1->sub).val.slen = 0;\n  (pNVar1->sub).val.sref = 0;\n  (pNVar1->sub).nodep.name = (char *)0x0;\n  (pNVar1->sub).nodep.reserved = 0;\n  (pNVar1->sub).nodep.rn = (exp_node *)0x0;\n  (pNVar1->sub).nodep.cnt = 0;\n  (pNVar1->sub).nodep.reflags = 0;\n  pNVar1->type = Node_illegal;\n  pNVar1->flags = 0;\n  null_array(pNVar1);\n  param_table = (NODE *)nextfree;\n  if (nextfree == (anon_union_8_4_7583dc62_for_l)0x0) {\n    param_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }\n  pNVar1 = param_table;\n  (param_table->sub).val.fltnum = 0.0;\n  (pNVar1->sub).val.sp = (char *)0x0;\n  (pNVar1->sub).val.slen = 0;\n  (pNVar1->sub).val.sref = 0;\n  (pNVar1->sub).nodep.name = (char *)0x0;\n  (pNVar1->sub).nodep.reserved = 0;\n  (pNVar1->sub).nodep.rn = (exp_node *)0x0;\n  (pNVar1->sub).nodep.cnt = 0;\n  (pNVar1->sub).nodep.reflags = 0;\n  pNVar1->type = Node_illegal;\n  pNVar1->flags = 0;\n  null_array(pNVar1);\n  installing_specials = true;\n  pcVar2 = estrdup("FUNCTAB",7);\n  func_table = install_symbol(pcVar2,Node_var_array);\n  pcVar2 = estrdup("SYMTAB",6);\n  symbol_table = install_symbol(pcVar2,Node_var_array);\n  installing_specials = false;\n  return;\n}" { (declaration "NODE *pNVar1;" type_identifier (pointer_declarator "*pNVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (expression_statement "global_table = nextfree.lptr;" (assignment_expression "global_table = nextfree.lptr" identifier = (field_expression "nextfree.lptr" identifier . field_identifier)) ;) (if_statement "if (nextfree.lptr == (exp_node *)0x0) {\n    global_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }" if (parenthesized_expression "(nextfree.lptr == (exp_node *)0x0)" ( (binary_expression "nextfree.lptr == (exp_node *)0x0" (field_expression "nextfree.lptr" identifier . field_identifier) == (cast_expression "(exp_node *)0x0" ( (type_descriptor "exp_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    global_table = (NODE *)more_blocks(L'\0');\n  }" { (expression_statement "global_table = (NODE *)more_blocks(L'\0');" (assignment_expression "global_table = (NODE *)more_blocks(L'\0')" identifier = (cast_expression "(NODE *)more_blocks(L'\0')" ( (type_descriptor "NODE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "more_blocks(L'\0')" identifier (argument_list "(L'\0')" ( (char_literal "L'\0'" L' escape_sequence ') ))))) ;) }) (else_clause "else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }" else (compound_statement "{\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }" { (expression_statement "nextfree = ((nextfree.lptr)->sub).nodep.l;" (assignment_expression "nextfree = ((nextfree.lptr)->sub).nodep.l" identifier = (field_expression "((nextfree.lptr)->sub).nodep.l" (field_expression "((nextfree.lptr)->sub).nodep" (parenthesized_expression "((nextfree.lptr)->sub)" ( (field_expression "(nextfree.lptr)->sub" (parenthesized_expression "(nextfree.lptr)" ( (field_expression "nextfree.lptr" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "pNVar1 = global_table;" (assignment_expression "pNVar1 = global_table" identifier = identifier) ;) (expression_statement "(global_table->sub).val.fltnum = 0.0;" (assignment_expression "(global_table->sub).val.fltnum = 0.0" (field_expression "(global_table->sub).val.fltnum" (field_expression "(global_table->sub).val" (parenthesized_expression "(global_table->sub)" ( (field_expression "global_table->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).val.sp = (char *)0x0;" (assignment_expression "(pNVar1->sub).val.sp = (char *)0x0" (field_expression "(pNVar1->sub).val.sp" (field_expression "(pNVar1->sub).val" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pNVar1->sub).val.slen = 0;" (assignment_expression "(pNVar1->sub).val.slen = 0" (field_expression "(pNVar1->sub).val.slen" (field_expression "(pNVar1->sub).val" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).val.sref = 0;" (assignment_expression "(pNVar1->sub).val.sref = 0" (field_expression "(pNVar1->sub).val.sref" (field_expression "(pNVar1->sub).val" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).nodep.name = (char *)0x0;" (assignment_expression "(pNVar1->sub).nodep.name = (char *)0x0" (field_expression "(pNVar1->sub).nodep.name" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pNVar1->sub).nodep.reserved = 0;" (assignment_expression "(pNVar1->sub).nodep.reserved = 0" (field_expression "(pNVar1->sub).nodep.reserved" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).nodep.rn = (exp_node *)0x0;" (assignment_expression "(pNVar1->sub).nodep.rn = (exp_node *)0x0" (field_expression "(pNVar1->sub).nodep.rn" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(exp_node *)0x0" ( (type_descriptor "exp_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pNVar1->sub).nodep.cnt = 0;" (assignment_expression "(pNVar1->sub).nodep.cnt = 0" (field_expression "(pNVar1->sub).nodep.cnt" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).nodep.reflags = 0;" (assignment_expression "(pNVar1->sub).nodep.reflags = 0" (field_expression "(pNVar1->sub).nodep.reflags" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pNVar1->type = Node_illegal;" (assignment_expression "pNVar1->type = Node_illegal" (field_expression "pNVar1->type" identifier -> field_identifier) = identifier) ;) (expression_statement "pNVar1->flags = 0;" (assignment_expression "pNVar1->flags = 0" (field_expression "pNVar1->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "null_array(pNVar1);" (call_expression "null_array(pNVar1)" identifier (argument_list "(pNVar1)" ( identifier ))) ;) (expression_statement "param_table = (NODE *)nextfree;" (assignment_expression "param_table = (NODE *)nextfree" identifier = (cast_expression "(NODE *)nextfree" ( (type_descriptor "NODE *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (nextfree == (anon_union_8_4_7583dc62_for_l)0x0) {\n    param_table = (NODE *)more_blocks(L'\0');\n  }\n  else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }" if (parenthesized_expression "(nextfree == (anon_union_8_4_7583dc62_for_l)0x0)" ( (binary_expression "nextfree == (anon_union_8_4_7583dc62_for_l)0x0" identifier == (cast_expression "(anon_union_8_4_7583dc62_for_l)0x0" ( (type_descriptor "anon_union_8_4_7583dc62_for_l" type_identifier) ) number_literal)) )) (compound_statement "{\n    param_table = (NODE *)more_blocks(L'\0');\n  }" { (expression_statement "param_table = (NODE *)more_blocks(L'\0');" (assignment_expression "param_table = (NODE *)more_blocks(L'\0')" identifier = (cast_expression "(NODE *)more_blocks(L'\0')" ( (type_descriptor "NODE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "more_blocks(L'\0')" identifier (argument_list "(L'\0')" ( (char_literal "L'\0'" L' escape_sequence ') ))))) ;) }) (else_clause "else {\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }" else (compound_statement "{\n    nextfree = ((nextfree.lptr)->sub).nodep.l;\n  }" { (expression_statement "nextfree = ((nextfree.lptr)->sub).nodep.l;" (assignment_expression "nextfree = ((nextfree.lptr)->sub).nodep.l" identifier = (field_expression "((nextfree.lptr)->sub).nodep.l" (field_expression "((nextfree.lptr)->sub).nodep" (parenthesized_expression "((nextfree.lptr)->sub)" ( (field_expression "(nextfree.lptr)->sub" (parenthesized_expression "(nextfree.lptr)" ( (field_expression "nextfree.lptr" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "pNVar1 = param_table;" (assignment_expression "pNVar1 = param_table" identifier = identifier) ;) (expression_statement "(param_table->sub).val.fltnum = 0.0;" (assignment_expression "(param_table->sub).val.fltnum = 0.0" (field_expression "(param_table->sub).val.fltnum" (field_expression "(param_table->sub).val" (parenthesized_expression "(param_table->sub)" ( (field_expression "param_table->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).val.sp = (char *)0x0;" (assignment_expression "(pNVar1->sub).val.sp = (char *)0x0" (field_expression "(pNVar1->sub).val.sp" (field_expression "(pNVar1->sub).val" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pNVar1->sub).val.slen = 0;" (assignment_expression "(pNVar1->sub).val.slen = 0" (field_expression "(pNVar1->sub).val.slen" (field_expression "(pNVar1->sub).val" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).val.sref = 0;" (assignment_expression "(pNVar1->sub).val.sref = 0" (field_expression "(pNVar1->sub).val.sref" (field_expression "(pNVar1->sub).val" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).nodep.name = (char *)0x0;" (assignment_expression "(pNVar1->sub).nodep.name = (char *)0x0" (field_expression "(pNVar1->sub).nodep.name" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pNVar1->sub).nodep.reserved = 0;" (assignment_expression "(pNVar1->sub).nodep.reserved = 0" (field_expression "(pNVar1->sub).nodep.reserved" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).nodep.rn = (exp_node *)0x0;" (assignment_expression "(pNVar1->sub).nodep.rn = (exp_node *)0x0" (field_expression "(pNVar1->sub).nodep.rn" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(exp_node *)0x0" ( (type_descriptor "exp_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(pNVar1->sub).nodep.cnt = 0;" (assignment_expression "(pNVar1->sub).nodep.cnt = 0" (field_expression "(pNVar1->sub).nodep.cnt" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar1->sub).nodep.reflags = 0;" (assignment_expression "(pNVar1->sub).nodep.reflags = 0" (field_expression "(pNVar1->sub).nodep.reflags" (field_expression "(pNVar1->sub).nodep" (parenthesized_expression "(pNVar1->sub)" ( (field_expression "pNVar1->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pNVar1->type = Node_illegal;" (assignment_expression "pNVar1->type = Node_illegal" (field_expression "pNVar1->type" identifier -> field_identifier) = identifier) ;) (expression_statement "pNVar1->flags = 0;" (assignment_expression "pNVar1->flags = 0" (field_expression "pNVar1->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "null_array(pNVar1);" (call_expression "null_array(pNVar1)" identifier (argument_list "(pNVar1)" ( identifier ))) ;) (expression_statement "installing_specials = true;" (assignment_expression "installing_specials = true" identifier = true) ;) (expression_statement "pcVar2 = estrdup("FUNCTAB",7);" (assignment_expression "pcVar2 = estrdup("FUNCTAB",7)" identifier = (call_expression "estrdup("FUNCTAB",7)" identifier (argument_list "("FUNCTAB",7)" ( (string_literal ""FUNCTAB"" " string_content ") , number_literal )))) ;) (expression_statement "func_table = install_symbol(pcVar2,Node_var_array);" (assignment_expression "func_table = install_symbol(pcVar2,Node_var_array)" identifier = (call_expression "install_symbol(pcVar2,Node_var_array)" identifier (argument_list "(pcVar2,Node_var_array)" ( identifier , identifier )))) ;) (expression_statement "pcVar2 = estrdup("SYMTAB",6);" (assignment_expression "pcVar2 = estrdup("SYMTAB",6)" identifier = (call_expression "estrdup("SYMTAB",6)" identifier (argument_list "("SYMTAB",6)" ( (string_literal ""SYMTAB"" " string_content ") , number_literal )))) ;) (expression_statement "symbol_table = install_symbol(pcVar2,Node_var_array);" (assignment_expression "symbol_table = install_symbol(pcVar2,Node_var_array)" identifier = (call_expression "install_symbol(pcVar2,Node_var_array)" identifier (argument_list "(pcVar2,Node_var_array)" ( identifier , identifier )))) ;) (expression_statement "installing_specials = false;" (assignment_expression "installing_specials = false" identifier = false) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00160880(void)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}\n\n" (function_definition "void FUN_00160880(void)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}" primitive_type (function_declarator "FUN_00160880(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "DAT_0039cbf8 = DAT_00396dc0;" (assignment_expression "DAT_0039cbf8 = DAT_00396dc0" identifier = identifier) ;) (if_statement "if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" if (parenthesized_expression "(DAT_00396dc0 == (undefined8 *)0x0)" ( (binary_expression "DAT_00396dc0 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }" { (expression_statement "DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);" (assignment_expression "DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0)" identifier = (cast_expression "(undefined8 *)FUN_0015895f(0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0015895f(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) }) (else_clause "else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" else (compound_statement "{\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" { (expression_statement "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;" (assignment_expression "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0" identifier = (cast_expression "(undefined8 *)*DAT_00396dc0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00396dc0" * identifier))) ;) }))) (expression_statement "puVar1 = DAT_0039cbf8;" (assignment_expression "puVar1 = DAT_0039cbf8" identifier = identifier) ;) (expression_statement "*DAT_0039cbf8 = 0;" (assignment_expression "*DAT_0039cbf8 = 0" (pointer_expression "*DAT_0039cbf8" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00109d21();" (call_expression "FUN_00109d21()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0039cbf0 = DAT_00396dc0;" (assignment_expression "DAT_0039cbf0 = DAT_00396dc0" identifier = identifier) ;) (if_statement "if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" if (parenthesized_expression "(DAT_00396dc0 == (undefined8 *)0x0)" ( (binary_expression "DAT_00396dc0 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }" { (expression_statement "DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);" (assignment_expression "DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0)" identifier = (cast_expression "(undefined8 *)FUN_0015895f(0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0015895f(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) }) (else_clause "else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" else (compound_statement "{\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" { (expression_statement "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;" (assignment_expression "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0" identifier = (cast_expression "(undefined8 *)*DAT_00396dc0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00396dc0" * identifier))) ;) }))) (expression_statement "puVar1 = DAT_0039cbf0;" (assignment_expression "puVar1 = DAT_0039cbf0" identifier = identifier) ;) (expression_statement "*DAT_0039cbf0 = 0;" (assignment_expression "*DAT_0039cbf0 = 0" (pointer_expression "*DAT_0039cbf0" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00109d21();" (call_expression "FUN_00109d21()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0039cbe8 = 1;" (assignment_expression "DAT_0039cbe8 = 1" identifier = number_literal) ;) (expression_statement "uVar2 = FUN_00154d32("FUNCTAB",7);" (assignment_expression "uVar2 = FUN_00154d32("FUNCTAB",7)" identifier = (call_expression "FUN_00154d32("FUNCTAB",7)" identifier (argument_list "("FUNCTAB",7)" ( (string_literal ""FUNCTAB"" " string_content ") , number_literal )))) ;) (expression_statement "DAT_0039e4c8 = FUN_0016086b(uVar2,5);" (assignment_expression "DAT_0039e4c8 = FUN_0016086b(uVar2,5)" identifier = (call_expression "FUN_0016086b(uVar2,5)" identifier (argument_list "(uVar2,5)" ( identifier , number_literal )))) ;) (expression_statement "uVar2 = FUN_00154d32("SYMTAB",6);" (assignment_expression "uVar2 = FUN_00154d32("SYMTAB",6)" identifier = (call_expression "FUN_00154d32("SYMTAB",6)" identifier (argument_list "("SYMTAB",6)" ( (string_literal ""SYMTAB"" " string_content ") , number_literal )))) ;) (expression_statement "DAT_0039e4c0 = FUN_0016086b(uVar2,5);" (assignment_expression "DAT_0039e4c0 = FUN_0016086b(uVar2,5)" identifier = (call_expression "FUN_0016086b(uVar2,5)" identifier (argument_list "(uVar2,5)" ( identifier , number_literal )))) ;) (expression_statement "DAT_0039cbe8 = 0;" (assignment_expression "DAT_0039cbe8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_00160880(void)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00160880(void)" (identifier "FUN_00160880") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  DAT_0039cbf8 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf8;\n  *DAT_0039cbf8 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbf0 = DAT_00396dc0;\n  if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }\n  puVar1 = DAT_0039cbf0;\n  *DAT_0039cbf0 = 0;\n  puVar1[1] = 0;\n  puVar1[2] = 0;\n  puVar1[3] = 0;\n  puVar1[4] = 0;\n  puVar1[5] = 0;\n  puVar1[6] = 0;\n  puVar1[7] = 0;\n  puVar1[8] = 0;\n  puVar1[9] = 0;\n  FUN_00109d21();\n  DAT_0039cbe8 = 1;\n  uVar2 = FUN_00154d32("FUNCTAB",7);\n  DAT_0039e4c8 = FUN_0016086b(uVar2,5);\n  uVar2 = FUN_00154d32("SYMTAB",6);\n  DAT_0039e4c0 = FUN_0016086b(uVar2,5);\n  DAT_0039cbe8 = 0;\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (expression_statement "DAT_0039cbf8 = DAT_00396dc0;" (assignment_expression "DAT_0039cbf8 = DAT_00396dc0" (identifier "DAT_0039cbf8") (= "=") (identifier "DAT_00396dc0")) (; ";")) (if_statement "if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" (if "if") (parenthesized_expression "(DAT_00396dc0 == (undefined8 *)0x0)" (( "(") (binary_expression "DAT_00396dc0 == (undefined8 *)0x0" (identifier "DAT_00396dc0") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);\n  }" ({ "{") (expression_statement "DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);" (assignment_expression "DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0)" (identifier "DAT_0039cbf8") (= "=") (cast_expression "(undefined8 *)FUN_0015895f(0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0015895f(0)" (identifier "FUN_0015895f") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" (else "else") (compound_statement "{\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" ({ "{") (expression_statement "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;" (assignment_expression "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0" (identifier "DAT_00396dc0") (= "=") (cast_expression "(undefined8 *)*DAT_00396dc0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00396dc0" (* "*") (identifier "DAT_00396dc0")))) (; ";")) (} "}")))) (expression_statement "puVar1 = DAT_0039cbf8;" (assignment_expression "puVar1 = DAT_0039cbf8" (identifier "puVar1") (= "=") (identifier "DAT_0039cbf8")) (; ";")) (expression_statement "*DAT_0039cbf8 = 0;" (assignment_expression "*DAT_0039cbf8 = 0" (pointer_expression "*DAT_0039cbf8" (* "*") (identifier "DAT_0039cbf8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" (identifier "puVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" (identifier "puVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00109d21();" (call_expression "FUN_00109d21()" (identifier "FUN_00109d21") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_0039cbf0 = DAT_00396dc0;" (assignment_expression "DAT_0039cbf0 = DAT_00396dc0" (identifier "DAT_0039cbf0") (= "=") (identifier "DAT_00396dc0")) (; ";")) (if_statement "if (DAT_00396dc0 == (undefined8 *)0x0) {\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }\n  else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" (if "if") (parenthesized_expression "(DAT_00396dc0 == (undefined8 *)0x0)" (( "(") (binary_expression "DAT_00396dc0 == (undefined8 *)0x0" (identifier "DAT_00396dc0") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);\n  }" ({ "{") (expression_statement "DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);" (assignment_expression "DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0)" (identifier "DAT_0039cbf0") (= "=") (cast_expression "(undefined8 *)FUN_0015895f(0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0015895f(0)" (identifier "FUN_0015895f") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" (else "else") (compound_statement "{\n    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;\n  }" ({ "{") (expression_statement "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;" (assignment_expression "DAT_00396dc0 = (undefined8 *)*DAT_00396dc0" (identifier "DAT_00396dc0") (= "=") (cast_expression "(undefined8 *)*DAT_00396dc0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00396dc0" (* "*") (identifier "DAT_00396dc0")))) (; ";")) (} "}")))) (expression_statement "puVar1 = DAT_0039cbf0;" (assignment_expression "puVar1 = DAT_0039cbf0" (identifier "puVar1") (= "=") (identifier "DAT_0039cbf0")) (; ";")) (expression_statement "*DAT_0039cbf0 = 0;" (assignment_expression "*DAT_0039cbf0 = 0" (pointer_expression "*DAT_0039cbf0" (* "*") (identifier "DAT_0039cbf0")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[1] = 0;" (assignment_expression "puVar1[1] = 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[2] = 0;" (assignment_expression "puVar1[2] = 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[3] = 0;" (assignment_expression "puVar1[3] = 0" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[4] = 0;" (assignment_expression "puVar1[4] = 0" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[5] = 0;" (assignment_expression "puVar1[5] = 0" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[6] = 0;" (assignment_expression "puVar1[6] = 0" (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[7] = 0;" (assignment_expression "puVar1[7] = 0" (subscript_expression "puVar1[7]" (identifier "puVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[8] = 0;" (assignment_expression "puVar1[8] = 0" (subscript_expression "puVar1[8]" (identifier "puVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar1[9] = 0;" (assignment_expression "puVar1[9] = 0" (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00109d21();" (call_expression "FUN_00109d21()" (identifier "FUN_00109d21") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_0039cbe8 = 1;" (assignment_expression "DAT_0039cbe8 = 1" (identifier "DAT_0039cbe8") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar2 = FUN_00154d32("FUNCTAB",7);" (assignment_expression "uVar2 = FUN_00154d32("FUNCTAB",7)" (identifier "uVar2") (= "=") (call_expression "FUN_00154d32("FUNCTAB",7)" (identifier "FUN_00154d32") (argument_list "("FUNCTAB",7)" (( "(") (string_literal ""FUNCTAB"" (" """) (string_content "FUNCTAB") (" """)) (, ",") (number_literal "7") () ")")))) (; ";")) (expression_statement "DAT_0039e4c8 = FUN_0016086b(uVar2,5);" (assignment_expression "DAT_0039e4c8 = FUN_0016086b(uVar2,5)" (identifier "DAT_0039e4c8") (= "=") (call_expression "FUN_0016086b(uVar2,5)" (identifier "FUN_0016086b") (argument_list "(uVar2,5)" (( "(") (identifier "uVar2") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "uVar2 = FUN_00154d32("SYMTAB",6);" (assignment_expression "uVar2 = FUN_00154d32("SYMTAB",6)" (identifier "uVar2") (= "=") (call_expression "FUN_00154d32("SYMTAB",6)" (identifier "FUN_00154d32") (argument_list "("SYMTAB",6)" (( "(") (string_literal ""SYMTAB"" (" """) (string_content "SYMTAB") (" """)) (, ",") (number_literal "6") () ")")))) (; ";")) (expression_statement "DAT_0039e4c0 = FUN_0016086b(uVar2,5);" (assignment_expression "DAT_0039e4c0 = FUN_0016086b(uVar2,5)" (identifier "DAT_0039e4c0") (= "=") (call_expression "FUN_0016086b(uVar2,5)" (identifier "FUN_0016086b") (argument_list "(uVar2,5)" (( "(") (identifier "uVar2") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "DAT_0039cbe8 = 0;" (assignment_expression "DAT_0039cbe8 = 0" (identifier "DAT_0039cbe8") (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 *pNVar1;
  char *pcVar2;
  
  global_table = var_3.lptr;
  if (var_3.lptr == (type_2 *)0x0) {
    global_table = (type_1 *)var_1(L'\0');
  }
  else {
    var_3 = ((var_3.lptr)->sub).nodep.l;
  }
  pNVar1 = global_table;
  (global_table->sub).val.fltnum = 0.0;
  (pNVar1->sub).val.sp = (char *)0x0;
  (pNVar1->sub).val.slen = 0;
  (pNVar1->sub).val.sref = 0;
  (pNVar1->sub).nodep.name = (char *)0x0;
  (pNVar1->sub).nodep.reserved = 0;
  (pNVar1->sub).nodep.rn = (type_2 *)0x0;
  (pNVar1->sub).nodep.cnt = 0;
  (pNVar1->sub).nodep.reflags = 0;
  pNVar1->type = Node_illegal;
  pNVar1->flags = 0;
  var_2(pNVar1);
  param_table = (type_1 *)var_3;
  if (var_3 == (type_3)0x0) {
    param_table = (type_1 *)var_1(L'\0');
  }
  else {
    var_3 = ((var_3.lptr)->sub).nodep.l;
  }
  pNVar1 = param_table;
  (param_table->sub).val.fltnum = 0.0;
  (pNVar1->sub).val.sp = (char *)0x0;
  (pNVar1->sub).val.slen = 0;
  (pNVar1->sub).val.sref = 0;
  (pNVar1->sub).nodep.name = (char *)0x0;
  (pNVar1->sub).nodep.reserved = 0;
  (pNVar1->sub).nodep.rn = (type_2 *)0x0;
  (pNVar1->sub).nodep.cnt = 0;
  (pNVar1->sub).nodep.reflags = 0;
  pNVar1->type = Node_illegal;
  pNVar1->flags = 0;
  var_2(pNVar1);
  installing_specials = true;
  pcVar2 = var_4("FUNCTAB",7);
  func_table = var_5(pcVar2,Node_var_array);
  pcVar2 = var_4("SYMTAB",6);
  symbol_table = var_5(pcVar2,Node_var_array);
  installing_specials = false;
  return;
}


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

void MASKED(void)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  
  DAT_0039cbf8 = DAT_00396dc0;
  if (DAT_00396dc0 == (undefined8 *)0x0) {
    DAT_0039cbf8 = (undefined8 *)FUN_0015895f(0);
  }
  else {
    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;
  }
  puVar1 = DAT_0039cbf8;
  *DAT_0039cbf8 = 0;
  puVar1[1] = 0;
  puVar1[2] = 0;
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  FUN_00109d21();
  DAT_0039cbf0 = DAT_00396dc0;
  if (DAT_00396dc0 == (undefined8 *)0x0) {
    DAT_0039cbf0 = (undefined8 *)FUN_0015895f(0);
  }
  else {
    DAT_00396dc0 = (undefined8 *)*DAT_00396dc0;
  }
  puVar1 = DAT_0039cbf0;
  *DAT_0039cbf0 = 0;
  puVar1[1] = 0;
  puVar1[2] = 0;
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  FUN_00109d21();
  DAT_0039cbe8 = 1;
  uVar2 = FUN_00154d32("FUNCTAB",7);
  DAT_0039e4c8 = FUN_0016086b(uVar2,5);
  uVar2 = FUN_00154d32("SYMTAB",6);
  DAT_0039e4c0 = FUN_0016086b(uVar2,5);
  DAT_0039cbe8 = 0;
  return;
}

