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

int askappend(void *frontend,Filename *filename,_func_void_void_ptr_int *callback,void *ctx)

{
  int iVar1;
  undefined *puVar2;
  uint uVar3;
  size_t len;
  void *buf;
  int in_GS_OFFSET;
  termios cf;
  termios oldmode;
  termios newmode;
  char line [32];
  
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  if (stderr_is_a_tty != 0) {
    tcgetattr(2,(termios *)&cf);
    tcsetattr(2,1,(termios *)&orig_termios_stderr);
  }
  puVar2 = PTR_stderr_0006ffc4;
  if (console_batch_mode == 0) {
    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "
                  ,0x1000,filename->path);
    fflush(*(FILE **)puVar2);
    tcgetattr(0,(termios *)&oldmode);
    newmode.c_iflag = oldmode.c_iflag;
    newmode.c_oflag = oldmode.c_oflag;
    newmode.c_cflag = oldmode.c_cflag;
    newmode.c_lflag = oldmode.c_lflag | 0xb;
    newmode.c_line = oldmode.c_line;
    newmode.c_cc[0] = oldmode.c_cc[0];
    newmode.c_cc[1] = oldmode.c_cc[1];
    newmode.c_cc[2] = oldmode.c_cc[2];
    newmode.c_cc[3] = oldmode.c_cc[3];
    newmode.c_cc[4] = oldmode.c_cc[4];
    newmode.c_cc[5] = oldmode.c_cc[5];
    newmode.c_cc[6] = oldmode.c_cc[6];
    newmode.c_cc[7] = oldmode.c_cc[7];
    newmode.c_cc[8] = oldmode.c_cc[8];
    newmode.c_cc[9] = oldmode.c_cc[9];
    newmode.c_cc[10] = oldmode.c_cc[10];
    newmode.c_cc[0xb] = oldmode.c_cc[0xb];
    newmode.c_cc[0xc] = oldmode.c_cc[0xc];
    newmode.c_cc[0xd] = oldmode.c_cc[0xd];
    newmode.c_cc[0xe] = oldmode.c_cc[0xe];
    newmode.c_cc[0xf] = oldmode.c_cc[0xf];
    newmode.c_cc[0x10] = oldmode.c_cc[0x10];
    newmode.c_cc[0x11] = oldmode.c_cc[0x11];
    newmode.c_cc[0x12] = oldmode.c_cc[0x12];
    newmode.c_cc[0x13] = oldmode.c_cc[0x13];
    newmode.c_cc[0x14] = oldmode.c_cc[0x14];
    newmode.c_cc[0x15] = oldmode.c_cc[0x15];
    newmode.c_cc[0x16] = oldmode.c_cc[0x16];
    newmode.c_cc[0x17] = oldmode.c_cc[0x17];
    newmode.c_cc[0x18] = oldmode.c_cc[0x18];
    newmode.c_cc[0x19] = oldmode.c_cc[0x19];
    newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];
    newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];
    newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];
    newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];
    newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];
    newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];
    newmode._49_3_ = oldmode._49_3_;
    newmode.c_ispeed = oldmode.c_ispeed;
    newmode.c_ospeed = oldmode.c_ospeed;
    tcsetattr(0,0,(termios *)&newmode);
    line[0] = '\0';
    block_and_read((int)line,buf,len);
    tcsetattr(0,0,(termios *)&oldmode);
    if (stderr_is_a_tty != 0) {
      tcsetattr(2,1,(termios *)&cf);
    }
    uVar3 = 2;
    if ((line[0] & 0xdfU) != 0x59) {
      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);
    }
  }
  else {
    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",
                  0x1000,filename->path);
    fflush(*(FILE **)puVar2);
    uVar3 = 0;
  }
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

undefined1 FUN_00049720(undefined4 param_1,undefined4 *param_2)

{
  undefined *puVar1;
  int in_GS_OFFSET;
  undefined1 uVar2;
  termios local_e4;
  termios local_a8;
  termios local_6c;
  byte local_30;
  int local_10;
  undefined4 uStack_c;
  
  uStack_c = 0x49727;
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_00070704 != 0) {
    tcgetattr(2,&local_e4);
    tcsetattr(2,1,(termios *)&DAT_00070720);
  }
  puVar1 = PTR_stderr_0006ffc4;
  if (DAT_00070700 == 0) {
    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "
                  ,0x1000,*param_2);
    fflush(*(FILE **)puVar1);
    tcgetattr(0,&local_a8);
    local_6c.c_iflag = local_a8.c_iflag;
    local_6c.c_oflag = local_a8.c_oflag;
    local_6c.c_cflag = local_a8.c_cflag;
    local_6c.c_lflag = local_a8.c_lflag | 0xb;
    local_6c.c_line = local_a8.c_line;
    local_6c.c_cc[0] = local_a8.c_cc[0];
    local_6c.c_cc[1] = local_a8.c_cc[1];
    local_6c.c_cc[2] = local_a8.c_cc[2];
    local_6c.c_cc[3] = local_a8.c_cc[3];
    local_6c.c_cc[4] = local_a8.c_cc[4];
    local_6c.c_cc[5] = local_a8.c_cc[5];
    local_6c.c_cc[6] = local_a8.c_cc[6];
    local_6c.c_cc[7] = local_a8.c_cc[7];
    local_6c.c_cc[8] = local_a8.c_cc[8];
    local_6c.c_cc[9] = local_a8.c_cc[9];
    local_6c.c_cc[10] = local_a8.c_cc[10];
    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];
    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];
    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];
    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];
    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];
    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];
    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];
    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];
    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];
    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];
    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];
    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];
    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];
    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];
    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];
    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];
    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];
    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];
    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];
    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];
    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];
    local_6c._49_3_ = local_a8._49_3_;
    local_6c.c_ispeed = local_a8.c_ispeed;
    local_6c.c_ospeed = local_a8.c_ospeed;
    tcsetattr(0,0,&local_6c);
    local_30 = 0;
    FUN_00048c80();
    tcsetattr(0,0,&local_a8);
    if (DAT_00070704 != 0) {
      tcsetattr(2,1,&local_e4);
    }
    uVar2 = 2;
    if ((local_30 & 0xdf) != 0x59) {
      uVar2 = (local_30 & 0xdf) == 0x4e;
    }
  }
  else {
    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",
                  0x1000,*param_2);
    fflush(*(FILE **)puVar1);
    uVar2 = 0;
  }
  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0004d450();
}


PUSH ESI
PUSH EBX
CALL 0x00014560
ADD EBX,0x2673d
SUB ESP,0xe4
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xdc],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0xf4]
MOV EAX,dword ptr [EBX + 0x8a0]
TEST EAX,EAX
JNZ 0x00049920
MOV EDX,dword ptr [ESI]
MOV ECX,dword ptr [EBX + 0x89c]
MOV ESI,dword ptr [EBX + 0x160]
MOV EAX,dword ptr [ESI]
TEST ECX,ECX
JNZ 0x000498f0
SUB ESP,0xc
PUSH EDX
LEA EDX,[EBX + 0xfffe96fc]
PUSH 0x1000
PUSH EDX
PUSH 0x1
PUSH EAX
CALL 0x00012470
ADD ESP,0x14
PUSH dword ptr [ESI]
CALL 0x000120c0
POP EAX
POP EDX
LEA ESI,[ESP + 0x4c]
PUSH ESI
PUSH 0x0
CALL 0x000124b0
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x90],EAX
MOV EAX,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x94],EAX
MOV EAX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x98],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x9c],EAX
MOV EAX,dword ptr [ESP + 0x64]
OR dword ptr [ESP + 0x9c],0xb
MOV dword ptr [ESP + 0xa0],EAX
MOV EAX,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0xa4],EAX
MOV EAX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0xa8],EAX
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0xac],EAX
MOV EAX,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0xb0],EAX
MOV EAX,dword ptr [ESP + 0x78]
MOV dword ptr [ESP + 0xb4],EAX
MOV EAX,dword ptr [ESP + 0x7c]
MOV dword ptr [ESP + 0xb8],EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0xbc],EAX
MOV EAX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0xc0],EAX
MOV EAX,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0xc4],EAX
MOV EAX,dword ptr [ESP + 0x8c]
MOV dword ptr [ESP + 0xc8],EAX
ADD ESP,0xc
LEA EAX,[ESP + 0x84]
PUSH EAX
PUSH 0x0
PUSH 0x0
CALL 0x00012230
LEA EAX,[ESP + 0xcc]
MOV byte ptr [ESP + 0xcc],0x0
CALL 0x00048c80
ADD ESP,0xc
PUSH ESI
PUSH 0x0
PUSH 0x0
CALL 0x00012230
MOV ECX,dword ptr [EBX + 0x8a0]
ADD ESP,0x10
TEST ECX,ECX
JNZ 0x000498d8
MOVZX EDX,byte ptr [ESP + 0xbc]
MOV EAX,0x2
AND EDX,0xffffffdf
CMP DL,0x59
JZ 0x000498b7
XOR EAX,EAX
CMP DL,0x4e
SETZ AL
MOV ECX,dword ptr [ESP + 0xdc]
XOR ECX,dword ptr GS:[0x14]
JNZ 0x0004994a
ADD ESP,0xe4
POP EBX
POP ESI
RET
SUB ESP,0x4
LEA EAX,[ESP + 0xc]
PUSH EAX
PUSH 0x1
PUSH 0x2
CALL 0x00012230
ADD ESP,0x10
JMP 0x0004989a
SUB ESP,0xc
PUSH EDX
LEA EDX,[EBX + 0xfffe983c]
PUSH 0x1000
PUSH EDX
PUSH 0x1
PUSH EAX
CALL 0x00012470
ADD ESP,0x14
PUSH dword ptr [ESI]
CALL 0x000120c0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000498b7
SUB ESP,0x8
LEA EAX,[ESP + 0x10]
PUSH EAX
PUSH 0x2
CALL 0x000124b0
ADD ESP,0xc
LEA EAX,[EBX + 0x8bc]
PUSH EAX
PUSH 0x1
PUSH 0x2
CALL 0x00012230
ADD ESP,0x10
JMP 0x00049757
CALL 0x0004d450
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined1 FUN_00049720(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0004d450();\n}\n\n" comment (function_definition "undefined1 FUN_00049720(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0004d450();\n}" type_identifier (function_declarator "FUN_00049720(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0004d450();\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "termios local_e4;" type_identifier identifier ;) (declaration "termios local_a8;" type_identifier identifier ;) (declaration "termios local_6c;" type_identifier identifier ;) (declaration "byte local_30;" type_identifier identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x49727;" (assignment_expression "uStack_c = 0x49727" identifier = number_literal) ;) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }" if (parenthesized_expression "(DAT_00070704 != 0)" ( (binary_expression "DAT_00070704 != 0" identifier != number_literal) )) (compound_statement "{\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }" { (expression_statement "tcgetattr(2,&local_e4);" (call_expression "tcgetattr(2,&local_e4)" identifier (argument_list "(2,&local_e4)" ( number_literal , (pointer_expression "&local_e4" & identifier) ))) ;) (expression_statement "tcsetattr(2,1,(termios *)&DAT_00070720);" (call_expression "tcsetattr(2,1,(termios *)&DAT_00070720)" identifier (argument_list "(2,1,(termios *)&DAT_00070720)" ( number_literal , number_literal , (cast_expression "(termios *)&DAT_00070720" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00070720" & identifier)) ))) ;) })) (expression_statement "puVar1 = PTR_stderr_0006ffc4;" (assignment_expression "puVar1 = PTR_stderr_0006ffc4" identifier = identifier) ;) (if_statement "if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" if (parenthesized_expression "(DAT_00070700 == 0)" ( (binary_expression "DAT_00070700 == 0" identifier == number_literal) )) (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" * (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal , (pointer_expression "*param_2" * identifier) ))) ;) (expression_statement "fflush(*(FILE **)puVar1);" (call_expression "fflush(*(FILE **)puVar1)" identifier (argument_list "(*(FILE **)puVar1)" ( (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "tcgetattr(0,&local_a8);" (call_expression "tcgetattr(0,&local_a8)" identifier (argument_list "(0,&local_a8)" ( number_literal , (pointer_expression "&local_a8" & identifier) ))) ;) (expression_statement "local_6c.c_iflag = local_a8.c_iflag;" (assignment_expression "local_6c.c_iflag = local_a8.c_iflag" (field_expression "local_6c.c_iflag" identifier . field_identifier) = (field_expression "local_a8.c_iflag" identifier . field_identifier)) ;) (expression_statement "local_6c.c_oflag = local_a8.c_oflag;" (assignment_expression "local_6c.c_oflag = local_a8.c_oflag" (field_expression "local_6c.c_oflag" identifier . field_identifier) = (field_expression "local_a8.c_oflag" identifier . field_identifier)) ;) (expression_statement "local_6c.c_cflag = local_a8.c_cflag;" (assignment_expression "local_6c.c_cflag = local_a8.c_cflag" (field_expression "local_6c.c_cflag" identifier . field_identifier) = (field_expression "local_a8.c_cflag" identifier . field_identifier)) ;) (expression_statement "local_6c.c_lflag = local_a8.c_lflag | 0xb;" (assignment_expression "local_6c.c_lflag = local_a8.c_lflag | 0xb" (field_expression "local_6c.c_lflag" identifier . field_identifier) = (binary_expression "local_a8.c_lflag | 0xb" (field_expression "local_a8.c_lflag" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_6c.c_line = local_a8.c_line;" (assignment_expression "local_6c.c_line = local_a8.c_line" (field_expression "local_6c.c_line" identifier . field_identifier) = (field_expression "local_a8.c_line" identifier . field_identifier)) ;) (expression_statement "local_6c.c_cc[0] = local_a8.c_cc[0];" (assignment_expression "local_6c.c_cc[0] = local_a8.c_cc[0]" (subscript_expression "local_6c.c_cc[0]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[1] = local_a8.c_cc[1];" (assignment_expression "local_6c.c_cc[1] = local_a8.c_cc[1]" (subscript_expression "local_6c.c_cc[1]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[1]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[2] = local_a8.c_cc[2];" (assignment_expression "local_6c.c_cc[2] = local_a8.c_cc[2]" (subscript_expression "local_6c.c_cc[2]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[2]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[3] = local_a8.c_cc[3];" (assignment_expression "local_6c.c_cc[3] = local_a8.c_cc[3]" (subscript_expression "local_6c.c_cc[3]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[3]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[4] = local_a8.c_cc[4];" (assignment_expression "local_6c.c_cc[4] = local_a8.c_cc[4]" (subscript_expression "local_6c.c_cc[4]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[4]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[5] = local_a8.c_cc[5];" (assignment_expression "local_6c.c_cc[5] = local_a8.c_cc[5]" (subscript_expression "local_6c.c_cc[5]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[5]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[6] = local_a8.c_cc[6];" (assignment_expression "local_6c.c_cc[6] = local_a8.c_cc[6]" (subscript_expression "local_6c.c_cc[6]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[6]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[7] = local_a8.c_cc[7];" (assignment_expression "local_6c.c_cc[7] = local_a8.c_cc[7]" (subscript_expression "local_6c.c_cc[7]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[7]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[8] = local_a8.c_cc[8];" (assignment_expression "local_6c.c_cc[8] = local_a8.c_cc[8]" (subscript_expression "local_6c.c_cc[8]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[8]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[9] = local_a8.c_cc[9];" (assignment_expression "local_6c.c_cc[9] = local_a8.c_cc[9]" (subscript_expression "local_6c.c_cc[9]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[9]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[10] = local_a8.c_cc[10];" (assignment_expression "local_6c.c_cc[10] = local_a8.c_cc[10]" (subscript_expression "local_6c.c_cc[10]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[10]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xb] = local_a8.c_cc[0xb];" (assignment_expression "local_6c.c_cc[0xb] = local_a8.c_cc[0xb]" (subscript_expression "local_6c.c_cc[0xb]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xb]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xc] = local_a8.c_cc[0xc];" (assignment_expression "local_6c.c_cc[0xc] = local_a8.c_cc[0xc]" (subscript_expression "local_6c.c_cc[0xc]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xc]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xd] = local_a8.c_cc[0xd];" (assignment_expression "local_6c.c_cc[0xd] = local_a8.c_cc[0xd]" (subscript_expression "local_6c.c_cc[0xd]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xd]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xe] = local_a8.c_cc[0xe];" (assignment_expression "local_6c.c_cc[0xe] = local_a8.c_cc[0xe]" (subscript_expression "local_6c.c_cc[0xe]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xe]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xf] = local_a8.c_cc[0xf];" (assignment_expression "local_6c.c_cc[0xf] = local_a8.c_cc[0xf]" (subscript_expression "local_6c.c_cc[0xf]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xf]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x10] = local_a8.c_cc[0x10];" (assignment_expression "local_6c.c_cc[0x10] = local_a8.c_cc[0x10]" (subscript_expression "local_6c.c_cc[0x10]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x10]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x11] = local_a8.c_cc[0x11];" (assignment_expression "local_6c.c_cc[0x11] = local_a8.c_cc[0x11]" (subscript_expression "local_6c.c_cc[0x11]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x11]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x12] = local_a8.c_cc[0x12];" (assignment_expression "local_6c.c_cc[0x12] = local_a8.c_cc[0x12]" (subscript_expression "local_6c.c_cc[0x12]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x12]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x13] = local_a8.c_cc[0x13];" (assignment_expression "local_6c.c_cc[0x13] = local_a8.c_cc[0x13]" (subscript_expression "local_6c.c_cc[0x13]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x13]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x14] = local_a8.c_cc[0x14];" (assignment_expression "local_6c.c_cc[0x14] = local_a8.c_cc[0x14]" (subscript_expression "local_6c.c_cc[0x14]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x14]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x15] = local_a8.c_cc[0x15];" (assignment_expression "local_6c.c_cc[0x15] = local_a8.c_cc[0x15]" (subscript_expression "local_6c.c_cc[0x15]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x15]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x16] = local_a8.c_cc[0x16];" (assignment_expression "local_6c.c_cc[0x16] = local_a8.c_cc[0x16]" (subscript_expression "local_6c.c_cc[0x16]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x16]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x17] = local_a8.c_cc[0x17];" (assignment_expression "local_6c.c_cc[0x17] = local_a8.c_cc[0x17]" (subscript_expression "local_6c.c_cc[0x17]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x17]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x18] = local_a8.c_cc[0x18];" (assignment_expression "local_6c.c_cc[0x18] = local_a8.c_cc[0x18]" (subscript_expression "local_6c.c_cc[0x18]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x18]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x19] = local_a8.c_cc[0x19];" (assignment_expression "local_6c.c_cc[0x19] = local_a8.c_cc[0x19]" (subscript_expression "local_6c.c_cc[0x19]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x19]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];" (assignment_expression "local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a]" (subscript_expression "local_6c.c_cc[0x1a]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1a]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];" (assignment_expression "local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b]" (subscript_expression "local_6c.c_cc[0x1b]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1b]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];" (assignment_expression "local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c]" (subscript_expression "local_6c.c_cc[0x1c]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1c]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];" (assignment_expression "local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d]" (subscript_expression "local_6c.c_cc[0x1d]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1d]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];" (assignment_expression "local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e]" (subscript_expression "local_6c.c_cc[0x1e]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1e]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];" (assignment_expression "local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f]" (subscript_expression "local_6c.c_cc[0x1f]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1f]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c._49_3_ = local_a8._49_3_;" (assignment_expression "local_6c._49_3_ = local_a8._49_3_" (field_expression "local_6c._49_3_" identifier . field_identifier) = (field_expression "local_a8._49_3_" identifier . field_identifier)) ;) (expression_statement "local_6c.c_ispeed = local_a8.c_ispeed;" (assignment_expression "local_6c.c_ispeed = local_a8.c_ispeed" (field_expression "local_6c.c_ispeed" identifier . field_identifier) = (field_expression "local_a8.c_ispeed" identifier . field_identifier)) ;) (expression_statement "local_6c.c_ospeed = local_a8.c_ospeed;" (assignment_expression "local_6c.c_ospeed = local_a8.c_ospeed" (field_expression "local_6c.c_ospeed" identifier . field_identifier) = (field_expression "local_a8.c_ospeed" identifier . field_identifier)) ;) (expression_statement "tcsetattr(0,0,&local_6c);" (call_expression "tcsetattr(0,0,&local_6c)" identifier (argument_list "(0,0,&local_6c)" ( number_literal , number_literal , (pointer_expression "&local_6c" & identifier) ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "FUN_00048c80();" (call_expression "FUN_00048c80()" identifier (argument_list "()" ( ))) ;) (expression_statement "tcsetattr(0,0,&local_a8);" (call_expression "tcsetattr(0,0,&local_a8)" identifier (argument_list "(0,0,&local_a8)" ( number_literal , number_literal , (pointer_expression "&local_a8" & identifier) ))) ;) (if_statement "if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }" if (parenthesized_expression "(DAT_00070704 != 0)" ( (binary_expression "DAT_00070704 != 0" identifier != number_literal) )) (compound_statement "{\n      tcsetattr(2,1,&local_e4);\n    }" { (expression_statement "tcsetattr(2,1,&local_e4);" (call_expression "tcsetattr(2,1,&local_e4)" identifier (argument_list "(2,1,&local_e4)" ( number_literal , number_literal , (pointer_expression "&local_e4" & identifier) ))) ;) })) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }" if (parenthesized_expression "((local_30 & 0xdf) != 0x59)" ( (binary_expression "(local_30 & 0xdf) != 0x59" (parenthesized_expression "(local_30 & 0xdf)" ( (binary_expression "local_30 & 0xdf" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }" { (expression_statement "uVar2 = (local_30 & 0xdf) == 0x4e;" (assignment_expression "uVar2 = (local_30 & 0xdf) == 0x4e" identifier = (binary_expression "(local_30 & 0xdf) == 0x4e" (parenthesized_expression "(local_30 & 0xdf)" ( (binary_expression "local_30 & 0xdf" identifier & number_literal) )) == number_literal)) ;) })) }) (else_clause "else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" else (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" * (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal , (pointer_expression "*param_2" * identifier) ))) ;) (expression_statement "fflush(*(FILE **)puVar1);" (call_expression "fflush(*(FILE **)puVar1)" identifier (argument_list "(*(FILE **)puVar1)" ( (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_10 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_10 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) comment (expression_statement "FUN_0004d450();" (call_expression "FUN_0004d450()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint askappend(void *frontend,Filename *filename,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  size_t len;\n  void *buf;\n  int in_GS_OFFSET;\n  termios cf;\n  termios oldmode;\n  termios newmode;\n  char line [32];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (stderr_is_a_tty != 0) {\n    tcgetattr(2,(termios *)&cf);\n    tcsetattr(2,1,(termios *)&orig_termios_stderr);\n  }\n  puVar2 = PTR_stderr_0006ffc4;\n  if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    tcgetattr(0,(termios *)&oldmode);\n    newmode.c_iflag = oldmode.c_iflag;\n    newmode.c_oflag = oldmode.c_oflag;\n    newmode.c_cflag = oldmode.c_cflag;\n    newmode.c_lflag = oldmode.c_lflag | 0xb;\n    newmode.c_line = oldmode.c_line;\n    newmode.c_cc[0] = oldmode.c_cc[0];\n    newmode.c_cc[1] = oldmode.c_cc[1];\n    newmode.c_cc[2] = oldmode.c_cc[2];\n    newmode.c_cc[3] = oldmode.c_cc[3];\n    newmode.c_cc[4] = oldmode.c_cc[4];\n    newmode.c_cc[5] = oldmode.c_cc[5];\n    newmode.c_cc[6] = oldmode.c_cc[6];\n    newmode.c_cc[7] = oldmode.c_cc[7];\n    newmode.c_cc[8] = oldmode.c_cc[8];\n    newmode.c_cc[9] = oldmode.c_cc[9];\n    newmode.c_cc[10] = oldmode.c_cc[10];\n    newmode.c_cc[0xb] = oldmode.c_cc[0xb];\n    newmode.c_cc[0xc] = oldmode.c_cc[0xc];\n    newmode.c_cc[0xd] = oldmode.c_cc[0xd];\n    newmode.c_cc[0xe] = oldmode.c_cc[0xe];\n    newmode.c_cc[0xf] = oldmode.c_cc[0xf];\n    newmode.c_cc[0x10] = oldmode.c_cc[0x10];\n    newmode.c_cc[0x11] = oldmode.c_cc[0x11];\n    newmode.c_cc[0x12] = oldmode.c_cc[0x12];\n    newmode.c_cc[0x13] = oldmode.c_cc[0x13];\n    newmode.c_cc[0x14] = oldmode.c_cc[0x14];\n    newmode.c_cc[0x15] = oldmode.c_cc[0x15];\n    newmode.c_cc[0x16] = oldmode.c_cc[0x16];\n    newmode.c_cc[0x17] = oldmode.c_cc[0x17];\n    newmode.c_cc[0x18] = oldmode.c_cc[0x18];\n    newmode.c_cc[0x19] = oldmode.c_cc[0x19];\n    newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];\n    newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];\n    newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];\n    newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];\n    newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];\n    newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];\n    newmode._49_3_ = oldmode._49_3_;\n    newmode.c_ispeed = oldmode.c_ispeed;\n    newmode.c_ospeed = oldmode.c_ospeed;\n    tcsetattr(0,0,(termios *)&newmode);\n    line[0] = '\0';\n    block_and_read((int)line,buf,len);\n    tcsetattr(0,0,(termios *)&oldmode);\n    if (stderr_is_a_tty != 0) {\n      tcsetattr(2,1,(termios *)&cf);\n    }\n    uVar3 = 2;\n    if ((line[0] & 0xdfU) != 0x59) {\n      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    uVar3 = 0;\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "int askappend(void *frontend,Filename *filename,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  size_t len;\n  void *buf;\n  int in_GS_OFFSET;\n  termios cf;\n  termios oldmode;\n  termios newmode;\n  char line [32];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (stderr_is_a_tty != 0) {\n    tcgetattr(2,(termios *)&cf);\n    tcsetattr(2,1,(termios *)&orig_termios_stderr);\n  }\n  puVar2 = PTR_stderr_0006ffc4;\n  if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    tcgetattr(0,(termios *)&oldmode);\n    newmode.c_iflag = oldmode.c_iflag;\n    newmode.c_oflag = oldmode.c_oflag;\n    newmode.c_cflag = oldmode.c_cflag;\n    newmode.c_lflag = oldmode.c_lflag | 0xb;\n    newmode.c_line = oldmode.c_line;\n    newmode.c_cc[0] = oldmode.c_cc[0];\n    newmode.c_cc[1] = oldmode.c_cc[1];\n    newmode.c_cc[2] = oldmode.c_cc[2];\n    newmode.c_cc[3] = oldmode.c_cc[3];\n    newmode.c_cc[4] = oldmode.c_cc[4];\n    newmode.c_cc[5] = oldmode.c_cc[5];\n    newmode.c_cc[6] = oldmode.c_cc[6];\n    newmode.c_cc[7] = oldmode.c_cc[7];\n    newmode.c_cc[8] = oldmode.c_cc[8];\n    newmode.c_cc[9] = oldmode.c_cc[9];\n    newmode.c_cc[10] = oldmode.c_cc[10];\n    newmode.c_cc[0xb] = oldmode.c_cc[0xb];\n    newmode.c_cc[0xc] = oldmode.c_cc[0xc];\n    newmode.c_cc[0xd] = oldmode.c_cc[0xd];\n    newmode.c_cc[0xe] = oldmode.c_cc[0xe];\n    newmode.c_cc[0xf] = oldmode.c_cc[0xf];\n    newmode.c_cc[0x10] = oldmode.c_cc[0x10];\n    newmode.c_cc[0x11] = oldmode.c_cc[0x11];\n    newmode.c_cc[0x12] = oldmode.c_cc[0x12];\n    newmode.c_cc[0x13] = oldmode.c_cc[0x13];\n    newmode.c_cc[0x14] = oldmode.c_cc[0x14];\n    newmode.c_cc[0x15] = oldmode.c_cc[0x15];\n    newmode.c_cc[0x16] = oldmode.c_cc[0x16];\n    newmode.c_cc[0x17] = oldmode.c_cc[0x17];\n    newmode.c_cc[0x18] = oldmode.c_cc[0x18];\n    newmode.c_cc[0x19] = oldmode.c_cc[0x19];\n    newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];\n    newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];\n    newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];\n    newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];\n    newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];\n    newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];\n    newmode._49_3_ = oldmode._49_3_;\n    newmode.c_ispeed = oldmode.c_ispeed;\n    newmode.c_ospeed = oldmode.c_ospeed;\n    tcsetattr(0,0,(termios *)&newmode);\n    line[0] = '\0';\n    block_and_read((int)line,buf,len);\n    tcsetattr(0,0,(termios *)&oldmode);\n    if (stderr_is_a_tty != 0) {\n      tcsetattr(2,1,(termios *)&cf);\n    }\n    uVar3 = 2;\n    if ((line[0] & 0xdfU) != 0x59) {\n      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    uVar3 = 0;\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "askappend(void *frontend,Filename *filename,_func_void_void_ptr_int *callback,void *ctx)" identifier (parameter_list "(void *frontend,Filename *filename,_func_void_void_ptr_int *callback,void *ctx)" ( (parameter_declaration "void *frontend" primitive_type (pointer_declarator "*frontend" * identifier)) , (parameter_declaration "Filename *filename" type_identifier (pointer_declarator "*filename" * identifier)) , (parameter_declaration "_func_void_void_ptr_int *callback" type_identifier (pointer_declarator "*callback" * identifier)) , (parameter_declaration "void *ctx" primitive_type (pointer_declarator "*ctx" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  size_t len;\n  void *buf;\n  int in_GS_OFFSET;\n  termios cf;\n  termios oldmode;\n  termios newmode;\n  char line [32];\n  \n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  if (stderr_is_a_tty != 0) {\n    tcgetattr(2,(termios *)&cf);\n    tcsetattr(2,1,(termios *)&orig_termios_stderr);\n  }\n  puVar2 = PTR_stderr_0006ffc4;\n  if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    tcgetattr(0,(termios *)&oldmode);\n    newmode.c_iflag = oldmode.c_iflag;\n    newmode.c_oflag = oldmode.c_oflag;\n    newmode.c_cflag = oldmode.c_cflag;\n    newmode.c_lflag = oldmode.c_lflag | 0xb;\n    newmode.c_line = oldmode.c_line;\n    newmode.c_cc[0] = oldmode.c_cc[0];\n    newmode.c_cc[1] = oldmode.c_cc[1];\n    newmode.c_cc[2] = oldmode.c_cc[2];\n    newmode.c_cc[3] = oldmode.c_cc[3];\n    newmode.c_cc[4] = oldmode.c_cc[4];\n    newmode.c_cc[5] = oldmode.c_cc[5];\n    newmode.c_cc[6] = oldmode.c_cc[6];\n    newmode.c_cc[7] = oldmode.c_cc[7];\n    newmode.c_cc[8] = oldmode.c_cc[8];\n    newmode.c_cc[9] = oldmode.c_cc[9];\n    newmode.c_cc[10] = oldmode.c_cc[10];\n    newmode.c_cc[0xb] = oldmode.c_cc[0xb];\n    newmode.c_cc[0xc] = oldmode.c_cc[0xc];\n    newmode.c_cc[0xd] = oldmode.c_cc[0xd];\n    newmode.c_cc[0xe] = oldmode.c_cc[0xe];\n    newmode.c_cc[0xf] = oldmode.c_cc[0xf];\n    newmode.c_cc[0x10] = oldmode.c_cc[0x10];\n    newmode.c_cc[0x11] = oldmode.c_cc[0x11];\n    newmode.c_cc[0x12] = oldmode.c_cc[0x12];\n    newmode.c_cc[0x13] = oldmode.c_cc[0x13];\n    newmode.c_cc[0x14] = oldmode.c_cc[0x14];\n    newmode.c_cc[0x15] = oldmode.c_cc[0x15];\n    newmode.c_cc[0x16] = oldmode.c_cc[0x16];\n    newmode.c_cc[0x17] = oldmode.c_cc[0x17];\n    newmode.c_cc[0x18] = oldmode.c_cc[0x18];\n    newmode.c_cc[0x19] = oldmode.c_cc[0x19];\n    newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];\n    newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];\n    newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];\n    newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];\n    newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];\n    newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];\n    newmode._49_3_ = oldmode._49_3_;\n    newmode.c_ispeed = oldmode.c_ispeed;\n    newmode.c_ospeed = oldmode.c_ospeed;\n    tcsetattr(0,0,(termios *)&newmode);\n    line[0] = '\0';\n    block_and_read((int)line,buf,len);\n    tcsetattr(0,0,(termios *)&oldmode);\n    if (stderr_is_a_tty != 0) {\n      tcsetattr(2,1,(termios *)&cf);\n    }\n    uVar3 = 2;\n    if ((line[0] & 0xdfU) != 0x59) {\n      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    uVar3 = 0;\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t len;" primitive_type identifier ;) (declaration "void *buf;" primitive_type (pointer_declarator "*buf" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "termios cf;" type_identifier identifier ;) (declaration "termios oldmode;" type_identifier identifier ;) (declaration "termios newmode;" type_identifier identifier ;) (declaration "char line [32];" primitive_type (array_declarator "line [32]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (stderr_is_a_tty != 0) {\n    tcgetattr(2,(termios *)&cf);\n    tcsetattr(2,1,(termios *)&orig_termios_stderr);\n  }" if (parenthesized_expression "(stderr_is_a_tty != 0)" ( (binary_expression "stderr_is_a_tty != 0" identifier != number_literal) )) (compound_statement "{\n    tcgetattr(2,(termios *)&cf);\n    tcsetattr(2,1,(termios *)&orig_termios_stderr);\n  }" { (expression_statement "tcgetattr(2,(termios *)&cf);" (call_expression "tcgetattr(2,(termios *)&cf)" identifier (argument_list "(2,(termios *)&cf)" ( number_literal , (cast_expression "(termios *)&cf" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cf" & identifier)) ))) ;) (expression_statement "tcsetattr(2,1,(termios *)&orig_termios_stderr);" (call_expression "tcsetattr(2,1,(termios *)&orig_termios_stderr)" identifier (argument_list "(2,1,(termios *)&orig_termios_stderr)" ( number_literal , number_literal , (cast_expression "(termios *)&orig_termios_stderr" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&orig_termios_stderr" & identifier)) ))) ;) })) (expression_statement "puVar2 = PTR_stderr_0006ffc4;" (assignment_expression "puVar2 = PTR_stderr_0006ffc4" identifier = identifier) ;) (if_statement "if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    tcgetattr(0,(termios *)&oldmode);\n    newmode.c_iflag = oldmode.c_iflag;\n    newmode.c_oflag = oldmode.c_oflag;\n    newmode.c_cflag = oldmode.c_cflag;\n    newmode.c_lflag = oldmode.c_lflag | 0xb;\n    newmode.c_line = oldmode.c_line;\n    newmode.c_cc[0] = oldmode.c_cc[0];\n    newmode.c_cc[1] = oldmode.c_cc[1];\n    newmode.c_cc[2] = oldmode.c_cc[2];\n    newmode.c_cc[3] = oldmode.c_cc[3];\n    newmode.c_cc[4] = oldmode.c_cc[4];\n    newmode.c_cc[5] = oldmode.c_cc[5];\n    newmode.c_cc[6] = oldmode.c_cc[6];\n    newmode.c_cc[7] = oldmode.c_cc[7];\n    newmode.c_cc[8] = oldmode.c_cc[8];\n    newmode.c_cc[9] = oldmode.c_cc[9];\n    newmode.c_cc[10] = oldmode.c_cc[10];\n    newmode.c_cc[0xb] = oldmode.c_cc[0xb];\n    newmode.c_cc[0xc] = oldmode.c_cc[0xc];\n    newmode.c_cc[0xd] = oldmode.c_cc[0xd];\n    newmode.c_cc[0xe] = oldmode.c_cc[0xe];\n    newmode.c_cc[0xf] = oldmode.c_cc[0xf];\n    newmode.c_cc[0x10] = oldmode.c_cc[0x10];\n    newmode.c_cc[0x11] = oldmode.c_cc[0x11];\n    newmode.c_cc[0x12] = oldmode.c_cc[0x12];\n    newmode.c_cc[0x13] = oldmode.c_cc[0x13];\n    newmode.c_cc[0x14] = oldmode.c_cc[0x14];\n    newmode.c_cc[0x15] = oldmode.c_cc[0x15];\n    newmode.c_cc[0x16] = oldmode.c_cc[0x16];\n    newmode.c_cc[0x17] = oldmode.c_cc[0x17];\n    newmode.c_cc[0x18] = oldmode.c_cc[0x18];\n    newmode.c_cc[0x19] = oldmode.c_cc[0x19];\n    newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];\n    newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];\n    newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];\n    newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];\n    newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];\n    newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];\n    newmode._49_3_ = oldmode._49_3_;\n    newmode.c_ispeed = oldmode.c_ispeed;\n    newmode.c_ospeed = oldmode.c_ospeed;\n    tcsetattr(0,0,(termios *)&newmode);\n    line[0] = '\0';\n    block_and_read((int)line,buf,len);\n    tcsetattr(0,0,(termios *)&oldmode);\n    if (stderr_is_a_tty != 0) {\n      tcsetattr(2,1,(termios *)&cf);\n    }\n    uVar3 = 2;\n    if ((line[0] & 0xdfU) != 0x59) {\n      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    uVar3 = 0;\n  }" if (parenthesized_expression "(console_batch_mode == 0)" ( (binary_expression "console_batch_mode == 0" identifier == number_literal) )) (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    tcgetattr(0,(termios *)&oldmode);\n    newmode.c_iflag = oldmode.c_iflag;\n    newmode.c_oflag = oldmode.c_oflag;\n    newmode.c_cflag = oldmode.c_cflag;\n    newmode.c_lflag = oldmode.c_lflag | 0xb;\n    newmode.c_line = oldmode.c_line;\n    newmode.c_cc[0] = oldmode.c_cc[0];\n    newmode.c_cc[1] = oldmode.c_cc[1];\n    newmode.c_cc[2] = oldmode.c_cc[2];\n    newmode.c_cc[3] = oldmode.c_cc[3];\n    newmode.c_cc[4] = oldmode.c_cc[4];\n    newmode.c_cc[5] = oldmode.c_cc[5];\n    newmode.c_cc[6] = oldmode.c_cc[6];\n    newmode.c_cc[7] = oldmode.c_cc[7];\n    newmode.c_cc[8] = oldmode.c_cc[8];\n    newmode.c_cc[9] = oldmode.c_cc[9];\n    newmode.c_cc[10] = oldmode.c_cc[10];\n    newmode.c_cc[0xb] = oldmode.c_cc[0xb];\n    newmode.c_cc[0xc] = oldmode.c_cc[0xc];\n    newmode.c_cc[0xd] = oldmode.c_cc[0xd];\n    newmode.c_cc[0xe] = oldmode.c_cc[0xe];\n    newmode.c_cc[0xf] = oldmode.c_cc[0xf];\n    newmode.c_cc[0x10] = oldmode.c_cc[0x10];\n    newmode.c_cc[0x11] = oldmode.c_cc[0x11];\n    newmode.c_cc[0x12] = oldmode.c_cc[0x12];\n    newmode.c_cc[0x13] = oldmode.c_cc[0x13];\n    newmode.c_cc[0x14] = oldmode.c_cc[0x14];\n    newmode.c_cc[0x15] = oldmode.c_cc[0x15];\n    newmode.c_cc[0x16] = oldmode.c_cc[0x16];\n    newmode.c_cc[0x17] = oldmode.c_cc[0x17];\n    newmode.c_cc[0x18] = oldmode.c_cc[0x18];\n    newmode.c_cc[0x19] = oldmode.c_cc[0x19];\n    newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];\n    newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];\n    newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];\n    newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];\n    newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];\n    newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];\n    newmode._49_3_ = oldmode._49_3_;\n    newmode.c_ispeed = oldmode.c_ispeed;\n    newmode.c_ospeed = oldmode.c_ospeed;\n    tcsetattr(0,0,(termios *)&newmode);\n    line[0] = '\0';\n    block_and_read((int)line,buf,len);\n    tcsetattr(0,0,(termios *)&oldmode);\n    if (stderr_is_a_tty != 0) {\n      tcsetattr(2,1,(termios *)&cf);\n    }\n    uVar3 = 2;\n    if ((line[0] & 0xdfU) != 0x59) {\n      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);\n    }\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,filename->path)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" * (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal , (field_expression "filename->path" identifier -> field_identifier) ))) ;) (expression_statement "fflush(*(FILE **)puVar2);" (call_expression "fflush(*(FILE **)puVar2)" identifier (argument_list "(*(FILE **)puVar2)" ( (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "tcgetattr(0,(termios *)&oldmode);" (call_expression "tcgetattr(0,(termios *)&oldmode)" identifier (argument_list "(0,(termios *)&oldmode)" ( number_literal , (cast_expression "(termios *)&oldmode" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&oldmode" & identifier)) ))) ;) (expression_statement "newmode.c_iflag = oldmode.c_iflag;" (assignment_expression "newmode.c_iflag = oldmode.c_iflag" (field_expression "newmode.c_iflag" identifier . field_identifier) = (field_expression "oldmode.c_iflag" identifier . field_identifier)) ;) (expression_statement "newmode.c_oflag = oldmode.c_oflag;" (assignment_expression "newmode.c_oflag = oldmode.c_oflag" (field_expression "newmode.c_oflag" identifier . field_identifier) = (field_expression "oldmode.c_oflag" identifier . field_identifier)) ;) (expression_statement "newmode.c_cflag = oldmode.c_cflag;" (assignment_expression "newmode.c_cflag = oldmode.c_cflag" (field_expression "newmode.c_cflag" identifier . field_identifier) = (field_expression "oldmode.c_cflag" identifier . field_identifier)) ;) (expression_statement "newmode.c_lflag = oldmode.c_lflag | 0xb;" (assignment_expression "newmode.c_lflag = oldmode.c_lflag | 0xb" (field_expression "newmode.c_lflag" identifier . field_identifier) = (binary_expression "oldmode.c_lflag | 0xb" (field_expression "oldmode.c_lflag" identifier . field_identifier) | number_literal)) ;) (expression_statement "newmode.c_line = oldmode.c_line;" (assignment_expression "newmode.c_line = oldmode.c_line" (field_expression "newmode.c_line" identifier . field_identifier) = (field_expression "oldmode.c_line" identifier . field_identifier)) ;) (expression_statement "newmode.c_cc[0] = oldmode.c_cc[0];" (assignment_expression "newmode.c_cc[0] = oldmode.c_cc[0]" (subscript_expression "newmode.c_cc[0]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[1] = oldmode.c_cc[1];" (assignment_expression "newmode.c_cc[1] = oldmode.c_cc[1]" (subscript_expression "newmode.c_cc[1]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[1]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[2] = oldmode.c_cc[2];" (assignment_expression "newmode.c_cc[2] = oldmode.c_cc[2]" (subscript_expression "newmode.c_cc[2]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[2]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[3] = oldmode.c_cc[3];" (assignment_expression "newmode.c_cc[3] = oldmode.c_cc[3]" (subscript_expression "newmode.c_cc[3]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[3]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[4] = oldmode.c_cc[4];" (assignment_expression "newmode.c_cc[4] = oldmode.c_cc[4]" (subscript_expression "newmode.c_cc[4]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[4]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[5] = oldmode.c_cc[5];" (assignment_expression "newmode.c_cc[5] = oldmode.c_cc[5]" (subscript_expression "newmode.c_cc[5]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[5]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[6] = oldmode.c_cc[6];" (assignment_expression "newmode.c_cc[6] = oldmode.c_cc[6]" (subscript_expression "newmode.c_cc[6]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[6]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[7] = oldmode.c_cc[7];" (assignment_expression "newmode.c_cc[7] = oldmode.c_cc[7]" (subscript_expression "newmode.c_cc[7]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[7]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[8] = oldmode.c_cc[8];" (assignment_expression "newmode.c_cc[8] = oldmode.c_cc[8]" (subscript_expression "newmode.c_cc[8]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[8]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[9] = oldmode.c_cc[9];" (assignment_expression "newmode.c_cc[9] = oldmode.c_cc[9]" (subscript_expression "newmode.c_cc[9]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[9]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[10] = oldmode.c_cc[10];" (assignment_expression "newmode.c_cc[10] = oldmode.c_cc[10]" (subscript_expression "newmode.c_cc[10]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[10]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0xb] = oldmode.c_cc[0xb];" (assignment_expression "newmode.c_cc[0xb] = oldmode.c_cc[0xb]" (subscript_expression "newmode.c_cc[0xb]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0xb]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0xc] = oldmode.c_cc[0xc];" (assignment_expression "newmode.c_cc[0xc] = oldmode.c_cc[0xc]" (subscript_expression "newmode.c_cc[0xc]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0xc]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0xd] = oldmode.c_cc[0xd];" (assignment_expression "newmode.c_cc[0xd] = oldmode.c_cc[0xd]" (subscript_expression "newmode.c_cc[0xd]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0xd]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0xe] = oldmode.c_cc[0xe];" (assignment_expression "newmode.c_cc[0xe] = oldmode.c_cc[0xe]" (subscript_expression "newmode.c_cc[0xe]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0xe]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0xf] = oldmode.c_cc[0xf];" (assignment_expression "newmode.c_cc[0xf] = oldmode.c_cc[0xf]" (subscript_expression "newmode.c_cc[0xf]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0xf]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x10] = oldmode.c_cc[0x10];" (assignment_expression "newmode.c_cc[0x10] = oldmode.c_cc[0x10]" (subscript_expression "newmode.c_cc[0x10]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x10]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x11] = oldmode.c_cc[0x11];" (assignment_expression "newmode.c_cc[0x11] = oldmode.c_cc[0x11]" (subscript_expression "newmode.c_cc[0x11]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x11]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x12] = oldmode.c_cc[0x12];" (assignment_expression "newmode.c_cc[0x12] = oldmode.c_cc[0x12]" (subscript_expression "newmode.c_cc[0x12]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x12]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x13] = oldmode.c_cc[0x13];" (assignment_expression "newmode.c_cc[0x13] = oldmode.c_cc[0x13]" (subscript_expression "newmode.c_cc[0x13]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x13]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x14] = oldmode.c_cc[0x14];" (assignment_expression "newmode.c_cc[0x14] = oldmode.c_cc[0x14]" (subscript_expression "newmode.c_cc[0x14]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x14]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x15] = oldmode.c_cc[0x15];" (assignment_expression "newmode.c_cc[0x15] = oldmode.c_cc[0x15]" (subscript_expression "newmode.c_cc[0x15]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x15]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x16] = oldmode.c_cc[0x16];" (assignment_expression "newmode.c_cc[0x16] = oldmode.c_cc[0x16]" (subscript_expression "newmode.c_cc[0x16]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x16]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x17] = oldmode.c_cc[0x17];" (assignment_expression "newmode.c_cc[0x17] = oldmode.c_cc[0x17]" (subscript_expression "newmode.c_cc[0x17]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x17]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x18] = oldmode.c_cc[0x18];" (assignment_expression "newmode.c_cc[0x18] = oldmode.c_cc[0x18]" (subscript_expression "newmode.c_cc[0x18]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x18]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x19] = oldmode.c_cc[0x19];" (assignment_expression "newmode.c_cc[0x19] = oldmode.c_cc[0x19]" (subscript_expression "newmode.c_cc[0x19]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x19]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];" (assignment_expression "newmode.c_cc[0x1a] = oldmode.c_cc[0x1a]" (subscript_expression "newmode.c_cc[0x1a]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x1a]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];" (assignment_expression "newmode.c_cc[0x1b] = oldmode.c_cc[0x1b]" (subscript_expression "newmode.c_cc[0x1b]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x1b]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];" (assignment_expression "newmode.c_cc[0x1c] = oldmode.c_cc[0x1c]" (subscript_expression "newmode.c_cc[0x1c]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x1c]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];" (assignment_expression "newmode.c_cc[0x1d] = oldmode.c_cc[0x1d]" (subscript_expression "newmode.c_cc[0x1d]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x1d]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];" (assignment_expression "newmode.c_cc[0x1e] = oldmode.c_cc[0x1e]" (subscript_expression "newmode.c_cc[0x1e]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x1e]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];" (assignment_expression "newmode.c_cc[0x1f] = oldmode.c_cc[0x1f]" (subscript_expression "newmode.c_cc[0x1f]" (field_expression "newmode.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "oldmode.c_cc[0x1f]" (field_expression "oldmode.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "newmode._49_3_ = oldmode._49_3_;" (assignment_expression "newmode._49_3_ = oldmode._49_3_" (field_expression "newmode._49_3_" identifier . field_identifier) = (field_expression "oldmode._49_3_" identifier . field_identifier)) ;) (expression_statement "newmode.c_ispeed = oldmode.c_ispeed;" (assignment_expression "newmode.c_ispeed = oldmode.c_ispeed" (field_expression "newmode.c_ispeed" identifier . field_identifier) = (field_expression "oldmode.c_ispeed" identifier . field_identifier)) ;) (expression_statement "newmode.c_ospeed = oldmode.c_ospeed;" (assignment_expression "newmode.c_ospeed = oldmode.c_ospeed" (field_expression "newmode.c_ospeed" identifier . field_identifier) = (field_expression "oldmode.c_ospeed" identifier . field_identifier)) ;) (expression_statement "tcsetattr(0,0,(termios *)&newmode);" (call_expression "tcsetattr(0,0,(termios *)&newmode)" identifier (argument_list "(0,0,(termios *)&newmode)" ( number_literal , number_literal , (cast_expression "(termios *)&newmode" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&newmode" & identifier)) ))) ;) (expression_statement "line[0] = '\0';" (assignment_expression "line[0] = '\0'" (subscript_expression "line[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "block_and_read((int)line,buf,len);" (call_expression "block_and_read((int)line,buf,len)" identifier (argument_list "((int)line,buf,len)" ( (cast_expression "(int)line" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier ))) ;) (expression_statement "tcsetattr(0,0,(termios *)&oldmode);" (call_expression "tcsetattr(0,0,(termios *)&oldmode)" identifier (argument_list "(0,0,(termios *)&oldmode)" ( number_literal , number_literal , (cast_expression "(termios *)&oldmode" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&oldmode" & identifier)) ))) ;) (if_statement "if (stderr_is_a_tty != 0) {\n      tcsetattr(2,1,(termios *)&cf);\n    }" if (parenthesized_expression "(stderr_is_a_tty != 0)" ( (binary_expression "stderr_is_a_tty != 0" identifier != number_literal) )) (compound_statement "{\n      tcsetattr(2,1,(termios *)&cf);\n    }" { (expression_statement "tcsetattr(2,1,(termios *)&cf);" (call_expression "tcsetattr(2,1,(termios *)&cf)" identifier (argument_list "(2,1,(termios *)&cf)" ( number_literal , number_literal , (cast_expression "(termios *)&cf" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cf" & identifier)) ))) ;) })) (expression_statement "uVar3 = 2;" (assignment_expression "uVar3 = 2" identifier = number_literal) ;) (if_statement "if ((line[0] & 0xdfU) != 0x59) {\n      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);\n    }" if (parenthesized_expression "((line[0] & 0xdfU) != 0x59)" ( (binary_expression "(line[0] & 0xdfU) != 0x59" (parenthesized_expression "(line[0] & 0xdfU)" ( (binary_expression "line[0] & 0xdfU" (subscript_expression "line[0]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);\n    }" { (expression_statement "uVar3 = (uint)((line[0] & 0xdfU) == 0x4e);" (assignment_expression "uVar3 = (uint)((line[0] & 0xdfU) == 0x4e)" identifier = (call_expression "(uint)((line[0] & 0xdfU) == 0x4e)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((line[0] & 0xdfU) == 0x4e)" ( (binary_expression "(line[0] & 0xdfU) == 0x4e" (parenthesized_expression "(line[0] & 0xdfU)" ( (binary_expression "line[0] & 0xdfU" (subscript_expression "line[0]" identifier [ number_literal ]) & number_literal) )) == number_literal) )))) ;) })) }) (else_clause "else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    uVar3 = 0;\n  }" else (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path);\n    fflush(*(FILE **)puVar2);\n    uVar3 = 0;\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,filename->path)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" * (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal , (field_expression "filename->path" identifier -> field_identifier) ))) ;) (expression_statement "fflush(*(FILE **)puVar2);" (call_expression "fflush(*(FILE **)puVar2)" identifier (argument_list "(*(FILE **)puVar2)" ( (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "uVar3 = 0;" (assignment_expression "uVar3 = 0" identifier = number_literal) ;) }))) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar3;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined1 FUN_00049720(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    \n  FUN_0004d450();\n}\n\n" (function_definition "undefined1 FUN_00049720(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    \n  FUN_0004d450();\n}" type_identifier (function_declarator "FUN_00049720(undefined4 param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    \n  FUN_0004d450();\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "termios local_e4;" type_identifier identifier ;) (declaration "termios local_a8;" type_identifier identifier ;) (declaration "termios local_6c;" type_identifier identifier ;) (declaration "byte local_30;" type_identifier identifier ;) (declaration "int local_10;" primitive_type identifier ;) (declaration "undefined4 uStack_c;" type_identifier identifier ;) (expression_statement "uStack_c = 0x49727;" (assignment_expression "uStack_c = 0x49727" identifier = number_literal) ;) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }" if (parenthesized_expression "(DAT_00070704 != 0)" ( (binary_expression "DAT_00070704 != 0" identifier != number_literal) )) (compound_statement "{\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }" { (expression_statement "tcgetattr(2,&local_e4);" (call_expression "tcgetattr(2,&local_e4)" identifier (argument_list "(2,&local_e4)" ( number_literal , (pointer_expression "&local_e4" & identifier) ))) ;) (expression_statement "tcsetattr(2,1,(termios *)&DAT_00070720);" (call_expression "tcsetattr(2,1,(termios *)&DAT_00070720)" identifier (argument_list "(2,1,(termios *)&DAT_00070720)" ( number_literal , number_literal , (cast_expression "(termios *)&DAT_00070720" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00070720" & identifier)) ))) ;) })) (expression_statement "puVar1 = PTR_stderr_0006ffc4;" (assignment_expression "puVar1 = PTR_stderr_0006ffc4" identifier = identifier) ;) (if_statement "if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" if (parenthesized_expression "(DAT_00070700 == 0)" ( (binary_expression "DAT_00070700 == 0" identifier == number_literal) )) (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" * (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , number_literal , (pointer_expression "*param_2" * identifier) ))) ;) (expression_statement "fflush(*(FILE **)puVar1);" (call_expression "fflush(*(FILE **)puVar1)" identifier (argument_list "(*(FILE **)puVar1)" ( (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "tcgetattr(0,&local_a8);" (call_expression "tcgetattr(0,&local_a8)" identifier (argument_list "(0,&local_a8)" ( number_literal , (pointer_expression "&local_a8" & identifier) ))) ;) (expression_statement "local_6c.c_iflag = local_a8.c_iflag;" (assignment_expression "local_6c.c_iflag = local_a8.c_iflag" (field_expression "local_6c.c_iflag" identifier . field_identifier) = (field_expression "local_a8.c_iflag" identifier . field_identifier)) ;) (expression_statement "local_6c.c_oflag = local_a8.c_oflag;" (assignment_expression "local_6c.c_oflag = local_a8.c_oflag" (field_expression "local_6c.c_oflag" identifier . field_identifier) = (field_expression "local_a8.c_oflag" identifier . field_identifier)) ;) (expression_statement "local_6c.c_cflag = local_a8.c_cflag;" (assignment_expression "local_6c.c_cflag = local_a8.c_cflag" (field_expression "local_6c.c_cflag" identifier . field_identifier) = (field_expression "local_a8.c_cflag" identifier . field_identifier)) ;) (expression_statement "local_6c.c_lflag = local_a8.c_lflag | 0xb;" (assignment_expression "local_6c.c_lflag = local_a8.c_lflag | 0xb" (field_expression "local_6c.c_lflag" identifier . field_identifier) = (binary_expression "local_a8.c_lflag | 0xb" (field_expression "local_a8.c_lflag" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_6c.c_line = local_a8.c_line;" (assignment_expression "local_6c.c_line = local_a8.c_line" (field_expression "local_6c.c_line" identifier . field_identifier) = (field_expression "local_a8.c_line" identifier . field_identifier)) ;) (expression_statement "local_6c.c_cc[0] = local_a8.c_cc[0];" (assignment_expression "local_6c.c_cc[0] = local_a8.c_cc[0]" (subscript_expression "local_6c.c_cc[0]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[1] = local_a8.c_cc[1];" (assignment_expression "local_6c.c_cc[1] = local_a8.c_cc[1]" (subscript_expression "local_6c.c_cc[1]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[1]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[2] = local_a8.c_cc[2];" (assignment_expression "local_6c.c_cc[2] = local_a8.c_cc[2]" (subscript_expression "local_6c.c_cc[2]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[2]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[3] = local_a8.c_cc[3];" (assignment_expression "local_6c.c_cc[3] = local_a8.c_cc[3]" (subscript_expression "local_6c.c_cc[3]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[3]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[4] = local_a8.c_cc[4];" (assignment_expression "local_6c.c_cc[4] = local_a8.c_cc[4]" (subscript_expression "local_6c.c_cc[4]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[4]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[5] = local_a8.c_cc[5];" (assignment_expression "local_6c.c_cc[5] = local_a8.c_cc[5]" (subscript_expression "local_6c.c_cc[5]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[5]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[6] = local_a8.c_cc[6];" (assignment_expression "local_6c.c_cc[6] = local_a8.c_cc[6]" (subscript_expression "local_6c.c_cc[6]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[6]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[7] = local_a8.c_cc[7];" (assignment_expression "local_6c.c_cc[7] = local_a8.c_cc[7]" (subscript_expression "local_6c.c_cc[7]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[7]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[8] = local_a8.c_cc[8];" (assignment_expression "local_6c.c_cc[8] = local_a8.c_cc[8]" (subscript_expression "local_6c.c_cc[8]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[8]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[9] = local_a8.c_cc[9];" (assignment_expression "local_6c.c_cc[9] = local_a8.c_cc[9]" (subscript_expression "local_6c.c_cc[9]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[9]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[10] = local_a8.c_cc[10];" (assignment_expression "local_6c.c_cc[10] = local_a8.c_cc[10]" (subscript_expression "local_6c.c_cc[10]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[10]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xb] = local_a8.c_cc[0xb];" (assignment_expression "local_6c.c_cc[0xb] = local_a8.c_cc[0xb]" (subscript_expression "local_6c.c_cc[0xb]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xb]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xc] = local_a8.c_cc[0xc];" (assignment_expression "local_6c.c_cc[0xc] = local_a8.c_cc[0xc]" (subscript_expression "local_6c.c_cc[0xc]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xc]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xd] = local_a8.c_cc[0xd];" (assignment_expression "local_6c.c_cc[0xd] = local_a8.c_cc[0xd]" (subscript_expression "local_6c.c_cc[0xd]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xd]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xe] = local_a8.c_cc[0xe];" (assignment_expression "local_6c.c_cc[0xe] = local_a8.c_cc[0xe]" (subscript_expression "local_6c.c_cc[0xe]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xe]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0xf] = local_a8.c_cc[0xf];" (assignment_expression "local_6c.c_cc[0xf] = local_a8.c_cc[0xf]" (subscript_expression "local_6c.c_cc[0xf]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0xf]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x10] = local_a8.c_cc[0x10];" (assignment_expression "local_6c.c_cc[0x10] = local_a8.c_cc[0x10]" (subscript_expression "local_6c.c_cc[0x10]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x10]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x11] = local_a8.c_cc[0x11];" (assignment_expression "local_6c.c_cc[0x11] = local_a8.c_cc[0x11]" (subscript_expression "local_6c.c_cc[0x11]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x11]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x12] = local_a8.c_cc[0x12];" (assignment_expression "local_6c.c_cc[0x12] = local_a8.c_cc[0x12]" (subscript_expression "local_6c.c_cc[0x12]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x12]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x13] = local_a8.c_cc[0x13];" (assignment_expression "local_6c.c_cc[0x13] = local_a8.c_cc[0x13]" (subscript_expression "local_6c.c_cc[0x13]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x13]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x14] = local_a8.c_cc[0x14];" (assignment_expression "local_6c.c_cc[0x14] = local_a8.c_cc[0x14]" (subscript_expression "local_6c.c_cc[0x14]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x14]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x15] = local_a8.c_cc[0x15];" (assignment_expression "local_6c.c_cc[0x15] = local_a8.c_cc[0x15]" (subscript_expression "local_6c.c_cc[0x15]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x15]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x16] = local_a8.c_cc[0x16];" (assignment_expression "local_6c.c_cc[0x16] = local_a8.c_cc[0x16]" (subscript_expression "local_6c.c_cc[0x16]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x16]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x17] = local_a8.c_cc[0x17];" (assignment_expression "local_6c.c_cc[0x17] = local_a8.c_cc[0x17]" (subscript_expression "local_6c.c_cc[0x17]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x17]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x18] = local_a8.c_cc[0x18];" (assignment_expression "local_6c.c_cc[0x18] = local_a8.c_cc[0x18]" (subscript_expression "local_6c.c_cc[0x18]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x18]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x19] = local_a8.c_cc[0x19];" (assignment_expression "local_6c.c_cc[0x19] = local_a8.c_cc[0x19]" (subscript_expression "local_6c.c_cc[0x19]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x19]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];" (assignment_expression "local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a]" (subscript_expression "local_6c.c_cc[0x1a]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1a]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];" (assignment_expression "local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b]" (subscript_expression "local_6c.c_cc[0x1b]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1b]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];" (assignment_expression "local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c]" (subscript_expression "local_6c.c_cc[0x1c]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1c]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];" (assignment_expression "local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d]" (subscript_expression "local_6c.c_cc[0x1d]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1d]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];" (assignment_expression "local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e]" (subscript_expression "local_6c.c_cc[0x1e]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1e]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];" (assignment_expression "local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f]" (subscript_expression "local_6c.c_cc[0x1f]" (field_expression "local_6c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_a8.c_cc[0x1f]" (field_expression "local_a8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_6c._49_3_ = local_a8._49_3_;" (assignment_expression "local_6c._49_3_ = local_a8._49_3_" (field_expression "local_6c._49_3_" identifier . field_identifier) = (field_expression "local_a8._49_3_" identifier . field_identifier)) ;) (expression_statement "local_6c.c_ispeed = local_a8.c_ispeed;" (assignment_expression "local_6c.c_ispeed = local_a8.c_ispeed" (field_expression "local_6c.c_ispeed" identifier . field_identifier) = (field_expression "local_a8.c_ispeed" identifier . field_identifier)) ;) (expression_statement "local_6c.c_ospeed = local_a8.c_ospeed;" (assignment_expression "local_6c.c_ospeed = local_a8.c_ospeed" (field_expression "local_6c.c_ospeed" identifier . field_identifier) = (field_expression "local_a8.c_ospeed" identifier . field_identifier)) ;) (expression_statement "tcsetattr(0,0,&local_6c);" (call_expression "tcsetattr(0,0,&local_6c)" identifier (argument_list "(0,0,&local_6c)" ( number_literal , number_literal , (pointer_expression "&local_6c" & identifier) ))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "FUN_00048c80();" (call_expression "FUN_00048c80()" identifier (argument_list "()" ( ))) ;) (expression_statement "tcsetattr(0,0,&local_a8);" (call_expression "tcsetattr(0,0,&local_a8)" identifier (argument_list "(0,0,&local_a8)" ( number_literal , number_literal , (pointer_expression "&local_a8" & identifier) ))) ;) (if_statement "if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }" if (parenthesized_expression "(DAT_00070704 != 0)" ( (binary_expression "DAT_00070704 != 0" identifier != number_literal) )) (compound_statement "{\n      tcsetattr(2,1,&local_e4);\n    }" { (expression_statement "tcsetattr(2,1,&local_e4);" (call_expression "tcsetattr(2,1,&local_e4)" identifier (argument_list "(2,1,&local_e4)" ( number_literal , number_literal , (pointer_expression "&local_e4" & identifier) ))) ;) })) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" identifier = number_literal) ;) (if_statement "if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }" if (parenthesized_expression "((local_30 & 0xdf) != 0x59)" ( (binary_expression "(local_30 & 0xdf) != 0x59" (parenthesized_expression "(local_30 & 0xdf)" ( (binary_expression "local_30 & 0xdf" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }" { (expression_statement "uVar2 = (local_30 & 0xdf) == 0x4e;" (assignment_expression "uVar2 = (local_30 & 0xdf) == 0x4e" identifier = (binary_expression "(local_30 & 0xdf) == 0x4e" (parenthesized_expression "(local_30 & 0xdf)" ( (binary_expression "local_30 & 0xdf" identifier & number_literal) )) == number_literal)) ;) })) }) (else_clause "else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" else (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2)" identifier (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2)" ( (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" * (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal , (pointer_expression "*param_2" * identifier) ))) ;) (expression_statement "fflush(*(FILE **)puVar1);" (call_expression "fflush(*(FILE **)puVar1)" identifier (argument_list "(*(FILE **)puVar1)" ( (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) }))) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }" if (parenthesized_expression "(local_10 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_10 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return uVar2;\n  }" { (return_statement "return uVar2;" return identifier ;) })) (expression_statement "FUN_0004d450();" (call_expression "FUN_0004d450()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , LIT , (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) | LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT . field_identifier) [ LIT ]) = (subscript_expression (field_expression IDENT . field_identifier) [ LIT ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (field_expression IDENT . field_identifier)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT , (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined1 FUN_00049720(undefined4 param_1,undefined4 *param_2)\n\n{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    \n  FUN_0004d450();\n}" (type_identifier "undefined1") (function_declarator "FUN_00049720(undefined4 param_1,undefined4 *param_2)" (identifier "FUN_00049720") (parameter_list "(undefined4 param_1,undefined4 *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int in_GS_OFFSET;\n  undefined1 uVar2;\n  termios local_e4;\n  termios local_a8;\n  termios local_6c;\n  byte local_30;\n  int local_10;\n  undefined4 uStack_c;\n  \n  uStack_c = 0x49727;\n  local_10 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }\n  puVar1 = PTR_stderr_0006ffc4;\n  if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }\n  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }\n                    \n  FUN_0004d450();\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "termios local_e4;" (type_identifier "termios") (identifier "local_e4") (; ";")) (declaration "termios local_a8;" (type_identifier "termios") (identifier "local_a8") (; ";")) (declaration "termios local_6c;" (type_identifier "termios") (identifier "local_6c") (; ";")) (declaration "byte local_30;" (type_identifier "byte") (identifier "local_30") (; ";")) (declaration "int local_10;" (primitive_type "int") (identifier "local_10") (; ";")) (declaration "undefined4 uStack_c;" (type_identifier "undefined4") (identifier "uStack_c") (; ";")) (expression_statement "uStack_c = 0x49727;" (assignment_expression "uStack_c = 0x49727" (identifier "uStack_c") (= "=") (number_literal "0x49727")) (; ";")) (expression_statement "local_10 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_10 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (DAT_00070704 != 0) {\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }" (if "if") (parenthesized_expression "(DAT_00070704 != 0)" (( "(") (binary_expression "DAT_00070704 != 0" (identifier "DAT_00070704") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    tcgetattr(2,&local_e4);\n    tcsetattr(2,1,(termios *)&DAT_00070720);\n  }" ({ "{") (expression_statement "tcgetattr(2,&local_e4);" (call_expression "tcgetattr(2,&local_e4)" (identifier "tcgetattr") (argument_list "(2,&local_e4)" (( "(") (number_literal "2") (, ",") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")) () ")"))) (; ";")) (expression_statement "tcsetattr(2,1,(termios *)&DAT_00070720);" (call_expression "tcsetattr(2,1,(termios *)&DAT_00070720)" (identifier "tcsetattr") (argument_list "(2,1,(termios *)&DAT_00070720)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (cast_expression "(termios *)&DAT_00070720" (( "(") (type_descriptor "termios *" (type_identifier "termios") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00070720" (& "&") (identifier "DAT_00070720"))) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_stderr_0006ffc4;" (assignment_expression "puVar1 = PTR_stderr_0006ffc4" (identifier "puVar1") (= "=") (identifier "PTR_stderr_0006ffc4")) (; ";")) (if_statement "if (DAT_00070700 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }\n  else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_00070700 == 0)" (( "(") (binary_expression "DAT_00070700 == 0" (identifier "DAT_00070700") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_a8);\n    local_6c.c_iflag = local_a8.c_iflag;\n    local_6c.c_oflag = local_a8.c_oflag;\n    local_6c.c_cflag = local_a8.c_cflag;\n    local_6c.c_lflag = local_a8.c_lflag | 0xb;\n    local_6c.c_line = local_a8.c_line;\n    local_6c.c_cc[0] = local_a8.c_cc[0];\n    local_6c.c_cc[1] = local_a8.c_cc[1];\n    local_6c.c_cc[2] = local_a8.c_cc[2];\n    local_6c.c_cc[3] = local_a8.c_cc[3];\n    local_6c.c_cc[4] = local_a8.c_cc[4];\n    local_6c.c_cc[5] = local_a8.c_cc[5];\n    local_6c.c_cc[6] = local_a8.c_cc[6];\n    local_6c.c_cc[7] = local_a8.c_cc[7];\n    local_6c.c_cc[8] = local_a8.c_cc[8];\n    local_6c.c_cc[9] = local_a8.c_cc[9];\n    local_6c.c_cc[10] = local_a8.c_cc[10];\n    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];\n    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];\n    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];\n    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];\n    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];\n    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];\n    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];\n    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];\n    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];\n    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];\n    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];\n    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];\n    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];\n    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];\n    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];\n    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];\n    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];\n    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];\n    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];\n    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];\n    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];\n    local_6c._49_3_ = local_a8._49_3_;\n    local_6c.c_ispeed = local_a8.c_ispeed;\n    local_6c.c_ospeed = local_a8.c_ospeed;\n    tcsetattr(0,0,&local_6c);\n    local_30 = 0;\n    FUN_00048c80();\n    tcsetattr(0,0,&local_a8);\n    if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }\n    uVar2 = 2;\n    if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }\n  }" ({ "{") (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "\n                  ,0x1000,*param_2)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0006ffc4"))) (, ",") (number_literal "1") (, ",") (string_literal ""The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "" (" """) (string_content "The session log file ") (escape_sequence "\"") (string_content "%.*s") (escape_sequence "\"") (string_content " already exists.") (escape_sequence "\n") (string_content "You can overwrite it with a new session log,") (escape_sequence "\n") (string_content "append your session log to the end of it,") (escape_sequence "\n") (string_content "or disable session logging for this session.") (escape_sequence "\n") (string_content "Enter ") (escape_sequence "\"") (string_content "y") (escape_sequence "\"") (string_content " to wipe the file, ") (escape_sequence "\"") (string_content "n") (escape_sequence "\"") (string_content " to append to it,") (escape_sequence "\n") (string_content "or just press Return to disable logging.") (escape_sequence "\n") (string_content "Wipe the log file? (y/n, Return cancels logging) ") (" """)) (, ",") (number_literal "0x1000") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")"))) (; ";")) (expression_statement "fflush(*(FILE **)puVar1);" (call_expression "fflush(*(FILE **)puVar1)" (identifier "fflush") (argument_list "(*(FILE **)puVar1)" (( "(") (pointer_expression "*(FILE **)puVar1" (* "*") (cast_expression "(FILE **)puVar1" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1"))) () ")"))) (; ";")) (expression_statement "tcgetattr(0,&local_a8);" (call_expression "tcgetattr(0,&local_a8)" (identifier "tcgetattr") (argument_list "(0,&local_a8)" (( "(") (number_literal "0") (, ",") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) () ")"))) (; ";")) (expression_statement "local_6c.c_iflag = local_a8.c_iflag;" (assignment_expression "local_6c.c_iflag = local_a8.c_iflag" (field_expression "local_6c.c_iflag" (identifier "local_6c") (. ".") (field_identifier "c_iflag")) (= "=") (field_expression "local_a8.c_iflag" (identifier "local_a8") (. ".") (field_identifier "c_iflag"))) (; ";")) (expression_statement "local_6c.c_oflag = local_a8.c_oflag;" (assignment_expression "local_6c.c_oflag = local_a8.c_oflag" (field_expression "local_6c.c_oflag" (identifier "local_6c") (. ".") (field_identifier "c_oflag")) (= "=") (field_expression "local_a8.c_oflag" (identifier "local_a8") (. ".") (field_identifier "c_oflag"))) (; ";")) (expression_statement "local_6c.c_cflag = local_a8.c_cflag;" (assignment_expression "local_6c.c_cflag = local_a8.c_cflag" (field_expression "local_6c.c_cflag" (identifier "local_6c") (. ".") (field_identifier "c_cflag")) (= "=") (field_expression "local_a8.c_cflag" (identifier "local_a8") (. ".") (field_identifier "c_cflag"))) (; ";")) (expression_statement "local_6c.c_lflag = local_a8.c_lflag | 0xb;" (assignment_expression "local_6c.c_lflag = local_a8.c_lflag | 0xb" (field_expression "local_6c.c_lflag" (identifier "local_6c") (. ".") (field_identifier "c_lflag")) (= "=") (binary_expression "local_a8.c_lflag | 0xb" (field_expression "local_a8.c_lflag" (identifier "local_a8") (. ".") (field_identifier "c_lflag")) (| "|") (number_literal "0xb"))) (; ";")) (expression_statement "local_6c.c_line = local_a8.c_line;" (assignment_expression "local_6c.c_line = local_a8.c_line" (field_expression "local_6c.c_line" (identifier "local_6c") (. ".") (field_identifier "c_line")) (= "=") (field_expression "local_a8.c_line" (identifier "local_a8") (. ".") (field_identifier "c_line"))) (; ";")) (expression_statement "local_6c.c_cc[0] = local_a8.c_cc[0];" (assignment_expression "local_6c.c_cc[0] = local_a8.c_cc[0]" (subscript_expression "local_6c.c_cc[0]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[1] = local_a8.c_cc[1];" (assignment_expression "local_6c.c_cc[1] = local_a8.c_cc[1]" (subscript_expression "local_6c.c_cc[1]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[1]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[2] = local_a8.c_cc[2];" (assignment_expression "local_6c.c_cc[2] = local_a8.c_cc[2]" (subscript_expression "local_6c.c_cc[2]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[2]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[3] = local_a8.c_cc[3];" (assignment_expression "local_6c.c_cc[3] = local_a8.c_cc[3]" (subscript_expression "local_6c.c_cc[3]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[3]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[4] = local_a8.c_cc[4];" (assignment_expression "local_6c.c_cc[4] = local_a8.c_cc[4]" (subscript_expression "local_6c.c_cc[4]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[4]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[5] = local_a8.c_cc[5];" (assignment_expression "local_6c.c_cc[5] = local_a8.c_cc[5]" (subscript_expression "local_6c.c_cc[5]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[5]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[6] = local_a8.c_cc[6];" (assignment_expression "local_6c.c_cc[6] = local_a8.c_cc[6]" (subscript_expression "local_6c.c_cc[6]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[6]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[7] = local_a8.c_cc[7];" (assignment_expression "local_6c.c_cc[7] = local_a8.c_cc[7]" (subscript_expression "local_6c.c_cc[7]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[7]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[8] = local_a8.c_cc[8];" (assignment_expression "local_6c.c_cc[8] = local_a8.c_cc[8]" (subscript_expression "local_6c.c_cc[8]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[8]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[9] = local_a8.c_cc[9];" (assignment_expression "local_6c.c_cc[9] = local_a8.c_cc[9]" (subscript_expression "local_6c.c_cc[9]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[9]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[10] = local_a8.c_cc[10];" (assignment_expression "local_6c.c_cc[10] = local_a8.c_cc[10]" (subscript_expression "local_6c.c_cc[10]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[10]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0xb] = local_a8.c_cc[0xb];" (assignment_expression "local_6c.c_cc[0xb] = local_a8.c_cc[0xb]" (subscript_expression "local_6c.c_cc[0xb]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0xb]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0xc] = local_a8.c_cc[0xc];" (assignment_expression "local_6c.c_cc[0xc] = local_a8.c_cc[0xc]" (subscript_expression "local_6c.c_cc[0xc]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0xc]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0xd] = local_a8.c_cc[0xd];" (assignment_expression "local_6c.c_cc[0xd] = local_a8.c_cc[0xd]" (subscript_expression "local_6c.c_cc[0xd]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0xd]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0xe] = local_a8.c_cc[0xe];" (assignment_expression "local_6c.c_cc[0xe] = local_a8.c_cc[0xe]" (subscript_expression "local_6c.c_cc[0xe]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0xe]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0xf] = local_a8.c_cc[0xf];" (assignment_expression "local_6c.c_cc[0xf] = local_a8.c_cc[0xf]" (subscript_expression "local_6c.c_cc[0xf]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xf") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0xf]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x10] = local_a8.c_cc[0x10];" (assignment_expression "local_6c.c_cc[0x10] = local_a8.c_cc[0x10]" (subscript_expression "local_6c.c_cc[0x10]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x10") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x10]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x11] = local_a8.c_cc[0x11];" (assignment_expression "local_6c.c_cc[0x11] = local_a8.c_cc[0x11]" (subscript_expression "local_6c.c_cc[0x11]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x11") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x11]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x12] = local_a8.c_cc[0x12];" (assignment_expression "local_6c.c_cc[0x12] = local_a8.c_cc[0x12]" (subscript_expression "local_6c.c_cc[0x12]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x12") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x12]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x13] = local_a8.c_cc[0x13];" (assignment_expression "local_6c.c_cc[0x13] = local_a8.c_cc[0x13]" (subscript_expression "local_6c.c_cc[0x13]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x13") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x13]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x14] = local_a8.c_cc[0x14];" (assignment_expression "local_6c.c_cc[0x14] = local_a8.c_cc[0x14]" (subscript_expression "local_6c.c_cc[0x14]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x14") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x14]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x15] = local_a8.c_cc[0x15];" (assignment_expression "local_6c.c_cc[0x15] = local_a8.c_cc[0x15]" (subscript_expression "local_6c.c_cc[0x15]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x15") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x15]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x16] = local_a8.c_cc[0x16];" (assignment_expression "local_6c.c_cc[0x16] = local_a8.c_cc[0x16]" (subscript_expression "local_6c.c_cc[0x16]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x16") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x16]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x17] = local_a8.c_cc[0x17];" (assignment_expression "local_6c.c_cc[0x17] = local_a8.c_cc[0x17]" (subscript_expression "local_6c.c_cc[0x17]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x17") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x17]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x18] = local_a8.c_cc[0x18];" (assignment_expression "local_6c.c_cc[0x18] = local_a8.c_cc[0x18]" (subscript_expression "local_6c.c_cc[0x18]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x18") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x18]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x18") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x19] = local_a8.c_cc[0x19];" (assignment_expression "local_6c.c_cc[0x19] = local_a8.c_cc[0x19]" (subscript_expression "local_6c.c_cc[0x19]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x19") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x19]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];" (assignment_expression "local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a]" (subscript_expression "local_6c.c_cc[0x1a]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1a") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x1a]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];" (assignment_expression "local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b]" (subscript_expression "local_6c.c_cc[0x1b]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1b") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x1b]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];" (assignment_expression "local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c]" (subscript_expression "local_6c.c_cc[0x1c]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1c") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x1c]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];" (assignment_expression "local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d]" (subscript_expression "local_6c.c_cc[0x1d]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1d") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x1d]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1d") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];" (assignment_expression "local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e]" (subscript_expression "local_6c.c_cc[0x1e]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1e") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x1e]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1e") (] "]"))) (; ";")) (expression_statement "local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];" (assignment_expression "local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f]" (subscript_expression "local_6c.c_cc[0x1f]" (field_expression "local_6c.c_cc" (identifier "local_6c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1f") (] "]")) (= "=") (subscript_expression "local_a8.c_cc[0x1f]" (field_expression "local_a8.c_cc" (identifier "local_a8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1f") (] "]"))) (; ";")) (expression_statement "local_6c._49_3_ = local_a8._49_3_;" (assignment_expression "local_6c._49_3_ = local_a8._49_3_" (field_expression "local_6c._49_3_" (identifier "local_6c") (. ".") (field_identifier "_49_3_")) (= "=") (field_expression "local_a8._49_3_" (identifier "local_a8") (. ".") (field_identifier "_49_3_"))) (; ";")) (expression_statement "local_6c.c_ispeed = local_a8.c_ispeed;" (assignment_expression "local_6c.c_ispeed = local_a8.c_ispeed" (field_expression "local_6c.c_ispeed" (identifier "local_6c") (. ".") (field_identifier "c_ispeed")) (= "=") (field_expression "local_a8.c_ispeed" (identifier "local_a8") (. ".") (field_identifier "c_ispeed"))) (; ";")) (expression_statement "local_6c.c_ospeed = local_a8.c_ospeed;" (assignment_expression "local_6c.c_ospeed = local_a8.c_ospeed" (field_expression "local_6c.c_ospeed" (identifier "local_6c") (. ".") (field_identifier "c_ospeed")) (= "=") (field_expression "local_a8.c_ospeed" (identifier "local_a8") (. ".") (field_identifier "c_ospeed"))) (; ";")) (expression_statement "tcsetattr(0,0,&local_6c);" (call_expression "tcsetattr(0,0,&local_6c)" (identifier "tcsetattr") (argument_list "(0,0,&local_6c)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_6c" (& "&") (identifier "local_6c")) () ")"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00048c80();" (call_expression "FUN_00048c80()" (identifier "FUN_00048c80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "tcsetattr(0,0,&local_a8);" (call_expression "tcsetattr(0,0,&local_a8)" (identifier "tcsetattr") (argument_list "(0,0,&local_a8)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_a8" (& "&") (identifier "local_a8")) () ")"))) (; ";")) (if_statement "if (DAT_00070704 != 0) {\n      tcsetattr(2,1,&local_e4);\n    }" (if "if") (parenthesized_expression "(DAT_00070704 != 0)" (( "(") (binary_expression "DAT_00070704 != 0" (identifier "DAT_00070704") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      tcsetattr(2,1,&local_e4);\n    }" ({ "{") (expression_statement "tcsetattr(2,1,&local_e4);" (call_expression "tcsetattr(2,1,&local_e4)" (identifier "tcsetattr") (argument_list "(2,1,&local_e4)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_e4" (& "&") (identifier "local_e4")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar2 = 2;" (assignment_expression "uVar2 = 2" (identifier "uVar2") (= "=") (number_literal "2")) (; ";")) (if_statement "if ((local_30 & 0xdf) != 0x59) {\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }" (if "if") (parenthesized_expression "((local_30 & 0xdf) != 0x59)" (( "(") (binary_expression "(local_30 & 0xdf) != 0x59" (parenthesized_expression "(local_30 & 0xdf)" (( "(") (binary_expression "local_30 & 0xdf" (identifier "local_30") (& "&") (number_literal "0xdf")) () ")")) (!= "!=") (number_literal "0x59")) () ")")) (compound_statement "{\n      uVar2 = (local_30 & 0xdf) == 0x4e;\n    }" ({ "{") (expression_statement "uVar2 = (local_30 & 0xdf) == 0x4e;" (assignment_expression "uVar2 = (local_30 & 0xdf) == 0x4e" (identifier "uVar2") (= "=") (binary_expression "(local_30 & 0xdf) == 0x4e" (parenthesized_expression "(local_30 & 0xdf)" (( "(") (binary_expression "local_30 & 0xdf" (identifier "local_30") (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x4e"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" (else "else") (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);\n    fflush(*(FILE **)puVar1);\n    uVar2 = 0;\n  }" ({ "{") (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_0006ffc4,1,\n                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",\n                  0x1000,*param_2)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_0006ffc4" (* "*") (cast_expression "(undefined4 *)PTR_stderr_0006ffc4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_0006ffc4"))) (, ",") (number_literal "1") (, ",") (string_literal ""The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n"" (" """) (string_content "The session log file ") (escape_sequence "\"") (string_content "%.*s") (escape_sequence "\"") (string_content " already exists.") (escape_sequence "\n") (string_content "Logging will not be enabled.") (escape_sequence "\n") (" """)) (, ",") (number_literal "0x1000") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")"))) (; ";")) (expression_statement "fflush(*(FILE **)puVar1);" (call_expression "fflush(*(FILE **)puVar1)" (identifier "fflush") (argument_list "(*(FILE **)puVar1)" (( "(") (pointer_expression "*(FILE **)puVar1" (* "*") (cast_expression "(FILE **)puVar1" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1"))) () ")"))) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(local_10 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_10 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_10") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return uVar2;\n  }" ({ "{") (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "FUN_0004d450();" (call_expression "FUN_0004d450()" (identifier "FUN_0004d450") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

int function_1(void *frontend,type_1 *filename,type_2 *callback,void *ctx)

{
  int var_9;
  type_3 *puVar2;
  type_4 uVar3;
  size_t len;
  void *buf;
  int var_1;
  type_5 cf;
  type_5 oldmode;
  type_5 newmode;
  char line [32];
  
  var_9 = *(int *)(var_1 + 0x14);
  if (var_2 != 0) {
    var_3(2,(type_5 *)&cf);
    var_4(2,1,(type_5 *)&orig_termios_stderr);
  }
  puVar2 = PTR_stderr_0006ffc4;
  if (var_5 == 0) {
    var_6(*(type_6 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "
                  ,0x1000,filename->path);
    var_7(*(type_7 **)puVar2);
    var_3(0,(type_5 *)&oldmode);
    newmode.c_iflag = oldmode.c_iflag;
    newmode.c_oflag = oldmode.c_oflag;
    newmode.c_cflag = oldmode.c_cflag;
    newmode.c_lflag = oldmode.c_lflag | 0xb;
    newmode.c_line = oldmode.c_line;
    newmode.c_cc[0] = oldmode.c_cc[0];
    newmode.c_cc[1] = oldmode.c_cc[1];
    newmode.c_cc[2] = oldmode.c_cc[2];
    newmode.c_cc[3] = oldmode.c_cc[3];
    newmode.c_cc[4] = oldmode.c_cc[4];
    newmode.c_cc[5] = oldmode.c_cc[5];
    newmode.c_cc[6] = oldmode.c_cc[6];
    newmode.c_cc[7] = oldmode.c_cc[7];
    newmode.c_cc[8] = oldmode.c_cc[8];
    newmode.c_cc[9] = oldmode.c_cc[9];
    newmode.c_cc[10] = oldmode.c_cc[10];
    newmode.c_cc[0xb] = oldmode.c_cc[0xb];
    newmode.c_cc[0xc] = oldmode.c_cc[0xc];
    newmode.c_cc[0xd] = oldmode.c_cc[0xd];
    newmode.c_cc[0xe] = oldmode.c_cc[0xe];
    newmode.c_cc[0xf] = oldmode.c_cc[0xf];
    newmode.c_cc[0x10] = oldmode.c_cc[0x10];
    newmode.c_cc[0x11] = oldmode.c_cc[0x11];
    newmode.c_cc[0x12] = oldmode.c_cc[0x12];
    newmode.c_cc[0x13] = oldmode.c_cc[0x13];
    newmode.c_cc[0x14] = oldmode.c_cc[0x14];
    newmode.c_cc[0x15] = oldmode.c_cc[0x15];
    newmode.c_cc[0x16] = oldmode.c_cc[0x16];
    newmode.c_cc[0x17] = oldmode.c_cc[0x17];
    newmode.c_cc[0x18] = oldmode.c_cc[0x18];
    newmode.c_cc[0x19] = oldmode.c_cc[0x19];
    newmode.c_cc[0x1a] = oldmode.c_cc[0x1a];
    newmode.c_cc[0x1b] = oldmode.c_cc[0x1b];
    newmode.c_cc[0x1c] = oldmode.c_cc[0x1c];
    newmode.c_cc[0x1d] = oldmode.c_cc[0x1d];
    newmode.c_cc[0x1e] = oldmode.c_cc[0x1e];
    newmode.c_cc[0x1f] = oldmode.c_cc[0x1f];
    newmode._49_3_ = oldmode._49_3_;
    newmode.c_ispeed = oldmode.c_ispeed;
    newmode.c_ospeed = oldmode.c_ospeed;
    var_4(0,0,(type_5 *)&newmode);
    line[0] = '\0';
    var_8((int)line,buf,len);
    var_4(0,0,(type_5 *)&oldmode);
    if (var_2 != 0) {
      var_4(2,1,(type_5 *)&cf);
    }
    uVar3 = 2;
    if ((line[0] & 0xdfU) != 0x59) {
      uVar3 = (type_4)((line[0] & 0xdfU) == 0x4e);
    }
  }
  else {
    var_6(*(type_6 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",
                  0x1000,filename->path);
    var_7(*(type_7 **)puVar2);
    uVar3 = 0;
  }
  if (var_9 == *(int *)(var_1 + 0x14)) {
    return uVar3;
  }
                    /* WARNING: Subroutine does not return */
  var_10();
}


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

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

undefined1 MASKED(undefined4 param_1,undefined4 *param_2)

{
  undefined *puVar1;
  int in_GS_OFFSET;
  undefined1 uVar2;
  termios local_e4;
  termios local_a8;
  termios local_6c;
  byte local_30;
  int local_10;
  undefined4 uStack_c;
  
  uStack_c = 0x49727;
  local_10 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_00070704 != 0) {
    tcgetattr(2,&local_e4);
    tcsetattr(2,1,(termios *)&DAT_00070720);
  }
  puVar1 = PTR_stderr_0006ffc4;
  if (DAT_00070700 == 0) {
    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nYou can overwrite it with a new session log,\nappend your session log to the end of it,\nor disable session logging for this session.\nEnter \"y\" to wipe the file, \"n\" to append to it,\nor just press Return to disable logging.\nWipe the log file? (y/n, Return cancels logging) "
                  ,0x1000,*param_2);
    fflush(*(FILE **)puVar1);
    tcgetattr(0,&local_a8);
    local_6c.c_iflag = local_a8.c_iflag;
    local_6c.c_oflag = local_a8.c_oflag;
    local_6c.c_cflag = local_a8.c_cflag;
    local_6c.c_lflag = local_a8.c_lflag | 0xb;
    local_6c.c_line = local_a8.c_line;
    local_6c.c_cc[0] = local_a8.c_cc[0];
    local_6c.c_cc[1] = local_a8.c_cc[1];
    local_6c.c_cc[2] = local_a8.c_cc[2];
    local_6c.c_cc[3] = local_a8.c_cc[3];
    local_6c.c_cc[4] = local_a8.c_cc[4];
    local_6c.c_cc[5] = local_a8.c_cc[5];
    local_6c.c_cc[6] = local_a8.c_cc[6];
    local_6c.c_cc[7] = local_a8.c_cc[7];
    local_6c.c_cc[8] = local_a8.c_cc[8];
    local_6c.c_cc[9] = local_a8.c_cc[9];
    local_6c.c_cc[10] = local_a8.c_cc[10];
    local_6c.c_cc[0xb] = local_a8.c_cc[0xb];
    local_6c.c_cc[0xc] = local_a8.c_cc[0xc];
    local_6c.c_cc[0xd] = local_a8.c_cc[0xd];
    local_6c.c_cc[0xe] = local_a8.c_cc[0xe];
    local_6c.c_cc[0xf] = local_a8.c_cc[0xf];
    local_6c.c_cc[0x10] = local_a8.c_cc[0x10];
    local_6c.c_cc[0x11] = local_a8.c_cc[0x11];
    local_6c.c_cc[0x12] = local_a8.c_cc[0x12];
    local_6c.c_cc[0x13] = local_a8.c_cc[0x13];
    local_6c.c_cc[0x14] = local_a8.c_cc[0x14];
    local_6c.c_cc[0x15] = local_a8.c_cc[0x15];
    local_6c.c_cc[0x16] = local_a8.c_cc[0x16];
    local_6c.c_cc[0x17] = local_a8.c_cc[0x17];
    local_6c.c_cc[0x18] = local_a8.c_cc[0x18];
    local_6c.c_cc[0x19] = local_a8.c_cc[0x19];
    local_6c.c_cc[0x1a] = local_a8.c_cc[0x1a];
    local_6c.c_cc[0x1b] = local_a8.c_cc[0x1b];
    local_6c.c_cc[0x1c] = local_a8.c_cc[0x1c];
    local_6c.c_cc[0x1d] = local_a8.c_cc[0x1d];
    local_6c.c_cc[0x1e] = local_a8.c_cc[0x1e];
    local_6c.c_cc[0x1f] = local_a8.c_cc[0x1f];
    local_6c._49_3_ = local_a8._49_3_;
    local_6c.c_ispeed = local_a8.c_ispeed;
    local_6c.c_ospeed = local_a8.c_ospeed;
    tcsetattr(0,0,&local_6c);
    local_30 = 0;
    FUN_00048c80();
    tcsetattr(0,0,&local_a8);
    if (DAT_00070704 != 0) {
      tcsetattr(2,1,&local_e4);
    }
    uVar2 = 2;
    if ((local_30 & 0xdf) != 0x59) {
      uVar2 = (local_30 & 0xdf) == 0x4e;
    }
  }
  else {
    __fprintf_chk(*(undefined4 *)PTR_stderr_0006ffc4,1,
                  "The session log file \"%.*s\" already exists.\nLogging will not be enabled.\n",
                  0x1000,*param_2);
    fflush(*(FILE **)puVar1);
    uVar2 = 0;
  }
  if (local_10 == *(int *)(in_GS_OFFSET + 0x14)) {
    return uVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0004d450();
}

