
/* WARNING: Unknown calling convention */

wchar_t rl_read_key(void)

{
  wchar_t wVar1;
  wchar_t wVar2;
  int *piVar3;
  long in_FS_OFFSET;
  wchar_t c;
  long local_10;
  
  local_10 = *(long *)(in_FS_OFFSET + 0x28);
  if (rl_pending_input == 0) {
    c = _rl_next_macro_key();
    if (c == L'\0') {
      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {
        wVar1 = rl_get_char(&c);
        if (wVar1 == L'\0') {
          c = (*rl_getc_function)((FILE_conflict *)rl_instream);
        }
        wVar1 = c;
        if (_rl_caught_signal != 0) {
          _rl_signal_handler(_rl_caught_signal);
          wVar1 = c;
        }
      }
      else {
        while( true ) {
          do {
            wVar1 = c;
            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||
               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;
            wVar1 = rl_gather_tyi();
            if (wVar1 < L'\0') {
              rl_done = 1;
              piVar3 = __errno_location();
              wVar1 = L'\n';
              if (*piVar3 == 5) {
                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';
              }
              goto LAB_001c6579;
            }
          } while (L'\0' < wVar1);
          if (_rl_caught_signal != 0) {
            _rl_signal_handler(_rl_caught_signal);
          }
          if (rl_done != 0) break;
          (*rl_event_hook)();
        }
        wVar1 = L'\n';
      }
    }
    else {
      wVar1 = c & 0xff;
    }
  }
  else {
    c = rl_pending_input;
    rl_clear_pending_input();
    wVar1 = c;
  }
LAB_001c6579:
  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return wVar1;
}



uint rl_read_key(void)

{
  uint uVar1;
  int iVar2;
  int *piVar3;
  long in_FS_OFFSET;
  uint local_14;
  long local_10;
  
  local_10 = *(long *)(in_FS_OFFSET + 0x28);
  if (rl_pending_input == 0) {
    local_14 = _rl_next_macro_key();
    if (local_14 == 0) {
      if (rl_event_hook == (code *)0x0) {
        iVar2 = FUN_001c5d1a(&local_14);
        if (iVar2 == 0) {
          local_14 = (*(code *)rl_getc_function)(rl_instream);
        }
        uVar1 = local_14;
        if (_rl_caught_signal != 0) {
          _rl_signal_handler(_rl_caught_signal);
          uVar1 = local_14;
        }
      }
      else {
        while( true ) {
          do {
            uVar1 = local_14;
            if ((rl_event_hook == (code *)0x0) ||
               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;
            iVar2 = FUN_001c626a();
            if (iVar2 < 0) {
              rl_done = 1;
              piVar3 = __errno_location();
              uVar1 = 10;
              if (*piVar3 == 5) {
                uVar1 = ((rl_readline_state & 8) == 0) - 2;
              }
              goto LAB_001c6579;
            }
          } while (0 < iVar2);
          if (_rl_caught_signal != 0) {
            _rl_signal_handler(_rl_caught_signal);
          }
          if (rl_done != 0) break;
          (*rl_event_hook)();
        }
        uVar1 = 10;
      }
    }
    else {
      uVar1 = local_14 & 0xff;
    }
  }
  else {
    local_14 = rl_pending_input;
    rl_clear_pending_input();
    uVar1 = local_14;
  }
LAB_001c6579:
  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar1;
}


PUSH RBX
SUB RSP,0x10
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x8],RAX
XOR EAX,EAX
MOV EAX,dword ptr [0x00216514]
TEST EAX,EAX
JZ 0x001c6593
MOV dword ptr [RSP + 0x4],EAX
CALL 0x001c6532
MOV EAX,dword ptr [RSP + 0x4]
MOV RCX,qword ptr [RSP + 0x8]
XOR RCX,qword ptr FS:[0x28]
JNZ 0x001c667f
ADD RSP,0x10
POP RBX
RET
CALL 0x001c59d0
MOV dword ptr [RSP + 0x4],EAX
TEST EAX,EAX
JNZ 0x001c65e9
LEA RBX,[RSP + 0x4]
CMP qword ptr [0x002172f0],0x0
JNZ 0x001c6640
LEA RDI,[RSP + 0x4]
CALL 0x001c5d1a
TEST EAX,EAX
JNZ 0x001c65d2
MOV RDI,qword ptr [0x00216550]
CALL qword ptr [0x00212ac8]
MOV dword ptr [RSP + 0x4],EAX
MOV EAX,dword ptr [0x00216b10]
TEST EAX,EAX
JZ 0x001c6575
MOV EDI,dword ptr [0x00216b10]
CALL 0x001c3f22
JMP 0x001c6575
MOVZX EAX,AL
JMP 0x001c6579
MOV dword ptr [0x0021c7ac],0x1
CALL 0x0012d120
MOV RDX,RAX
MOV EAX,0xa
CMP dword ptr [RDX],0x5
JNZ 0x001c6579
MOV RAX,qword ptr [0x00216560]
AND EAX,0x8
SETZ AL
MOVZX EAX,AL
SUB EAX,0x2
JMP 0x001c6579
MOV EDI,dword ptr [0x00216b10]
CALL 0x001c3f22
CMP dword ptr [0x0021c7ac],0x0
JNZ 0x001c6675
CALL qword ptr [0x002172f0]
CMP qword ptr [0x002172f0],0x0
JZ 0x001c6575
MOV RDI,RBX
CALL 0x001c5d1a
TEST EAX,EAX
JNZ 0x001c6575
CALL 0x001c626a
TEST EAX,EAX
JS 0x001c65ee
JG 0x001c6640
MOV EAX,dword ptr [0x00216b10]
TEST EAX,EAX
JZ 0x001c6631
JMP 0x001c6626
MOV EAX,0xa
JMP 0x001c6579
CALL 0x0012d3b0
(translation_unit "uint rl_read_key(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar1;\n}\n\n" (function_definition "uint rl_read_key(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar1;\n}" type_identifier (function_declarator "rl_read_key(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return uVar1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_14;" type_identifier identifier ;) (declaration "long local_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_10 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" if (parenthesized_expression "(rl_pending_input == 0)" ( (binary_expression "rl_pending_input == 0" identifier == number_literal) )) (compound_statement "{\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }" { (expression_statement "local_14 = _rl_next_macro_key();" (assignment_expression "local_14 = _rl_next_macro_key()" identifier = (call_expression "_rl_next_macro_key()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }" if (parenthesized_expression "(local_14 == 0)" ( (binary_expression "local_14 == 0" identifier == number_literal) )) (compound_statement "{\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }" { (if_statement "if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" if (parenthesized_expression "(rl_event_hook == (code *)0x0)" ( (binary_expression "rl_event_hook == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }" { (expression_statement "iVar2 = FUN_001c5d1a(&local_14);" (assignment_expression "iVar2 = FUN_001c5d1a(&local_14)" identifier = (call_expression "FUN_001c5d1a(&local_14)" identifier (argument_list "(&local_14)" ( (pointer_expression "&local_14" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }" { (expression_statement "local_14 = (*(code *)rl_getc_function)(rl_instream);" (assignment_expression "local_14 = (*(code *)rl_getc_function)(rl_instream)" identifier = (call_expression "(*(code *)rl_getc_function)(rl_instream)" (parenthesized_expression "(*(code *)rl_getc_function)" ( (pointer_expression "*(code *)rl_getc_function" * (cast_expression "(code *)rl_getc_function" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rl_instream)" ( identifier )))) ;) })) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) (if_statement "if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }" if (parenthesized_expression "(_rl_caught_signal != 0)" ( (binary_expression "_rl_caught_signal != 0" identifier != number_literal) )) (compound_statement "{\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }" { (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" identifier (argument_list "(_rl_caught_signal)" ( identifier ))) ;) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) })) }) (else_clause "else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" else (compound_statement "{\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" { (while_statement "while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" { (do_statement "do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);" do (compound_statement "{\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          }" { (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) (if_statement "if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;" if (parenthesized_expression "((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0))" ( (binary_expression "(rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)" (parenthesized_expression "(rl_event_hook == (code *)0x0)" ( (binary_expression "rl_event_hook == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)" ( (comma_expression "iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0" (assignment_expression "iVar2 = FUN_001c5d1a(&local_14)" identifier = (call_expression "FUN_001c5d1a(&local_14)" identifier (argument_list "(&local_14)" ( (pointer_expression "&local_14" & identifier) )))) , (comma_expression "uVar1 = local_14, iVar2 != 0" (assignment_expression "uVar1 = local_14" identifier = identifier) , (binary_expression "iVar2 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_001c6579;" goto statement_identifier ;)) (expression_statement "iVar2 = FUN_001c626a();" (assignment_expression "iVar2 = FUN_001c626a()" identifier = (call_expression "FUN_001c626a()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }" { (expression_statement "rl_done = 1;" (assignment_expression "rl_done = 1" identifier = number_literal) ;) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" identifier = number_literal) ;) (if_statement "if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }" if (parenthesized_expression "(*piVar3 == 5)" ( (binary_expression "*piVar3 == 5" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }" { (expression_statement "uVar1 = ((rl_readline_state & 8) == 0) - 2;" (assignment_expression "uVar1 = ((rl_readline_state & 8) == 0) - 2" identifier = (binary_expression "((rl_readline_state & 8) == 0) - 2" (parenthesized_expression "((rl_readline_state & 8) == 0)" ( (binary_expression "(rl_readline_state & 8) == 0" (parenthesized_expression "(rl_readline_state & 8)" ( (binary_expression "rl_readline_state & 8" identifier & number_literal) )) == number_literal) )) - number_literal)) ;) })) (goto_statement "goto LAB_001c6579;" goto statement_identifier ;) })) }) while (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) ;) (if_statement "if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }" if (parenthesized_expression "(_rl_caught_signal != 0)" ( (binary_expression "_rl_caught_signal != 0" identifier != number_literal) )) (compound_statement "{\n            _rl_signal_handler(_rl_caught_signal);\n          }" { (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" identifier (argument_list "(_rl_caught_signal)" ( identifier ))) ;) })) (if_statement "if (rl_done != 0) break;" if (parenthesized_expression "(rl_done != 0)" ( (binary_expression "rl_done != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*rl_event_hook)();" (call_expression "(*rl_event_hook)()" (parenthesized_expression "(*rl_event_hook)" ( (pointer_expression "*rl_event_hook" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" identifier = number_literal) ;) }))) }) (else_clause "else {\n      uVar1 = local_14 & 0xff;\n    }" else (compound_statement "{\n      uVar1 = local_14 & 0xff;\n    }" { (expression_statement "uVar1 = local_14 & 0xff;" (assignment_expression "uVar1 = local_14 & 0xff" identifier = (binary_expression "local_14 & 0xff" identifier & number_literal)) ;) }))) }) (else_clause "else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" else (compound_statement "{\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" { (expression_statement "local_14 = rl_pending_input;" (assignment_expression "local_14 = rl_pending_input" identifier = identifier) ;) (expression_statement "rl_clear_pending_input();" (call_expression "rl_clear_pending_input()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) }))) (labeled_statement "LAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_10 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_10 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nwchar_t rl_read_key(void)\n\n{\n  wchar_t wVar1;\n  wchar_t wVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  wchar_t c;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    c = _rl_next_macro_key();\n    if (c == L'\0') {\n      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }\n    }\n    else {\n      wVar1 = c & 0xff;\n    }\n  }\n  else {\n    c = rl_pending_input;\n    rl_clear_pending_input();\n    wVar1 = c;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return wVar1;\n}\n\n" comment (function_definition "wchar_t rl_read_key(void)\n\n{\n  wchar_t wVar1;\n  wchar_t wVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  wchar_t c;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    c = _rl_next_macro_key();\n    if (c == L'\0') {\n      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }\n    }\n    else {\n      wVar1 = c & 0xff;\n    }\n  }\n  else {\n    c = rl_pending_input;\n    rl_clear_pending_input();\n    wVar1 = c;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return wVar1;\n}" type_identifier (function_declarator "rl_read_key(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  wchar_t wVar1;\n  wchar_t wVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  wchar_t c;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    c = _rl_next_macro_key();\n    if (c == L'\0') {\n      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }\n    }\n    else {\n      wVar1 = c & 0xff;\n    }\n  }\n  else {\n    c = rl_pending_input;\n    rl_clear_pending_input();\n    wVar1 = c;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return wVar1;\n}" { (declaration "wchar_t wVar1;" type_identifier identifier ;) (declaration "wchar_t wVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "wchar_t c;" type_identifier identifier ;) (declaration "long local_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_10 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (rl_pending_input == 0) {\n    c = _rl_next_macro_key();\n    if (c == L'\0') {\n      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }\n    }\n    else {\n      wVar1 = c & 0xff;\n    }\n  }\n  else {\n    c = rl_pending_input;\n    rl_clear_pending_input();\n    wVar1 = c;\n  }" if (parenthesized_expression "(rl_pending_input == 0)" ( (binary_expression "rl_pending_input == 0" identifier == number_literal) )) (compound_statement "{\n    c = _rl_next_macro_key();\n    if (c == L'\0') {\n      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }\n    }\n    else {\n      wVar1 = c & 0xff;\n    }\n  }" { (expression_statement "c = _rl_next_macro_key();" (assignment_expression "c = _rl_next_macro_key()" identifier = (call_expression "_rl_next_macro_key()" identifier (argument_list "()" ( )))) ;) (if_statement "if (c == L'\0') {\n      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }\n    }\n    else {\n      wVar1 = c & 0xff;\n    }" if (parenthesized_expression "(c == L'\0')" ( (binary_expression "c == L'\0'" identifier == (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n      if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }\n    }" { (if_statement "if (rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) {\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }" if (parenthesized_expression "(rl_event_hook == (rl_hook_func_t_conflict2 *)0x0)" ( (binary_expression "rl_event_hook == (rl_hook_func_t_conflict2 *)0x0" identifier == (cast_expression "(rl_hook_func_t_conflict2 *)0x0" ( (type_descriptor "rl_hook_func_t_conflict2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        wVar1 = rl_get_char(&c);\n        if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }\n        wVar1 = c;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }\n      }" { (expression_statement "wVar1 = rl_get_char(&c);" (assignment_expression "wVar1 = rl_get_char(&c)" identifier = (call_expression "rl_get_char(&c)" identifier (argument_list "(&c)" ( (pointer_expression "&c" & identifier) )))) ;) (if_statement "if (wVar1 == L'\0') {\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }" if (parenthesized_expression "(wVar1 == L'\0')" ( (binary_expression "wVar1 == L'\0'" identifier == (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n          c = (*rl_getc_function)((FILE_conflict *)rl_instream);\n        }" { (expression_statement "c = (*rl_getc_function)((FILE_conflict *)rl_instream);" (assignment_expression "c = (*rl_getc_function)((FILE_conflict *)rl_instream)" identifier = (call_expression "(*rl_getc_function)((FILE_conflict *)rl_instream)" (parenthesized_expression "(*rl_getc_function)" ( (pointer_expression "*rl_getc_function" * identifier) )) (argument_list "((FILE_conflict *)rl_instream)" ( (cast_expression "(FILE_conflict *)rl_instream" ( (type_descriptor "FILE_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) })) (expression_statement "wVar1 = c;" (assignment_expression "wVar1 = c" identifier = identifier) ;) (if_statement "if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }" if (parenthesized_expression "(_rl_caught_signal != 0)" ( (binary_expression "_rl_caught_signal != 0" identifier != number_literal) )) (compound_statement "{\n          _rl_signal_handler(_rl_caught_signal);\n          wVar1 = c;\n        }" { (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" identifier (argument_list "(_rl_caught_signal)" ( identifier ))) ;) (expression_statement "wVar1 = c;" (assignment_expression "wVar1 = c" identifier = identifier) ;) })) }) (else_clause "else {\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }" else (compound_statement "{\n        while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        wVar1 = L'\n';\n      }" { (while_statement "while( true ) {\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" { (do_statement "do {\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          } while (L'\0' < wVar1);" do (compound_statement "{\n            wVar1 = c;\n            if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;\n            wVar1 = rl_gather_tyi();\n            if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }\n          }" { (expression_statement "wVar1 = c;" (assignment_expression "wVar1 = c" identifier = identifier) ;) (if_statement "if ((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')) goto LAB_001c6579;" if (parenthesized_expression "((rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0'))" ( (binary_expression "(rl_event_hook == (rl_hook_func_t_conflict2 *)0x0) ||\n               (wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')" (parenthesized_expression "(rl_event_hook == (rl_hook_func_t_conflict2 *)0x0)" ( (binary_expression "rl_event_hook == (rl_hook_func_t_conflict2 *)0x0" identifier == (cast_expression "(rl_hook_func_t_conflict2 *)0x0" ( (type_descriptor "rl_hook_func_t_conflict2 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0')" ( (comma_expression "wVar2 = rl_get_char(&c), wVar1 = c, wVar2 != L'\0'" (assignment_expression "wVar2 = rl_get_char(&c)" identifier = (call_expression "rl_get_char(&c)" identifier (argument_list "(&c)" ( (pointer_expression "&c" & identifier) )))) , (comma_expression "wVar1 = c, wVar2 != L'\0'" (assignment_expression "wVar1 = c" identifier = identifier) , (binary_expression "wVar2 != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')))) ))) )) (goto_statement "goto LAB_001c6579;" goto statement_identifier ;)) (expression_statement "wVar1 = rl_gather_tyi();" (assignment_expression "wVar1 = rl_gather_tyi()" identifier = (call_expression "rl_gather_tyi()" identifier (argument_list "()" ( )))) ;) (if_statement "if (wVar1 < L'\0') {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }" if (parenthesized_expression "(wVar1 < L'\0')" ( (binary_expression "wVar1 < L'\0'" identifier < (char_literal "L'\0'" L' escape_sequence ')) )) (compound_statement "{\n              rl_done = 1;\n              piVar3 = __errno_location();\n              wVar1 = L'\n';\n              if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }\n              goto LAB_001c6579;\n            }" { (expression_statement "rl_done = 1;" (assignment_expression "rl_done = 1" identifier = number_literal) ;) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "wVar1 = L'\n';" (assignment_expression "wVar1 = L'\n'" identifier = (char_literal "L'\n'" L' escape_sequence ')) ;) (if_statement "if (*piVar3 == 5) {\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }" if (parenthesized_expression "(*piVar3 == 5)" ( (binary_expression "*piVar3 == 5" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n                wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';\n              }" { (expression_statement "wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe';" (assignment_expression "wVar1 = (uint)((rl_readline_state & 8) == 0) + L'\xfffffffe'" identifier = (binary_expression "(uint)((rl_readline_state & 8) == 0) + L'\xfffffffe'" (call_expression "(uint)((rl_readline_state & 8) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((rl_readline_state & 8) == 0)" ( (binary_expression "(rl_readline_state & 8) == 0" (parenthesized_expression "(rl_readline_state & 8)" ( (binary_expression "rl_readline_state & 8" identifier & number_literal) )) == number_literal) ))) + (char_literal "L'\xfffffffe'" L' escape_sequence character character character character '))) ;) })) (goto_statement "goto LAB_001c6579;" goto statement_identifier ;) })) }) while (parenthesized_expression "(L'\0' < wVar1)" ( (binary_expression "L'\0' < wVar1" (char_literal "L'\0'" L' escape_sequence ') < identifier) )) ;) (if_statement "if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }" if (parenthesized_expression "(_rl_caught_signal != 0)" ( (binary_expression "_rl_caught_signal != 0" identifier != number_literal) )) (compound_statement "{\n            _rl_signal_handler(_rl_caught_signal);\n          }" { (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" identifier (argument_list "(_rl_caught_signal)" ( identifier ))) ;) })) (if_statement "if (rl_done != 0) break;" if (parenthesized_expression "(rl_done != 0)" ( (binary_expression "rl_done != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*rl_event_hook)();" (call_expression "(*rl_event_hook)()" (parenthesized_expression "(*rl_event_hook)" ( (pointer_expression "*rl_event_hook" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "wVar1 = L'\n';" (assignment_expression "wVar1 = L'\n'" identifier = (char_literal "L'\n'" L' escape_sequence ')) ;) }))) }) (else_clause "else {\n      wVar1 = c & 0xff;\n    }" else (compound_statement "{\n      wVar1 = c & 0xff;\n    }" { (expression_statement "wVar1 = c & 0xff;" (assignment_expression "wVar1 = c & 0xff" identifier = (binary_expression "c & 0xff" identifier & number_literal)) ;) }))) }) (else_clause "else {\n    c = rl_pending_input;\n    rl_clear_pending_input();\n    wVar1 = c;\n  }" else (compound_statement "{\n    c = rl_pending_input;\n    rl_clear_pending_input();\n    wVar1 = c;\n  }" { (expression_statement "c = rl_pending_input;" (assignment_expression "c = rl_pending_input" identifier = identifier) ;) (expression_statement "rl_clear_pending_input();" (call_expression "rl_clear_pending_input()" identifier (argument_list "()" ( ))) ;) (expression_statement "wVar1 = c;" (assignment_expression "wVar1 = c" identifier = identifier) ;) }))) (labeled_statement "LAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_10 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_10 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return wVar1;" return identifier ;) })))
(translation_unit "uint rl_read_key(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar1;\n}\n\n" (function_definition "uint rl_read_key(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar1;\n}" type_identifier (function_declarator "rl_read_key(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uint local_14;" type_identifier identifier ;) (declaration "long local_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_10 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" if (parenthesized_expression "(rl_pending_input == 0)" ( (binary_expression "rl_pending_input == 0" identifier == number_literal) )) (compound_statement "{\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }" { (expression_statement "local_14 = _rl_next_macro_key();" (assignment_expression "local_14 = _rl_next_macro_key()" identifier = (call_expression "_rl_next_macro_key()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }" if (parenthesized_expression "(local_14 == 0)" ( (binary_expression "local_14 == 0" identifier == number_literal) )) (compound_statement "{\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }" { (if_statement "if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" if (parenthesized_expression "(rl_event_hook == (code *)0x0)" ( (binary_expression "rl_event_hook == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }" { (expression_statement "iVar2 = FUN_001c5d1a(&local_14);" (assignment_expression "iVar2 = FUN_001c5d1a(&local_14)" identifier = (call_expression "FUN_001c5d1a(&local_14)" identifier (argument_list "(&local_14)" ( (pointer_expression "&local_14" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }" { (expression_statement "local_14 = (*(code *)rl_getc_function)(rl_instream);" (assignment_expression "local_14 = (*(code *)rl_getc_function)(rl_instream)" identifier = (call_expression "(*(code *)rl_getc_function)(rl_instream)" (parenthesized_expression "(*(code *)rl_getc_function)" ( (pointer_expression "*(code *)rl_getc_function" * (cast_expression "(code *)rl_getc_function" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(rl_instream)" ( identifier )))) ;) })) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) (if_statement "if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }" if (parenthesized_expression "(_rl_caught_signal != 0)" ( (binary_expression "_rl_caught_signal != 0" identifier != number_literal) )) (compound_statement "{\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }" { (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" identifier (argument_list "(_rl_caught_signal)" ( identifier ))) ;) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) })) }) (else_clause "else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" else (compound_statement "{\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" { (while_statement "while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" { (do_statement "do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);" do (compound_statement "{\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          }" { (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) (if_statement "if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;" if (parenthesized_expression "((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0))" ( (binary_expression "(rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)" (parenthesized_expression "(rl_event_hook == (code *)0x0)" ( (binary_expression "rl_event_hook == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)" ( (comma_expression "iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0" (assignment_expression "iVar2 = FUN_001c5d1a(&local_14)" identifier = (call_expression "FUN_001c5d1a(&local_14)" identifier (argument_list "(&local_14)" ( (pointer_expression "&local_14" & identifier) )))) , (comma_expression "uVar1 = local_14, iVar2 != 0" (assignment_expression "uVar1 = local_14" identifier = identifier) , (binary_expression "iVar2 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_001c6579;" goto statement_identifier ;)) (expression_statement "iVar2 = FUN_001c626a();" (assignment_expression "iVar2 = FUN_001c626a()" identifier = (call_expression "FUN_001c626a()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }" { (expression_statement "rl_done = 1;" (assignment_expression "rl_done = 1" identifier = number_literal) ;) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" identifier = number_literal) ;) (if_statement "if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }" if (parenthesized_expression "(*piVar3 == 5)" ( (binary_expression "*piVar3 == 5" (pointer_expression "*piVar3" * identifier) == number_literal) )) (compound_statement "{\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }" { (expression_statement "uVar1 = ((rl_readline_state & 8) == 0) - 2;" (assignment_expression "uVar1 = ((rl_readline_state & 8) == 0) - 2" identifier = (binary_expression "((rl_readline_state & 8) == 0) - 2" (parenthesized_expression "((rl_readline_state & 8) == 0)" ( (binary_expression "(rl_readline_state & 8) == 0" (parenthesized_expression "(rl_readline_state & 8)" ( (binary_expression "rl_readline_state & 8" identifier & number_literal) )) == number_literal) )) - number_literal)) ;) })) (goto_statement "goto LAB_001c6579;" goto statement_identifier ;) })) }) while (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) ;) (if_statement "if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }" if (parenthesized_expression "(_rl_caught_signal != 0)" ( (binary_expression "_rl_caught_signal != 0" identifier != number_literal) )) (compound_statement "{\n            _rl_signal_handler(_rl_caught_signal);\n          }" { (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" identifier (argument_list "(_rl_caught_signal)" ( identifier ))) ;) })) (if_statement "if (rl_done != 0) break;" if (parenthesized_expression "(rl_done != 0)" ( (binary_expression "rl_done != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "(*rl_event_hook)();" (call_expression "(*rl_event_hook)()" (parenthesized_expression "(*rl_event_hook)" ( (pointer_expression "*rl_event_hook" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" identifier = number_literal) ;) }))) }) (else_clause "else {\n      uVar1 = local_14 & 0xff;\n    }" else (compound_statement "{\n      uVar1 = local_14 & 0xff;\n    }" { (expression_statement "uVar1 = local_14 & 0xff;" (assignment_expression "uVar1 = local_14 & 0xff" identifier = (binary_expression "local_14 & 0xff" identifier & number_literal)) ;) }))) }) (else_clause "else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" else (compound_statement "{\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" { (expression_statement "local_14 = rl_pending_input;" (assignment_expression "local_14 = rl_pending_input" identifier = identifier) ;) (expression_statement "rl_clear_pending_input();" (call_expression "rl_clear_pending_input()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" identifier = identifier) ;) }))) (labeled_statement "LAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_10 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_10 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) - LIT)) ;) })) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint rl_read_key(void)\n\n{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar1;\n}" (type_identifier "uint") (function_declarator "rl_read_key(void)" (identifier "rl_read_key") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  int *piVar3;\n  long in_FS_OFFSET;\n  uint local_14;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }\nLAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return uVar1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "uint local_14;" (type_identifier "uint") (identifier "local_14") (; ";")) (declaration "long local_10;" (sized_type_specifier "long" (long "long")) (identifier "local_10") (; ";")) (expression_statement "local_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_10 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_10") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (rl_pending_input == 0) {\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }\n  else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" (if "if") (parenthesized_expression "(rl_pending_input == 0)" (( "(") (binary_expression "rl_pending_input == 0" (identifier "rl_pending_input") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_14 = _rl_next_macro_key();\n    if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }\n  }" ({ "{") (expression_statement "local_14 = _rl_next_macro_key();" (assignment_expression "local_14 = _rl_next_macro_key()" (identifier "local_14") (= "=") (call_expression "_rl_next_macro_key()" (identifier "_rl_next_macro_key") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_14 == 0) {\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }\n    else {\n      uVar1 = local_14 & 0xff;\n    }" (if "if") (parenthesized_expression "(local_14 == 0)" (( "(") (binary_expression "local_14 == 0" (identifier "local_14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }\n    }" ({ "{") (if_statement "if (rl_event_hook == (code *)0x0) {\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }\n      else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" (if "if") (parenthesized_expression "(rl_event_hook == (code *)0x0)" (( "(") (binary_expression "rl_event_hook == (code *)0x0" (identifier "rl_event_hook") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar2 = FUN_001c5d1a(&local_14);\n        if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }\n        uVar1 = local_14;\n        if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }\n      }" ({ "{") (expression_statement "iVar2 = FUN_001c5d1a(&local_14);" (assignment_expression "iVar2 = FUN_001c5d1a(&local_14)" (identifier "iVar2") (= "=") (call_expression "FUN_001c5d1a(&local_14)" (identifier "FUN_001c5d1a") (argument_list "(&local_14)" (( "(") (pointer_expression "&local_14" (& "&") (identifier "local_14")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_14 = (*(code *)rl_getc_function)(rl_instream);\n        }" ({ "{") (expression_statement "local_14 = (*(code *)rl_getc_function)(rl_instream);" (assignment_expression "local_14 = (*(code *)rl_getc_function)(rl_instream)" (identifier "local_14") (= "=") (call_expression "(*(code *)rl_getc_function)(rl_instream)" (parenthesized_expression "(*(code *)rl_getc_function)" (( "(") (pointer_expression "*(code *)rl_getc_function" (* "*") (cast_expression "(code *)rl_getc_function" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "rl_getc_function"))) () ")")) (argument_list "(rl_instream)" (( "(") (identifier "rl_instream") () ")")))) (; ";")) (} "}"))) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" (identifier "uVar1") (= "=") (identifier "local_14")) (; ";")) (if_statement "if (_rl_caught_signal != 0) {\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }" (if "if") (parenthesized_expression "(_rl_caught_signal != 0)" (( "(") (binary_expression "_rl_caught_signal != 0" (identifier "_rl_caught_signal") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          _rl_signal_handler(_rl_caught_signal);\n          uVar1 = local_14;\n        }" ({ "{") (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" (identifier "_rl_signal_handler") (argument_list "(_rl_caught_signal)" (( "(") (identifier "_rl_caught_signal") () ")"))) (; ";")) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" (identifier "uVar1") (= "=") (identifier "local_14")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" (else "else") (compound_statement "{\n        while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }\n        uVar1 = 10;\n      }" ({ "{") (while_statement "while( true ) {\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);\n          if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }\n          if (rl_done != 0) break;\n          (*rl_event_hook)();\n        }" ({ "{") (do_statement "do {\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          } while (0 < iVar2);" (do "do") (compound_statement "{\n            uVar1 = local_14;\n            if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;\n            iVar2 = FUN_001c626a();\n            if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }\n          }" ({ "{") (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" (identifier "uVar1") (= "=") (identifier "local_14")) (; ";")) (if_statement "if ((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;" (if "if") (parenthesized_expression "((rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0))" (( "(") (binary_expression "(rl_event_hook == (code *)0x0) ||\n               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)" (parenthesized_expression "(rl_event_hook == (code *)0x0)" (( "(") (binary_expression "rl_event_hook == (code *)0x0" (identifier "rl_event_hook") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0" (assignment_expression "iVar2 = FUN_001c5d1a(&local_14)" (identifier "iVar2") (= "=") (call_expression "FUN_001c5d1a(&local_14)" (identifier "FUN_001c5d1a") (argument_list "(&local_14)" (( "(") (pointer_expression "&local_14" (& "&") (identifier "local_14")) () ")")))) (, ",") (comma_expression "uVar1 = local_14, iVar2 != 0" (assignment_expression "uVar1 = local_14" (identifier "uVar1") (= "=") (identifier "local_14")) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_001c6579;" (goto "goto") (statement_identifier "LAB_001c6579") (; ";"))) (expression_statement "iVar2 = FUN_001c626a();" (assignment_expression "iVar2 = FUN_001c626a()" (identifier "iVar2") (= "=") (call_expression "FUN_001c626a()" (identifier "FUN_001c626a") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 < 0) {\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              rl_done = 1;\n              piVar3 = __errno_location();\n              uVar1 = 10;\n              if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }\n              goto LAB_001c6579;\n            }" ({ "{") (expression_statement "rl_done = 1;" (assignment_expression "rl_done = 1" (identifier "rl_done") (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar3 = __errno_location();" (assignment_expression "piVar3 = __errno_location()" (identifier "piVar3") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" (identifier "uVar1") (= "=") (number_literal "10")) (; ";")) (if_statement "if (*piVar3 == 5) {\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }" (if "if") (parenthesized_expression "(*piVar3 == 5)" (( "(") (binary_expression "*piVar3 == 5" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n                uVar1 = ((rl_readline_state & 8) == 0) - 2;\n              }" ({ "{") (expression_statement "uVar1 = ((rl_readline_state & 8) == 0) - 2;" (assignment_expression "uVar1 = ((rl_readline_state & 8) == 0) - 2" (identifier "uVar1") (= "=") (binary_expression "((rl_readline_state & 8) == 0) - 2" (parenthesized_expression "((rl_readline_state & 8) == 0)" (( "(") (binary_expression "(rl_readline_state & 8) == 0" (parenthesized_expression "(rl_readline_state & 8)" (( "(") (binary_expression "rl_readline_state & 8" (identifier "rl_readline_state") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (- "-") (number_literal "2"))) (; ";")) (} "}"))) (goto_statement "goto LAB_001c6579;" (goto "goto") (statement_identifier "LAB_001c6579") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (; ";")) (if_statement "if (_rl_caught_signal != 0) {\n            _rl_signal_handler(_rl_caught_signal);\n          }" (if "if") (parenthesized_expression "(_rl_caught_signal != 0)" (( "(") (binary_expression "_rl_caught_signal != 0" (identifier "_rl_caught_signal") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            _rl_signal_handler(_rl_caught_signal);\n          }" ({ "{") (expression_statement "_rl_signal_handler(_rl_caught_signal);" (call_expression "_rl_signal_handler(_rl_caught_signal)" (identifier "_rl_signal_handler") (argument_list "(_rl_caught_signal)" (( "(") (identifier "_rl_caught_signal") () ")"))) (; ";")) (} "}"))) (if_statement "if (rl_done != 0) break;" (if "if") (parenthesized_expression "(rl_done != 0)" (( "(") (binary_expression "rl_done != 0" (identifier "rl_done") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "(*rl_event_hook)();" (call_expression "(*rl_event_hook)()" (parenthesized_expression "(*rl_event_hook)" (( "(") (pointer_expression "*rl_event_hook" (* "*") (identifier "rl_event_hook")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" (identifier "uVar1") (= "=") (number_literal "10")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      uVar1 = local_14 & 0xff;\n    }" (else "else") (compound_statement "{\n      uVar1 = local_14 & 0xff;\n    }" ({ "{") (expression_statement "uVar1 = local_14 & 0xff;" (assignment_expression "uVar1 = local_14 & 0xff" (identifier "uVar1") (= "=") (binary_expression "local_14 & 0xff" (identifier "local_14") (& "&") (number_literal "0xff"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" (else "else") (compound_statement "{\n    local_14 = rl_pending_input;\n    rl_clear_pending_input();\n    uVar1 = local_14;\n  }" ({ "{") (expression_statement "local_14 = rl_pending_input;" (assignment_expression "local_14 = rl_pending_input" (identifier "local_14") (= "=") (identifier "rl_pending_input")) (; ";")) (expression_statement "rl_clear_pending_input();" (call_expression "rl_clear_pending_input()" (identifier "rl_clear_pending_input") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar1 = local_14;" (assignment_expression "uVar1 = local_14" (identifier "uVar1") (= "=") (identifier "local_14")) (; ";")) (} "}")))) (labeled_statement "LAB_001c6579:\n  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_001c6579") (: ":") (if_statement "if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_10 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_10 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_10") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

type_1 function_1(void)

{
  type_1 var_7;
  type_1 var_10;
  int *piVar3;
  long var_1;
  type_1 var_4;
  long var_16;
  
  var_16 = *(long *)(var_1 + 0x28);
  if (var_2 == 0) {
    var_4 = var_3();
    if (var_4 == L'\0') {
      if (var_5 == (type_2 *)0x0) {
        var_7 = var_6(&var_4);
        if (var_7 == L'\0') {
          var_4 = (*rl_getc_function)((type_3 *)rl_instream);
        }
        var_7 = var_4;
        if (var_8 != 0) {
          var_9(var_8);
          var_7 = var_4;
        }
      }
      else {
        while( true ) {
          do {
            var_7 = var_4;
            if ((var_5 == (type_2 *)0x0) ||
               (var_10 = var_6(&var_4), var_7 = var_4, var_10 != L'\0')) goto LAB_001c6579;
            var_7 = var_11();
            if (var_7 < L'\0') {
              var_14 = 1;
              piVar3 = var_12();
              var_7 = L'\n';
              if (*piVar3 == 5) {
                var_7 = (uint)((var_13 & 8) == 0) + L'\xfffffffe';
              }
              goto LAB_001c6579;
            }
          } while (L'\0' < var_7);
          if (var_8 != 0) {
            var_9(var_8);
          }
          if (var_14 != 0) break;
          (*var_5)();
        }
        var_7 = L'\n';
      }
    }
    else {
      var_7 = var_4 & 0xff;
    }
  }
  else {
    var_4 = var_2;
    var_15();
    var_7 = var_4;
  }
LAB_001c6579:
  if (var_16 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_17();
  }
  return var_7;
}


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

uint MASKED(void)

{
  uint uVar1;
  int iVar2;
  int *piVar3;
  long in_FS_OFFSET;
  uint local_14;
  long local_10;
  
  local_10 = *(long *)(in_FS_OFFSET + 0x28);
  if (rl_pending_input == 0) {
    local_14 = _rl_next_macro_key();
    if (local_14 == 0) {
      if (rl_event_hook == (code *)0x0) {
        iVar2 = FUN_001c5d1a(&local_14);
        if (iVar2 == 0) {
          local_14 = (*(code *)rl_getc_function)(rl_instream);
        }
        uVar1 = local_14;
        if (_rl_caught_signal != 0) {
          _rl_signal_handler(_rl_caught_signal);
          uVar1 = local_14;
        }
      }
      else {
        while( true ) {
          do {
            uVar1 = local_14;
            if ((rl_event_hook == (code *)0x0) ||
               (iVar2 = FUN_001c5d1a(&local_14), uVar1 = local_14, iVar2 != 0)) goto LAB_001c6579;
            iVar2 = FUN_001c626a();
            if (iVar2 < 0) {
              rl_done = 1;
              piVar3 = __errno_location();
              uVar1 = 10;
              if (*piVar3 == 5) {
                uVar1 = ((rl_readline_state & 8) == 0) - 2;
              }
              goto LAB_001c6579;
            }
          } while (0 < iVar2);
          if (_rl_caught_signal != 0) {
            _rl_signal_handler(_rl_caught_signal);
          }
          if (rl_done != 0) break;
          (*rl_event_hook)();
        }
        uVar1 = 10;
      }
    }
    else {
      uVar1 = local_14 & 0xff;
    }
  }
  else {
    local_14 = rl_pending_input;
    rl_clear_pending_input();
    uVar1 = local_14;
  }
LAB_001c6579:
  if (local_10 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return uVar1;
}

