
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void new_magicline(void)

{
  filestruct *pfVar1;
  openfilestruct *poVar2;
  filestruct *pfVar3;
  char *pcVar4;
  
  pfVar1 = openfile->filebot;
  pfVar3 = make_new_node(pfVar1);
  pfVar1->next = pfVar3;
  pfVar1 = openfile->filebot->next;
  pcVar4 = mallocstrcpy((char *)0x0,"");
  pfVar1->data = pcVar4;
  poVar2 = openfile;
  pfVar1 = openfile->filebot->next;
  openfile->totsize = openfile->totsize + 1;
  poVar2->filebot = pfVar1;
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00035a30(void)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  
  iVar1 = *(int *)(DAT_0006b640 + 8);
  uVar3 = FUN_00025500(iVar1);
  *(undefined4 *)(iVar1 + 8) = uVar3;
  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);
  uVar3 = FUN_00035640(0,&DAT_000503a2);
  *puVar2 = uVar3;
  iVar1 = DAT_0006b640;
  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);
  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;
  *(undefined4 *)(iVar1 + 8) = uVar3;
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00014e20
ADD EBX,0x35198
SUB ESP,0xc
LEA ESI,[EBX + 0xa70]
MOV EAX,dword ptr [ESI]
MOV EDI,dword ptr [EAX + 0x8]
PUSH EDI
CALL 0x00025500
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0x8]
MOV EDI,dword ptr [EAX + 0x8]
POP EAX
LEA EAX,[EBX + 0xfffe57d2]
POP EDX
PUSH EAX
PUSH 0x0
CALL 0x00035640
ADD ESP,0x10
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [ESI]
MOV EDX,dword ptr [EAX + 0x8]
MOV EDX,dword ptr [EDX + 0x8]
ADD dword ptr [EAX + 0x14],0x1
MOV dword ptr [EAX + 0x8],EDX
POP EBX
POP ESI
POP EDI
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00035a30(void)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}\n\n" comment (function_definition "void FUN_00035a30(void)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}" primitive_type (function_declarator "FUN_00035a30(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(DAT_0006b640 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0006b640 + 8)" identifier = (pointer_expression "*(int *)(DAT_0006b640 + 8)" * (cast_expression "(int *)(DAT_0006b640 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 8)" ( (binary_expression "DAT_0006b640 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00025500(iVar1);" (assignment_expression "uVar3 = FUN_00025500(iVar1)" identifier = (call_expression "FUN_00025500(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" * (cast_expression "(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0006b640 + 8) + 8)" ( (binary_expression "*(int *)(DAT_0006b640 + 8) + 8" (pointer_expression "*(int *)(DAT_0006b640 + 8)" * (cast_expression "(int *)(DAT_0006b640 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 8)" ( (binary_expression "DAT_0006b640 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00035640(0,&DAT_000503a2);" (assignment_expression "uVar3 = FUN_00035640(0,&DAT_000503a2)" identifier = (call_expression "FUN_00035640(0,&DAT_000503a2)" identifier (argument_list "(0,&DAT_000503a2)" ( number_literal , (pointer_expression "&DAT_000503a2" & identifier) )))) ;) (expression_statement "*puVar2 = uVar3;" (assignment_expression "*puVar2 = uVar3" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "iVar1 = DAT_0006b640;" (assignment_expression "iVar1 = DAT_0006b640" identifier = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0006b640 + 8) + 8)" ( (binary_expression "*(int *)(DAT_0006b640 + 8) + 8" (pointer_expression "*(int *)(DAT_0006b640 + 8)" * (cast_expression "(int *)(DAT_0006b640 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 8)" ( (binary_expression "DAT_0006b640 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;" (assignment_expression "*(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1" (pointer_expression "*(int *)(DAT_0006b640 + 0x14)" * (cast_expression "(int *)(DAT_0006b640 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 0x14)" ( (binary_expression "DAT_0006b640 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(DAT_0006b640 + 0x14) + 1" (pointer_expression "*(int *)(DAT_0006b640 + 0x14)" * (cast_expression "(int *)(DAT_0006b640 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 0x14)" ( (binary_expression "DAT_0006b640 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid new_magicline(void)\n\n{\n  filestruct *pfVar1;\n  openfilestruct *poVar2;\n  filestruct *pfVar3;\n  char *pcVar4;\n  \n  pfVar1 = openfile->filebot;\n  pfVar3 = make_new_node(pfVar1);\n  pfVar1->next = pfVar3;\n  pfVar1 = openfile->filebot->next;\n  pcVar4 = mallocstrcpy((char *)0x0,"");\n  pfVar1->data = pcVar4;\n  poVar2 = openfile;\n  pfVar1 = openfile->filebot->next;\n  openfile->totsize = openfile->totsize + 1;\n  poVar2->filebot = pfVar1;\n  return;\n}\n\n" comment comment (function_definition "void new_magicline(void)\n\n{\n  filestruct *pfVar1;\n  openfilestruct *poVar2;\n  filestruct *pfVar3;\n  char *pcVar4;\n  \n  pfVar1 = openfile->filebot;\n  pfVar3 = make_new_node(pfVar1);\n  pfVar1->next = pfVar3;\n  pfVar1 = openfile->filebot->next;\n  pcVar4 = mallocstrcpy((char *)0x0,"");\n  pfVar1->data = pcVar4;\n  poVar2 = openfile;\n  pfVar1 = openfile->filebot->next;\n  openfile->totsize = openfile->totsize + 1;\n  poVar2->filebot = pfVar1;\n  return;\n}" primitive_type (function_declarator "new_magicline(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  filestruct *pfVar1;\n  openfilestruct *poVar2;\n  filestruct *pfVar3;\n  char *pcVar4;\n  \n  pfVar1 = openfile->filebot;\n  pfVar3 = make_new_node(pfVar1);\n  pfVar1->next = pfVar3;\n  pfVar1 = openfile->filebot->next;\n  pcVar4 = mallocstrcpy((char *)0x0,"");\n  pfVar1->data = pcVar4;\n  poVar2 = openfile;\n  pfVar1 = openfile->filebot->next;\n  openfile->totsize = openfile->totsize + 1;\n  poVar2->filebot = pfVar1;\n  return;\n}" { (declaration "filestruct *pfVar1;" type_identifier (pointer_declarator "*pfVar1" * identifier) ;) (declaration "openfilestruct *poVar2;" type_identifier (pointer_declarator "*poVar2" * identifier) ;) (declaration "filestruct *pfVar3;" type_identifier (pointer_declarator "*pfVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pfVar1 = openfile->filebot;" (assignment_expression "pfVar1 = openfile->filebot" identifier = (field_expression "openfile->filebot" identifier -> field_identifier)) ;) (expression_statement "pfVar3 = make_new_node(pfVar1);" (assignment_expression "pfVar3 = make_new_node(pfVar1)" identifier = (call_expression "make_new_node(pfVar1)" identifier (argument_list "(pfVar1)" ( identifier )))) ;) (expression_statement "pfVar1->next = pfVar3;" (assignment_expression "pfVar1->next = pfVar3" (field_expression "pfVar1->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pfVar1 = openfile->filebot->next;" (assignment_expression "pfVar1 = openfile->filebot->next" identifier = (field_expression "openfile->filebot->next" (field_expression "openfile->filebot" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pcVar4 = mallocstrcpy((char *)0x0,"");" (assignment_expression "pcVar4 = mallocstrcpy((char *)0x0,"")" identifier = (call_expression "mallocstrcpy((char *)0x0,"")" identifier (argument_list "((char *)0x0,"")" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal """" " ") )))) ;) (expression_statement "pfVar1->data = pcVar4;" (assignment_expression "pfVar1->data = pcVar4" (field_expression "pfVar1->data" identifier -> field_identifier) = identifier) ;) (expression_statement "poVar2 = openfile;" (assignment_expression "poVar2 = openfile" identifier = identifier) ;) (expression_statement "pfVar1 = openfile->filebot->next;" (assignment_expression "pfVar1 = openfile->filebot->next" identifier = (field_expression "openfile->filebot->next" (field_expression "openfile->filebot" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "openfile->totsize = openfile->totsize + 1;" (assignment_expression "openfile->totsize = openfile->totsize + 1" (field_expression "openfile->totsize" identifier -> field_identifier) = (binary_expression "openfile->totsize + 1" (field_expression "openfile->totsize" identifier -> field_identifier) + number_literal)) ;) (expression_statement "poVar2->filebot = pfVar1;" (assignment_expression "poVar2->filebot = pfVar1" (field_expression "poVar2->filebot" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00035a30(void)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}\n\n" (function_definition "void FUN_00035a30(void)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}" primitive_type (function_declarator "FUN_00035a30(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (expression_statement "iVar1 = *(int *)(DAT_0006b640 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0006b640 + 8)" identifier = (pointer_expression "*(int *)(DAT_0006b640 + 8)" * (cast_expression "(int *)(DAT_0006b640 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 8)" ( (binary_expression "DAT_0006b640 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00025500(iVar1);" (assignment_expression "uVar3 = FUN_00025500(iVar1)" identifier = (call_expression "FUN_00025500(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" * (cast_expression "(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_0006b640 + 8) + 8)" ( (binary_expression "*(int *)(DAT_0006b640 + 8) + 8" (pointer_expression "*(int *)(DAT_0006b640 + 8)" * (cast_expression "(int *)(DAT_0006b640 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 8)" ( (binary_expression "DAT_0006b640 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_00035640(0,&DAT_000503a2);" (assignment_expression "uVar3 = FUN_00035640(0,&DAT_000503a2)" identifier = (call_expression "FUN_00035640(0,&DAT_000503a2)" identifier (argument_list "(0,&DAT_000503a2)" ( number_literal , (pointer_expression "&DAT_000503a2" & identifier) )))) ;) (expression_statement "*puVar2 = uVar3;" (assignment_expression "*puVar2 = uVar3" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "iVar1 = DAT_0006b640;" (assignment_expression "iVar1 = DAT_0006b640" identifier = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" * (cast_expression "(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0006b640 + 8) + 8)" ( (binary_expression "*(int *)(DAT_0006b640 + 8) + 8" (pointer_expression "*(int *)(DAT_0006b640 + 8)" * (cast_expression "(int *)(DAT_0006b640 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 8)" ( (binary_expression "DAT_0006b640 + 8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;" (assignment_expression "*(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1" (pointer_expression "*(int *)(DAT_0006b640 + 0x14)" * (cast_expression "(int *)(DAT_0006b640 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 0x14)" ( (binary_expression "DAT_0006b640 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(DAT_0006b640 + 0x14) + 1" (pointer_expression "*(int *)(DAT_0006b640 + 0x14)" * (cast_expression "(int *)(DAT_0006b640 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 0x14)" ( (binary_expression "DAT_0006b640 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar1 + 8)" * (cast_expression "(undefined4 *)(iVar1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 8)" ( (binary_expression "iVar1 + 8" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_00035a30(void)\n\n{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00035a30(void)" (identifier "FUN_00035a30") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 *puVar2;\n  undefined4 uVar3;\n  \n  iVar1 = *(int *)(DAT_0006b640 + 8);\n  uVar3 = FUN_00025500(iVar1);\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);\n  uVar3 = FUN_00035640(0,&DAT_000503a2);\n  *puVar2 = uVar3;\n  iVar1 = DAT_0006b640;\n  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);\n  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;\n  *(undefined4 *)(iVar1 + 8) = uVar3;\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (expression_statement "iVar1 = *(int *)(DAT_0006b640 + 8);" (assignment_expression "iVar1 = *(int *)(DAT_0006b640 + 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(DAT_0006b640 + 8)" (* "*") (cast_expression "(int *)(DAT_0006b640 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0006b640 + 8)" (( "(") (binary_expression "DAT_0006b640 + 8" (identifier "DAT_0006b640") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_00025500(iVar1);" (assignment_expression "uVar3 = FUN_00025500(iVar1)" (identifier "uVar3") (= "=") (call_expression "FUN_00025500(iVar1)" (identifier "FUN_00025500") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar1 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" (* "*") (cast_expression "(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_0006b640 + 8) + 8)" (( "(") (binary_expression "*(int *)(DAT_0006b640 + 8) + 8" (pointer_expression "*(int *)(DAT_0006b640 + 8)" (* "*") (cast_expression "(int *)(DAT_0006b640 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0006b640 + 8)" (( "(") (binary_expression "DAT_0006b640 + 8" (identifier "DAT_0006b640") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_00035640(0,&DAT_000503a2);" (assignment_expression "uVar3 = FUN_00035640(0,&DAT_000503a2)" (identifier "uVar3") (= "=") (call_expression "FUN_00035640(0,&DAT_000503a2)" (identifier "FUN_00035640") (argument_list "(0,&DAT_000503a2)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_000503a2" (& "&") (identifier "DAT_000503a2")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar3;" (assignment_expression "*puVar2 = uVar3" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar1 = DAT_0006b640;" (assignment_expression "iVar1 = DAT_0006b640" (identifier "iVar1") (= "=") (identifier "DAT_0006b640")) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);" (assignment_expression "uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0006b640 + 8) + 8)" (( "(") (binary_expression "*(int *)(DAT_0006b640 + 8) + 8" (pointer_expression "*(int *)(DAT_0006b640 + 8)" (* "*") (cast_expression "(int *)(DAT_0006b640 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0006b640 + 8)" (( "(") (binary_expression "DAT_0006b640 + 8" (identifier "DAT_0006b640") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;" (assignment_expression "*(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1" (pointer_expression "*(int *)(DAT_0006b640 + 0x14)" (* "*") (cast_expression "(int *)(DAT_0006b640 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0006b640 + 0x14)" (( "(") (binary_expression "DAT_0006b640 + 0x14" (identifier "DAT_0006b640") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)(DAT_0006b640 + 0x14) + 1" (pointer_expression "*(int *)(DAT_0006b640 + 0x14)" (* "*") (cast_expression "(int *)(DAT_0006b640 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0006b640 + 0x14)" (( "(") (binary_expression "DAT_0006b640 + 0x14" (identifier "DAT_0006b640") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar1 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar1 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 8)" (( "(") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 *pfVar1;
  type_2 *poVar2;
  type_1 *pfVar3;
  char *pcVar4;
  
  pfVar1 = openfile->filebot;
  pfVar3 = var_1(pfVar1);
  pfVar1->next = pfVar3;
  pfVar1 = openfile->filebot->next;
  pcVar4 = var_2((char *)0x0,"");
  pfVar1->data = pcVar4;
  poVar2 = openfile;
  pfVar1 = openfile->filebot->next;
  openfile->totsize = openfile->totsize + 1;
  poVar2->filebot = pfVar1;
  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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (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: (identifier) right: (number_literal))))) right: (identifier))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(void)

{
  int iVar1;
  undefined4 *puVar2;
  undefined4 uVar3;
  
  iVar1 = *(int *)(DAT_0006b640 + 8);
  uVar3 = FUN_00025500(iVar1);
  *(undefined4 *)(iVar1 + 8) = uVar3;
  puVar2 = *(undefined4 **)(*(int *)(DAT_0006b640 + 8) + 8);
  uVar3 = FUN_00035640(0,&DAT_000503a2);
  *puVar2 = uVar3;
  iVar1 = DAT_0006b640;
  uVar3 = *(undefined4 *)(*(int *)(DAT_0006b640 + 8) + 8);
  *(int *)(DAT_0006b640 + 0x14) = *(int *)(DAT_0006b640 + 0x14) + 1;
  *(undefined4 *)(iVar1 + 8) = uVar3;
  return;
}

