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

void __regparm3 briefly_report(int changes,file_data *filevec)

{
  char *format_msgid;
  char *arg1;
  char *arg2;
  
  arg2 = file_label[1];
  if (file_label[1] == (char *)0x0) {
    arg2 = *(char **)(changes + 0xb4);
  }
  arg1 = file_label[0];
  if (file_label[0] == (char *)0x0) {
    arg1 = *(char **)(changes + 4);
  }
  if (brief) {
    format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5);
  }
  else {
    format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);
  }
  message(format_msgid,arg1,arg2);
  return;
}



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

void __regparm3 FUN_000145f0(int param_1)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  
  iVar3 = DAT_0004d648;
  if (DAT_0004d648 == 0) {
    iVar3 = *(int *)(param_1 + 0xb4);
  }
  iVar2 = DAT_0004d644;
  if (DAT_0004d644 == 0) {
    iVar2 = *(int *)(param_1 + 4);
  }
  if (DAT_0004d695 == '\0') {
    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);
  }
  else {
    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);
  }
  FUN_0001c2a0(uVar1,iVar2,iVar3);
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013b20
ADD EBX,0x38a08
LEA EDX,[EBX + 0x644]
MOV EDI,dword ptr [EDX + 0x4]
TEST EDI,EDI
JZ 0x00014668
MOV ESI,dword ptr [EDX]
TEST ESI,ESI
JZ 0x00014660
LEA EAX,[EBX + 0x695]
CMP byte ptr [EAX],0x0
JZ 0x00014648
SUB ESP,0x4
LEA EAX,[EBX + 0xfffef008]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000121d0
ADD ESP,0x10
SUB ESP,0x4
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x0001c2a0
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffef03c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000121d0
ADD ESP,0x10
JMP 0x00014632
MOV ESI,dword ptr [EAX + 0x4]
JMP 0x00014611
MOV EDI,dword ptr [EAX + 0xb4]
JMP 0x0001460b
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_000145f0(int param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_000145f0(int param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000145f0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = DAT_0004d648;" (assignment_expression "iVar3 = DAT_0004d648" identifier = identifier) ;) (if_statement "if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }" if (parenthesized_expression "(DAT_0004d648 == 0)" ( (binary_expression "DAT_0004d648 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }" { (expression_statement "iVar3 = *(int *)(param_1 + 0xb4);" (assignment_expression "iVar3 = *(int *)(param_1 + 0xb4)" identifier = (pointer_expression "*(int *)(param_1 + 0xb4)" * (cast_expression "(int *)(param_1 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar2 = DAT_0004d644;" (assignment_expression "iVar2 = DAT_0004d644" identifier = identifier) ;) (if_statement "if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }" if (parenthesized_expression "(DAT_0004d644 == 0)" ( (binary_expression "DAT_0004d644 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 4);\n  }" { (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" if (parenthesized_expression "(DAT_0004d695 == '\0')" ( (binary_expression "DAT_0004d695 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }" { (expression_statement "uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);" (assignment_expression "uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5)" identifier = (call_expression "dcgettext(0,"Binary files %s and %s differ\n",5)" identifier (argument_list "(0,"Binary files %s and %s differ\n",5)" ( number_literal , (string_literal ""Binary files %s and %s differ\n"" " string_content escape_sequence ") , number_literal )))) ;) }) (else_clause "else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" else (compound_statement "{\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" { (expression_statement "uVar1 = dcgettext(0,"Files %s and %s differ\n",5);" (assignment_expression "uVar1 = dcgettext(0,"Files %s and %s differ\n",5)" identifier = (call_expression "dcgettext(0,"Files %s and %s differ\n",5)" identifier (argument_list "(0,"Files %s and %s differ\n",5)" ( number_literal , (string_literal ""Files %s and %s differ\n"" " string_content escape_sequence ") , number_literal )))) ;) }))) (expression_statement "FUN_0001c2a0(uVar1,iVar2,iVar3);" (call_expression "FUN_0001c2a0(uVar1,iVar2,iVar3)" identifier (argument_list "(uVar1,iVar2,iVar3)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 briefly_report(int changes,file_data *filevec)\n\n{\n  char *format_msgid;\n  char *arg1;\n  char *arg2;\n  \n  arg2 = file_label[1];\n  if (file_label[1] == (char *)0x0) {\n    arg2 = *(char **)(changes + 0xb4);\n  }\n  arg1 = file_label[0];\n  if (file_label[0] == (char *)0x0) {\n    arg1 = *(char **)(changes + 4);\n  }\n  if (brief) {\n    format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  else {\n    format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  message(format_msgid,arg1,arg2);\n  return;\n}\n\n" comment (function_definition "void __regparm3 briefly_report(int changes,file_data *filevec)\n\n{\n  char *format_msgid;\n  char *arg1;\n  char *arg2;\n  \n  arg2 = file_label[1];\n  if (file_label[1] == (char *)0x0) {\n    arg2 = *(char **)(changes + 0xb4);\n  }\n  arg1 = file_label[0];\n  if (file_label[0] == (char *)0x0) {\n    arg1 = *(char **)(changes + 4);\n  }\n  if (brief) {\n    format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  else {\n    format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  message(format_msgid,arg1,arg2);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "briefly_report(int changes,file_data *filevec)" identifier (parameter_list "(int changes,file_data *filevec)" ( (parameter_declaration "int changes" primitive_type identifier) , (parameter_declaration "file_data *filevec" type_identifier (pointer_declarator "*filevec" * identifier)) ))) (compound_statement "{\n  char *format_msgid;\n  char *arg1;\n  char *arg2;\n  \n  arg2 = file_label[1];\n  if (file_label[1] == (char *)0x0) {\n    arg2 = *(char **)(changes + 0xb4);\n  }\n  arg1 = file_label[0];\n  if (file_label[0] == (char *)0x0) {\n    arg1 = *(char **)(changes + 4);\n  }\n  if (brief) {\n    format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  else {\n    format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  message(format_msgid,arg1,arg2);\n  return;\n}" { (declaration "char *format_msgid;" primitive_type (pointer_declarator "*format_msgid" * identifier) ;) (declaration "char *arg1;" primitive_type (pointer_declarator "*arg1" * identifier) ;) (declaration "char *arg2;" primitive_type (pointer_declarator "*arg2" * identifier) ;) (expression_statement "arg2 = file_label[1];" (assignment_expression "arg2 = file_label[1]" identifier = (subscript_expression "file_label[1]" identifier [ number_literal ])) ;) (if_statement "if (file_label[1] == (char *)0x0) {\n    arg2 = *(char **)(changes + 0xb4);\n  }" if (parenthesized_expression "(file_label[1] == (char *)0x0)" ( (binary_expression "file_label[1] == (char *)0x0" (subscript_expression "file_label[1]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    arg2 = *(char **)(changes + 0xb4);\n  }" { (expression_statement "arg2 = *(char **)(changes + 0xb4);" (assignment_expression "arg2 = *(char **)(changes + 0xb4)" identifier = (pointer_expression "*(char **)(changes + 0xb4)" * (cast_expression "(char **)(changes + 0xb4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(changes + 0xb4)" ( (binary_expression "changes + 0xb4" identifier + number_literal) ))))) ;) })) (expression_statement "arg1 = file_label[0];" (assignment_expression "arg1 = file_label[0]" identifier = (subscript_expression "file_label[0]" identifier [ number_literal ])) ;) (if_statement "if (file_label[0] == (char *)0x0) {\n    arg1 = *(char **)(changes + 4);\n  }" if (parenthesized_expression "(file_label[0] == (char *)0x0)" ( (binary_expression "file_label[0] == (char *)0x0" (subscript_expression "file_label[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    arg1 = *(char **)(changes + 4);\n  }" { (expression_statement "arg1 = *(char **)(changes + 4);" (assignment_expression "arg1 = *(char **)(changes + 4)" identifier = (pointer_expression "*(char **)(changes + 4)" * (cast_expression "(char **)(changes + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(changes + 4)" ( (binary_expression "changes + 4" identifier + number_literal) ))))) ;) })) (if_statement "if (brief) {\n    format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  else {\n    format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);\n  }" if (parenthesized_expression "(brief)" ( identifier )) (compound_statement "{\n    format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5);\n  }" { (expression_statement "format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5);" (assignment_expression "format_msgid = (char *)dcgettext(0,"Files %s and %s differ\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Files %s and %s differ\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Files %s and %s differ\n",5)" identifier (argument_list "(0,"Files %s and %s differ\n",5)" ( number_literal , (string_literal ""Files %s and %s differ\n"" " string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n    format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);\n  }" else (compound_statement "{\n    format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);\n  }" { (expression_statement "format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5);" (assignment_expression "format_msgid = (char *)dcgettext(0,"Binary files %s and %s differ\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Binary files %s and %s differ\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Binary files %s and %s differ\n",5)" identifier (argument_list "(0,"Binary files %s and %s differ\n",5)" ( number_literal , (string_literal ""Binary files %s and %s differ\n"" " string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "message(format_msgid,arg1,arg2);" (call_expression "message(format_msgid,arg1,arg2)" identifier (argument_list "(format_msgid,arg1,arg2)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_000145f0(int param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_000145f0(int param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000145f0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "iVar3 = DAT_0004d648;" (assignment_expression "iVar3 = DAT_0004d648" identifier = identifier) ;) (if_statement "if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }" if (parenthesized_expression "(DAT_0004d648 == 0)" ( (binary_expression "DAT_0004d648 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }" { (expression_statement "iVar3 = *(int *)(param_1 + 0xb4);" (assignment_expression "iVar3 = *(int *)(param_1 + 0xb4)" identifier = (pointer_expression "*(int *)(param_1 + 0xb4)" * (cast_expression "(int *)(param_1 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xb4)" ( (binary_expression "param_1 + 0xb4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar2 = DAT_0004d644;" (assignment_expression "iVar2 = DAT_0004d644" identifier = identifier) ;) (if_statement "if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }" if (parenthesized_expression "(DAT_0004d644 == 0)" ( (binary_expression "DAT_0004d644 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 4);\n  }" { (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" if (parenthesized_expression "(DAT_0004d695 == '\0')" ( (binary_expression "DAT_0004d695 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }" { (expression_statement "uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);" (assignment_expression "uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5)" identifier = (call_expression "dcgettext(0,"Binary files %s and %s differ\n",5)" identifier (argument_list "(0,"Binary files %s and %s differ\n",5)" ( number_literal , (string_literal ""Binary files %s and %s differ\n"" " string_content escape_sequence ") , number_literal )))) ;) }) (else_clause "else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" else (compound_statement "{\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" { (expression_statement "uVar1 = dcgettext(0,"Files %s and %s differ\n",5);" (assignment_expression "uVar1 = dcgettext(0,"Files %s and %s differ\n",5)" identifier = (call_expression "dcgettext(0,"Files %s and %s differ\n",5)" identifier (argument_list "(0,"Files %s and %s differ\n",5)" ( number_literal , (string_literal ""Files %s and %s differ\n"" " string_content escape_sequence ") , number_literal )))) ;) }))) (expression_statement "FUN_0001c2a0(uVar1,iVar2,iVar3);" (call_expression "FUN_0001c2a0(uVar1,iVar2,iVar3)" identifier (argument_list "(uVar1,iVar2,iVar3)" ( identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_000145f0(int param_1)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000145f0(int param_1)" (identifier "FUN_000145f0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  int iVar3;\n  \n  iVar3 = DAT_0004d648;\n  if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }\n  iVar2 = DAT_0004d644;\n  if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }\n  if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }\n  FUN_0001c2a0(uVar1,iVar2,iVar3);\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "iVar3 = DAT_0004d648;" (assignment_expression "iVar3 = DAT_0004d648" (identifier "iVar3") (= "=") (identifier "DAT_0004d648")) (; ";")) (if_statement "if (DAT_0004d648 == 0) {\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }" (if "if") (parenthesized_expression "(DAT_0004d648 == 0)" (( "(") (binary_expression "DAT_0004d648 == 0" (identifier "DAT_0004d648") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = *(int *)(param_1 + 0xb4);\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 0xb4);" (assignment_expression "iVar3 = *(int *)(param_1 + 0xb4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 0xb4)" (* "*") (cast_expression "(int *)(param_1 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xb4)" (( "(") (binary_expression "param_1 + 0xb4" (identifier "param_1") (+ "+") (number_literal "0xb4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar2 = DAT_0004d644;" (assignment_expression "iVar2 = DAT_0004d644" (identifier "iVar2") (= "=") (identifier "DAT_0004d644")) (; ";")) (if_statement "if (DAT_0004d644 == 0) {\n    iVar2 = *(int *)(param_1 + 4);\n  }" (if "if") (parenthesized_expression "(DAT_0004d644 == 0)" (( "(") (binary_expression "DAT_0004d644 == 0" (identifier "DAT_0004d644") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = *(int *)(param_1 + 4);\n  }" ({ "{") (expression_statement "iVar2 = *(int *)(param_1 + 4);" (assignment_expression "iVar2 = *(int *)(param_1 + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (DAT_0004d695 == '\0') {\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }\n  else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" (if "if") (parenthesized_expression "(DAT_0004d695 == '\0')" (( "(") (binary_expression "DAT_0004d695 == '\0'" (identifier "DAT_0004d695") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);\n  }" ({ "{") (expression_statement "uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);" (assignment_expression "uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"Binary files %s and %s differ\n",5)" (identifier "dcgettext") (argument_list "(0,"Binary files %s and %s differ\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Binary files %s and %s differ\n"" (" """) (string_content "Binary files %s and %s differ") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" (else "else") (compound_statement "{\n    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);\n  }" ({ "{") (expression_statement "uVar1 = dcgettext(0,"Files %s and %s differ\n",5);" (assignment_expression "uVar1 = dcgettext(0,"Files %s and %s differ\n",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"Files %s and %s differ\n",5)" (identifier "dcgettext") (argument_list "(0,"Files %s and %s differ\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Files %s and %s differ\n"" (" """) (string_content "Files %s and %s differ") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")))) (expression_statement "FUN_0001c2a0(uVar1,iVar2,iVar3);" (call_expression "FUN_0001c2a0(uVar1,iVar2,iVar3)" (identifier "FUN_0001c2a0") (argument_list "(uVar1,iVar2,iVar3)" (( "(") (identifier "uVar1") (, ",") (identifier "iVar2") (, ",") (identifier "iVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(int var_1,type_1 *filevec)

{
  char *format_msgid;
  char *arg1;
  char *arg2;
  
  arg2 = file_label[1];
  if (file_label[1] == (char *)0x0) {
    arg2 = *(char **)(var_1 + 0xb4);
  }
  arg1 = file_label[0];
  if (file_label[0] == (char *)0x0) {
    arg1 = *(char **)(var_1 + 4);
  }
  if (brief) {
    format_msgid = (char *)var_2(0,"Files %s and %s differ\n",5);
  }
  else {
    format_msgid = (char *)var_2(0,"Binary files %s and %s differ\n",5);
  }
  var_3(format_msgid,arg1,arg2);
  return;
}


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

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

void __regparm3 MASKED(int param_1)

{
  undefined4 uVar1;
  int iVar2;
  int iVar3;
  
  iVar3 = DAT_0004d648;
  if (DAT_0004d648 == 0) {
    iVar3 = *(int *)(param_1 + 0xb4);
  }
  iVar2 = DAT_0004d644;
  if (DAT_0004d644 == 0) {
    iVar2 = *(int *)(param_1 + 4);
  }
  if (DAT_0004d695 == '\0') {
    uVar1 = dcgettext(0,"Binary files %s and %s differ\n",5);
  }
  else {
    uVar1 = dcgettext(0,"Files %s and %s differ\n",5);
  }
  FUN_0001c2a0(uVar1,iVar2,iVar3);
  return;
}

