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

int askalg(void *frontend,char *algtype,char *algname,_func_void_void_ptr_int *callback,void *ctx)

{
  int iVar1;
  undefined *puVar2;
  size_t len;
  void *buf;
  int iVar3;
  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_000c6fa0;
  if (console_batch_mode == 0) {
    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "
                  ,algtype,algname);
    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 ((line[0] & 0xdfU) == 0x59) {
      iVar3 = 1;
      if (stderr_is_a_tty != 0) {
        tcsetattr(2,1,(termios *)&cf);
      }
    }
    else {
      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);
      iVar3 = stderr_is_a_tty;
      if (stderr_is_a_tty != 0) {
        iVar3 = 0;
        tcsetattr(2,1,(termios *)&cf);
      }
    }
  }
  else {
    iVar3 = 0;
    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"
                  ,algtype,algname);
  }
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

int FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)

{
  undefined *puVar1;
  int iVar2;
  int in_GS_OFFSET;
  termios local_f4;
  termios local_b8;
  termios local_7c;
  byte local_40;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x7bf69;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_000c79e4 != 0) {
    tcgetattr(2,&local_f4);
    tcsetattr(2,1,(termios *)&DAT_000c7a00);
  }
  puVar1 = PTR_stderr_000c6fa0;
  if (DAT_000c79e0 == 0) {
    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "
                  ,param_2,param_3);
    fflush(*(FILE **)puVar1);
    tcgetattr(0,&local_b8);
    local_7c.c_iflag = local_b8.c_iflag;
    local_7c.c_oflag = local_b8.c_oflag;
    local_7c.c_cflag = local_b8.c_cflag;
    local_7c.c_lflag = local_b8.c_lflag | 0xb;
    local_7c.c_line = local_b8.c_line;
    local_7c.c_cc[0] = local_b8.c_cc[0];
    local_7c.c_cc[1] = local_b8.c_cc[1];
    local_7c.c_cc[2] = local_b8.c_cc[2];
    local_7c.c_cc[3] = local_b8.c_cc[3];
    local_7c.c_cc[4] = local_b8.c_cc[4];
    local_7c.c_cc[5] = local_b8.c_cc[5];
    local_7c.c_cc[6] = local_b8.c_cc[6];
    local_7c.c_cc[7] = local_b8.c_cc[7];
    local_7c.c_cc[8] = local_b8.c_cc[8];
    local_7c.c_cc[9] = local_b8.c_cc[9];
    local_7c.c_cc[10] = local_b8.c_cc[10];
    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];
    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];
    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];
    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];
    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];
    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];
    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];
    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];
    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];
    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];
    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];
    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];
    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];
    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];
    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];
    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];
    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];
    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];
    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];
    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];
    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];
    local_7c._49_3_ = local_b8._49_3_;
    local_7c.c_ispeed = local_b8.c_ispeed;
    local_7c.c_ospeed = local_b8.c_ospeed;
    tcsetattr(0,0,&local_7c);
    local_40 = 0;
    FUN_0007b9a0();
    tcsetattr(0,0,&local_b8);
    if ((local_40 & 0xdf) == 0x59) {
      iVar2 = 1;
      if (DAT_000c79e4 != 0) {
        tcsetattr(2,1,&local_f4);
      }
    }
    else {
      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);
      iVar2 = DAT_000c79e4;
      if (DAT_000c79e4 != 0) {
        iVar2 = 0;
        tcsetattr(2,1,&local_f4);
      }
    }
  }
  else {
    iVar2 = 0;
    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"
                  ,param_2,param_3);
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00089270();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015ff0
ADD EBX,0x4ae07
SUB ESP,0xec
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xdc],EAX
XOR EAX,EAX
MOV EDI,dword ptr [ESP + 0x104]
MOV EBP,dword ptr [ESP + 0x108]
MOV ECX,dword ptr [EBX + 0xc74]
TEST ECX,ECX
JNZ 0x0007c180
MOV ESI,dword ptr [EBX + 0x230]
MOV EDX,dword ptr [EBX + 0xc70]
MOV EAX,dword ptr [ESI]
TEST EDX,EDX
JNZ 0x0007c160
SUB ESP,0xc
LEA EDX,[EBX + 0xfffd1c90]
PUSH EBP
PUSH EDI
PUSH EDX
PUSH 0x1
PUSH EAX
CALL 0x00014730
ADD ESP,0x14
PUSH dword ptr [ESI]
CALL 0x000140f0
POP EDX
POP ECX
LEA EDI,[ESP + 0x4c]
PUSH EDI
PUSH 0x0
CALL 0x00014790
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 0x00014310
LEA EAX,[ESP + 0xcc]
MOV byte ptr [ESP + 0xcc],0x0
CALL 0x0007b9a0
ADD ESP,0xc
PUSH EDI
PUSH 0x0
PUSH 0x0
CALL 0x00014310
MOVZX EAX,byte ptr [ESP + 0xcc]
ADD ESP,0x10
AND EAX,0xffffffdf
CMP AL,0x59
JNZ 0x0007c120
MOV EAX,dword ptr [EBX + 0xc74]
MOV ESI,0x1
TEST EAX,EAX
JNZ 0x0007c1b0
MOV ECX,dword ptr [ESP + 0xdc]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,ESI
JNZ 0x0007c1c9
ADD ESP,0xec
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xfffd1c64]
PUSH dword ptr [ESI]
PUSH 0x16
PUSH 0x1
PUSH EAX
CALL 0x000142d0
MOV ESI,dword ptr [EBX + 0xc74]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x0007c0f5
SUB ESP,0x4
XOR ESI,ESI
LEA EAX,[ESP + 0xc]
PUSH EAX
PUSH 0x1
PUSH 0x2
CALL 0x00014310
ADD ESP,0x10
JMP 0x0007c0f5
SUB ESP,0xc
LEA EDX,[EBX + 0xfffd1d10]
XOR ESI,ESI
PUSH EBP
PUSH EDI
PUSH EDX
PUSH 0x1
PUSH EAX
CALL 0x00014730
ADD ESP,0x20
JMP 0x0007c0f5
SUB ESP,0x8
LEA EAX,[ESP + 0x10]
PUSH EAX
PUSH 0x2
CALL 0x00014790
ADD ESP,0xc
LEA EAX,[EBX + 0xc90]
PUSH EAX
PUSH 0x1
PUSH 0x2
CALL 0x00014310
ADD ESP,0x10
JMP 0x0007bfa0
SUB ESP,0x4
LEA EAX,[ESP + 0xc]
PUSH EAX
PUSH 0x1
PUSH 0x2
CALL 0x00014310
ADD ESP,0x10
JMP 0x0007c0f5
CALL 0x00089270
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00089270();\n}\n\n" comment (function_definition "int FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00089270();\n}" primitive_type (function_declarator "FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00089270();\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "termios local_f4;" type_identifier identifier ;) (declaration "termios local_b8;" type_identifier identifier ;) (declaration "termios local_7c;" type_identifier identifier ;) (declaration "byte local_40;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x7bf69;" (assignment_expression "uStack_14 = 0x7bf69" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(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_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }" if (parenthesized_expression "(DAT_000c79e4 != 0)" ( (binary_expression "DAT_000c79e4 != 0" identifier != number_literal) )) (compound_statement "{\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }" { (expression_statement "tcgetattr(2,&local_f4);" (call_expression "tcgetattr(2,&local_f4)" identifier (argument_list "(2,&local_f4)" ( number_literal , (pointer_expression "&local_f4" & identifier) ))) ;) (expression_statement "tcsetattr(2,1,(termios *)&DAT_000c7a00);" (call_expression "tcsetattr(2,1,(termios *)&DAT_000c7a00)" identifier (argument_list "(2,1,(termios *)&DAT_000c7a00)" ( number_literal , number_literal , (cast_expression "(termios *)&DAT_000c7a00" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000c7a00" & identifier)) ))) ;) })) (expression_statement "puVar1 = PTR_stderr_000c6fa0;" (assignment_expression "puVar1 = PTR_stderr_000c6fa0" identifier = identifier) ;) (if_statement "if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" if (parenthesized_expression "(DAT_000c79e0 == 0)" ( (binary_expression "DAT_000c79e0 == 0" identifier == number_literal) )) (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" * (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "" " string_content escape_sequence string_content escape_sequence string_content ") , identifier , 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_b8);" (call_expression "tcgetattr(0,&local_b8)" identifier (argument_list "(0,&local_b8)" ( number_literal , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "local_7c.c_iflag = local_b8.c_iflag;" (assignment_expression "local_7c.c_iflag = local_b8.c_iflag" (field_expression "local_7c.c_iflag" identifier . field_identifier) = (field_expression "local_b8.c_iflag" identifier . field_identifier)) ;) (expression_statement "local_7c.c_oflag = local_b8.c_oflag;" (assignment_expression "local_7c.c_oflag = local_b8.c_oflag" (field_expression "local_7c.c_oflag" identifier . field_identifier) = (field_expression "local_b8.c_oflag" identifier . field_identifier)) ;) (expression_statement "local_7c.c_cflag = local_b8.c_cflag;" (assignment_expression "local_7c.c_cflag = local_b8.c_cflag" (field_expression "local_7c.c_cflag" identifier . field_identifier) = (field_expression "local_b8.c_cflag" identifier . field_identifier)) ;) (expression_statement "local_7c.c_lflag = local_b8.c_lflag | 0xb;" (assignment_expression "local_7c.c_lflag = local_b8.c_lflag | 0xb" (field_expression "local_7c.c_lflag" identifier . field_identifier) = (binary_expression "local_b8.c_lflag | 0xb" (field_expression "local_b8.c_lflag" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_7c.c_line = local_b8.c_line;" (assignment_expression "local_7c.c_line = local_b8.c_line" (field_expression "local_7c.c_line" identifier . field_identifier) = (field_expression "local_b8.c_line" identifier . field_identifier)) ;) (expression_statement "local_7c.c_cc[0] = local_b8.c_cc[0];" (assignment_expression "local_7c.c_cc[0] = local_b8.c_cc[0]" (subscript_expression "local_7c.c_cc[0]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[1] = local_b8.c_cc[1];" (assignment_expression "local_7c.c_cc[1] = local_b8.c_cc[1]" (subscript_expression "local_7c.c_cc[1]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[1]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[2] = local_b8.c_cc[2];" (assignment_expression "local_7c.c_cc[2] = local_b8.c_cc[2]" (subscript_expression "local_7c.c_cc[2]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[2]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[3] = local_b8.c_cc[3];" (assignment_expression "local_7c.c_cc[3] = local_b8.c_cc[3]" (subscript_expression "local_7c.c_cc[3]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[3]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[4] = local_b8.c_cc[4];" (assignment_expression "local_7c.c_cc[4] = local_b8.c_cc[4]" (subscript_expression "local_7c.c_cc[4]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[4]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[5] = local_b8.c_cc[5];" (assignment_expression "local_7c.c_cc[5] = local_b8.c_cc[5]" (subscript_expression "local_7c.c_cc[5]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[5]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[6] = local_b8.c_cc[6];" (assignment_expression "local_7c.c_cc[6] = local_b8.c_cc[6]" (subscript_expression "local_7c.c_cc[6]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[6]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[7] = local_b8.c_cc[7];" (assignment_expression "local_7c.c_cc[7] = local_b8.c_cc[7]" (subscript_expression "local_7c.c_cc[7]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[7]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[8] = local_b8.c_cc[8];" (assignment_expression "local_7c.c_cc[8] = local_b8.c_cc[8]" (subscript_expression "local_7c.c_cc[8]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[8]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[9] = local_b8.c_cc[9];" (assignment_expression "local_7c.c_cc[9] = local_b8.c_cc[9]" (subscript_expression "local_7c.c_cc[9]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[9]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[10] = local_b8.c_cc[10];" (assignment_expression "local_7c.c_cc[10] = local_b8.c_cc[10]" (subscript_expression "local_7c.c_cc[10]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[10]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xb] = local_b8.c_cc[0xb];" (assignment_expression "local_7c.c_cc[0xb] = local_b8.c_cc[0xb]" (subscript_expression "local_7c.c_cc[0xb]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xb]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xc] = local_b8.c_cc[0xc];" (assignment_expression "local_7c.c_cc[0xc] = local_b8.c_cc[0xc]" (subscript_expression "local_7c.c_cc[0xc]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xc]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xd] = local_b8.c_cc[0xd];" (assignment_expression "local_7c.c_cc[0xd] = local_b8.c_cc[0xd]" (subscript_expression "local_7c.c_cc[0xd]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xd]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xe] = local_b8.c_cc[0xe];" (assignment_expression "local_7c.c_cc[0xe] = local_b8.c_cc[0xe]" (subscript_expression "local_7c.c_cc[0xe]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xe]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xf] = local_b8.c_cc[0xf];" (assignment_expression "local_7c.c_cc[0xf] = local_b8.c_cc[0xf]" (subscript_expression "local_7c.c_cc[0xf]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xf]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x10] = local_b8.c_cc[0x10];" (assignment_expression "local_7c.c_cc[0x10] = local_b8.c_cc[0x10]" (subscript_expression "local_7c.c_cc[0x10]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x10]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x11] = local_b8.c_cc[0x11];" (assignment_expression "local_7c.c_cc[0x11] = local_b8.c_cc[0x11]" (subscript_expression "local_7c.c_cc[0x11]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x11]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x12] = local_b8.c_cc[0x12];" (assignment_expression "local_7c.c_cc[0x12] = local_b8.c_cc[0x12]" (subscript_expression "local_7c.c_cc[0x12]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x12]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x13] = local_b8.c_cc[0x13];" (assignment_expression "local_7c.c_cc[0x13] = local_b8.c_cc[0x13]" (subscript_expression "local_7c.c_cc[0x13]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x13]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x14] = local_b8.c_cc[0x14];" (assignment_expression "local_7c.c_cc[0x14] = local_b8.c_cc[0x14]" (subscript_expression "local_7c.c_cc[0x14]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x14]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x15] = local_b8.c_cc[0x15];" (assignment_expression "local_7c.c_cc[0x15] = local_b8.c_cc[0x15]" (subscript_expression "local_7c.c_cc[0x15]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x15]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x16] = local_b8.c_cc[0x16];" (assignment_expression "local_7c.c_cc[0x16] = local_b8.c_cc[0x16]" (subscript_expression "local_7c.c_cc[0x16]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x16]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x17] = local_b8.c_cc[0x17];" (assignment_expression "local_7c.c_cc[0x17] = local_b8.c_cc[0x17]" (subscript_expression "local_7c.c_cc[0x17]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x17]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x18] = local_b8.c_cc[0x18];" (assignment_expression "local_7c.c_cc[0x18] = local_b8.c_cc[0x18]" (subscript_expression "local_7c.c_cc[0x18]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x18]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x19] = local_b8.c_cc[0x19];" (assignment_expression "local_7c.c_cc[0x19] = local_b8.c_cc[0x19]" (subscript_expression "local_7c.c_cc[0x19]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x19]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];" (assignment_expression "local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a]" (subscript_expression "local_7c.c_cc[0x1a]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1a]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];" (assignment_expression "local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b]" (subscript_expression "local_7c.c_cc[0x1b]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1b]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];" (assignment_expression "local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c]" (subscript_expression "local_7c.c_cc[0x1c]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1c]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];" (assignment_expression "local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d]" (subscript_expression "local_7c.c_cc[0x1d]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1d]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];" (assignment_expression "local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e]" (subscript_expression "local_7c.c_cc[0x1e]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1e]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];" (assignment_expression "local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f]" (subscript_expression "local_7c.c_cc[0x1f]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1f]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c._49_3_ = local_b8._49_3_;" (assignment_expression "local_7c._49_3_ = local_b8._49_3_" (field_expression "local_7c._49_3_" identifier . field_identifier) = (field_expression "local_b8._49_3_" identifier . field_identifier)) ;) (expression_statement "local_7c.c_ispeed = local_b8.c_ispeed;" (assignment_expression "local_7c.c_ispeed = local_b8.c_ispeed" (field_expression "local_7c.c_ispeed" identifier . field_identifier) = (field_expression "local_b8.c_ispeed" identifier . field_identifier)) ;) (expression_statement "local_7c.c_ospeed = local_b8.c_ospeed;" (assignment_expression "local_7c.c_ospeed = local_b8.c_ospeed" (field_expression "local_7c.c_ospeed" identifier . field_identifier) = (field_expression "local_b8.c_ospeed" identifier . field_identifier)) ;) (expression_statement "tcsetattr(0,0,&local_7c);" (call_expression "tcsetattr(0,0,&local_7c)" identifier (argument_list "(0,0,&local_7c)" ( number_literal , number_literal , (pointer_expression "&local_7c" & identifier) ))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "FUN_0007b9a0();" (call_expression "FUN_0007b9a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "tcsetattr(0,0,&local_b8);" (call_expression "tcsetattr(0,0,&local_b8)" identifier (argument_list "(0,0,&local_b8)" ( number_literal , number_literal , (pointer_expression "&local_b8" & identifier) ))) ;) (if_statement "if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" if (parenthesized_expression "((local_40 & 0xdf) == 0x59)" ( (binary_expression "(local_40 & 0xdf) == 0x59" (parenthesized_expression "(local_40 & 0xdf)" ( (binary_expression "local_40 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }" if (parenthesized_expression "(DAT_000c79e4 != 0)" ( (binary_expression "DAT_000c79e4 != 0" identifier != number_literal) )) (compound_statement "{\n        tcsetattr(2,1,&local_f4);\n      }" { (expression_statement "tcsetattr(2,1,&local_f4);" (call_expression "tcsetattr(2,1,&local_f4)" identifier (argument_list "(2,1,&local_f4)" ( number_literal , number_literal , (pointer_expression "&local_f4" & identifier) ))) ;) })) }) (else_clause "else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" else (compound_statement "{\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" { (expression_statement "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);" (call_expression "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1)" identifier (argument_list "("Connection abandoned.\n",1,0x16,*(FILE **)puVar1)" ( (string_literal ""Connection abandoned.\n"" " string_content escape_sequence ") , number_literal , number_literal , (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "iVar2 = DAT_000c79e4;" (assignment_expression "iVar2 = DAT_000c79e4" identifier = identifier) ;) (if_statement "if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }" if (parenthesized_expression "(DAT_000c79e4 != 0)" ( (binary_expression "DAT_000c79e4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "tcsetattr(2,1,&local_f4);" (call_expression "tcsetattr(2,1,&local_f4)" identifier (argument_list "(2,1,&local_f4)" ( number_literal , number_literal , (pointer_expression "&local_f4" & identifier) ))) ;) })) }))) }) (else_clause "else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" else (compound_statement "{\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" * (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(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 iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) comment (expression_statement "FUN_00089270();" (call_expression "FUN_00089270()" 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 askalg(void *frontend,char *algtype,char *algname,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  size_t len;\n  void *buf;\n  int iVar3;\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_000c6fa0;\n  if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname);\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 ((line[0] & 0xdfU) == 0x59) {\n      iVar3 = 1;\n      if (stderr_is_a_tty != 0) {\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n  }\n  else {\n    iVar3 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname);\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "int askalg(void *frontend,char *algtype,char *algname,_func_void_void_ptr_int *callback,void *ctx)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  size_t len;\n  void *buf;\n  int iVar3;\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_000c6fa0;\n  if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname);\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 ((line[0] & 0xdfU) == 0x59) {\n      iVar3 = 1;\n      if (stderr_is_a_tty != 0) {\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n  }\n  else {\n    iVar3 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname);\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "askalg(void *frontend,char *algtype,char *algname,_func_void_void_ptr_int *callback,void *ctx)" identifier (parameter_list "(void *frontend,char *algtype,char *algname,_func_void_void_ptr_int *callback,void *ctx)" ( (parameter_declaration "void *frontend" primitive_type (pointer_declarator "*frontend" * identifier)) , (parameter_declaration "char *algtype" primitive_type (pointer_declarator "*algtype" * identifier)) , (parameter_declaration "char *algname" primitive_type (pointer_declarator "*algname" * 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  size_t len;\n  void *buf;\n  int iVar3;\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_000c6fa0;\n  if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname);\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 ((line[0] & 0xdfU) == 0x59) {\n      iVar3 = 1;\n      if (stderr_is_a_tty != 0) {\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n  }\n  else {\n    iVar3 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname);\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar3;\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 "size_t len;" primitive_type identifier ;) (declaration "void *buf;" primitive_type (pointer_declarator "*buf" * identifier) ;) (declaration "int iVar3;" primitive_type 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_000c6fa0;" (assignment_expression "puVar2 = PTR_stderr_000c6fa0" identifier = identifier) ;) (if_statement "if (console_batch_mode == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname);\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 ((line[0] & 0xdfU) == 0x59) {\n      iVar3 = 1;\n      if (stderr_is_a_tty != 0) {\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n  }\n  else {\n    iVar3 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname);\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_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname);\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 ((line[0] & 0xdfU) == 0x59) {\n      iVar3 = 1;\n      if (stderr_is_a_tty != 0) {\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,algtype,algname)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" * (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "" " string_content escape_sequence string_content escape_sequence string_content ") , identifier , 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 ((line[0] & 0xdfU) == 0x59) {\n      iVar3 = 1;\n      if (stderr_is_a_tty != 0) {\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\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      iVar3 = 1;\n      if (stderr_is_a_tty != 0) {\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (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)) ))) ;) })) }) (else_clause "else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }" else (compound_statement "{\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);\n      iVar3 = stderr_is_a_tty;\n      if (stderr_is_a_tty != 0) {\n        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }\n    }" { (expression_statement "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2);" (call_expression "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar2)" identifier (argument_list "("Connection abandoned.\n",1,0x16,*(FILE **)puVar2)" ( (string_literal ""Connection abandoned.\n"" " string_content escape_sequence ") , number_literal , number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "iVar3 = stderr_is_a_tty;" (assignment_expression "iVar3 = stderr_is_a_tty" identifier = identifier) ;) (if_statement "if (stderr_is_a_tty != 0) {\n        iVar3 = 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        iVar3 = 0;\n        tcsetattr(2,1,(termios *)&cf);\n      }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (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)) ))) ;) })) }))) }) (else_clause "else {\n    iVar3 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname);\n  }" else (compound_statement "{\n    iVar3 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname);\n  }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,algtype,algname)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" * (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) }))) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar3;\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 iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    \n  FUN_00089270();\n}\n\n" (function_definition "int FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    \n  FUN_00089270();\n}" primitive_type (function_declarator "FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    \n  FUN_00089270();\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "termios local_f4;" type_identifier identifier ;) (declaration "termios local_b8;" type_identifier identifier ;) (declaration "termios local_7c;" type_identifier identifier ;) (declaration "byte local_40;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x7bf69;" (assignment_expression "uStack_14 = 0x7bf69" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(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_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }" if (parenthesized_expression "(DAT_000c79e4 != 0)" ( (binary_expression "DAT_000c79e4 != 0" identifier != number_literal) )) (compound_statement "{\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }" { (expression_statement "tcgetattr(2,&local_f4);" (call_expression "tcgetattr(2,&local_f4)" identifier (argument_list "(2,&local_f4)" ( number_literal , (pointer_expression "&local_f4" & identifier) ))) ;) (expression_statement "tcsetattr(2,1,(termios *)&DAT_000c7a00);" (call_expression "tcsetattr(2,1,(termios *)&DAT_000c7a00)" identifier (argument_list "(2,1,(termios *)&DAT_000c7a00)" ( number_literal , number_literal , (cast_expression "(termios *)&DAT_000c7a00" ( (type_descriptor "termios *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_000c7a00" & identifier)) ))) ;) })) (expression_statement "puVar1 = PTR_stderr_000c6fa0;" (assignment_expression "puVar1 = PTR_stderr_000c6fa0" identifier = identifier) ;) (if_statement "if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" if (parenthesized_expression "(DAT_000c79e0 == 0)" ( (binary_expression "DAT_000c79e0 == 0" identifier == number_literal) )) (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" * (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "" " string_content escape_sequence string_content escape_sequence string_content ") , identifier , 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_b8);" (call_expression "tcgetattr(0,&local_b8)" identifier (argument_list "(0,&local_b8)" ( number_literal , (pointer_expression "&local_b8" & identifier) ))) ;) (expression_statement "local_7c.c_iflag = local_b8.c_iflag;" (assignment_expression "local_7c.c_iflag = local_b8.c_iflag" (field_expression "local_7c.c_iflag" identifier . field_identifier) = (field_expression "local_b8.c_iflag" identifier . field_identifier)) ;) (expression_statement "local_7c.c_oflag = local_b8.c_oflag;" (assignment_expression "local_7c.c_oflag = local_b8.c_oflag" (field_expression "local_7c.c_oflag" identifier . field_identifier) = (field_expression "local_b8.c_oflag" identifier . field_identifier)) ;) (expression_statement "local_7c.c_cflag = local_b8.c_cflag;" (assignment_expression "local_7c.c_cflag = local_b8.c_cflag" (field_expression "local_7c.c_cflag" identifier . field_identifier) = (field_expression "local_b8.c_cflag" identifier . field_identifier)) ;) (expression_statement "local_7c.c_lflag = local_b8.c_lflag | 0xb;" (assignment_expression "local_7c.c_lflag = local_b8.c_lflag | 0xb" (field_expression "local_7c.c_lflag" identifier . field_identifier) = (binary_expression "local_b8.c_lflag | 0xb" (field_expression "local_b8.c_lflag" identifier . field_identifier) | number_literal)) ;) (expression_statement "local_7c.c_line = local_b8.c_line;" (assignment_expression "local_7c.c_line = local_b8.c_line" (field_expression "local_7c.c_line" identifier . field_identifier) = (field_expression "local_b8.c_line" identifier . field_identifier)) ;) (expression_statement "local_7c.c_cc[0] = local_b8.c_cc[0];" (assignment_expression "local_7c.c_cc[0] = local_b8.c_cc[0]" (subscript_expression "local_7c.c_cc[0]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[1] = local_b8.c_cc[1];" (assignment_expression "local_7c.c_cc[1] = local_b8.c_cc[1]" (subscript_expression "local_7c.c_cc[1]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[1]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[2] = local_b8.c_cc[2];" (assignment_expression "local_7c.c_cc[2] = local_b8.c_cc[2]" (subscript_expression "local_7c.c_cc[2]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[2]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[3] = local_b8.c_cc[3];" (assignment_expression "local_7c.c_cc[3] = local_b8.c_cc[3]" (subscript_expression "local_7c.c_cc[3]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[3]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[4] = local_b8.c_cc[4];" (assignment_expression "local_7c.c_cc[4] = local_b8.c_cc[4]" (subscript_expression "local_7c.c_cc[4]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[4]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[5] = local_b8.c_cc[5];" (assignment_expression "local_7c.c_cc[5] = local_b8.c_cc[5]" (subscript_expression "local_7c.c_cc[5]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[5]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[6] = local_b8.c_cc[6];" (assignment_expression "local_7c.c_cc[6] = local_b8.c_cc[6]" (subscript_expression "local_7c.c_cc[6]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[6]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[7] = local_b8.c_cc[7];" (assignment_expression "local_7c.c_cc[7] = local_b8.c_cc[7]" (subscript_expression "local_7c.c_cc[7]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[7]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[8] = local_b8.c_cc[8];" (assignment_expression "local_7c.c_cc[8] = local_b8.c_cc[8]" (subscript_expression "local_7c.c_cc[8]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[8]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[9] = local_b8.c_cc[9];" (assignment_expression "local_7c.c_cc[9] = local_b8.c_cc[9]" (subscript_expression "local_7c.c_cc[9]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[9]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[10] = local_b8.c_cc[10];" (assignment_expression "local_7c.c_cc[10] = local_b8.c_cc[10]" (subscript_expression "local_7c.c_cc[10]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[10]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xb] = local_b8.c_cc[0xb];" (assignment_expression "local_7c.c_cc[0xb] = local_b8.c_cc[0xb]" (subscript_expression "local_7c.c_cc[0xb]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xb]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xc] = local_b8.c_cc[0xc];" (assignment_expression "local_7c.c_cc[0xc] = local_b8.c_cc[0xc]" (subscript_expression "local_7c.c_cc[0xc]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xc]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xd] = local_b8.c_cc[0xd];" (assignment_expression "local_7c.c_cc[0xd] = local_b8.c_cc[0xd]" (subscript_expression "local_7c.c_cc[0xd]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xd]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xe] = local_b8.c_cc[0xe];" (assignment_expression "local_7c.c_cc[0xe] = local_b8.c_cc[0xe]" (subscript_expression "local_7c.c_cc[0xe]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xe]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0xf] = local_b8.c_cc[0xf];" (assignment_expression "local_7c.c_cc[0xf] = local_b8.c_cc[0xf]" (subscript_expression "local_7c.c_cc[0xf]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0xf]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x10] = local_b8.c_cc[0x10];" (assignment_expression "local_7c.c_cc[0x10] = local_b8.c_cc[0x10]" (subscript_expression "local_7c.c_cc[0x10]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x10]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x11] = local_b8.c_cc[0x11];" (assignment_expression "local_7c.c_cc[0x11] = local_b8.c_cc[0x11]" (subscript_expression "local_7c.c_cc[0x11]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x11]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x12] = local_b8.c_cc[0x12];" (assignment_expression "local_7c.c_cc[0x12] = local_b8.c_cc[0x12]" (subscript_expression "local_7c.c_cc[0x12]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x12]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x13] = local_b8.c_cc[0x13];" (assignment_expression "local_7c.c_cc[0x13] = local_b8.c_cc[0x13]" (subscript_expression "local_7c.c_cc[0x13]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x13]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x14] = local_b8.c_cc[0x14];" (assignment_expression "local_7c.c_cc[0x14] = local_b8.c_cc[0x14]" (subscript_expression "local_7c.c_cc[0x14]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x14]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x15] = local_b8.c_cc[0x15];" (assignment_expression "local_7c.c_cc[0x15] = local_b8.c_cc[0x15]" (subscript_expression "local_7c.c_cc[0x15]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x15]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x16] = local_b8.c_cc[0x16];" (assignment_expression "local_7c.c_cc[0x16] = local_b8.c_cc[0x16]" (subscript_expression "local_7c.c_cc[0x16]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x16]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x17] = local_b8.c_cc[0x17];" (assignment_expression "local_7c.c_cc[0x17] = local_b8.c_cc[0x17]" (subscript_expression "local_7c.c_cc[0x17]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x17]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x18] = local_b8.c_cc[0x18];" (assignment_expression "local_7c.c_cc[0x18] = local_b8.c_cc[0x18]" (subscript_expression "local_7c.c_cc[0x18]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x18]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x19] = local_b8.c_cc[0x19];" (assignment_expression "local_7c.c_cc[0x19] = local_b8.c_cc[0x19]" (subscript_expression "local_7c.c_cc[0x19]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x19]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];" (assignment_expression "local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a]" (subscript_expression "local_7c.c_cc[0x1a]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1a]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];" (assignment_expression "local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b]" (subscript_expression "local_7c.c_cc[0x1b]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1b]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];" (assignment_expression "local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c]" (subscript_expression "local_7c.c_cc[0x1c]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1c]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];" (assignment_expression "local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d]" (subscript_expression "local_7c.c_cc[0x1d]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1d]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];" (assignment_expression "local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e]" (subscript_expression "local_7c.c_cc[0x1e]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1e]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];" (assignment_expression "local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f]" (subscript_expression "local_7c.c_cc[0x1f]" (field_expression "local_7c.c_cc" identifier . field_identifier) [ number_literal ]) = (subscript_expression "local_b8.c_cc[0x1f]" (field_expression "local_b8.c_cc" identifier . field_identifier) [ number_literal ])) ;) (expression_statement "local_7c._49_3_ = local_b8._49_3_;" (assignment_expression "local_7c._49_3_ = local_b8._49_3_" (field_expression "local_7c._49_3_" identifier . field_identifier) = (field_expression "local_b8._49_3_" identifier . field_identifier)) ;) (expression_statement "local_7c.c_ispeed = local_b8.c_ispeed;" (assignment_expression "local_7c.c_ispeed = local_b8.c_ispeed" (field_expression "local_7c.c_ispeed" identifier . field_identifier) = (field_expression "local_b8.c_ispeed" identifier . field_identifier)) ;) (expression_statement "local_7c.c_ospeed = local_b8.c_ospeed;" (assignment_expression "local_7c.c_ospeed = local_b8.c_ospeed" (field_expression "local_7c.c_ospeed" identifier . field_identifier) = (field_expression "local_b8.c_ospeed" identifier . field_identifier)) ;) (expression_statement "tcsetattr(0,0,&local_7c);" (call_expression "tcsetattr(0,0,&local_7c)" identifier (argument_list "(0,0,&local_7c)" ( number_literal , number_literal , (pointer_expression "&local_7c" & identifier) ))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "FUN_0007b9a0();" (call_expression "FUN_0007b9a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "tcsetattr(0,0,&local_b8);" (call_expression "tcsetattr(0,0,&local_b8)" identifier (argument_list "(0,0,&local_b8)" ( number_literal , number_literal , (pointer_expression "&local_b8" & identifier) ))) ;) (if_statement "if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" if (parenthesized_expression "((local_40 & 0xdf) == 0x59)" ( (binary_expression "(local_40 & 0xdf) == 0x59" (parenthesized_expression "(local_40 & 0xdf)" ( (binary_expression "local_40 & 0xdf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }" if (parenthesized_expression "(DAT_000c79e4 != 0)" ( (binary_expression "DAT_000c79e4 != 0" identifier != number_literal) )) (compound_statement "{\n        tcsetattr(2,1,&local_f4);\n      }" { (expression_statement "tcsetattr(2,1,&local_f4);" (call_expression "tcsetattr(2,1,&local_f4)" identifier (argument_list "(2,1,&local_f4)" ( number_literal , number_literal , (pointer_expression "&local_f4" & identifier) ))) ;) })) }) (else_clause "else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" else (compound_statement "{\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" { (expression_statement "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);" (call_expression "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1)" identifier (argument_list "("Connection abandoned.\n",1,0x16,*(FILE **)puVar1)" ( (string_literal ""Connection abandoned.\n"" " string_content escape_sequence ") , number_literal , number_literal , (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "iVar2 = DAT_000c79e4;" (assignment_expression "iVar2 = DAT_000c79e4" identifier = identifier) ;) (if_statement "if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }" if (parenthesized_expression "(DAT_000c79e4 != 0)" ( (binary_expression "DAT_000c79e4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "tcsetattr(2,1,&local_f4);" (call_expression "tcsetattr(2,1,&local_f4)" identifier (argument_list "(2,1,&local_f4)" ( number_literal , number_literal , (pointer_expression "&local_f4" & identifier) ))) ;) })) }))) }) (else_clause "else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" else (compound_statement "{\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" * (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(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 iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "FUN_00089270();" (call_expression "FUN_00089270()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 ") , IDENT , 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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , (pointer_expression & IDENT) ))) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 ") , IDENT , IDENT ))) ;) }))) (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 "int FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    \n  FUN_00089270();\n}" (primitive_type "int") (function_declarator "FUN_0007bf60(undefined4 param_1,undefined4 param_2,undefined4 param_3)" (identifier "FUN_0007bf60") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int in_GS_OFFSET;\n  termios local_f4;\n  termios local_b8;\n  termios local_7c;\n  byte local_40;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7bf69;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (DAT_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }\n  puVar1 = PTR_stderr_000c6fa0;\n  if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }\n                    \n  FUN_00089270();\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "termios local_f4;" (type_identifier "termios") (identifier "local_f4") (; ";")) (declaration "termios local_b8;" (type_identifier "termios") (identifier "local_b8") (; ";")) (declaration "termios local_7c;" (type_identifier "termios") (identifier "local_7c") (; ";")) (declaration "byte local_40;" (type_identifier "byte") (identifier "local_40") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x7bf69;" (assignment_expression "uStack_14 = 0x7bf69" (identifier "uStack_14") (= "=") (number_literal "0x7bf69")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (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_000c79e4 != 0) {\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }" (if "if") (parenthesized_expression "(DAT_000c79e4 != 0)" (( "(") (binary_expression "DAT_000c79e4 != 0" (identifier "DAT_000c79e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    tcgetattr(2,&local_f4);\n    tcsetattr(2,1,(termios *)&DAT_000c7a00);\n  }" ({ "{") (expression_statement "tcgetattr(2,&local_f4);" (call_expression "tcgetattr(2,&local_f4)" (identifier "tcgetattr") (argument_list "(2,&local_f4)" (( "(") (number_literal "2") (, ",") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) () ")"))) (; ";")) (expression_statement "tcsetattr(2,1,(termios *)&DAT_000c7a00);" (call_expression "tcsetattr(2,1,(termios *)&DAT_000c7a00)" (identifier "tcsetattr") (argument_list "(2,1,(termios *)&DAT_000c7a00)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (cast_expression "(termios *)&DAT_000c7a00" (( "(") (type_descriptor "termios *" (type_identifier "termios") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_000c7a00" (& "&") (identifier "DAT_000c7a00"))) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar1 = PTR_stderr_000c6fa0;" (assignment_expression "puVar1 = PTR_stderr_000c6fa0" (identifier "puVar1") (= "=") (identifier "PTR_stderr_000c6fa0")) (; ";")) (if_statement "if (DAT_000c79e0 == 0) {\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }\n  else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" (if "if") (parenthesized_expression "(DAT_000c79e0 == 0)" (( "(") (binary_expression "DAT_000c79e0 == 0" (identifier "DAT_000c79e0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);\n    fflush(*(FILE **)puVar1);\n    tcgetattr(0,&local_b8);\n    local_7c.c_iflag = local_b8.c_iflag;\n    local_7c.c_oflag = local_b8.c_oflag;\n    local_7c.c_cflag = local_b8.c_cflag;\n    local_7c.c_lflag = local_b8.c_lflag | 0xb;\n    local_7c.c_line = local_b8.c_line;\n    local_7c.c_cc[0] = local_b8.c_cc[0];\n    local_7c.c_cc[1] = local_b8.c_cc[1];\n    local_7c.c_cc[2] = local_b8.c_cc[2];\n    local_7c.c_cc[3] = local_b8.c_cc[3];\n    local_7c.c_cc[4] = local_b8.c_cc[4];\n    local_7c.c_cc[5] = local_b8.c_cc[5];\n    local_7c.c_cc[6] = local_b8.c_cc[6];\n    local_7c.c_cc[7] = local_b8.c_cc[7];\n    local_7c.c_cc[8] = local_b8.c_cc[8];\n    local_7c.c_cc[9] = local_b8.c_cc[9];\n    local_7c.c_cc[10] = local_b8.c_cc[10];\n    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];\n    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];\n    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];\n    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];\n    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];\n    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];\n    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];\n    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];\n    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];\n    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];\n    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];\n    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];\n    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];\n    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];\n    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];\n    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];\n    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];\n    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];\n    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];\n    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];\n    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];\n    local_7c._49_3_ = local_b8._49_3_;\n    local_7c.c_ispeed = local_b8.c_ispeed;\n    local_7c.c_ospeed = local_b8.c_ospeed;\n    tcsetattr(0,0,&local_7c);\n    local_40 = 0;\n    FUN_0007b9a0();\n    tcsetattr(0,0,&local_b8);\n    if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n  }" ({ "{") (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "\n                  ,param_2,param_3)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" (* "*") (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000c6fa0"))) (, ",") (number_literal "1") (, ",") (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "" (" """) (string_content "The first %s supported by the server is") (escape_sequence "\n") (string_content "%s, which is below the configured warning threshold.") (escape_sequence "\n") (string_content "Continue with connection? (y/n) ") (" """)) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (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_b8);" (call_expression "tcgetattr(0,&local_b8)" (identifier "tcgetattr") (argument_list "(0,&local_b8)" (( "(") (number_literal "0") (, ",") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")"))) (; ";")) (expression_statement "local_7c.c_iflag = local_b8.c_iflag;" (assignment_expression "local_7c.c_iflag = local_b8.c_iflag" (field_expression "local_7c.c_iflag" (identifier "local_7c") (. ".") (field_identifier "c_iflag")) (= "=") (field_expression "local_b8.c_iflag" (identifier "local_b8") (. ".") (field_identifier "c_iflag"))) (; ";")) (expression_statement "local_7c.c_oflag = local_b8.c_oflag;" (assignment_expression "local_7c.c_oflag = local_b8.c_oflag" (field_expression "local_7c.c_oflag" (identifier "local_7c") (. ".") (field_identifier "c_oflag")) (= "=") (field_expression "local_b8.c_oflag" (identifier "local_b8") (. ".") (field_identifier "c_oflag"))) (; ";")) (expression_statement "local_7c.c_cflag = local_b8.c_cflag;" (assignment_expression "local_7c.c_cflag = local_b8.c_cflag" (field_expression "local_7c.c_cflag" (identifier "local_7c") (. ".") (field_identifier "c_cflag")) (= "=") (field_expression "local_b8.c_cflag" (identifier "local_b8") (. ".") (field_identifier "c_cflag"))) (; ";")) (expression_statement "local_7c.c_lflag = local_b8.c_lflag | 0xb;" (assignment_expression "local_7c.c_lflag = local_b8.c_lflag | 0xb" (field_expression "local_7c.c_lflag" (identifier "local_7c") (. ".") (field_identifier "c_lflag")) (= "=") (binary_expression "local_b8.c_lflag | 0xb" (field_expression "local_b8.c_lflag" (identifier "local_b8") (. ".") (field_identifier "c_lflag")) (| "|") (number_literal "0xb"))) (; ";")) (expression_statement "local_7c.c_line = local_b8.c_line;" (assignment_expression "local_7c.c_line = local_b8.c_line" (field_expression "local_7c.c_line" (identifier "local_7c") (. ".") (field_identifier "c_line")) (= "=") (field_expression "local_b8.c_line" (identifier "local_b8") (. ".") (field_identifier "c_line"))) (; ";")) (expression_statement "local_7c.c_cc[0] = local_b8.c_cc[0];" (assignment_expression "local_7c.c_cc[0] = local_b8.c_cc[0]" (subscript_expression "local_7c.c_cc[0]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[1] = local_b8.c_cc[1];" (assignment_expression "local_7c.c_cc[1] = local_b8.c_cc[1]" (subscript_expression "local_7c.c_cc[1]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[1]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[2] = local_b8.c_cc[2];" (assignment_expression "local_7c.c_cc[2] = local_b8.c_cc[2]" (subscript_expression "local_7c.c_cc[2]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[2]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[3] = local_b8.c_cc[3];" (assignment_expression "local_7c.c_cc[3] = local_b8.c_cc[3]" (subscript_expression "local_7c.c_cc[3]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[3]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[4] = local_b8.c_cc[4];" (assignment_expression "local_7c.c_cc[4] = local_b8.c_cc[4]" (subscript_expression "local_7c.c_cc[4]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[4]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[5] = local_b8.c_cc[5];" (assignment_expression "local_7c.c_cc[5] = local_b8.c_cc[5]" (subscript_expression "local_7c.c_cc[5]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[5]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[6] = local_b8.c_cc[6];" (assignment_expression "local_7c.c_cc[6] = local_b8.c_cc[6]" (subscript_expression "local_7c.c_cc[6]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[6]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[7] = local_b8.c_cc[7];" (assignment_expression "local_7c.c_cc[7] = local_b8.c_cc[7]" (subscript_expression "local_7c.c_cc[7]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[7]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[8] = local_b8.c_cc[8];" (assignment_expression "local_7c.c_cc[8] = local_b8.c_cc[8]" (subscript_expression "local_7c.c_cc[8]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[8]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[9] = local_b8.c_cc[9];" (assignment_expression "local_7c.c_cc[9] = local_b8.c_cc[9]" (subscript_expression "local_7c.c_cc[9]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[9]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[10] = local_b8.c_cc[10];" (assignment_expression "local_7c.c_cc[10] = local_b8.c_cc[10]" (subscript_expression "local_7c.c_cc[10]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[10]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0xb] = local_b8.c_cc[0xb];" (assignment_expression "local_7c.c_cc[0xb] = local_b8.c_cc[0xb]" (subscript_expression "local_7c.c_cc[0xb]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0xb]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0xc] = local_b8.c_cc[0xc];" (assignment_expression "local_7c.c_cc[0xc] = local_b8.c_cc[0xc]" (subscript_expression "local_7c.c_cc[0xc]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0xc]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0xd] = local_b8.c_cc[0xd];" (assignment_expression "local_7c.c_cc[0xd] = local_b8.c_cc[0xd]" (subscript_expression "local_7c.c_cc[0xd]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0xd]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0xe] = local_b8.c_cc[0xe];" (assignment_expression "local_7c.c_cc[0xe] = local_b8.c_cc[0xe]" (subscript_expression "local_7c.c_cc[0xe]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0xe]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0xf] = local_b8.c_cc[0xf];" (assignment_expression "local_7c.c_cc[0xf] = local_b8.c_cc[0xf]" (subscript_expression "local_7c.c_cc[0xf]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xf") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0xf]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x10] = local_b8.c_cc[0x10];" (assignment_expression "local_7c.c_cc[0x10] = local_b8.c_cc[0x10]" (subscript_expression "local_7c.c_cc[0x10]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x10") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x10]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x11] = local_b8.c_cc[0x11];" (assignment_expression "local_7c.c_cc[0x11] = local_b8.c_cc[0x11]" (subscript_expression "local_7c.c_cc[0x11]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x11") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x11]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x12] = local_b8.c_cc[0x12];" (assignment_expression "local_7c.c_cc[0x12] = local_b8.c_cc[0x12]" (subscript_expression "local_7c.c_cc[0x12]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x12") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x12]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x13] = local_b8.c_cc[0x13];" (assignment_expression "local_7c.c_cc[0x13] = local_b8.c_cc[0x13]" (subscript_expression "local_7c.c_cc[0x13]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x13") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x13]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x14] = local_b8.c_cc[0x14];" (assignment_expression "local_7c.c_cc[0x14] = local_b8.c_cc[0x14]" (subscript_expression "local_7c.c_cc[0x14]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x14") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x14]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x14") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x15] = local_b8.c_cc[0x15];" (assignment_expression "local_7c.c_cc[0x15] = local_b8.c_cc[0x15]" (subscript_expression "local_7c.c_cc[0x15]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x15") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x15]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x16] = local_b8.c_cc[0x16];" (assignment_expression "local_7c.c_cc[0x16] = local_b8.c_cc[0x16]" (subscript_expression "local_7c.c_cc[0x16]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x16") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x16]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x17] = local_b8.c_cc[0x17];" (assignment_expression "local_7c.c_cc[0x17] = local_b8.c_cc[0x17]" (subscript_expression "local_7c.c_cc[0x17]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x17") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x17]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x18] = local_b8.c_cc[0x18];" (assignment_expression "local_7c.c_cc[0x18] = local_b8.c_cc[0x18]" (subscript_expression "local_7c.c_cc[0x18]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x18") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x18]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x18") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x19] = local_b8.c_cc[0x19];" (assignment_expression "local_7c.c_cc[0x19] = local_b8.c_cc[0x19]" (subscript_expression "local_7c.c_cc[0x19]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x19") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x19]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];" (assignment_expression "local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a]" (subscript_expression "local_7c.c_cc[0x1a]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1a") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x1a]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];" (assignment_expression "local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b]" (subscript_expression "local_7c.c_cc[0x1b]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1b") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x1b]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];" (assignment_expression "local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c]" (subscript_expression "local_7c.c_cc[0x1c]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1c") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x1c]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];" (assignment_expression "local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d]" (subscript_expression "local_7c.c_cc[0x1d]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1d") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x1d]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1d") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];" (assignment_expression "local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e]" (subscript_expression "local_7c.c_cc[0x1e]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1e") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x1e]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1e") (] "]"))) (; ";")) (expression_statement "local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];" (assignment_expression "local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f]" (subscript_expression "local_7c.c_cc[0x1f]" (field_expression "local_7c.c_cc" (identifier "local_7c") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1f") (] "]")) (= "=") (subscript_expression "local_b8.c_cc[0x1f]" (field_expression "local_b8.c_cc" (identifier "local_b8") (. ".") (field_identifier "c_cc")) ([ "[") (number_literal "0x1f") (] "]"))) (; ";")) (expression_statement "local_7c._49_3_ = local_b8._49_3_;" (assignment_expression "local_7c._49_3_ = local_b8._49_3_" (field_expression "local_7c._49_3_" (identifier "local_7c") (. ".") (field_identifier "_49_3_")) (= "=") (field_expression "local_b8._49_3_" (identifier "local_b8") (. ".") (field_identifier "_49_3_"))) (; ";")) (expression_statement "local_7c.c_ispeed = local_b8.c_ispeed;" (assignment_expression "local_7c.c_ispeed = local_b8.c_ispeed" (field_expression "local_7c.c_ispeed" (identifier "local_7c") (. ".") (field_identifier "c_ispeed")) (= "=") (field_expression "local_b8.c_ispeed" (identifier "local_b8") (. ".") (field_identifier "c_ispeed"))) (; ";")) (expression_statement "local_7c.c_ospeed = local_b8.c_ospeed;" (assignment_expression "local_7c.c_ospeed = local_b8.c_ospeed" (field_expression "local_7c.c_ospeed" (identifier "local_7c") (. ".") (field_identifier "c_ospeed")) (= "=") (field_expression "local_b8.c_ospeed" (identifier "local_b8") (. ".") (field_identifier "c_ospeed"))) (; ";")) (expression_statement "tcsetattr(0,0,&local_7c);" (call_expression "tcsetattr(0,0,&local_7c)" (identifier "tcsetattr") (argument_list "(0,0,&local_7c)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_7c" (& "&") (identifier "local_7c")) () ")"))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0007b9a0();" (call_expression "FUN_0007b9a0()" (identifier "FUN_0007b9a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "tcsetattr(0,0,&local_b8);" (call_expression "tcsetattr(0,0,&local_b8)" (identifier "tcsetattr") (argument_list "(0,0,&local_b8)" (( "(") (number_literal "0") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_b8" (& "&") (identifier "local_b8")) () ")"))) (; ";")) (if_statement "if ((local_40 & 0xdf) == 0x59) {\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }\n    else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" (if "if") (parenthesized_expression "((local_40 & 0xdf) == 0x59)" (( "(") (binary_expression "(local_40 & 0xdf) == 0x59" (parenthesized_expression "(local_40 & 0xdf)" (( "(") (binary_expression "local_40 & 0xdf" (identifier "local_40") (& "&") (number_literal "0xdf")) () ")")) (== "==") (number_literal "0x59")) () ")")) (compound_statement "{\n      iVar2 = 1;\n      if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }\n    }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (if_statement "if (DAT_000c79e4 != 0) {\n        tcsetattr(2,1,&local_f4);\n      }" (if "if") (parenthesized_expression "(DAT_000c79e4 != 0)" (( "(") (binary_expression "DAT_000c79e4 != 0" (identifier "DAT_000c79e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        tcsetattr(2,1,&local_f4);\n      }" ({ "{") (expression_statement "tcsetattr(2,1,&local_f4);" (call_expression "tcsetattr(2,1,&local_f4)" (identifier "tcsetattr") (argument_list "(2,1,&local_f4)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" (else "else") (compound_statement "{\n      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);\n      iVar2 = DAT_000c79e4;\n      if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }\n    }" ({ "{") (expression_statement "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);" (call_expression "fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1)" (identifier "fwrite") (argument_list "("Connection abandoned.\n",1,0x16,*(FILE **)puVar1)" (( "(") (string_literal ""Connection abandoned.\n"" (" """) (string_content "Connection abandoned.") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x16") (, ",") (pointer_expression "*(FILE **)puVar1" (* "*") (cast_expression "(FILE **)puVar1" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar1"))) () ")"))) (; ";")) (expression_statement "iVar2 = DAT_000c79e4;" (assignment_expression "iVar2 = DAT_000c79e4" (identifier "iVar2") (= "=") (identifier "DAT_000c79e4")) (; ";")) (if_statement "if (DAT_000c79e4 != 0) {\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }" (if "if") (parenthesized_expression "(DAT_000c79e4 != 0)" (( "(") (binary_expression "DAT_000c79e4 != 0" (identifier "DAT_000c79e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar2 = 0;\n        tcsetattr(2,1,&local_f4);\n      }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "tcsetattr(2,1,&local_f4);" (call_expression "tcsetattr(2,1,&local_f4)" (identifier "tcsetattr") (argument_list "(2,1,&local_f4)" (( "(") (number_literal "2") (, ",") (number_literal "1") (, ",") (pointer_expression "&local_f4" (& "&") (identifier "local_f4")) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" (else "else") (compound_statement "{\n    iVar2 = 0;\n    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);\n  }" ({ "{") (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_000c6fa0,1,\n                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"\n                  ,param_2,param_3)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_000c6fa0" (* "*") (cast_expression "(undefined4 *)PTR_stderr_000c6fa0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000c6fa0"))) (, ",") (number_literal "1") (, ",") (string_literal ""The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"" (" """) (string_content "The first %s supported by the server is") (escape_sequence "\n") (string_content "%s, which is below the configured warning threshold.") (escape_sequence "\n") (string_content "Connection abandoned.") (escape_sequence "\n") (" """)) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (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 iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "FUN_00089270();" (call_expression "FUN_00089270()" (identifier "FUN_00089270") (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,char *algtype,char *algname,type_1 *callback,void *ctx)

{
  int var_10;
  type_2 *puVar2;
  size_t len;
  void *buf;
  int iVar3;
  int var_1;
  type_3 cf;
  type_3 oldmode;
  type_3 newmode;
  char line [32];
  
  var_10 = *(int *)(var_1 + 0x14);
  if (var_2 != 0) {
    var_3(2,(type_3 *)&cf);
    var_4(2,1,(type_3 *)&orig_termios_stderr);
  }
  puVar2 = PTR_stderr_000c6fa0;
  if (var_5 == 0) {
    var_6(*(type_4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "
                  ,algtype,algname);
    var_7(*(type_5 **)puVar2);
    var_3(0,(type_3 *)&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_3 *)&newmode);
    line[0] = '\0';
    var_8((int)line,buf,len);
    var_4(0,0,(type_3 *)&oldmode);
    if ((line[0] & 0xdfU) == 0x59) {
      iVar3 = 1;
      if (var_2 != 0) {
        var_4(2,1,(type_3 *)&cf);
      }
    }
    else {
      var_9("Connection abandoned.\n",1,0x16,*(type_5 **)puVar2);
      iVar3 = var_2;
      if (var_2 != 0) {
        iVar3 = 0;
        var_4(2,1,(type_3 *)&cf);
      }
    }
  }
  else {
    iVar3 = 0;
    var_6(*(type_4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"
                  ,algtype,algname);
  }
  if (var_10 == *(int *)(var_1 + 0x14)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  var_11();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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)) (identifier) (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_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) (number_literal) (pointer_expression argument: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal) (pointer_expression argument: (identifier))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)) (identifier) (identifier))))))) (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 */

int MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3)

{
  undefined *puVar1;
  int iVar2;
  int in_GS_OFFSET;
  termios local_f4;
  termios local_b8;
  termios local_7c;
  byte local_40;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x7bf69;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (DAT_000c79e4 != 0) {
    tcgetattr(2,&local_f4);
    tcsetattr(2,1,(termios *)&DAT_000c7a00);
  }
  puVar1 = PTR_stderr_000c6fa0;
  if (DAT_000c79e0 == 0) {
    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nContinue with connection? (y/n) "
                  ,param_2,param_3);
    fflush(*(FILE **)puVar1);
    tcgetattr(0,&local_b8);
    local_7c.c_iflag = local_b8.c_iflag;
    local_7c.c_oflag = local_b8.c_oflag;
    local_7c.c_cflag = local_b8.c_cflag;
    local_7c.c_lflag = local_b8.c_lflag | 0xb;
    local_7c.c_line = local_b8.c_line;
    local_7c.c_cc[0] = local_b8.c_cc[0];
    local_7c.c_cc[1] = local_b8.c_cc[1];
    local_7c.c_cc[2] = local_b8.c_cc[2];
    local_7c.c_cc[3] = local_b8.c_cc[3];
    local_7c.c_cc[4] = local_b8.c_cc[4];
    local_7c.c_cc[5] = local_b8.c_cc[5];
    local_7c.c_cc[6] = local_b8.c_cc[6];
    local_7c.c_cc[7] = local_b8.c_cc[7];
    local_7c.c_cc[8] = local_b8.c_cc[8];
    local_7c.c_cc[9] = local_b8.c_cc[9];
    local_7c.c_cc[10] = local_b8.c_cc[10];
    local_7c.c_cc[0xb] = local_b8.c_cc[0xb];
    local_7c.c_cc[0xc] = local_b8.c_cc[0xc];
    local_7c.c_cc[0xd] = local_b8.c_cc[0xd];
    local_7c.c_cc[0xe] = local_b8.c_cc[0xe];
    local_7c.c_cc[0xf] = local_b8.c_cc[0xf];
    local_7c.c_cc[0x10] = local_b8.c_cc[0x10];
    local_7c.c_cc[0x11] = local_b8.c_cc[0x11];
    local_7c.c_cc[0x12] = local_b8.c_cc[0x12];
    local_7c.c_cc[0x13] = local_b8.c_cc[0x13];
    local_7c.c_cc[0x14] = local_b8.c_cc[0x14];
    local_7c.c_cc[0x15] = local_b8.c_cc[0x15];
    local_7c.c_cc[0x16] = local_b8.c_cc[0x16];
    local_7c.c_cc[0x17] = local_b8.c_cc[0x17];
    local_7c.c_cc[0x18] = local_b8.c_cc[0x18];
    local_7c.c_cc[0x19] = local_b8.c_cc[0x19];
    local_7c.c_cc[0x1a] = local_b8.c_cc[0x1a];
    local_7c.c_cc[0x1b] = local_b8.c_cc[0x1b];
    local_7c.c_cc[0x1c] = local_b8.c_cc[0x1c];
    local_7c.c_cc[0x1d] = local_b8.c_cc[0x1d];
    local_7c.c_cc[0x1e] = local_b8.c_cc[0x1e];
    local_7c.c_cc[0x1f] = local_b8.c_cc[0x1f];
    local_7c._49_3_ = local_b8._49_3_;
    local_7c.c_ispeed = local_b8.c_ispeed;
    local_7c.c_ospeed = local_b8.c_ospeed;
    tcsetattr(0,0,&local_7c);
    local_40 = 0;
    FUN_0007b9a0();
    tcsetattr(0,0,&local_b8);
    if ((local_40 & 0xdf) == 0x59) {
      iVar2 = 1;
      if (DAT_000c79e4 != 0) {
        tcsetattr(2,1,&local_f4);
      }
    }
    else {
      fwrite("Connection abandoned.\n",1,0x16,*(FILE **)puVar1);
      iVar2 = DAT_000c79e4;
      if (DAT_000c79e4 != 0) {
        iVar2 = 0;
        tcsetattr(2,1,&local_f4);
      }
    }
  }
  else {
    iVar2 = 0;
    __fprintf_chk(*(undefined4 *)PTR_stderr_000c6fa0,1,
                  "The first %s supported by the server is\n%s, which is below the configured warning threshold.\nConnection abandoned.\n"
                  ,param_2,param_3);
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00089270();
}

