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

void do_exit(void)

{
  char *pcVar1;
  int iVar2;
  
  if (openfile->modified == false) goto LAB_000271bb;
  if (*openfile->filename == '\0') {
    if ((flags[0] & 0x400) != 0) {
      pcVar1 = (char *)dcgettext(0,"No file name",5);
      warn_and_shortly_pause(pcVar1);
    }
LAB_00027155:
    pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",
                               5);
    iVar2 = do_yesno_prompt(false,pcVar1);
    if (iVar2 == 0) goto LAB_000271bb;
    if (iVar2 != 1) {
      pcVar1 = (char *)dcgettext(0,"Cancelled",5);
      statusbar(pcVar1);
      return;
    }
  }
  else if ((flags[0] & 0x400) == 0) goto LAB_00027155;
  iVar2 = do_writeout(true,true);
  if (iVar2 < 1) {
    return;
  }
LAB_000271bb:
  close_and_go();
  return;
}



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

void FUN_00027120(void)

{
  undefined4 uVar1;
  int iVar2;
  
  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;
  if (*(char *)*DAT_0006b640 == '\0') {
    if ((DAT_0006b664 & 0x400) != 0) {
      uVar1 = dcgettext(0,"No file name",5);
      FUN_000388a0(uVar1);
    }
LAB_00027155:
    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);
    iVar2 = FUN_00029d70(0,uVar1);
    if (iVar2 == 0) goto LAB_000271bb;
    if (iVar2 != 1) {
      uVar1 = dcgettext(0,"Cancelled",5);
      FUN_000386b0(uVar1);
      return;
    }
  }
  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;
  iVar2 = FUN_0001cfb0(1,1);
  if (iVar2 < 1) {
    return;
  }
LAB_000271bb:
  FUN_000270d0();
  return;
}


PUSH EBX
CALL 0x00014e20
ADD EBX,0x43aaa
SUB ESP,0x8
LEA EAX,[EBX + 0xa70]
MOV EDX,dword ptr [EAX]
CMP byte ptr [EDX + 0x28],0x0
JZ 0x000271bb
LEA EAX,[EBX + 0xa94]
MOV EDX,dword ptr [EDX]
MOV EAX,dword ptr [EAX]
AND EAX,0x400
CMP byte ptr [EDX],0x0
JZ 0x000271c8
TEST EAX,EAX
JNZ 0x000271a8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe5568]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000132e0
POP EDX
POP ECX
PUSH EAX
PUSH 0x0
CALL 0x00029d70
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000271bb
CMP EAX,0x1
JZ 0x000271a8
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe1477]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000132e0
MOV dword ptr [ESP],EAX
CALL 0x000386b0
ADD ESP,0x10
ADD ESP,0x8
POP EBX
RET
SUB ESP,0x8
PUSH 0x1
PUSH 0x1
CALL 0x0001cfb0
ADD ESP,0x10
TEST EAX,EAX
JLE 0x0002719c
ADD ESP,0x8
POP EBX
JMP 0x000270d0
TEST EAX,EAX
JZ 0x00027155
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe5cac]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000132e0
MOV dword ptr [ESP],EAX
CALL 0x000388a0
ADD ESP,0x10
JMP 0x00027155
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00027120(void)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}\n\n" comment (function_definition "void FUN_00027120(void)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}" primitive_type (function_declarator "FUN_00027120(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;" if (parenthesized_expression "(*(char *)(DAT_0006b640 + 10) == '\0')" ( (binary_expression "*(char *)(DAT_0006b640 + 10) == '\0'" (pointer_expression "*(char *)(DAT_0006b640 + 10)" * (cast_expression "(char *)(DAT_0006b640 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 10)" ( (binary_expression "DAT_0006b640 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000271bb;" goto statement_identifier ;)) (if_statement "if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" if (parenthesized_expression "(*(char *)*DAT_0006b640 == '\0')" ( (binary_expression "*(char *)*DAT_0006b640 == '\0'" (pointer_expression "*(char *)*DAT_0006b640" * (cast_expression "(char *)*DAT_0006b640" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_0006b640" * identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }" { (if_statement "if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }" if (parenthesized_expression "((DAT_0006b664 & 0x400) != 0)" ( (binary_expression "(DAT_0006b664 & 0x400) != 0" (parenthesized_expression "(DAT_0006b664 & 0x400)" ( (binary_expression "DAT_0006b664 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }" { (expression_statement "uVar1 = dcgettext(0,"No file name",5);" (assignment_expression "uVar1 = dcgettext(0,"No file name",5)" identifier = (call_expression "dcgettext(0,"No file name",5)" identifier (argument_list "(0,"No file name",5)" ( number_literal , (string_literal ""No file name"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000388a0(uVar1);" (call_expression "FUN_000388a0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (labeled_statement "LAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);" statement_identifier : (expression_statement "uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);" (assignment_expression "uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" identifier = (call_expression "dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" identifier (argument_list "(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" ( number_literal , (string_literal ""Save modified buffer?  (Answering \"No\" will DISCARD changes.) "" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;)) (expression_statement "iVar2 = FUN_00029d70(0,uVar1);" (assignment_expression "iVar2 = FUN_00029d70(0,uVar1)" identifier = (call_expression "FUN_00029d70(0,uVar1)" identifier (argument_list "(0,uVar1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_000271bb;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000271bb;" goto statement_identifier ;)) (if_statement "if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }" { (expression_statement "uVar1 = dcgettext(0,"Cancelled",5);" (assignment_expression "uVar1 = dcgettext(0,"Cancelled",5)" identifier = (call_expression "dcgettext(0,"Cancelled",5)" identifier (argument_list "(0,"Cancelled",5)" ( number_literal , (string_literal ""Cancelled"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000386b0(uVar1);" (call_expression "FUN_000386b0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" else (if_statement "if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" if (parenthesized_expression "((DAT_0006b664 & 0x400) == 0)" ( (binary_expression "(DAT_0006b664 & 0x400) == 0" (parenthesized_expression "(DAT_0006b664 & 0x400)" ( (binary_expression "DAT_0006b664 & 0x400" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00027155;" goto statement_identifier ;)))) (expression_statement "iVar2 = FUN_0001cfb0(1,1);" (assignment_expression "iVar2 = FUN_0001cfb0(1,1)" identifier = (call_expression "FUN_0001cfb0(1,1)" identifier (argument_list "(1,1)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar2 < 1) {\n    return;\n  }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_000271bb:\n  FUN_000270d0();" statement_identifier : (expression_statement "FUN_000270d0();" (call_expression "FUN_000270d0()" identifier (argument_list "()" ( ))) ;)) (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 do_exit(void)\n\n{\n  char *pcVar1;\n  int iVar2;\n  \n  if (openfile->modified == false) goto LAB_000271bb;\n  if (*openfile->filename == '\0') {\n    if ((flags[0] & 0x400) != 0) {\n      pcVar1 = (char *)dcgettext(0,"No file name",5);\n      warn_and_shortly_pause(pcVar1);\n    }\nLAB_00027155:\n    pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5);\n    iVar2 = do_yesno_prompt(false,pcVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      pcVar1 = (char *)dcgettext(0,"Cancelled",5);\n      statusbar(pcVar1);\n      return;\n    }\n  }\n  else if ((flags[0] & 0x400) == 0) goto LAB_00027155;\n  iVar2 = do_writeout(true,true);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  close_and_go();\n  return;\n}\n\n" comment comment (function_definition "void do_exit(void)\n\n{\n  char *pcVar1;\n  int iVar2;\n  \n  if (openfile->modified == false) goto LAB_000271bb;\n  if (*openfile->filename == '\0') {\n    if ((flags[0] & 0x400) != 0) {\n      pcVar1 = (char *)dcgettext(0,"No file name",5);\n      warn_and_shortly_pause(pcVar1);\n    }\nLAB_00027155:\n    pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5);\n    iVar2 = do_yesno_prompt(false,pcVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      pcVar1 = (char *)dcgettext(0,"Cancelled",5);\n      statusbar(pcVar1);\n      return;\n    }\n  }\n  else if ((flags[0] & 0x400) == 0) goto LAB_00027155;\n  iVar2 = do_writeout(true,true);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  close_and_go();\n  return;\n}" primitive_type (function_declarator "do_exit(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  \n  if (openfile->modified == false) goto LAB_000271bb;\n  if (*openfile->filename == '\0') {\n    if ((flags[0] & 0x400) != 0) {\n      pcVar1 = (char *)dcgettext(0,"No file name",5);\n      warn_and_shortly_pause(pcVar1);\n    }\nLAB_00027155:\n    pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5);\n    iVar2 = do_yesno_prompt(false,pcVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      pcVar1 = (char *)dcgettext(0,"Cancelled",5);\n      statusbar(pcVar1);\n      return;\n    }\n  }\n  else if ((flags[0] & 0x400) == 0) goto LAB_00027155;\n  iVar2 = do_writeout(true,true);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  close_and_go();\n  return;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (openfile->modified == false) goto LAB_000271bb;" if (parenthesized_expression "(openfile->modified == false)" ( (binary_expression "openfile->modified == false" (field_expression "openfile->modified" identifier -> field_identifier) == false) )) (goto_statement "goto LAB_000271bb;" goto statement_identifier ;)) (if_statement "if (*openfile->filename == '\0') {\n    if ((flags[0] & 0x400) != 0) {\n      pcVar1 = (char *)dcgettext(0,"No file name",5);\n      warn_and_shortly_pause(pcVar1);\n    }\nLAB_00027155:\n    pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5);\n    iVar2 = do_yesno_prompt(false,pcVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      pcVar1 = (char *)dcgettext(0,"Cancelled",5);\n      statusbar(pcVar1);\n      return;\n    }\n  }\n  else if ((flags[0] & 0x400) == 0) goto LAB_00027155;" if (parenthesized_expression "(*openfile->filename == '\0')" ( (binary_expression "*openfile->filename == '\0'" (pointer_expression "*openfile->filename" * (field_expression "openfile->filename" identifier -> field_identifier)) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((flags[0] & 0x400) != 0) {\n      pcVar1 = (char *)dcgettext(0,"No file name",5);\n      warn_and_shortly_pause(pcVar1);\n    }\nLAB_00027155:\n    pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5);\n    iVar2 = do_yesno_prompt(false,pcVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      pcVar1 = (char *)dcgettext(0,"Cancelled",5);\n      statusbar(pcVar1);\n      return;\n    }\n  }" { (if_statement "if ((flags[0] & 0x400) != 0) {\n      pcVar1 = (char *)dcgettext(0,"No file name",5);\n      warn_and_shortly_pause(pcVar1);\n    }" if (parenthesized_expression "((flags[0] & 0x400) != 0)" ( (binary_expression "(flags[0] & 0x400) != 0" (parenthesized_expression "(flags[0] & 0x400)" ( (binary_expression "flags[0] & 0x400" (subscript_expression "flags[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      pcVar1 = (char *)dcgettext(0,"No file name",5);\n      warn_and_shortly_pause(pcVar1);\n    }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"No file name",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"No file name",5)" identifier = (cast_expression "(char *)dcgettext(0,"No file name",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No file name",5)" identifier (argument_list "(0,"No file name",5)" ( number_literal , (string_literal ""No file name"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_and_shortly_pause(pcVar1);" (call_expression "warn_and_shortly_pause(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (labeled_statement "LAB_00027155:\n    pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5);" statement_identifier : (expression_statement "pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5)" identifier = (cast_expression "(char *)dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5)" identifier (argument_list "(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",\n                               5)" ( number_literal , (string_literal ""Save modified buffer?  (Answering \"No\" will DISCARD changes.) "" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal ))))) ;)) (expression_statement "iVar2 = do_yesno_prompt(false,pcVar1);" (assignment_expression "iVar2 = do_yesno_prompt(false,pcVar1)" identifier = (call_expression "do_yesno_prompt(false,pcVar1)" identifier (argument_list "(false,pcVar1)" ( false , identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_000271bb;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000271bb;" goto statement_identifier ;)) (if_statement "if (iVar2 != 1) {\n      pcVar1 = (char *)dcgettext(0,"Cancelled",5);\n      statusbar(pcVar1);\n      return;\n    }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n      pcVar1 = (char *)dcgettext(0,"Cancelled",5);\n      statusbar(pcVar1);\n      return;\n    }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"Cancelled",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"Cancelled",5)" identifier = (cast_expression "(char *)dcgettext(0,"Cancelled",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Cancelled",5)" identifier (argument_list "(0,"Cancelled",5)" ( number_literal , (string_literal ""Cancelled"" " string_content ") , number_literal ))))) ;) (expression_statement "statusbar(pcVar1);" (call_expression "statusbar(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if ((flags[0] & 0x400) == 0) goto LAB_00027155;" else (if_statement "if ((flags[0] & 0x400) == 0) goto LAB_00027155;" if (parenthesized_expression "((flags[0] & 0x400) == 0)" ( (binary_expression "(flags[0] & 0x400) == 0" (parenthesized_expression "(flags[0] & 0x400)" ( (binary_expression "flags[0] & 0x400" (subscript_expression "flags[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00027155;" goto statement_identifier ;)))) (expression_statement "iVar2 = do_writeout(true,true);" (assignment_expression "iVar2 = do_writeout(true,true)" identifier = (call_expression "do_writeout(true,true)" identifier (argument_list "(true,true)" ( true , true )))) ;) (if_statement "if (iVar2 < 1) {\n    return;\n  }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_000271bb:\n  close_and_go();" statement_identifier : (expression_statement "close_and_go();" (call_expression "close_and_go()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00027120(void)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}\n\n" (function_definition "void FUN_00027120(void)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}" primitive_type (function_declarator "FUN_00027120(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (if_statement "if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;" if (parenthesized_expression "(*(char *)(DAT_0006b640 + 10) == '\0')" ( (binary_expression "*(char *)(DAT_0006b640 + 10) == '\0'" (pointer_expression "*(char *)(DAT_0006b640 + 10)" * (cast_expression "(char *)(DAT_0006b640 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0006b640 + 10)" ( (binary_expression "DAT_0006b640 + 10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000271bb;" goto statement_identifier ;)) (if_statement "if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" if (parenthesized_expression "(*(char *)*DAT_0006b640 == '\0')" ( (binary_expression "*(char *)*DAT_0006b640 == '\0'" (pointer_expression "*(char *)*DAT_0006b640" * (cast_expression "(char *)*DAT_0006b640" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_0006b640" * identifier))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }" { (if_statement "if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }" if (parenthesized_expression "((DAT_0006b664 & 0x400) != 0)" ( (binary_expression "(DAT_0006b664 & 0x400) != 0" (parenthesized_expression "(DAT_0006b664 & 0x400)" ( (binary_expression "DAT_0006b664 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }" { (expression_statement "uVar1 = dcgettext(0,"No file name",5);" (assignment_expression "uVar1 = dcgettext(0,"No file name",5)" identifier = (call_expression "dcgettext(0,"No file name",5)" identifier (argument_list "(0,"No file name",5)" ( number_literal , (string_literal ""No file name"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000388a0(uVar1);" (call_expression "FUN_000388a0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) })) (labeled_statement "LAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);" statement_identifier : (expression_statement "uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);" (assignment_expression "uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" identifier = (call_expression "dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" identifier (argument_list "(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" ( number_literal , (string_literal ""Save modified buffer?  (Answering \"No\" will DISCARD changes.) "" " string_content escape_sequence string_content escape_sequence string_content ") , number_literal )))) ;)) (expression_statement "iVar2 = FUN_00029d70(0,uVar1);" (assignment_expression "iVar2 = FUN_00029d70(0,uVar1)" identifier = (call_expression "FUN_00029d70(0,uVar1)" identifier (argument_list "(0,uVar1)" ( number_literal , identifier )))) ;) (if_statement "if (iVar2 == 0) goto LAB_000271bb;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000271bb;" goto statement_identifier ;)) (if_statement "if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (compound_statement "{\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }" { (expression_statement "uVar1 = dcgettext(0,"Cancelled",5);" (assignment_expression "uVar1 = dcgettext(0,"Cancelled",5)" identifier = (call_expression "dcgettext(0,"Cancelled",5)" identifier (argument_list "(0,"Cancelled",5)" ( number_literal , (string_literal ""Cancelled"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_000386b0(uVar1);" (call_expression "FUN_000386b0(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" else (if_statement "if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" if (parenthesized_expression "((DAT_0006b664 & 0x400) == 0)" ( (binary_expression "(DAT_0006b664 & 0x400) == 0" (parenthesized_expression "(DAT_0006b664 & 0x400)" ( (binary_expression "DAT_0006b664 & 0x400" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00027155;" goto statement_identifier ;)))) (expression_statement "iVar2 = FUN_0001cfb0(1,1);" (assignment_expression "iVar2 = FUN_0001cfb0(1,1)" identifier = (call_expression "FUN_0001cfb0(1,1)" identifier (argument_list "(1,1)" ( number_literal , number_literal )))) ;) (if_statement "if (iVar2 < 1) {\n    return;\n  }" if (parenthesized_expression "(iVar2 < 1)" ( (binary_expression "iVar2 < 1" identifier < number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_000271bb:\n  FUN_000270d0();" statement_identifier : (expression_statement "FUN_000270d0();" (call_expression "FUN_000270d0()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_00027120(void)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00027120(void)" (identifier "FUN_00027120") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  \n  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;\n  if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;\n  iVar2 = FUN_0001cfb0(1,1);\n  if (iVar2 < 1) {\n    return;\n  }\nLAB_000271bb:\n  FUN_000270d0();\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (if_statement "if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;" (if "if") (parenthesized_expression "(*(char *)(DAT_0006b640 + 10) == '\0')" (( "(") (binary_expression "*(char *)(DAT_0006b640 + 10) == '\0'" (pointer_expression "*(char *)(DAT_0006b640 + 10)" (* "*") (cast_expression "(char *)(DAT_0006b640 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0006b640 + 10)" (( "(") (binary_expression "DAT_0006b640 + 10" (identifier "DAT_0006b640") (+ "+") (number_literal "10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000271bb;" (goto "goto") (statement_identifier "LAB_000271bb") (; ";"))) (if_statement "if (*(char *)*DAT_0006b640 == '\0') {\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }\n  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" (if "if") (parenthesized_expression "(*(char *)*DAT_0006b640 == '\0')" (( "(") (binary_expression "*(char *)*DAT_0006b640 == '\0'" (pointer_expression "*(char *)*DAT_0006b640" (* "*") (cast_expression "(char *)*DAT_0006b640" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_0006b640" (* "*") (identifier "DAT_0006b640")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }\nLAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);\n    iVar2 = FUN_00029d70(0,uVar1);\n    if (iVar2 == 0) goto LAB_000271bb;\n    if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }\n  }" ({ "{") (if_statement "if ((DAT_0006b664 & 0x400) != 0) {\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }" (if "if") (parenthesized_expression "((DAT_0006b664 & 0x400) != 0)" (( "(") (binary_expression "(DAT_0006b664 & 0x400) != 0" (parenthesized_expression "(DAT_0006b664 & 0x400)" (( "(") (binary_expression "DAT_0006b664 & 0x400" (identifier "DAT_0006b664") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar1 = dcgettext(0,"No file name",5);\n      FUN_000388a0(uVar1);\n    }" ({ "{") (expression_statement "uVar1 = dcgettext(0,"No file name",5);" (assignment_expression "uVar1 = dcgettext(0,"No file name",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"No file name",5)" (identifier "dcgettext") (argument_list "(0,"No file name",5)" (( "(") (number_literal "0") (, ",") (string_literal ""No file name"" (" """) (string_content "No file name") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000388a0(uVar1);" (call_expression "FUN_000388a0(uVar1)" (identifier "FUN_000388a0") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00027155:\n    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);" (statement_identifier "LAB_00027155") (: ":") (expression_statement "uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);" (assignment_expression "uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" (identifier "dcgettext") (argument_list "(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Save modified buffer?  (Answering \"No\" will DISCARD changes.) "" (" """) (string_content "Save modified buffer?  (Answering ") (escape_sequence "\"") (string_content "No") (escape_sequence "\"") (string_content " will DISCARD changes.) ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "iVar2 = FUN_00029d70(0,uVar1);" (assignment_expression "iVar2 = FUN_00029d70(0,uVar1)" (identifier "iVar2") (= "=") (call_expression "FUN_00029d70(0,uVar1)" (identifier "FUN_00029d70") (argument_list "(0,uVar1)" (( "(") (number_literal "0") (, ",") (identifier "uVar1") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_000271bb;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000271bb;" (goto "goto") (statement_identifier "LAB_000271bb") (; ";"))) (if_statement "if (iVar2 != 1) {\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar2 != 1)" (( "(") (binary_expression "iVar2 != 1" (identifier "iVar2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      uVar1 = dcgettext(0,"Cancelled",5);\n      FUN_000386b0(uVar1);\n      return;\n    }" ({ "{") (expression_statement "uVar1 = dcgettext(0,"Cancelled",5);" (assignment_expression "uVar1 = dcgettext(0,"Cancelled",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"Cancelled",5)" (identifier "dcgettext") (argument_list "(0,"Cancelled",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Cancelled"" (" """) (string_content "Cancelled") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000386b0(uVar1);" (call_expression "FUN_000386b0(uVar1)" (identifier "FUN_000386b0") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" (else "else") (if_statement "if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;" (if "if") (parenthesized_expression "((DAT_0006b664 & 0x400) == 0)" (( "(") (binary_expression "(DAT_0006b664 & 0x400) == 0" (parenthesized_expression "(DAT_0006b664 & 0x400)" (( "(") (binary_expression "DAT_0006b664 & 0x400" (identifier "DAT_0006b664") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00027155;" (goto "goto") (statement_identifier "LAB_00027155") (; ";"))))) (expression_statement "iVar2 = FUN_0001cfb0(1,1);" (assignment_expression "iVar2 = FUN_0001cfb0(1,1)" (identifier "iVar2") (= "=") (call_expression "FUN_0001cfb0(1,1)" (identifier "FUN_0001cfb0") (argument_list "(1,1)" (( "(") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar2 < 1) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar2 < 1)" (( "(") (binary_expression "iVar2 < 1" (identifier "iVar2") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_000271bb:\n  FUN_000270d0();" (statement_identifier "LAB_000271bb") (: ":") (expression_statement "FUN_000270d0();" (call_expression "FUN_000270d0()" (identifier "FUN_000270d0") (argument_list "()" (( "(") () ")"))) (; ";"))) (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)

{
  char *pcVar1;
  int var_4;
  
  if (openfile->modified == false) goto LAB_000271bb;
  if (*openfile->filename == '\0') {
    if ((flags[0] & 0x400) != 0) {
      pcVar1 = (char *)var_1(0,"No file name",5);
      var_2(pcVar1);
    }
LAB_00027155:
    pcVar1 = (char *)var_1(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",
                               5);
    var_4 = var_3(false,pcVar1);
    if (var_4 == 0) goto LAB_000271bb;
    if (var_4 != 1) {
      pcVar1 = (char *)var_1(0,"Cancelled",5);
      var_5(pcVar1);
      return;
    }
  }
  else if ((flags[0] & 0x400) == 0) goto LAB_00027155;
  var_4 = var_6(true,true);
  if (var_4 < 1) {
    return;
  }
LAB_000271bb:
  var_7();
  return;
}


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

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

void MASKED(void)

{
  undefined4 uVar1;
  int iVar2;
  
  if (*(char *)(DAT_0006b640 + 10) == '\0') goto LAB_000271bb;
  if (*(char *)*DAT_0006b640 == '\0') {
    if ((DAT_0006b664 & 0x400) != 0) {
      uVar1 = dcgettext(0,"No file name",5);
      FUN_000388a0(uVar1);
    }
LAB_00027155:
    uVar1 = dcgettext(0,"Save modified buffer?  (Answering \"No\" will DISCARD changes.) ",5);
    iVar2 = FUN_00029d70(0,uVar1);
    if (iVar2 == 0) goto LAB_000271bb;
    if (iVar2 != 1) {
      uVar1 = dcgettext(0,"Cancelled",5);
      FUN_000386b0(uVar1);
      return;
    }
  }
  else if ((DAT_0006b664 & 0x400) == 0) goto LAB_00027155;
  iVar2 = FUN_0001cfb0(1,1);
  if (iVar2 < 1) {
    return;
  }
LAB_000271bb:
  FUN_000270d0();
  return;
}

