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

FOR_COM * __regparm3 copy_for_command(FOR_COM *com)

{
  WORD_DESC *pWVar1;
  FOR_COM *pFVar2;
  WORD_DESC *pWVar3;
  WORD_LIST *pWVar4;
  COMMAND *pCVar5;
  
  pFVar2 = (FOR_COM *)xmalloc(0x14);
  pWVar1 = com->name;
  pFVar2->flags = com->flags;
  pFVar2->line = com->line;
  pWVar3 = make_bare_word(pWVar1->word);
  pWVar3->flags = pWVar1->flags;
  pFVar2->name = pWVar3;
  pWVar4 = copy_word_list(com->map_list);
  pFVar2->map_list = pWVar4;
  pCVar5 = copy_command(com->action);
  pFVar2->action = pCVar5;
  return pFVar2;
}



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

undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 uVar4;
  
  puVar2 = (undefined4 *)xmalloc(0x14);
  puVar1 = (undefined4 *)param_1[2];
  *puVar2 = *param_1;
  puVar2[1] = param_1[1];
  iVar3 = make_bare_word(*puVar1);
  *(undefined4 *)(iVar3 + 4) = puVar1[1];
  puVar2[2] = iVar3;
  uVar4 = copy_word_list(param_1[3]);
  puVar2[3] = uVar4;
  uVar4 = copy_command(param_1[4]);
  puVar2[4] = uVar4;
  return puVar2;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x00031ed0
ADD EBX,0xf0be5
SUB ESP,0x18
PUSH 0x14
CALL 0x00099200
MOV EBP,dword ptr [EDI + 0x8]
MOV ESI,EAX
MOV EAX,dword ptr [EDI]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EDI + 0x4]
MOV dword ptr [ESI + 0x4],EAX
POP EAX
PUSH dword ptr [EBP]
CALL 0x00042a50
MOV EDX,dword ptr [EBP + 0x4]
MOV dword ptr [EAX + 0x4],EDX
MOV dword ptr [ESI + 0x8],EAX
POP EDX
PUSH dword ptr [EDI + 0xc]
CALL 0x00058d90
MOV dword ptr [ESI + 0xc],EAX
POP ECX
PUSH dword ptr [EDI + 0x10]
CALL 0x00058f70
MOV dword ptr [ESI + 0x10],EAX
ADD ESP,0x1c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 * __regparm3 FUN_00059410(undefined4 *param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar2 = (undefined4 *)xmalloc(0x14);\n  puVar1 = (undefined4 *)param_1[2];\n  *puVar2 = *param_1;\n  puVar2[1] = param_1[1];\n  iVar3 = make_bare_word(*puVar1);\n  *(undefined4 *)(iVar3 + 4) = puVar1[1];\n  puVar2[2] = iVar3;\n  uVar4 = copy_word_list(param_1[3]);\n  puVar2[3] = uVar4;\n  uVar4 = copy_command(param_1[4]);\n  puVar2[4] = uVar4;\n  return puVar2;\n}\n\n" comment (ERROR "undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)" (binary_expression "undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00059410(undefined4 *param_1)" identifier (argument_list "(undefined4 *param_1)" ( (binary_expression "undefined4 *param_1" identifier * identifier) ))))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar2 = (undefined4 *)xmalloc(0x14);\n  puVar1 = (undefined4 *)param_1[2];\n  *puVar2 = *param_1;\n  puVar2[1] = param_1[1];\n  iVar3 = make_bare_word(*puVar1);\n  *(undefined4 *)(iVar3 + 4) = puVar1[1];\n  puVar2[2] = iVar3;\n  uVar4 = copy_word_list(param_1[3]);\n  puVar2[3] = uVar4;\n  uVar4 = copy_command(param_1[4]);\n  puVar2[4] = uVar4;\n  return puVar2;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "puVar2 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar2 = (undefined4 *)xmalloc(0x14)" identifier = (cast_expression "(undefined4 *)xmalloc(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "puVar1 = (undefined4 *)param_1[2];" (assignment_expression "puVar1 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "*puVar2 = *param_1;" (assignment_expression "*puVar2 = *param_1" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar2[1] = param_1[1];" (assignment_expression "puVar2[1] = param_1[1]" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = make_bare_word(*puVar1);" (assignment_expression "iVar3 = make_bare_word(*puVar1)" identifier = (call_expression "make_bare_word(*puVar1)" identifier (argument_list "(*puVar1)" ( (pointer_expression "*puVar1" * identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 4) = puVar1[1];" (assignment_expression "*(undefined4 *)(iVar3 + 4) = puVar1[1]" (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[2] = iVar3;" (assignment_expression "puVar2[2] = iVar3" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = copy_word_list(param_1[3]);" (assignment_expression "uVar4 = copy_word_list(param_1[3])" identifier = (call_expression "copy_word_list(param_1[3])" identifier (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar2[3] = uVar4;" (assignment_expression "puVar2[3] = uVar4" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = copy_command(param_1[4]);" (assignment_expression "uVar4 = copy_command(param_1[4])" identifier = (call_expression "copy_command(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar2[4] = uVar4;" (assignment_expression "puVar2[4] = uVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar2;" return identifier ;) }))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nFOR_COM * __regparm3 copy_for_command(FOR_COM *com)\n\n{\n  WORD_DESC *pWVar1;\n  FOR_COM *pFVar2;\n  WORD_DESC *pWVar3;\n  WORD_LIST *pWVar4;\n  COMMAND *pCVar5;\n  \n  pFVar2 = (FOR_COM *)xmalloc(0x14);\n  pWVar1 = com->name;\n  pFVar2->flags = com->flags;\n  pFVar2->line = com->line;\n  pWVar3 = make_bare_word(pWVar1->word);\n  pWVar3->flags = pWVar1->flags;\n  pFVar2->name = pWVar3;\n  pWVar4 = copy_word_list(com->map_list);\n  pFVar2->map_list = pWVar4;\n  pCVar5 = copy_command(com->action);\n  pFVar2->action = pCVar5;\n  return pFVar2;\n}\n\n" comment (ERROR "FOR_COM * __regparm3 copy_for_command(FOR_COM *com)" (binary_expression "FOR_COM * __regparm3 copy_for_command(FOR_COM *com)" identifier * (ERROR "__regparm3" identifier) (call_expression "copy_for_command(FOR_COM *com)" identifier (argument_list "(FOR_COM *com)" ( (binary_expression "FOR_COM *com" identifier * identifier) ))))) (compound_statement "{\n  WORD_DESC *pWVar1;\n  FOR_COM *pFVar2;\n  WORD_DESC *pWVar3;\n  WORD_LIST *pWVar4;\n  COMMAND *pCVar5;\n  \n  pFVar2 = (FOR_COM *)xmalloc(0x14);\n  pWVar1 = com->name;\n  pFVar2->flags = com->flags;\n  pFVar2->line = com->line;\n  pWVar3 = make_bare_word(pWVar1->word);\n  pWVar3->flags = pWVar1->flags;\n  pFVar2->name = pWVar3;\n  pWVar4 = copy_word_list(com->map_list);\n  pFVar2->map_list = pWVar4;\n  pCVar5 = copy_command(com->action);\n  pFVar2->action = pCVar5;\n  return pFVar2;\n}" { (declaration "WORD_DESC *pWVar1;" type_identifier (pointer_declarator "*pWVar1" * identifier) ;) (declaration "FOR_COM *pFVar2;" type_identifier (pointer_declarator "*pFVar2" * identifier) ;) (declaration "WORD_DESC *pWVar3;" type_identifier (pointer_declarator "*pWVar3" * identifier) ;) (declaration "WORD_LIST *pWVar4;" type_identifier (pointer_declarator "*pWVar4" * identifier) ;) (declaration "COMMAND *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (expression_statement "pFVar2 = (FOR_COM *)xmalloc(0x14);" (assignment_expression "pFVar2 = (FOR_COM *)xmalloc(0x14)" identifier = (cast_expression "(FOR_COM *)xmalloc(0x14)" ( (type_descriptor "FOR_COM *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "pWVar1 = com->name;" (assignment_expression "pWVar1 = com->name" identifier = (field_expression "com->name" identifier -> field_identifier)) ;) (expression_statement "pFVar2->flags = com->flags;" (assignment_expression "pFVar2->flags = com->flags" (field_expression "pFVar2->flags" identifier -> field_identifier) = (field_expression "com->flags" identifier -> field_identifier)) ;) (expression_statement "pFVar2->line = com->line;" (assignment_expression "pFVar2->line = com->line" (field_expression "pFVar2->line" identifier -> field_identifier) = (field_expression "com->line" identifier -> field_identifier)) ;) (expression_statement "pWVar3 = make_bare_word(pWVar1->word);" (assignment_expression "pWVar3 = make_bare_word(pWVar1->word)" identifier = (call_expression "make_bare_word(pWVar1->word)" identifier (argument_list "(pWVar1->word)" ( (field_expression "pWVar1->word" identifier -> field_identifier) )))) ;) (expression_statement "pWVar3->flags = pWVar1->flags;" (assignment_expression "pWVar3->flags = pWVar1->flags" (field_expression "pWVar3->flags" identifier -> field_identifier) = (field_expression "pWVar1->flags" identifier -> field_identifier)) ;) (expression_statement "pFVar2->name = pWVar3;" (assignment_expression "pFVar2->name = pWVar3" (field_expression "pFVar2->name" identifier -> field_identifier) = identifier) ;) (expression_statement "pWVar4 = copy_word_list(com->map_list);" (assignment_expression "pWVar4 = copy_word_list(com->map_list)" identifier = (call_expression "copy_word_list(com->map_list)" identifier (argument_list "(com->map_list)" ( (field_expression "com->map_list" identifier -> field_identifier) )))) ;) (expression_statement "pFVar2->map_list = pWVar4;" (assignment_expression "pFVar2->map_list = pWVar4" (field_expression "pFVar2->map_list" identifier -> field_identifier) = identifier) ;) (expression_statement "pCVar5 = copy_command(com->action);" (assignment_expression "pCVar5 = copy_command(com->action)" identifier = (call_expression "copy_command(com->action)" identifier (argument_list "(com->action)" ( (field_expression "com->action" identifier -> field_identifier) )))) ;) (expression_statement "pFVar2->action = pCVar5;" (assignment_expression "pFVar2->action = pCVar5" (field_expression "pFVar2->action" identifier -> field_identifier) = identifier) ;) (return_statement "return pFVar2;" return identifier ;) }))
(translation_unit "undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)\n\n{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar2 = (undefined4 *)xmalloc(0x14);\n  puVar1 = (undefined4 *)param_1[2];\n  *puVar2 = *param_1;\n  puVar2[1] = param_1[1];\n  iVar3 = make_bare_word(*puVar1);\n  *(undefined4 *)(iVar3 + 4) = puVar1[1];\n  puVar2[2] = iVar3;\n  uVar4 = copy_word_list(param_1[3]);\n  puVar2[3] = uVar4;\n  uVar4 = copy_command(param_1[4]);\n  puVar2[4] = uVar4;\n  return puVar2;\n}\n\n" (ERROR "undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)" (binary_expression "undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)" identifier * (ERROR "__regparm3" identifier) (call_expression "FUN_00059410(undefined4 *param_1)" identifier (argument_list "(undefined4 *param_1)" ( (binary_expression "undefined4 *param_1" identifier * identifier) ))))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar2 = (undefined4 *)xmalloc(0x14);\n  puVar1 = (undefined4 *)param_1[2];\n  *puVar2 = *param_1;\n  puVar2[1] = param_1[1];\n  iVar3 = make_bare_word(*puVar1);\n  *(undefined4 *)(iVar3 + 4) = puVar1[1];\n  puVar2[2] = iVar3;\n  uVar4 = copy_word_list(param_1[3]);\n  puVar2[3] = uVar4;\n  uVar4 = copy_command(param_1[4]);\n  puVar2[4] = uVar4;\n  return puVar2;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (expression_statement "puVar2 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar2 = (undefined4 *)xmalloc(0x14)" identifier = (cast_expression "(undefined4 *)xmalloc(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "puVar1 = (undefined4 *)param_1[2];" (assignment_expression "puVar1 = (undefined4 *)param_1[2]" identifier = (cast_expression "(undefined4 *)param_1[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "*puVar2 = *param_1;" (assignment_expression "*puVar2 = *param_1" (pointer_expression "*puVar2" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar2[1] = param_1[1];" (assignment_expression "puVar2[1] = param_1[1]" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = make_bare_word(*puVar1);" (assignment_expression "iVar3 = make_bare_word(*puVar1)" identifier = (call_expression "make_bare_word(*puVar1)" identifier (argument_list "(*puVar1)" ( (pointer_expression "*puVar1" * identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 4) = puVar1[1];" (assignment_expression "*(undefined4 *)(iVar3 + 4) = puVar1[1]" (pointer_expression "*(undefined4 *)(iVar3 + 4)" * (cast_expression "(undefined4 *)(iVar3 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2[2] = iVar3;" (assignment_expression "puVar2[2] = iVar3" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = copy_word_list(param_1[3]);" (assignment_expression "uVar4 = copy_word_list(param_1[3])" identifier = (call_expression "copy_word_list(param_1[3])" identifier (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar2[3] = uVar4;" (assignment_expression "puVar2[3] = uVar4" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = copy_command(param_1[4]);" (assignment_expression "uVar4 = copy_command(param_1[4])" identifier = (call_expression "copy_command(param_1[4])" identifier (argument_list "(param_1[4])" ( (subscript_expression "param_1[4]" identifier [ number_literal ]) )))) ;) (expression_statement "puVar2[4] = uVar4;" (assignment_expression "puVar2[4] = uVar4" (subscript_expression "puVar2[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return puVar2;" return identifier ;) }))
(translation_unit (ERROR (binary_expression IDENT * (ERROR IDENT) (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) ))))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) }))
(ERROR "undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)" (binary_expression "undefined4 * __regparm3 FUN_00059410(undefined4 *param_1)" (identifier "undefined4") (* "*") (ERROR "__regparm3" (identifier "__regparm3")) (call_expression "FUN_00059410(undefined4 *param_1)" (identifier "FUN_00059410") (argument_list "(undefined4 *param_1)" (( "(") (binary_expression "undefined4 *param_1" (identifier "undefined4") (* "*") (identifier "param_1")) () ")"))))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  \n  puVar2 = (undefined4 *)xmalloc(0x14);\n  puVar1 = (undefined4 *)param_1[2];\n  *puVar2 = *param_1;\n  puVar2[1] = param_1[1];\n  iVar3 = make_bare_word(*puVar1);\n  *(undefined4 *)(iVar3 + 4) = puVar1[1];\n  puVar2[2] = iVar3;\n  uVar4 = copy_word_list(param_1[3]);\n  puVar2[3] = uVar4;\n  uVar4 = copy_command(param_1[4]);\n  puVar2[4] = uVar4;\n  return puVar2;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (expression_statement "puVar2 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar2 = (undefined4 *)xmalloc(0x14)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)xmalloc(0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x14)" (identifier "xmalloc") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "puVar1 = (undefined4 *)param_1[2];" (assignment_expression "puVar1 = (undefined4 *)param_1[2]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)param_1[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*puVar2 = *param_1;" (assignment_expression "*puVar2 = *param_1" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar2[1] = param_1[1];" (assignment_expression "puVar2[1] = param_1[1]" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar3 = make_bare_word(*puVar1);" (assignment_expression "iVar3 = make_bare_word(*puVar1)" (identifier "iVar3") (= "=") (call_expression "make_bare_word(*puVar1)" (identifier "make_bare_word") (argument_list "(*puVar1)" (( "(") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 4) = puVar1[1];" (assignment_expression "*(undefined4 *)(iVar3 + 4) = puVar1[1]" (pointer_expression "*(undefined4 *)(iVar3 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2[2] = iVar3;" (assignment_expression "puVar2[2] = iVar3" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar4 = copy_word_list(param_1[3]);" (assignment_expression "uVar4 = copy_word_list(param_1[3])" (identifier "uVar4") (= "=") (call_expression "copy_word_list(param_1[3])" (identifier "copy_word_list") (argument_list "(param_1[3])" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (expression_statement "puVar2[3] = uVar4;" (assignment_expression "puVar2[3] = uVar4" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar4 = copy_command(param_1[4]);" (assignment_expression "uVar4 = copy_command(param_1[4])" (identifier "uVar4") (= "=") (call_expression "copy_command(param_1[4])" (identifier "copy_command") (argument_list "(param_1[4])" (( "(") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) () ")")))) (; ";")) (expression_statement "puVar2[4] = uVar4;" (assignment_expression "puVar2[4] = uVar4" (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))

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

type_2 * __regparm3 copy_for_command(type_2 *com)

{
  type_1 *pWVar1;
  type_2 *pFVar2;
  type_1 *pWVar3;
  type_3 *pWVar4;
  type_4 *pCVar5;
  
  pFVar2 = (type_2 *)var_1(0x14);
  pWVar1 = com->name;
  pFVar2->flags = com->flags;
  pFVar2->line = com->line;
  pWVar3 = var_2(pWVar1->word);
  pWVar3->flags = pWVar1->flags;
  pFVar2->name = pWVar3;
  pWVar4 = var_3(com->map_list);
  pFVar2->map_list = pWVar4;
  pCVar5 = var_4(com->action);
  pFVar2->action = pCVar5;
  return pFVar2;
}


(translation_unit (ERROR (binary_expression left: (identifier) (ERROR (identifier)) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier))))

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

undefined4 * __regparm3 MASKED(undefined4 *param_1)

{
  undefined4 *puVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 uVar4;
  
  puVar2 = (undefined4 *)xmalloc(0x14);
  puVar1 = (undefined4 *)param_1[2];
  *puVar2 = *param_1;
  puVar2[1] = param_1[1];
  iVar3 = make_bare_word(*puVar1);
  *(undefined4 *)(iVar3 + 4) = puVar1[1];
  puVar2[2] = iVar3;
  uVar4 = copy_word_list(param_1[3]);
  puVar2[3] = uVar4;
  uVar4 = copy_command(param_1[4]);
  puVar2[4] = uVar4;
  return puVar2;
}

