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

int rl_noninc_reverse_search_again(int count,int key)

{
  char *string;
  int pos;
  int iVar1;
  HIST_ENTRY *pHVar2;
  
  string = noninc_search_string;
  if (noninc_search_string != (char *)0x0) {
    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)) {
      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);
      return (uint)(iVar1 != 1);
    }
    if ((*noninc_search_string != '\0') && (-1 < noninc_history_pos)) {
      iVar1 = noninc_history_pos + -1;
      if (iVar1 != -1) {
        pos = where_history();
        iVar1 = history_set_pos(iVar1);
        if (iVar1 != 0) {
          rl_readline_state = rl_readline_state | 0x200;
          if (*string == '^') {
            iVar1 = history_search_prefix(string + 1,-1);
          }
          else {
            iVar1 = history_search(string,-1);
          }
          rl_readline_state = rl_readline_state & 0xfffffdff;
          if (iVar1 == -1) {
            history_set_pos(pos);
          }
          else {
            iVar1 = where_history();
            history_set_pos(pos);
            if (iVar1 != -1) {
              noninc_history_pos = iVar1;
              iVar1 = where_history();
              history_set_pos(noninc_history_pos);
              pHVar2 = current_history();
              if (rl_editing_mode != 0) {
                history_set_pos(iVar1);
              }
              _rl_replace_text(pHVar2->line,0,rl_end);
              _rl_fix_point(1);
              if (rl_editing_mode == 0) {
                rl_free_undo_list();
              }
              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {
                _rl_free_history_entry(_rl_saved_line_for_history);
              }
              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;
              rl_point = 0;
              rl_mark = rl_end;
              rl_clear_message();
              return 0;
            }
          }
        }
      }
      rl_maybe_unsave_line();
      rl_clear_message();
      rl_point = 0;
    }
  }
  rl_ding();
  return 1;
}



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

bool rl_noninc_reverse_search_again(undefined4 param_1,int param_2)

{
  char *pcVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  
  pcVar1 = DAT_00179c58;
  if (DAT_00179c58 != (char *)0x0) {
    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {
      iVar3 = FUN_000e6730();
      return iVar3 != 1;
    }
    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {
      iVar3 = DAT_00179c54 + -1;
      if (iVar3 != -1) {
        uVar2 = where_history();
        iVar3 = history_set_pos(iVar3);
        if (iVar3 != 0) {
          rl_readline_state = rl_readline_state | 0x200;
          if (*pcVar1 == '^') {
            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);
          }
          else {
            iVar3 = history_search(pcVar1,0xffffffff);
          }
          rl_readline_state = rl_readline_state & 0xfffffdff;
          if (iVar3 == -1) {
            history_set_pos(uVar2);
          }
          else {
            iVar3 = where_history();
            history_set_pos(uVar2);
            if (iVar3 != -1) {
              DAT_00179c54 = iVar3;
              uVar2 = where_history();
              history_set_pos(DAT_00179c54);
              puVar4 = (undefined4 *)current_history();
              if (rl_editing_mode != 0) {
                history_set_pos(uVar2);
              }
              _rl_replace_text(*puVar4,0,rl_end);
              _rl_fix_point(1);
              if (rl_editing_mode == 0) {
                rl_free_undo_list();
              }
              if (_rl_saved_line_for_history != 0) {
                _rl_free_history_entry(_rl_saved_line_for_history);
              }
              _rl_saved_line_for_history = 0;
              rl_point = 0;
              rl_mark = rl_end;
              rl_clear_message();
              return false;
            }
          }
        }
      }
      rl_maybe_unsave_line();
      rl_clear_message();
      rl_point = 0;
    }
  }
  rl_ding();
  return true;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000312b0
ADD EBX,0x8abf7
SUB ESP,0x1c
MOV ESI,dword ptr [EBX + 0x7c58]
TEST ESI,ESI
JZ 0x000e74e0
LEA EBP,[EBX + 0x1d50]
MOV ECX,dword ptr [EBP]
TEST ECX,ECX
JNZ 0x000e7448
LEA EAX,[EBX + 0x1d5c]
LEA ECX,[EBX + 0x25a0]
CMP dword ptr [EAX],ECX
JNZ 0x000e7448
CMP dword ptr [ESP + 0x34],0x6e
JZ 0x000e75f8
CMP byte ptr [ESI],0x0
JZ 0x000e74e0
MOV EAX,dword ptr [EBX + 0x7c54]
TEST EAX,EAX
JS 0x000e74e0
LEA EDI,[EAX + -0x1]
CMP EDI,-0x1
JZ 0x000e74c5
CALL 0x00107a00
SUB ESP,0xc
MOV dword ptr [ESP + 0x14],EAX
PUSH EDI
CALL 0x00107a20
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000e74c5
LEA EDX,[EBX + 0x7b44]
OR dword ptr [EDX],0x200
CMP byte ptr [ESI],0x5e
MOV dword ptr [ESP + 0xc],EDX
JZ 0x000e75d8
SUB ESP,0x8
PUSH -0x1
PUSH ESI
CALL 0x0010cc00
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
AND dword ptr [EDX],0xfffffdff
CMP EAX,-0x1
JNZ 0x000e74f8
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00107a20
ADD ESP,0x10
CALL 0x00106ef0
CALL 0x000fac10
LEA EAX,[EBX + 0xd988]
MOV dword ptr [EAX],0x0
LEA ESI,[ESI]
NOP
CALL 0x00102470
MOV EAX,0x1
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x00107a00
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
MOV ESI,EAX
CALL 0x00107a20
ADD ESP,0x10
CMP ESI,-0x1
JZ 0x000e74c5
MOV dword ptr [EBX + 0x7c54],ESI
CALL 0x00107a00
SUB ESP,0xc
PUSH dword ptr [EBX + 0x7c54]
MOV ESI,EAX
CALL 0x00107a20
CALL 0x00107a80
MOV EDX,dword ptr [EBP]
ADD ESP,0x10
MOV EDI,EAX
TEST EDX,EDX
JNZ 0x000e75c0
LEA ESI,[EBX + 0xd8cc]
SUB ESP,0x4
PUSH dword ptr [ESI]
PUSH 0x0
PUSH dword ptr [EDI]
CALL 0x00103620
MOV dword ptr [ESP],0x1
CALL 0x001035c0
MOV EAX,dword ptr [EBP]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000e75b0
LEA EDI,[EBX + 0x8adc]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x000e7585
SUB ESP,0xc
PUSH EAX
CALL 0x00106e30
ADD ESP,0x10
LEA EAX,[EBX + 0xd988]
MOV EDX,dword ptr [ESI]
MOV dword ptr [EDI],0x0
MOV dword ptr [EAX],0x0
LEA EAX,[EBX + 0xd97c]
MOV dword ptr [EAX],EDX
CALL 0x000fac10
ADD ESP,0x1c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x000fe830
JMP 0x000e756d
SUB ESP,0xc
PUSH ESI
CALL 0x00107a20
ADD ESP,0x10
JMP 0x000e7543
SUB ESP,0x8
ADD ESI,0x1
PUSH -0x1
PUSH ESI
CALL 0x0010cc10
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x000e74ab
MOV ECX,0x10
MOV EDX,0xffffffff
MOV EAX,ESI
CALL 0x000e6730
CMP EAX,0x1
SETNZ AL
MOVZX EAX,AL
JMP 0x000e74ea
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool rl_noninc_reverse_search_again(undefined4 param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}\n\n" comment (function_definition "bool rl_noninc_reverse_search_again(undefined4 param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}" primitive_type (function_declarator "rl_noninc_reverse_search_again(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "pcVar1 = DAT_00179c58;" (assignment_expression "pcVar1 = DAT_00179c58" identifier = identifier) ;) (if_statement "if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" if (parenthesized_expression "(DAT_00179c58 != (char *)0x0)" ( (binary_expression "DAT_00179c58 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" { (if_statement "if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }" if (parenthesized_expression "(((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e))" ( (binary_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)" (parenthesized_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap))" ( (binary_expression "(rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)" (parenthesized_expression "(rl_editing_mode == 0)" ( (binary_expression "rl_editing_mode == 0" identifier == number_literal) )) && (parenthesized_expression "(_rl_keymap == vi_movement_keymap)" ( (binary_expression "_rl_keymap == vi_movement_keymap" identifier == identifier) ))) )) && (parenthesized_expression "(param_2 == 0x6e)" ( (binary_expression "param_2 == 0x6e" identifier == number_literal) ))) )) (compound_statement "{\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }" { (expression_statement "iVar3 = FUN_000e6730();" (assignment_expression "iVar3 = FUN_000e6730()" identifier = (call_expression "FUN_000e6730()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar3 != 1;" return (binary_expression "iVar3 != 1" identifier != number_literal) ;) })) (if_statement "if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" if (parenthesized_expression "((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54))" ( (binary_expression "(*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)" (parenthesized_expression "(*DAT_00179c58 != '\0')" ( (binary_expression "*DAT_00179c58 != '\0'" (pointer_expression "*DAT_00179c58" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(-1 < DAT_00179c54)" ( (binary_expression "-1 < DAT_00179c54" number_literal < identifier) ))) )) (compound_statement "{\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" { (expression_statement "iVar3 = DAT_00179c54 + -1;" (assignment_expression "iVar3 = DAT_00179c54 + -1" identifier = (binary_expression "DAT_00179c54 + -1" identifier + number_literal)) ;) (if_statement "if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }" { (expression_statement "uVar2 = where_history();" (assignment_expression "uVar2 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = history_set_pos(iVar3);" (assignment_expression "iVar3 = history_set_pos(iVar3)" identifier = (call_expression "history_set_pos(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }" { (expression_statement "rl_readline_state = rl_readline_state | 0x200;" (assignment_expression "rl_readline_state = rl_readline_state | 0x200" identifier = (binary_expression "rl_readline_state | 0x200" identifier | number_literal)) ;) (if_statement "if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" if (parenthesized_expression "(*pcVar1 == '^')" ( (binary_expression "*pcVar1 == '^'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'^'" ' character ')) )) (compound_statement "{\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }" { (expression_statement "iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);" (assignment_expression "iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff)" identifier = (call_expression "history_search_prefix(pcVar1 + 1,0xffffffff)" identifier (argument_list "(pcVar1 + 1,0xffffffff)" ( (binary_expression "pcVar1 + 1" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" else (compound_statement "{\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" { (expression_statement "iVar3 = history_search(pcVar1,0xffffffff);" (assignment_expression "iVar3 = history_search(pcVar1,0xffffffff)" identifier = (call_expression "history_search(pcVar1,0xffffffff)" identifier (argument_list "(pcVar1,0xffffffff)" ( identifier , number_literal )))) ;) }))) (expression_statement "rl_readline_state = rl_readline_state & 0xfffffdff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xfffffdff" identifier = (binary_expression "rl_readline_state & 0xfffffdff" identifier & number_literal)) ;) (if_statement "if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            history_set_pos(uVar2);\n          }" { (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }) (else_clause "else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" else (compound_statement "{\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" { (expression_statement "iVar3 = where_history();" (assignment_expression "iVar3 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }" { (expression_statement "DAT_00179c54 = iVar3;" (assignment_expression "DAT_00179c54 = iVar3" identifier = identifier) ;) (expression_statement "uVar2 = where_history();" (assignment_expression "uVar2 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "history_set_pos(DAT_00179c54);" (call_expression "history_set_pos(DAT_00179c54)" identifier (argument_list "(DAT_00179c54)" ( identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)current_history();" (assignment_expression "puVar4 = (undefined4 *)current_history()" identifier = (cast_expression "(undefined4 *)current_history()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "current_history()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }" if (parenthesized_expression "(rl_editing_mode != 0)" ( (binary_expression "rl_editing_mode != 0" identifier != number_literal) )) (compound_statement "{\n                history_set_pos(uVar2);\n              }" { (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) })) (expression_statement "_rl_replace_text(*puVar4,0,rl_end);" (call_expression "_rl_replace_text(*puVar4,0,rl_end)" identifier (argument_list "(*puVar4,0,rl_end)" ( (pointer_expression "*puVar4" * identifier) , number_literal , identifier ))) ;) (expression_statement "_rl_fix_point(1);" (call_expression "_rl_fix_point(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }" if (parenthesized_expression "(rl_editing_mode == 0)" ( (binary_expression "rl_editing_mode == 0" identifier == number_literal) )) (compound_statement "{\n                rl_free_undo_list();\n              }" { (expression_statement "rl_free_undo_list();" (call_expression "rl_free_undo_list()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" if (parenthesized_expression "(_rl_saved_line_for_history != 0)" ( (binary_expression "_rl_saved_line_for_history != 0" identifier != number_literal) )) (compound_statement "{\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" { (expression_statement "_rl_free_history_entry(_rl_saved_line_for_history);" (call_expression "_rl_free_history_entry(_rl_saved_line_for_history)" identifier (argument_list "(_rl_saved_line_for_history)" ( identifier ))) ;) })) (expression_statement "_rl_saved_line_for_history = 0;" (assignment_expression "_rl_saved_line_for_history = 0" identifier = number_literal) ;) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" identifier = number_literal) ;) (expression_statement "rl_mark = rl_end;" (assignment_expression "rl_mark = rl_end" identifier = identifier) ;) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" identifier (argument_list "()" ( ))) ;) (return_statement "return false;" return false ;) })) }))) })) })) (expression_statement "rl_maybe_unsave_line();" (call_expression "rl_maybe_unsave_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" identifier (argument_list "()" ( ))) ;) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" identifier = number_literal) ;) })) })) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (return_statement "return true;" return true ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint rl_noninc_reverse_search_again(int count,int key)\n\n{\n  char *string;\n  int pos;\n  int iVar1;\n  HIST_ENTRY *pHVar2;\n  \n  string = noninc_search_string;\n  if (noninc_search_string != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)) {\n      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);\n      return (uint)(iVar1 != 1);\n    }\n    if ((*noninc_search_string != '\0') && (-1 < noninc_history_pos)) {\n      iVar1 = noninc_history_pos + -1;\n      if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return 1;\n}\n\n" comment comment (function_definition "int rl_noninc_reverse_search_again(int count,int key)\n\n{\n  char *string;\n  int pos;\n  int iVar1;\n  HIST_ENTRY *pHVar2;\n  \n  string = noninc_search_string;\n  if (noninc_search_string != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)) {\n      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);\n      return (uint)(iVar1 != 1);\n    }\n    if ((*noninc_search_string != '\0') && (-1 < noninc_history_pos)) {\n      iVar1 = noninc_history_pos + -1;\n      if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return 1;\n}" primitive_type (function_declarator "rl_noninc_reverse_search_again(int count,int key)" identifier (parameter_list "(int count,int key)" ( (parameter_declaration "int count" primitive_type identifier) , (parameter_declaration "int key" primitive_type identifier) ))) (compound_statement "{\n  char *string;\n  int pos;\n  int iVar1;\n  HIST_ENTRY *pHVar2;\n  \n  string = noninc_search_string;\n  if (noninc_search_string != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)) {\n      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);\n      return (uint)(iVar1 != 1);\n    }\n    if ((*noninc_search_string != '\0') && (-1 < noninc_history_pos)) {\n      iVar1 = noninc_history_pos + -1;\n      if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return 1;\n}" { (declaration "char *string;" primitive_type (pointer_declarator "*string" * identifier) ;) (declaration "int pos;" primitive_type identifier ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "HIST_ENTRY *pHVar2;" type_identifier (pointer_declarator "*pHVar2" * identifier) ;) (expression_statement "string = noninc_search_string;" (assignment_expression "string = noninc_search_string" identifier = identifier) ;) (if_statement "if (noninc_search_string != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)) {\n      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);\n      return (uint)(iVar1 != 1);\n    }\n    if ((*noninc_search_string != '\0') && (-1 < noninc_history_pos)) {\n      iVar1 = noninc_history_pos + -1;\n      if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" if (parenthesized_expression "(noninc_search_string != (char *)0x0)" ( (binary_expression "noninc_search_string != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)) {\n      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);\n      return (uint)(iVar1 != 1);\n    }\n    if ((*noninc_search_string != '\0') && (-1 < noninc_history_pos)) {\n      iVar1 = noninc_history_pos + -1;\n      if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" { (if_statement "if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)) {\n      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);\n      return (uint)(iVar1 != 1);\n    }" if (parenthesized_expression "(((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e))" ( (binary_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (key == 0x6e)" (parenthesized_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap))" ( (binary_expression "(rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)" (parenthesized_expression "(rl_editing_mode == 0)" ( (binary_expression "rl_editing_mode == 0" identifier == number_literal) )) && (parenthesized_expression "(_rl_keymap == vi_movement_keymap)" ( (binary_expression "_rl_keymap == vi_movement_keymap" identifier == identifier) ))) )) && (parenthesized_expression "(key == 0x6e)" ( (binary_expression "key == 0x6e" identifier == number_literal) ))) )) (compound_statement "{\n      iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);\n      return (uint)(iVar1 != 1);\n    }" { (expression_statement "iVar1 = noninc_dosearch(noninc_search_string,-1,0x10);" (assignment_expression "iVar1 = noninc_dosearch(noninc_search_string,-1,0x10)" identifier = (call_expression "noninc_dosearch(noninc_search_string,-1,0x10)" identifier (argument_list "(noninc_search_string,-1,0x10)" ( identifier , number_literal , number_literal )))) ;) (return_statement "return (uint)(iVar1 != 1);" return (call_expression "(uint)(iVar1 != 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) ))) ;) })) (if_statement "if ((*noninc_search_string != '\0') && (-1 < noninc_history_pos)) {\n      iVar1 = noninc_history_pos + -1;\n      if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" if (parenthesized_expression "((*noninc_search_string != '\0') && (-1 < noninc_history_pos))" ( (binary_expression "(*noninc_search_string != '\0') && (-1 < noninc_history_pos)" (parenthesized_expression "(*noninc_search_string != '\0')" ( (binary_expression "*noninc_search_string != '\0'" (pointer_expression "*noninc_search_string" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(-1 < noninc_history_pos)" ( (binary_expression "-1 < noninc_history_pos" number_literal < identifier) ))) )) (compound_statement "{\n      iVar1 = noninc_history_pos + -1;\n      if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" { (expression_statement "iVar1 = noninc_history_pos + -1;" (assignment_expression "iVar1 = noninc_history_pos + -1" identifier = (binary_expression "noninc_history_pos + -1" identifier + number_literal)) ;) (if_statement "if (iVar1 != -1) {\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n        pos = where_history();\n        iVar1 = history_set_pos(iVar1);\n        if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }\n      }" { (expression_statement "pos = where_history();" (assignment_expression "pos = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = history_set_pos(iVar1);" (assignment_expression "iVar1 = history_set_pos(iVar1)" identifier = (call_expression "history_set_pos(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar1 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }\n        }" { (expression_statement "rl_readline_state = rl_readline_state | 0x200;" (assignment_expression "rl_readline_state = rl_readline_state | 0x200" identifier = (binary_expression "rl_readline_state | 0x200" identifier | number_literal)) ;) (if_statement "if (*string == '^') {\n            iVar1 = history_search_prefix(string + 1,-1);\n          }\n          else {\n            iVar1 = history_search(string,-1);\n          }" if (parenthesized_expression "(*string == '^')" ( (binary_expression "*string == '^'" (pointer_expression "*string" * identifier) == (char_literal "'^'" ' character ')) )) (compound_statement "{\n            iVar1 = history_search_prefix(string + 1,-1);\n          }" { (expression_statement "iVar1 = history_search_prefix(string + 1,-1);" (assignment_expression "iVar1 = history_search_prefix(string + 1,-1)" identifier = (call_expression "history_search_prefix(string + 1,-1)" identifier (argument_list "(string + 1,-1)" ( (binary_expression "string + 1" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n            iVar1 = history_search(string,-1);\n          }" else (compound_statement "{\n            iVar1 = history_search(string,-1);\n          }" { (expression_statement "iVar1 = history_search(string,-1);" (assignment_expression "iVar1 = history_search(string,-1)" identifier = (call_expression "history_search(string,-1)" identifier (argument_list "(string,-1)" ( identifier , number_literal )))) ;) }))) (expression_statement "rl_readline_state = rl_readline_state & 0xfffffdff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xfffffdff" identifier = (binary_expression "rl_readline_state & 0xfffffdff" identifier & number_literal)) ;) (if_statement "if (iVar1 == -1) {\n            history_set_pos(pos);\n          }\n          else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (compound_statement "{\n            history_set_pos(pos);\n          }" { (expression_statement "history_set_pos(pos);" (call_expression "history_set_pos(pos)" identifier (argument_list "(pos)" ( identifier ))) ;) }) (else_clause "else {\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }" else (compound_statement "{\n            iVar1 = where_history();\n            history_set_pos(pos);\n            if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }\n          }" { (expression_statement "iVar1 = where_history();" (assignment_expression "iVar1 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "history_set_pos(pos);" (call_expression "history_set_pos(pos)" identifier (argument_list "(pos)" ( identifier ))) ;) (if_statement "if (iVar1 != -1) {\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n              noninc_history_pos = iVar1;\n              iVar1 = where_history();\n              history_set_pos(noninc_history_pos);\n              pHVar2 = current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }\n              _rl_replace_text(pHVar2->line,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = (HIST_ENTRY *)0x0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return 0;\n            }" { (expression_statement "noninc_history_pos = iVar1;" (assignment_expression "noninc_history_pos = iVar1" identifier = identifier) ;) (expression_statement "iVar1 = where_history();" (assignment_expression "iVar1 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "history_set_pos(noninc_history_pos);" (call_expression "history_set_pos(noninc_history_pos)" identifier (argument_list "(noninc_history_pos)" ( identifier ))) ;) (expression_statement "pHVar2 = current_history();" (assignment_expression "pHVar2 = current_history()" identifier = (call_expression "current_history()" identifier (argument_list "()" ( )))) ;) (if_statement "if (rl_editing_mode != 0) {\n                history_set_pos(iVar1);\n              }" if (parenthesized_expression "(rl_editing_mode != 0)" ( (binary_expression "rl_editing_mode != 0" identifier != number_literal) )) (compound_statement "{\n                history_set_pos(iVar1);\n              }" { (expression_statement "history_set_pos(iVar1);" (call_expression "history_set_pos(iVar1)" identifier (argument_list "(iVar1)" ( identifier ))) ;) })) (expression_statement "_rl_replace_text(pHVar2->line,0,rl_end);" (call_expression "_rl_replace_text(pHVar2->line,0,rl_end)" identifier (argument_list "(pHVar2->line,0,rl_end)" ( (field_expression "pHVar2->line" identifier -> field_identifier) , number_literal , identifier ))) ;) (expression_statement "_rl_fix_point(1);" (call_expression "_rl_fix_point(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }" if (parenthesized_expression "(rl_editing_mode == 0)" ( (binary_expression "rl_editing_mode == 0" identifier == number_literal) )) (compound_statement "{\n                rl_free_undo_list();\n              }" { (expression_statement "rl_free_undo_list();" (call_expression "rl_free_undo_list()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (_rl_saved_line_for_history != (HIST_ENTRY *)0x0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" if (parenthesized_expression "(_rl_saved_line_for_history != (HIST_ENTRY *)0x0)" ( (binary_expression "_rl_saved_line_for_history != (HIST_ENTRY *)0x0" identifier != (cast_expression "(HIST_ENTRY *)0x0" ( (type_descriptor "HIST_ENTRY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" { (expression_statement "_rl_free_history_entry(_rl_saved_line_for_history);" (call_expression "_rl_free_history_entry(_rl_saved_line_for_history)" identifier (argument_list "(_rl_saved_line_for_history)" ( identifier ))) ;) })) (expression_statement "_rl_saved_line_for_history = (HIST_ENTRY *)0x0;" (assignment_expression "_rl_saved_line_for_history = (HIST_ENTRY *)0x0" identifier = (cast_expression "(HIST_ENTRY *)0x0" ( (type_descriptor "HIST_ENTRY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" identifier = number_literal) ;) (expression_statement "rl_mark = rl_end;" (assignment_expression "rl_mark = rl_end" identifier = identifier) ;) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" identifier (argument_list "()" ( ))) ;) (return_statement "return 0;" return number_literal ;) })) }))) })) })) (expression_statement "rl_maybe_unsave_line();" (call_expression "rl_maybe_unsave_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" identifier (argument_list "()" ( ))) ;) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" identifier = number_literal) ;) })) })) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bool rl_noninc_reverse_search_again(undefined4 param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}\n\n" (function_definition "bool rl_noninc_reverse_search_again(undefined4 param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}" primitive_type (function_declarator "rl_noninc_reverse_search_again(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "pcVar1 = DAT_00179c58;" (assignment_expression "pcVar1 = DAT_00179c58" identifier = identifier) ;) (if_statement "if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" if (parenthesized_expression "(DAT_00179c58 != (char *)0x0)" ( (binary_expression "DAT_00179c58 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" { (if_statement "if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }" if (parenthesized_expression "(((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e))" ( (binary_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)" (parenthesized_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap))" ( (binary_expression "(rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)" (parenthesized_expression "(rl_editing_mode == 0)" ( (binary_expression "rl_editing_mode == 0" identifier == number_literal) )) && (parenthesized_expression "(_rl_keymap == vi_movement_keymap)" ( (binary_expression "_rl_keymap == vi_movement_keymap" identifier == identifier) ))) )) && (parenthesized_expression "(param_2 == 0x6e)" ( (binary_expression "param_2 == 0x6e" identifier == number_literal) ))) )) (compound_statement "{\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }" { (expression_statement "iVar3 = FUN_000e6730();" (assignment_expression "iVar3 = FUN_000e6730()" identifier = (call_expression "FUN_000e6730()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar3 != 1;" return (binary_expression "iVar3 != 1" identifier != number_literal) ;) })) (if_statement "if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" if (parenthesized_expression "((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54))" ( (binary_expression "(*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)" (parenthesized_expression "(*DAT_00179c58 != '\0')" ( (binary_expression "*DAT_00179c58 != '\0'" (pointer_expression "*DAT_00179c58" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(-1 < DAT_00179c54)" ( (binary_expression "-1 < DAT_00179c54" number_literal < identifier) ))) )) (compound_statement "{\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" { (expression_statement "iVar3 = DAT_00179c54 + -1;" (assignment_expression "iVar3 = DAT_00179c54 + -1" identifier = (binary_expression "DAT_00179c54 + -1" identifier + number_literal)) ;) (if_statement "if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }" { (expression_statement "uVar2 = where_history();" (assignment_expression "uVar2 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = history_set_pos(iVar3);" (assignment_expression "iVar3 = history_set_pos(iVar3)" identifier = (call_expression "history_set_pos(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }" { (expression_statement "rl_readline_state = rl_readline_state | 0x200;" (assignment_expression "rl_readline_state = rl_readline_state | 0x200" identifier = (binary_expression "rl_readline_state | 0x200" identifier | number_literal)) ;) (if_statement "if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" if (parenthesized_expression "(*pcVar1 == '^')" ( (binary_expression "*pcVar1 == '^'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'^'" ' character ')) )) (compound_statement "{\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }" { (expression_statement "iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);" (assignment_expression "iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff)" identifier = (call_expression "history_search_prefix(pcVar1 + 1,0xffffffff)" identifier (argument_list "(pcVar1 + 1,0xffffffff)" ( (binary_expression "pcVar1 + 1" identifier + number_literal) , number_literal )))) ;) }) (else_clause "else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" else (compound_statement "{\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" { (expression_statement "iVar3 = history_search(pcVar1,0xffffffff);" (assignment_expression "iVar3 = history_search(pcVar1,0xffffffff)" identifier = (call_expression "history_search(pcVar1,0xffffffff)" identifier (argument_list "(pcVar1,0xffffffff)" ( identifier , number_literal )))) ;) }))) (expression_statement "rl_readline_state = rl_readline_state & 0xfffffdff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xfffffdff" identifier = (binary_expression "rl_readline_state & 0xfffffdff" identifier & number_literal)) ;) (if_statement "if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n            history_set_pos(uVar2);\n          }" { (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) }) (else_clause "else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" else (compound_statement "{\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" { (expression_statement "iVar3 = where_history();" (assignment_expression "iVar3 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) (if_statement "if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }" if (parenthesized_expression "(iVar3 != -1)" ( (binary_expression "iVar3 != -1" identifier != number_literal) )) (compound_statement "{\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }" { (expression_statement "DAT_00179c54 = iVar3;" (assignment_expression "DAT_00179c54 = iVar3" identifier = identifier) ;) (expression_statement "uVar2 = where_history();" (assignment_expression "uVar2 = where_history()" identifier = (call_expression "where_history()" identifier (argument_list "()" ( )))) ;) (expression_statement "history_set_pos(DAT_00179c54);" (call_expression "history_set_pos(DAT_00179c54)" identifier (argument_list "(DAT_00179c54)" ( identifier ))) ;) (expression_statement "puVar4 = (undefined4 *)current_history();" (assignment_expression "puVar4 = (undefined4 *)current_history()" identifier = (cast_expression "(undefined4 *)current_history()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "current_history()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }" if (parenthesized_expression "(rl_editing_mode != 0)" ( (binary_expression "rl_editing_mode != 0" identifier != number_literal) )) (compound_statement "{\n                history_set_pos(uVar2);\n              }" { (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" identifier (argument_list "(uVar2)" ( identifier ))) ;) })) (expression_statement "_rl_replace_text(*puVar4,0,rl_end);" (call_expression "_rl_replace_text(*puVar4,0,rl_end)" identifier (argument_list "(*puVar4,0,rl_end)" ( (pointer_expression "*puVar4" * identifier) , number_literal , identifier ))) ;) (expression_statement "_rl_fix_point(1);" (call_expression "_rl_fix_point(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (if_statement "if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }" if (parenthesized_expression "(rl_editing_mode == 0)" ( (binary_expression "rl_editing_mode == 0" identifier == number_literal) )) (compound_statement "{\n                rl_free_undo_list();\n              }" { (expression_statement "rl_free_undo_list();" (call_expression "rl_free_undo_list()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" if (parenthesized_expression "(_rl_saved_line_for_history != 0)" ( (binary_expression "_rl_saved_line_for_history != 0" identifier != number_literal) )) (compound_statement "{\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" { (expression_statement "_rl_free_history_entry(_rl_saved_line_for_history);" (call_expression "_rl_free_history_entry(_rl_saved_line_for_history)" identifier (argument_list "(_rl_saved_line_for_history)" ( identifier ))) ;) })) (expression_statement "_rl_saved_line_for_history = 0;" (assignment_expression "_rl_saved_line_for_history = 0" identifier = number_literal) ;) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" identifier = number_literal) ;) (expression_statement "rl_mark = rl_end;" (assignment_expression "rl_mark = rl_end" identifier = identifier) ;) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" identifier (argument_list "()" ( ))) ;) (return_statement "return false;" return false ;) })) }))) })) })) (expression_statement "rl_maybe_unsave_line();" (call_expression "rl_maybe_unsave_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" identifier (argument_list "()" ( ))) ;) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" identifier = number_literal) ;) })) })) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (return_statement "return true;" return true ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return (binary_expression IDENT != LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return BOOL ;) })) }))) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return BOOL ;) })))
(function_definition "bool rl_noninc_reverse_search_again(undefined4 param_1,int param_2)\n\n{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}" (primitive_type "bool") (function_declarator "rl_noninc_reverse_search_again(undefined4 param_1,int param_2)" (identifier "rl_noninc_reverse_search_again") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  undefined4 uVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  \n  pcVar1 = DAT_00179c58;\n  if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }\n  rl_ding();\n  return true;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (expression_statement "pcVar1 = DAT_00179c58;" (assignment_expression "pcVar1 = DAT_00179c58" (identifier "pcVar1") (= "=") (identifier "DAT_00179c58")) (; ";")) (if_statement "if (DAT_00179c58 != (char *)0x0) {\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00179c58 != (char *)0x0)" (( "(") (binary_expression "DAT_00179c58 != (char *)0x0" (identifier "DAT_00179c58") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }\n    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }\n  }" ({ "{") (if_statement "if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }" (if "if") (parenthesized_expression "(((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e))" (( "(") (binary_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)" (parenthesized_expression "((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap))" (( "(") (binary_expression "(rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)" (parenthesized_expression "(rl_editing_mode == 0)" (( "(") (binary_expression "rl_editing_mode == 0" (identifier "rl_editing_mode") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(_rl_keymap == vi_movement_keymap)" (( "(") (binary_expression "_rl_keymap == vi_movement_keymap" (identifier "_rl_keymap") (== "==") (identifier "vi_movement_keymap")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_2 == 0x6e)" (( "(") (binary_expression "param_2 == 0x6e" (identifier "param_2") (== "==") (number_literal "0x6e")) () ")"))) () ")")) (compound_statement "{\n      iVar3 = FUN_000e6730();\n      return iVar3 != 1;\n    }" ({ "{") (expression_statement "iVar3 = FUN_000e6730();" (assignment_expression "iVar3 = FUN_000e6730()" (identifier "iVar3") (= "=") (call_expression "FUN_000e6730()" (identifier "FUN_000e6730") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar3 != 1;" (return "return") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" (if "if") (parenthesized_expression "((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54))" (( "(") (binary_expression "(*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)" (parenthesized_expression "(*DAT_00179c58 != '\0')" (( "(") (binary_expression "*DAT_00179c58 != '\0'" (pointer_expression "*DAT_00179c58" (* "*") (identifier "DAT_00179c58")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < DAT_00179c54)" (( "(") (binary_expression "-1 < DAT_00179c54" (number_literal "-1") (< "<") (identifier "DAT_00179c54")) () ")"))) () ")")) (compound_statement "{\n      iVar3 = DAT_00179c54 + -1;\n      if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }\n      rl_maybe_unsave_line();\n      rl_clear_message();\n      rl_point = 0;\n    }" ({ "{") (expression_statement "iVar3 = DAT_00179c54 + -1;" (assignment_expression "iVar3 = DAT_00179c54 + -1" (identifier "iVar3") (= "=") (binary_expression "DAT_00179c54 + -1" (identifier "DAT_00179c54") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar3 != -1) {\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar3 != -1)" (( "(") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        uVar2 = where_history();\n        iVar3 = history_set_pos(iVar3);\n        if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "uVar2 = where_history();" (assignment_expression "uVar2 = where_history()" (identifier "uVar2") (= "=") (call_expression "where_history()" (identifier "where_history") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = history_set_pos(iVar3);" (assignment_expression "iVar3 = history_set_pos(iVar3)" (identifier "iVar3") (= "=") (call_expression "history_set_pos(iVar3)" (identifier "history_set_pos") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          rl_readline_state = rl_readline_state | 0x200;\n          if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }\n          rl_readline_state = rl_readline_state & 0xfffffdff;\n          if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }\n        }" ({ "{") (expression_statement "rl_readline_state = rl_readline_state | 0x200;" (assignment_expression "rl_readline_state = rl_readline_state | 0x200" (identifier "rl_readline_state") (= "=") (binary_expression "rl_readline_state | 0x200" (identifier "rl_readline_state") (| "|") (number_literal "0x200"))) (; ";")) (if_statement "if (*pcVar1 == '^') {\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }\n          else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" (if "if") (parenthesized_expression "(*pcVar1 == '^')" (( "(") (binary_expression "*pcVar1 == '^'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "'^'" (' "'") (character "^") (' "'"))) () ")")) (compound_statement "{\n            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);\n          }" ({ "{") (expression_statement "iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);" (assignment_expression "iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff)" (identifier "iVar3") (= "=") (call_expression "history_search_prefix(pcVar1 + 1,0xffffffff)" (identifier "history_search_prefix") (argument_list "(pcVar1 + 1,0xffffffff)" (( "(") (binary_expression "pcVar1 + 1" (identifier "pcVar1") (+ "+") (number_literal "1")) (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" (else "else") (compound_statement "{\n            iVar3 = history_search(pcVar1,0xffffffff);\n          }" ({ "{") (expression_statement "iVar3 = history_search(pcVar1,0xffffffff);" (assignment_expression "iVar3 = history_search(pcVar1,0xffffffff)" (identifier "iVar3") (= "=") (call_expression "history_search(pcVar1,0xffffffff)" (identifier "history_search") (argument_list "(pcVar1,0xffffffff)" (( "(") (identifier "pcVar1") (, ",") (number_literal "0xffffffff") () ")")))) (; ";")) (} "}")))) (expression_statement "rl_readline_state = rl_readline_state & 0xfffffdff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xfffffdff" (identifier "rl_readline_state") (= "=") (binary_expression "rl_readline_state & 0xfffffdff" (identifier "rl_readline_state") (& "&") (number_literal "0xfffffdff"))) (; ";")) (if_statement "if (iVar3 == -1) {\n            history_set_pos(uVar2);\n          }\n          else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            history_set_pos(uVar2);\n          }" ({ "{") (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" (identifier "history_set_pos") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" (else "else") (compound_statement "{\n            iVar3 = where_history();\n            history_set_pos(uVar2);\n            if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }\n          }" ({ "{") (expression_statement "iVar3 = where_history();" (assignment_expression "iVar3 = where_history()" (identifier "iVar3") (= "=") (call_expression "where_history()" (identifier "where_history") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" (identifier "history_set_pos") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if (iVar3 != -1) {\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }" (if "if") (parenthesized_expression "(iVar3 != -1)" (( "(") (binary_expression "iVar3 != -1" (identifier "iVar3") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n              DAT_00179c54 = iVar3;\n              uVar2 = where_history();\n              history_set_pos(DAT_00179c54);\n              puVar4 = (undefined4 *)current_history();\n              if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }\n              _rl_replace_text(*puVar4,0,rl_end);\n              _rl_fix_point(1);\n              if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }\n              if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }\n              _rl_saved_line_for_history = 0;\n              rl_point = 0;\n              rl_mark = rl_end;\n              rl_clear_message();\n              return false;\n            }" ({ "{") (expression_statement "DAT_00179c54 = iVar3;" (assignment_expression "DAT_00179c54 = iVar3" (identifier "DAT_00179c54") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar2 = where_history();" (assignment_expression "uVar2 = where_history()" (identifier "uVar2") (= "=") (call_expression "where_history()" (identifier "where_history") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "history_set_pos(DAT_00179c54);" (call_expression "history_set_pos(DAT_00179c54)" (identifier "history_set_pos") (argument_list "(DAT_00179c54)" (( "(") (identifier "DAT_00179c54") () ")"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)current_history();" (assignment_expression "puVar4 = (undefined4 *)current_history()" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)current_history()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "current_history()" (identifier "current_history") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (rl_editing_mode != 0) {\n                history_set_pos(uVar2);\n              }" (if "if") (parenthesized_expression "(rl_editing_mode != 0)" (( "(") (binary_expression "rl_editing_mode != 0" (identifier "rl_editing_mode") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                history_set_pos(uVar2);\n              }" ({ "{") (expression_statement "history_set_pos(uVar2);" (call_expression "history_set_pos(uVar2)" (identifier "history_set_pos") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "_rl_replace_text(*puVar4,0,rl_end);" (call_expression "_rl_replace_text(*puVar4,0,rl_end)" (identifier "_rl_replace_text") (argument_list "(*puVar4,0,rl_end)" (( "(") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (, ",") (number_literal "0") (, ",") (identifier "rl_end") () ")"))) (; ";")) (expression_statement "_rl_fix_point(1);" (call_expression "_rl_fix_point(1)" (identifier "_rl_fix_point") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (if_statement "if (rl_editing_mode == 0) {\n                rl_free_undo_list();\n              }" (if "if") (parenthesized_expression "(rl_editing_mode == 0)" (( "(") (binary_expression "rl_editing_mode == 0" (identifier "rl_editing_mode") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                rl_free_undo_list();\n              }" ({ "{") (expression_statement "rl_free_undo_list();" (call_expression "rl_free_undo_list()" (identifier "rl_free_undo_list") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (_rl_saved_line_for_history != 0) {\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" (if "if") (parenthesized_expression "(_rl_saved_line_for_history != 0)" (( "(") (binary_expression "_rl_saved_line_for_history != 0" (identifier "_rl_saved_line_for_history") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                _rl_free_history_entry(_rl_saved_line_for_history);\n              }" ({ "{") (expression_statement "_rl_free_history_entry(_rl_saved_line_for_history);" (call_expression "_rl_free_history_entry(_rl_saved_line_for_history)" (identifier "_rl_free_history_entry") (argument_list "(_rl_saved_line_for_history)" (( "(") (identifier "_rl_saved_line_for_history") () ")"))) (; ";")) (} "}"))) (expression_statement "_rl_saved_line_for_history = 0;" (assignment_expression "_rl_saved_line_for_history = 0" (identifier "_rl_saved_line_for_history") (= "=") (number_literal "0")) (; ";")) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" (identifier "rl_point") (= "=") (number_literal "0")) (; ";")) (expression_statement "rl_mark = rl_end;" (assignment_expression "rl_mark = rl_end" (identifier "rl_mark") (= "=") (identifier "rl_end")) (; ";")) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" (identifier "rl_clear_message") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "rl_maybe_unsave_line();" (call_expression "rl_maybe_unsave_line()" (identifier "rl_maybe_unsave_line") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "rl_clear_message();" (call_expression "rl_clear_message()" (identifier "rl_clear_message") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "rl_point = 0;" (assignment_expression "rl_point = 0" (identifier "rl_point") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (expression_statement "rl_ding();" (call_expression "rl_ding()" (identifier "rl_ding") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))

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

int function_1(int count,int var_5)

{
  char *var_13;
  int pos;
  int var_7;
  type_1 *pHVar2;
  
  var_13 = var_1;
  if (var_1 != (char *)0x0) {
    if (((var_2 == 0) && (var_3 == var_4)) && (var_5 == 0x6e)) {
      var_7 = var_6(var_1,-1,0x10);
      return (uint)(var_7 != 1);
    }
    if ((*var_1 != '\0') && (-1 < var_8)) {
      var_7 = var_8 + -1;
      if (var_7 != -1) {
        pos = var_9();
        var_7 = var_10(var_7);
        if (var_7 != 0) {
          var_11 = var_11 | 0x200;
          if (*var_13 == '^') {
            var_7 = var_12(var_13 + 1,-1);
          }
          else {
            var_7 = var_14(var_13,-1);
          }
          var_11 = var_11 & 0xfffffdff;
          if (var_7 == -1) {
            var_10(pos);
          }
          else {
            var_7 = var_9();
            var_10(pos);
            if (var_7 != -1) {
              var_8 = var_7;
              var_7 = var_9();
              var_10(var_8);
              pHVar2 = var_15();
              if (var_2 != 0) {
                var_10(var_7);
              }
              var_16(pHVar2->line,0,rl_end);
              var_17(1);
              if (var_2 == 0) {
                var_18();
              }
              if (var_19 != (type_1 *)0x0) {
                var_20(var_19);
              }
              var_19 = (type_1 *)0x0;
              rl_point = 0;
              rl_mark = rl_end;
              var_21();
              return 0;
            }
          }
        }
      }
      var_22();
      var_21();
      rl_point = 0;
    }
  }
  var_23();
  return 1;
}


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

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

bool MASKED(undefined4 param_1,int param_2)

{
  char *pcVar1;
  undefined4 uVar2;
  int iVar3;
  undefined4 *puVar4;
  
  pcVar1 = DAT_00179c58;
  if (DAT_00179c58 != (char *)0x0) {
    if (((rl_editing_mode == 0) && (_rl_keymap == vi_movement_keymap)) && (param_2 == 0x6e)) {
      iVar3 = FUN_000e6730();
      return iVar3 != 1;
    }
    if ((*DAT_00179c58 != '\0') && (-1 < DAT_00179c54)) {
      iVar3 = DAT_00179c54 + -1;
      if (iVar3 != -1) {
        uVar2 = where_history();
        iVar3 = history_set_pos(iVar3);
        if (iVar3 != 0) {
          rl_readline_state = rl_readline_state | 0x200;
          if (*pcVar1 == '^') {
            iVar3 = history_search_prefix(pcVar1 + 1,0xffffffff);
          }
          else {
            iVar3 = history_search(pcVar1,0xffffffff);
          }
          rl_readline_state = rl_readline_state & 0xfffffdff;
          if (iVar3 == -1) {
            history_set_pos(uVar2);
          }
          else {
            iVar3 = where_history();
            history_set_pos(uVar2);
            if (iVar3 != -1) {
              DAT_00179c54 = iVar3;
              uVar2 = where_history();
              history_set_pos(DAT_00179c54);
              puVar4 = (undefined4 *)current_history();
              if (rl_editing_mode != 0) {
                history_set_pos(uVar2);
              }
              _rl_replace_text(*puVar4,0,rl_end);
              _rl_fix_point(1);
              if (rl_editing_mode == 0) {
                rl_free_undo_list();
              }
              if (_rl_saved_line_for_history != 0) {
                _rl_free_history_entry(_rl_saved_line_for_history);
              }
              _rl_saved_line_for_history = 0;
              rl_point = 0;
              rl_mark = rl_end;
              rl_clear_message();
              return false;
            }
          }
        }
      }
      rl_maybe_unsave_line();
      rl_clear_message();
      rl_point = 0;
    }
  }
  rl_ding();
  return true;
}

