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

int shell_expand_line(int count,int ignore)

{
  byte bVar1;
  int iVar2;
  int key;
  char *pcVar3;
  char *pcVar4;
  WORD_DESC *word;
  size_t sVar5;
  WORD_LIST *list;
  int quoted;
  
  pcVar3 = history_expand_line_internal(rl_line_buffer);
  if (pcVar3 != (char *)0x0) {
    pcVar4 = alias_expand(pcVar3);
    free(pcVar3);
    key = rl_point;
    iVar2 = rl_end;
    if (pcVar4 != (char *)0x0) {
      maybe_make_readline_line(pcVar4);
      free(pcVar4);
      word = alloc_word_desc();
      pcVar3 = rl_line_buffer;
      sVar5 = strlen(rl_line_buffer);
      pcVar4 = (char *)xmalloc(sVar5 + 1);
      pcVar3 = strcpy(pcVar4,pcVar3);
      pcVar4 = (char *)0x0;
      word->word = pcVar3;
      quoted = rl_explicit_arg;
      if (rl_explicit_arg != 0) {
        pcVar4 = 
        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."
        ;
        quoted = 2;
      }
      word->flags = (int)pcVar4;
      list = expand_word(word,quoted);
      dispose_word(word);
      if (list == (WORD_LIST *)0x0) {
        pcVar3 = (char *)xmalloc(1);
        *pcVar3 = '\0';
      }
      else {
        pcVar3 = string_list(list);
        dispose_words(list);
      }
      maybe_make_readline_line(pcVar3);
      free(pcVar3);
      if (iVar2 != key) {
        if (key < rl_end) {
          bVar1 = rl_line_buffer[key];
          rl_point = key;
          if ((bVar1 != 0x20) && (bVar1 != 9)) {
            rl_forward_word((uint)bVar1,key);
          }
        }
        return 0;
      }
      rl_point = rl_end;
      return 0;
    }
  }
  cleanup_expansion_error();
  return 1;
}



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

undefined4 FUN_0008ea70(void)

{
  int iVar1;
  int iVar2;
  void *__ptr;
  void *__ptr_00;
  undefined4 *puVar3;
  size_t sVar4;
  char *pcVar5;
  char *pcVar6;
  int iVar7;
  undefined1 *__ptr_01;
  
  __ptr = (void *)FUN_0008e940();
  if (__ptr != (void *)0x0) {
    __ptr_00 = (void *)alias_expand(__ptr);
    free(__ptr);
    iVar2 = rl_point;
    iVar1 = rl_end;
    if (__ptr_00 != (void *)0x0) {
      FUN_0008e9c0();
      free(__ptr_00);
      puVar3 = (undefined4 *)alloc_word_desc();
      pcVar6 = rl_line_buffer;
      sVar4 = strlen(rl_line_buffer);
      pcVar5 = (char *)xmalloc(sVar4 + 1);
      pcVar6 = strcpy(pcVar5,pcVar6);
      pcVar5 = (char *)0x0;
      *puVar3 = pcVar6;
      iVar7 = rl_explicit_arg;
      if (rl_explicit_arg != 0) {
        pcVar5 = 
        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."
        ;
        iVar7 = 2;
      }
      puVar3[1] = pcVar5;
      iVar7 = expand_word(puVar3,iVar7);
      dispose_word(puVar3);
      if (iVar7 == 0) {
        __ptr_01 = (undefined1 *)xmalloc(1);
        *__ptr_01 = 0;
      }
      else {
        __ptr_01 = (undefined1 *)string_list(iVar7);
        dispose_words(iVar7);
      }
      FUN_0008e9c0();
      free(__ptr_01);
      if (iVar1 != iVar2) {
        if (iVar2 < rl_end) {
          rl_point = iVar2;
          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {
            rl_forward_word(1,0);
          }
        }
        return 0;
      }
      rl_point = rl_end;
      return 0;
    }
  }
  FUN_0008c550();
  return 1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00031ed0
ADD EBX,0xbb587
SUB ESP,0x1c
LEA ESI,[EBX + 0x7afc]
MOV EAX,dword ptr [ESI]
CALL 0x0008e940
TEST EAX,EAX
JZ 0x0008ebf0
SUB ESP,0xc
MOV EBP,EAX
PUSH EAX
CALL 0x00081520
MOV dword ptr [ESP],EBP
MOV EDI,EAX
CALL 0x0002f200
ADD ESP,0x10
TEST EDI,EDI
JZ 0x0008ebf0
LEA EAX,[EBX + 0xd988]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP],EAX
LEA EAX,[EBX + 0xd8cc]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,EDI
CALL 0x0008e9c0
SUB ESP,0xc
PUSH EDI
CALL 0x0002f200
CALL 0x00042a00
MOV EBP,dword ptr [ESI]
MOV EDI,EAX
MOV dword ptr [ESP],EBP
CALL 0x0002f760
ADD EAX,0x1
MOV dword ptr [ESP],EAX
CALL 0x00099200
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x0002f580
ADD ESP,0x10
XOR EDX,EDX
MOV dword ptr [EDI],EAX
LEA EAX,[EBX + 0x7b48]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0008ebb8
SUB ESP,0x8
MOV dword ptr [EDI + 0x4],EDX
PUSH EAX
PUSH EDI
CALL 0x000786f0
MOV dword ptr [ESP],EDI
MOV EBP,EAX
CALL 0x000467b0
ADD ESP,0x10
TEST EBP,EBP
JZ 0x0008ebd0
SUB ESP,0xc
PUSH EBP
CALL 0x0006a850
MOV dword ptr [ESP],EBP
MOV EDI,EAX
CALL 0x00046900
ADD ESP,0x10
MOV EAX,EDI
CALL 0x0008e9c0
SUB ESP,0xc
PUSH EDI
CALL 0x0002f200
ADD ESP,0x10
MOV ECX,dword ptr [ESP]
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP + 0x4],ECX
JZ 0x0008ec08
MOV EDX,dword ptr [ESP]
CMP dword ptr [EAX],EDX
JLE 0x0008ebab
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP]
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESI]
MOVZX EAX,byte ptr [EAX + ECX*0x1]
CMP AL,0x20
JZ 0x0008ebab
CMP AL,0x9
JZ 0x0008ebab
SUB ESP,0x8
PUSH 0x0
PUSH 0x1
CALL 0x000e2c20
ADD ESP,0x10
ADD ESP,0x1c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,0x100400
MOV EAX,0x2
JMP 0x0008eb22
SUB ESP,0xc
PUSH 0x1
CALL 0x00099200
ADD ESP,0x10
MOV EDI,EAX
MOV byte ptr [EAX],0x0
JMP 0x0008eb5a
CALL 0x0008c550
ADD ESP,0x1c
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [EDX],EAX
ADD ESP,0x1c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_0008ea70(void)\n\n{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}\n\n" comment (function_definition "undefined4 FUN_0008ea70(void)\n\n{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}" type_identifier (function_declarator "FUN_0008ea70(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *__ptr_01;" type_identifier (pointer_declarator "*__ptr_01" * identifier) ;) (expression_statement "__ptr = (void *)FUN_0008e940();" (assignment_expression "__ptr = (void *)FUN_0008e940()" identifier = (cast_expression "(void *)FUN_0008e940()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0008e940()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" { (expression_statement "__ptr_00 = (void *)alias_expand(__ptr);" (assignment_expression "__ptr_00 = (void *)alias_expand(__ptr)" identifier = (cast_expression "(void *)alias_expand(__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "alias_expand(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" identifier = identifier) ;) (expression_statement "iVar1 = rl_end;" (assignment_expression "iVar1 = rl_end" identifier = identifier) ;) (if_statement "if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" if (parenthesized_expression "(__ptr_00 != (void *)0x0)" ( (binary_expression "__ptr_00 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" { (expression_statement "FUN_0008e9c0();" (call_expression "FUN_0008e9c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "puVar3 = (undefined4 *)alloc_word_desc();" (assignment_expression "puVar3 = (undefined4 *)alloc_word_desc()" identifier = (cast_expression "(undefined4 *)alloc_word_desc()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "alloc_word_desc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcVar6 = rl_line_buffer;" (assignment_expression "pcVar6 = rl_line_buffer" identifier = identifier) ;) (expression_statement "sVar4 = strlen(rl_line_buffer);" (assignment_expression "sVar4 = strlen(rl_line_buffer)" identifier = (call_expression "strlen(rl_line_buffer)" identifier (argument_list "(rl_line_buffer)" ( identifier )))) ;) (expression_statement "pcVar5 = (char *)xmalloc(sVar4 + 1);" (assignment_expression "pcVar5 = (char *)xmalloc(sVar4 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar4 + 1)" identifier (argument_list "(sVar4 + 1)" ( (binary_expression "sVar4 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strcpy(pcVar5,pcVar6);" (assignment_expression "pcVar6 = strcpy(pcVar5,pcVar6)" identifier = (call_expression "strcpy(pcVar5,pcVar6)" identifier (argument_list "(pcVar5,pcVar6)" ( identifier , identifier )))) ;) (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar3 = pcVar6;" (assignment_expression "*puVar3 = pcVar6" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "iVar7 = rl_explicit_arg;" (assignment_expression "iVar7 = rl_explicit_arg" identifier = identifier) ;) (if_statement "if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }" if (parenthesized_expression "(rl_explicit_arg != 0)" ( (binary_expression "rl_explicit_arg != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }" { (expression_statement "pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;" (assignment_expression "pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" identifier = (string_literal ""      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) })) (expression_statement "puVar3[1] = pcVar5;" (assignment_expression "puVar3[1] = pcVar5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = expand_word(puVar3,iVar7);" (assignment_expression "iVar7 = expand_word(puVar3,iVar7)" identifier = (call_expression "expand_word(puVar3,iVar7)" identifier (argument_list "(puVar3,iVar7)" ( identifier , identifier )))) ;) (expression_statement "dispose_word(puVar3);" (call_expression "dispose_word(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (if_statement "if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }" { (expression_statement "__ptr_01 = (undefined1 *)xmalloc(1);" (assignment_expression "__ptr_01 = (undefined1 *)xmalloc(1)" identifier = (cast_expression "(undefined1 *)xmalloc(1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "*__ptr_01 = 0;" (assignment_expression "*__ptr_01 = 0" (pointer_expression "*__ptr_01" * identifier) = number_literal) ;) }) (else_clause "else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" else (compound_statement "{\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" { (expression_statement "__ptr_01 = (undefined1 *)string_list(iVar7);" (assignment_expression "__ptr_01 = (undefined1 *)string_list(iVar7)" identifier = (cast_expression "(undefined1 *)string_list(iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "string_list(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "dispose_words(iVar7);" (call_expression "dispose_words(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) }))) (expression_statement "FUN_0008e9c0();" (call_expression "FUN_0008e9c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" identifier (argument_list "(__ptr_01)" ( identifier ))) ;) (if_statement "if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }" if (parenthesized_expression "(iVar1 != iVar2)" ( (binary_expression "iVar1 != iVar2" identifier != identifier) )) (compound_statement "{\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }" { (if_statement "if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }" if (parenthesized_expression "(iVar2 < rl_end)" ( (binary_expression "iVar2 < rl_end" identifier < identifier) )) (compound_statement "{\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }" { (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" identifier = identifier) ;) (if_statement "if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }" if (parenthesized_expression "((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t'))" ( (binary_expression "(rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')" (parenthesized_expression "(rl_line_buffer[iVar2] != ' ')" ( (binary_expression "rl_line_buffer[iVar2] != ' '" (subscript_expression "rl_line_buffer[iVar2]" identifier [ identifier ]) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(rl_line_buffer[iVar2] != '\t')" ( (binary_expression "rl_line_buffer[iVar2] != '\t'" (subscript_expression "rl_line_buffer[iVar2]" identifier [ identifier ]) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n            rl_forward_word(1,0);\n          }" { (expression_statement "rl_forward_word(1,0);" (call_expression "rl_forward_word(1,0)" identifier (argument_list "(1,0)" ( number_literal , number_literal ))) ;) })) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "FUN_0008c550();" (call_expression "FUN_0008c550()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint shell_expand_line(int count,int ignore)\n\n{\n  byte bVar1;\n  int iVar2;\n  int key;\n  char *pcVar3;\n  char *pcVar4;\n  WORD_DESC *word;\n  size_t sVar5;\n  WORD_LIST *list;\n  int quoted;\n  \n  pcVar3 = history_expand_line_internal(rl_line_buffer);\n  if (pcVar3 != (char *)0x0) {\n    pcVar4 = alias_expand(pcVar3);\n    free(pcVar3);\n    key = rl_point;\n    iVar2 = rl_end;\n    if (pcVar4 != (char *)0x0) {\n      maybe_make_readline_line(pcVar4);\n      free(pcVar4);\n      word = alloc_word_desc();\n      pcVar3 = rl_line_buffer;\n      sVar5 = strlen(rl_line_buffer);\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pcVar3 = strcpy(pcVar4,pcVar3);\n      pcVar4 = (char *)0x0;\n      word->word = pcVar3;\n      quoted = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }\n      word->flags = (int)pcVar4;\n      list = expand_word(word,quoted);\n      dispose_word(word);\n      if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }\n      maybe_make_readline_line(pcVar3);\n      free(pcVar3);\n      if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  cleanup_expansion_error();\n  return 1;\n}\n\n" comment comment (function_definition "int shell_expand_line(int count,int ignore)\n\n{\n  byte bVar1;\n  int iVar2;\n  int key;\n  char *pcVar3;\n  char *pcVar4;\n  WORD_DESC *word;\n  size_t sVar5;\n  WORD_LIST *list;\n  int quoted;\n  \n  pcVar3 = history_expand_line_internal(rl_line_buffer);\n  if (pcVar3 != (char *)0x0) {\n    pcVar4 = alias_expand(pcVar3);\n    free(pcVar3);\n    key = rl_point;\n    iVar2 = rl_end;\n    if (pcVar4 != (char *)0x0) {\n      maybe_make_readline_line(pcVar4);\n      free(pcVar4);\n      word = alloc_word_desc();\n      pcVar3 = rl_line_buffer;\n      sVar5 = strlen(rl_line_buffer);\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pcVar3 = strcpy(pcVar4,pcVar3);\n      pcVar4 = (char *)0x0;\n      word->word = pcVar3;\n      quoted = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }\n      word->flags = (int)pcVar4;\n      list = expand_word(word,quoted);\n      dispose_word(word);\n      if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }\n      maybe_make_readline_line(pcVar3);\n      free(pcVar3);\n      if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  cleanup_expansion_error();\n  return 1;\n}" primitive_type (function_declarator "shell_expand_line(int count,int ignore)" identifier (parameter_list "(int count,int ignore)" ( (parameter_declaration "int count" primitive_type identifier) , (parameter_declaration "int ignore" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int key;\n  char *pcVar3;\n  char *pcVar4;\n  WORD_DESC *word;\n  size_t sVar5;\n  WORD_LIST *list;\n  int quoted;\n  \n  pcVar3 = history_expand_line_internal(rl_line_buffer);\n  if (pcVar3 != (char *)0x0) {\n    pcVar4 = alias_expand(pcVar3);\n    free(pcVar3);\n    key = rl_point;\n    iVar2 = rl_end;\n    if (pcVar4 != (char *)0x0) {\n      maybe_make_readline_line(pcVar4);\n      free(pcVar4);\n      word = alloc_word_desc();\n      pcVar3 = rl_line_buffer;\n      sVar5 = strlen(rl_line_buffer);\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pcVar3 = strcpy(pcVar4,pcVar3);\n      pcVar4 = (char *)0x0;\n      word->word = pcVar3;\n      quoted = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }\n      word->flags = (int)pcVar4;\n      list = expand_word(word,quoted);\n      dispose_word(word);\n      if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }\n      maybe_make_readline_line(pcVar3);\n      free(pcVar3);\n      if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  cleanup_expansion_error();\n  return 1;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int key;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "WORD_DESC *word;" type_identifier (pointer_declarator "*word" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "WORD_LIST *list;" type_identifier (pointer_declarator "*list" * identifier) ;) (declaration "int quoted;" primitive_type identifier ;) (expression_statement "pcVar3 = history_expand_line_internal(rl_line_buffer);" (assignment_expression "pcVar3 = history_expand_line_internal(rl_line_buffer)" identifier = (call_expression "history_expand_line_internal(rl_line_buffer)" identifier (argument_list "(rl_line_buffer)" ( identifier )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n    pcVar4 = alias_expand(pcVar3);\n    free(pcVar3);\n    key = rl_point;\n    iVar2 = rl_end;\n    if (pcVar4 != (char *)0x0) {\n      maybe_make_readline_line(pcVar4);\n      free(pcVar4);\n      word = alloc_word_desc();\n      pcVar3 = rl_line_buffer;\n      sVar5 = strlen(rl_line_buffer);\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pcVar3 = strcpy(pcVar4,pcVar3);\n      pcVar4 = (char *)0x0;\n      word->word = pcVar3;\n      quoted = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }\n      word->flags = (int)pcVar4;\n      list = expand_word(word,quoted);\n      dispose_word(word);\n      if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }\n      maybe_make_readline_line(pcVar3);\n      free(pcVar3);\n      if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar4 = alias_expand(pcVar3);\n    free(pcVar3);\n    key = rl_point;\n    iVar2 = rl_end;\n    if (pcVar4 != (char *)0x0) {\n      maybe_make_readline_line(pcVar4);\n      free(pcVar4);\n      word = alloc_word_desc();\n      pcVar3 = rl_line_buffer;\n      sVar5 = strlen(rl_line_buffer);\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pcVar3 = strcpy(pcVar4,pcVar3);\n      pcVar4 = (char *)0x0;\n      word->word = pcVar3;\n      quoted = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }\n      word->flags = (int)pcVar4;\n      list = expand_word(word,quoted);\n      dispose_word(word);\n      if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }\n      maybe_make_readline_line(pcVar3);\n      free(pcVar3);\n      if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" { (expression_statement "pcVar4 = alias_expand(pcVar3);" (assignment_expression "pcVar4 = alias_expand(pcVar3)" identifier = (call_expression "alias_expand(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "free(pcVar3);" (call_expression "free(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "key = rl_point;" (assignment_expression "key = rl_point" identifier = identifier) ;) (expression_statement "iVar2 = rl_end;" (assignment_expression "iVar2 = rl_end" identifier = identifier) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n      maybe_make_readline_line(pcVar4);\n      free(pcVar4);\n      word = alloc_word_desc();\n      pcVar3 = rl_line_buffer;\n      sVar5 = strlen(rl_line_buffer);\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pcVar3 = strcpy(pcVar4,pcVar3);\n      pcVar4 = (char *)0x0;\n      word->word = pcVar3;\n      quoted = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }\n      word->flags = (int)pcVar4;\n      list = expand_word(word,quoted);\n      dispose_word(word);\n      if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }\n      maybe_make_readline_line(pcVar3);\n      free(pcVar3);\n      if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      maybe_make_readline_line(pcVar4);\n      free(pcVar4);\n      word = alloc_word_desc();\n      pcVar3 = rl_line_buffer;\n      sVar5 = strlen(rl_line_buffer);\n      pcVar4 = (char *)xmalloc(sVar5 + 1);\n      pcVar3 = strcpy(pcVar4,pcVar3);\n      pcVar4 = (char *)0x0;\n      word->word = pcVar3;\n      quoted = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }\n      word->flags = (int)pcVar4;\n      list = expand_word(word,quoted);\n      dispose_word(word);\n      if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }\n      maybe_make_readline_line(pcVar3);\n      free(pcVar3);\n      if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" { (expression_statement "maybe_make_readline_line(pcVar4);" (call_expression "maybe_make_readline_line(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "free(pcVar4);" (call_expression "free(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "word = alloc_word_desc();" (assignment_expression "word = alloc_word_desc()" identifier = (call_expression "alloc_word_desc()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = rl_line_buffer;" (assignment_expression "pcVar3 = rl_line_buffer" identifier = identifier) ;) (expression_statement "sVar5 = strlen(rl_line_buffer);" (assignment_expression "sVar5 = strlen(rl_line_buffer)" identifier = (call_expression "strlen(rl_line_buffer)" identifier (argument_list "(rl_line_buffer)" ( identifier )))) ;) (expression_statement "pcVar4 = (char *)xmalloc(sVar5 + 1);" (assignment_expression "pcVar4 = (char *)xmalloc(sVar5 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar5 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar5 + 1)" identifier (argument_list "(sVar5 + 1)" ( (binary_expression "sVar5 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = strcpy(pcVar4,pcVar3);" (assignment_expression "pcVar3 = strcpy(pcVar4,pcVar3)" identifier = (call_expression "strcpy(pcVar4,pcVar3)" identifier (argument_list "(pcVar4,pcVar3)" ( identifier , identifier )))) ;) (expression_statement "pcVar4 = (char *)0x0;" (assignment_expression "pcVar4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "word->word = pcVar3;" (assignment_expression "word->word = pcVar3" (field_expression "word->word" identifier -> field_identifier) = identifier) ;) (expression_statement "quoted = rl_explicit_arg;" (assignment_expression "quoted = rl_explicit_arg" identifier = identifier) ;) (if_statement "if (rl_explicit_arg != 0) {\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }" if (parenthesized_expression "(rl_explicit_arg != 0)" ( (binary_expression "rl_explicit_arg != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        quoted = 2;\n      }" { (expression_statement "pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;" (assignment_expression "pcVar4 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" identifier = (string_literal ""      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "quoted = 2;" (assignment_expression "quoted = 2" identifier = number_literal) ;) })) (expression_statement "word->flags = (int)pcVar4;" (assignment_expression "word->flags = (int)pcVar4" (field_expression "word->flags" identifier -> field_identifier) = (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "list = expand_word(word,quoted);" (assignment_expression "list = expand_word(word,quoted)" identifier = (call_expression "expand_word(word,quoted)" identifier (argument_list "(word,quoted)" ( identifier , identifier )))) ;) (expression_statement "dispose_word(word);" (call_expression "dispose_word(word)" identifier (argument_list "(word)" ( identifier ))) ;) (if_statement "if (list == (WORD_LIST *)0x0) {\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }\n      else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }" if (parenthesized_expression "(list == (WORD_LIST *)0x0)" ( (binary_expression "list == (WORD_LIST *)0x0" identifier == (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar3 = (char *)xmalloc(1);\n        *pcVar3 = '\0';\n      }" { (expression_statement "pcVar3 = (char *)xmalloc(1);" (assignment_expression "pcVar3 = (char *)xmalloc(1)" identifier = (cast_expression "(char *)xmalloc(1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }" else (compound_statement "{\n        pcVar3 = string_list(list);\n        dispose_words(list);\n      }" { (expression_statement "pcVar3 = string_list(list);" (assignment_expression "pcVar3 = string_list(list)" identifier = (call_expression "string_list(list)" identifier (argument_list "(list)" ( identifier )))) ;) (expression_statement "dispose_words(list);" (call_expression "dispose_words(list)" identifier (argument_list "(list)" ( identifier ))) ;) }))) (expression_statement "maybe_make_readline_line(pcVar3);" (call_expression "maybe_make_readline_line(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "free(pcVar3);" (call_expression "free(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (if_statement "if (iVar2 != key) {\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }" if (parenthesized_expression "(iVar2 != key)" ( (binary_expression "iVar2 != key" identifier != identifier) )) (compound_statement "{\n        if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }\n        return 0;\n      }" { (if_statement "if (key < rl_end) {\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }" if (parenthesized_expression "(key < rl_end)" ( (binary_expression "key < rl_end" identifier < identifier) )) (compound_statement "{\n          bVar1 = rl_line_buffer[key];\n          rl_point = key;\n          if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }\n        }" { (expression_statement "bVar1 = rl_line_buffer[key];" (assignment_expression "bVar1 = rl_line_buffer[key]" identifier = (subscript_expression "rl_line_buffer[key]" identifier [ identifier ])) ;) (expression_statement "rl_point = key;" (assignment_expression "rl_point = key" identifier = identifier) ;) (if_statement "if ((bVar1 != 0x20) && (bVar1 != 9)) {\n            rl_forward_word((uint)bVar1,key);\n          }" if (parenthesized_expression "((bVar1 != 0x20) && (bVar1 != 9))" ( (binary_expression "(bVar1 != 0x20) && (bVar1 != 9)" (parenthesized_expression "(bVar1 != 0x20)" ( (binary_expression "bVar1 != 0x20" identifier != number_literal) )) && (parenthesized_expression "(bVar1 != 9)" ( (binary_expression "bVar1 != 9" identifier != number_literal) ))) )) (compound_statement "{\n            rl_forward_word((uint)bVar1,key);\n          }" { (expression_statement "rl_forward_word((uint)bVar1,key);" (call_expression "rl_forward_word((uint)bVar1,key)" identifier (argument_list "((uint)bVar1,key)" ( (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier ))) ;) })) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "cleanup_expansion_error();" (call_expression "cleanup_expansion_error()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_0008ea70(void)\n\n{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_0008ea70(void)\n\n{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}" type_identifier (function_declarator "FUN_0008ea70(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *__ptr_01;" type_identifier (pointer_declarator "*__ptr_01" * identifier) ;) (expression_statement "__ptr = (void *)FUN_0008e940();" (assignment_expression "__ptr = (void *)FUN_0008e940()" identifier = (cast_expression "(void *)FUN_0008e940()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0008e940()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" { (expression_statement "__ptr_00 = (void *)alias_expand(__ptr);" (assignment_expression "__ptr_00 = (void *)alias_expand(__ptr)" identifier = (cast_expression "(void *)alias_expand(__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "alias_expand(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" identifier = identifier) ;) (expression_statement "iVar1 = rl_end;" (assignment_expression "iVar1 = rl_end" identifier = identifier) ;) (if_statement "if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" if (parenthesized_expression "(__ptr_00 != (void *)0x0)" ( (binary_expression "__ptr_00 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" { (expression_statement "FUN_0008e9c0();" (call_expression "FUN_0008e9c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "puVar3 = (undefined4 *)alloc_word_desc();" (assignment_expression "puVar3 = (undefined4 *)alloc_word_desc()" identifier = (cast_expression "(undefined4 *)alloc_word_desc()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "alloc_word_desc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcVar6 = rl_line_buffer;" (assignment_expression "pcVar6 = rl_line_buffer" identifier = identifier) ;) (expression_statement "sVar4 = strlen(rl_line_buffer);" (assignment_expression "sVar4 = strlen(rl_line_buffer)" identifier = (call_expression "strlen(rl_line_buffer)" identifier (argument_list "(rl_line_buffer)" ( identifier )))) ;) (expression_statement "pcVar5 = (char *)xmalloc(sVar4 + 1);" (assignment_expression "pcVar5 = (char *)xmalloc(sVar4 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar4 + 1)" identifier (argument_list "(sVar4 + 1)" ( (binary_expression "sVar4 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar6 = strcpy(pcVar5,pcVar6);" (assignment_expression "pcVar6 = strcpy(pcVar5,pcVar6)" identifier = (call_expression "strcpy(pcVar5,pcVar6)" identifier (argument_list "(pcVar5,pcVar6)" ( identifier , identifier )))) ;) (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*puVar3 = pcVar6;" (assignment_expression "*puVar3 = pcVar6" (pointer_expression "*puVar3" * identifier) = identifier) ;) (expression_statement "iVar7 = rl_explicit_arg;" (assignment_expression "iVar7 = rl_explicit_arg" identifier = identifier) ;) (if_statement "if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }" if (parenthesized_expression "(rl_explicit_arg != 0)" ( (binary_expression "rl_explicit_arg != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }" { (expression_statement "pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;" (assignment_expression "pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" identifier = (string_literal ""      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) })) (expression_statement "puVar3[1] = pcVar5;" (assignment_expression "puVar3[1] = pcVar5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = expand_word(puVar3,iVar7);" (assignment_expression "iVar7 = expand_word(puVar3,iVar7)" identifier = (call_expression "expand_word(puVar3,iVar7)" identifier (argument_list "(puVar3,iVar7)" ( identifier , identifier )))) ;) (expression_statement "dispose_word(puVar3);" (call_expression "dispose_word(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (if_statement "if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }" { (expression_statement "__ptr_01 = (undefined1 *)xmalloc(1);" (assignment_expression "__ptr_01 = (undefined1 *)xmalloc(1)" identifier = (cast_expression "(undefined1 *)xmalloc(1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(1)" identifier (argument_list "(1)" ( number_literal ))))) ;) (expression_statement "*__ptr_01 = 0;" (assignment_expression "*__ptr_01 = 0" (pointer_expression "*__ptr_01" * identifier) = number_literal) ;) }) (else_clause "else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" else (compound_statement "{\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" { (expression_statement "__ptr_01 = (undefined1 *)string_list(iVar7);" (assignment_expression "__ptr_01 = (undefined1 *)string_list(iVar7)" identifier = (cast_expression "(undefined1 *)string_list(iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "string_list(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "dispose_words(iVar7);" (call_expression "dispose_words(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) }))) (expression_statement "FUN_0008e9c0();" (call_expression "FUN_0008e9c0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" identifier (argument_list "(__ptr_01)" ( identifier ))) ;) (if_statement "if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }" if (parenthesized_expression "(iVar1 != iVar2)" ( (binary_expression "iVar1 != iVar2" identifier != identifier) )) (compound_statement "{\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }" { (if_statement "if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }" if (parenthesized_expression "(iVar2 < rl_end)" ( (binary_expression "iVar2 < rl_end" identifier < identifier) )) (compound_statement "{\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }" { (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" identifier = identifier) ;) (if_statement "if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }" if (parenthesized_expression "((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t'))" ( (binary_expression "(rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')" (parenthesized_expression "(rl_line_buffer[iVar2] != ' ')" ( (binary_expression "rl_line_buffer[iVar2] != ' '" (subscript_expression "rl_line_buffer[iVar2]" identifier [ identifier ]) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(rl_line_buffer[iVar2] != '\t')" ( (binary_expression "rl_line_buffer[iVar2] != '\t'" (subscript_expression "rl_line_buffer[iVar2]" identifier [ identifier ]) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n            rl_forward_word(1,0);\n          }" { (expression_statement "rl_forward_word(1,0);" (call_expression "rl_forward_word(1,0)" identifier (argument_list "(1,0)" ( number_literal , number_literal ))) ;) })) })) (return_statement "return 0;" return number_literal ;) })) (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "FUN_0008c550();" (call_expression "FUN_0008c550()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = 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 { (expression_statement (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 ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) })) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return LIT ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_0008ea70(void)\n\n{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_0008ea70(void)" (identifier "FUN_0008ea70") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  void *__ptr;\n  void *__ptr_00;\n  undefined4 *puVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined1 *__ptr_01;\n  \n  __ptr = (void *)FUN_0008e940();\n  if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }\n  FUN_0008c550();\n  return 1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "void *__ptr_00;" (primitive_type "void") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined1 *__ptr_01;" (type_identifier "undefined1") (pointer_declarator "*__ptr_01" (* "*") (identifier "__ptr_01")) (; ";")) (expression_statement "__ptr = (void *)FUN_0008e940();" (assignment_expression "__ptr = (void *)FUN_0008e940()" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_0008e940()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0008e940()" (identifier "FUN_0008e940") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (__ptr != (void *)0x0) {\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    __ptr_00 = (void *)alias_expand(__ptr);\n    free(__ptr);\n    iVar2 = rl_point;\n    iVar1 = rl_end;\n    if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }\n  }" ({ "{") (expression_statement "__ptr_00 = (void *)alias_expand(__ptr);" (assignment_expression "__ptr_00 = (void *)alias_expand(__ptr)" (identifier "__ptr_00") (= "=") (cast_expression "(void *)alias_expand(__ptr)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "alias_expand(__ptr)" (identifier "alias_expand") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" (identifier "iVar2") (= "=") (identifier "rl_point")) (; ";")) (expression_statement "iVar1 = rl_end;" (assignment_expression "iVar1 = rl_end" (identifier "iVar1") (= "=") (identifier "rl_end")) (; ";")) (if_statement "if (__ptr_00 != (void *)0x0) {\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" (if "if") (parenthesized_expression "(__ptr_00 != (void *)0x0)" (( "(") (binary_expression "__ptr_00 != (void *)0x0" (identifier "__ptr_00") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_0008e9c0();\n      free(__ptr_00);\n      puVar3 = (undefined4 *)alloc_word_desc();\n      pcVar6 = rl_line_buffer;\n      sVar4 = strlen(rl_line_buffer);\n      pcVar5 = (char *)xmalloc(sVar4 + 1);\n      pcVar6 = strcpy(pcVar5,pcVar6);\n      pcVar5 = (char *)0x0;\n      *puVar3 = pcVar6;\n      iVar7 = rl_explicit_arg;\n      if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }\n      puVar3[1] = pcVar5;\n      iVar7 = expand_word(puVar3,iVar7);\n      dispose_word(puVar3);\n      if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }\n      FUN_0008e9c0();\n      free(__ptr_01);\n      if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }\n      rl_point = rl_end;\n      return 0;\n    }" ({ "{") (expression_statement "FUN_0008e9c0();" (call_expression "FUN_0008e9c0()" (identifier "FUN_0008e9c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)alloc_word_desc();" (assignment_expression "puVar3 = (undefined4 *)alloc_word_desc()" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)alloc_word_desc()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "alloc_word_desc()" (identifier "alloc_word_desc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcVar6 = rl_line_buffer;" (assignment_expression "pcVar6 = rl_line_buffer" (identifier "pcVar6") (= "=") (identifier "rl_line_buffer")) (; ";")) (expression_statement "sVar4 = strlen(rl_line_buffer);" (assignment_expression "sVar4 = strlen(rl_line_buffer)" (identifier "sVar4") (= "=") (call_expression "strlen(rl_line_buffer)" (identifier "strlen") (argument_list "(rl_line_buffer)" (( "(") (identifier "rl_line_buffer") () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)xmalloc(sVar4 + 1);" (assignment_expression "pcVar5 = (char *)xmalloc(sVar4 + 1)" (identifier "pcVar5") (= "=") (cast_expression "(char *)xmalloc(sVar4 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar4 + 1)" (identifier "xmalloc") (argument_list "(sVar4 + 1)" (( "(") (binary_expression "sVar4 + 1" (identifier "sVar4") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pcVar6 = strcpy(pcVar5,pcVar6);" (assignment_expression "pcVar6 = strcpy(pcVar5,pcVar6)" (identifier "pcVar6") (= "=") (call_expression "strcpy(pcVar5,pcVar6)" (identifier "strcpy") (argument_list "(pcVar5,pcVar6)" (( "(") (identifier "pcVar5") (, ",") (identifier "pcVar6") () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*puVar3 = pcVar6;" (assignment_expression "*puVar3 = pcVar6" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "iVar7 = rl_explicit_arg;" (assignment_expression "iVar7 = rl_explicit_arg" (identifier "iVar7") (= "=") (identifier "rl_explicit_arg")) (; ";")) (if_statement "if (rl_explicit_arg != 0) {\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }" (if "if") (parenthesized_expression "(rl_explicit_arg != 0)" (( "(") (binary_expression "rl_explicit_arg != 0" (identifier "rl_explicit_arg") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;\n        iVar7 = 2;\n      }" ({ "{") (expression_statement "pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."\n        ;" (assignment_expression "pcVar5 = \n        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" (identifier "pcVar5") (= "=") (string_literal ""      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."" (" """) (string_content "      -V                 List variable names and values") (escape_sequence "\n") (string_content "      -v                 List variable names and values in a form that can") (escape_sequence "\n") (string_content "                         be reused as input.") (escape_sequence "\n") (string_content "      -q  function-name  Query about which keys invoke the named function.") (escape_sequence "\n") (string_content "      -u  function-name  Unbind all keys which are bound to the named function.") (escape_sequence "\n") (string_content "      -r  keyseq         Remove the binding for KEYSEQ.") (escape_sequence "\n") (string_content "      -f  filename       Read key bindings from FILENAME.") (escape_sequence "\n") (string_content "      -x  keyseq:shell-command") (escape_sequence "\t") (string_content "Cause SHELL-COMMAND to be executed when") (escape_sequence "\n") (string_content "    ") (escape_sequence "\t") (escape_sequence "\t") (escape_sequence "\t") (escape_sequence "\t") (string_content "KEYSEQ is entered.") (escape_sequence "\n") (string_content "      -X                 List key sequences bound with -x and associated commands") (escape_sequence "\n") (string_content "                         in a form that can be reused as input.") (escape_sequence "\n") (string_content "    ") (escape_sequence "\n") (string_content "    Exit Status:") (escape_sequence "\n") (string_content "    bind returns 0 unless an unrecognized option is given or an error occurs.") (" """))) (; ";")) (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" (identifier "iVar7") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "puVar3[1] = pcVar5;" (assignment_expression "puVar3[1] = pcVar5" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pcVar5")) (; ";")) (expression_statement "iVar7 = expand_word(puVar3,iVar7);" (assignment_expression "iVar7 = expand_word(puVar3,iVar7)" (identifier "iVar7") (= "=") (call_expression "expand_word(puVar3,iVar7)" (identifier "expand_word") (argument_list "(puVar3,iVar7)" (( "(") (identifier "puVar3") (, ",") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "dispose_word(puVar3);" (call_expression "dispose_word(puVar3)" (identifier "dispose_word") (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (if_statement "if (iVar7 == 0) {\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }\n      else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        __ptr_01 = (undefined1 *)xmalloc(1);\n        *__ptr_01 = 0;\n      }" ({ "{") (expression_statement "__ptr_01 = (undefined1 *)xmalloc(1);" (assignment_expression "__ptr_01 = (undefined1 *)xmalloc(1)" (identifier "__ptr_01") (= "=") (cast_expression "(undefined1 *)xmalloc(1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(1)" (identifier "xmalloc") (argument_list "(1)" (( "(") (number_literal "1") () ")"))))) (; ";")) (expression_statement "*__ptr_01 = 0;" (assignment_expression "*__ptr_01 = 0" (pointer_expression "*__ptr_01" (* "*") (identifier "__ptr_01")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" (else "else") (compound_statement "{\n        __ptr_01 = (undefined1 *)string_list(iVar7);\n        dispose_words(iVar7);\n      }" ({ "{") (expression_statement "__ptr_01 = (undefined1 *)string_list(iVar7);" (assignment_expression "__ptr_01 = (undefined1 *)string_list(iVar7)" (identifier "__ptr_01") (= "=") (cast_expression "(undefined1 *)string_list(iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "string_list(iVar7)" (identifier "string_list") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "dispose_words(iVar7);" (call_expression "dispose_words(iVar7)" (identifier "dispose_words") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_0008e9c0();" (call_expression "FUN_0008e9c0()" (identifier "FUN_0008e9c0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(__ptr_01);" (call_expression "free(__ptr_01)" (identifier "free") (argument_list "(__ptr_01)" (( "(") (identifier "__ptr_01") () ")"))) (; ";")) (if_statement "if (iVar1 != iVar2) {\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar1 != iVar2)" (( "(") (binary_expression "iVar1 != iVar2" (identifier "iVar1") (!= "!=") (identifier "iVar2")) () ")")) (compound_statement "{\n        if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }\n        return 0;\n      }" ({ "{") (if_statement "if (iVar2 < rl_end) {\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }" (if "if") (parenthesized_expression "(iVar2 < rl_end)" (( "(") (binary_expression "iVar2 < rl_end" (identifier "iVar2") (< "<") (identifier "rl_end")) () ")")) (compound_statement "{\n          rl_point = iVar2;\n          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }\n        }" ({ "{") (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" (identifier "rl_point") (= "=") (identifier "iVar2")) (; ";")) (if_statement "if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n            rl_forward_word(1,0);\n          }" (if "if") (parenthesized_expression "((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t'))" (( "(") (binary_expression "(rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')" (parenthesized_expression "(rl_line_buffer[iVar2] != ' ')" (( "(") (binary_expression "rl_line_buffer[iVar2] != ' '" (subscript_expression "rl_line_buffer[iVar2]" (identifier "rl_line_buffer") ([ "[") (identifier "iVar2") (] "]")) (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(rl_line_buffer[iVar2] != '\t')" (( "(") (binary_expression "rl_line_buffer[iVar2] != '\t'" (subscript_expression "rl_line_buffer[iVar2]" (identifier "rl_line_buffer") ([ "[") (identifier "iVar2") (] "]")) (!= "!=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            rl_forward_word(1,0);\n          }" ({ "{") (expression_statement "rl_forward_word(1,0);" (call_expression "rl_forward_word(1,0)" (identifier "rl_forward_word") (argument_list "(1,0)" (( "(") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" (identifier "rl_point") (= "=") (identifier "rl_end")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0008c550();" (call_expression "FUN_0008c550()" (identifier "FUN_0008c550") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

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

int function_1(int count,int ignore)

{
  type_1 var_21;
  int var_18;
  int var_19;
  char *var_2;
  char *var_5;
  type_2 *word;
  size_t var_10;
  type_3 *var_15;
  int quoted;
  
  var_2 = var_1(rl_line_buffer);
  if (var_2 != (char *)0x0) {
    var_5 = var_3(var_2);
    var_4(var_2);
    var_19 = rl_point;
    var_18 = var_20;
    if (var_5 != (char *)0x0) {
      var_6(var_5);
      var_4(var_5);
      word = var_7();
      var_2 = rl_line_buffer;
      var_10 = var_8(rl_line_buffer);
      var_5 = (char *)var_9(var_10 + 1);
      var_2 = var_11(var_5,var_2);
      var_5 = (char *)0x0;
      word->word = var_2;
      quoted = var_12;
      if (var_12 != 0) {
        var_5 = 
        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."
        ;
        quoted = 2;
      }
      word->flags = (int)var_5;
      var_15 = var_13(word,quoted);
      var_14(word);
      if (var_15 == (type_3 *)0x0) {
        var_2 = (char *)var_9(1);
        *var_2 = '\0';
      }
      else {
        var_2 = var_16(var_15);
        var_17(var_15);
      }
      var_6(var_2);
      var_4(var_2);
      if (var_18 != var_19) {
        if (var_19 < var_20) {
          var_21 = rl_line_buffer[var_19];
          rl_point = var_19;
          if ((var_21 != 0x20) && (var_21 != 9)) {
            var_22((type_4)var_21,var_19);
          }
        }
        return 0;
      }
      rl_point = var_20;
      return 0;
    }
  }
  var_23();
  return 1;
}


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

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

undefined4 MASKED(void)

{
  int iVar1;
  int iVar2;
  void *__ptr;
  void *__ptr_00;
  undefined4 *puVar3;
  size_t sVar4;
  char *pcVar5;
  char *pcVar6;
  int iVar7;
  undefined1 *__ptr_01;
  
  __ptr = (void *)FUN_0008e940();
  if (__ptr != (void *)0x0) {
    __ptr_00 = (void *)alias_expand(__ptr);
    free(__ptr);
    iVar2 = rl_point;
    iVar1 = rl_end;
    if (__ptr_00 != (void *)0x0) {
      FUN_0008e9c0();
      free(__ptr_00);
      puVar3 = (undefined4 *)alloc_word_desc();
      pcVar6 = rl_line_buffer;
      sVar4 = strlen(rl_line_buffer);
      pcVar5 = (char *)xmalloc(sVar4 + 1);
      pcVar6 = strcpy(pcVar5,pcVar6);
      pcVar5 = (char *)0x0;
      *puVar3 = pcVar6;
      iVar7 = rl_explicit_arg;
      if (rl_explicit_arg != 0) {
        pcVar5 = 
        "      -V                 List variable names and values\n      -v                 List variable names and values in a form that can\n                         be reused as input.\n      -q  function-name  Query about which keys invoke the named function.\n      -u  function-name  Unbind all keys which are bound to the named function.\n      -r  keyseq         Remove the binding for KEYSEQ.\n      -f  filename       Read key bindings from FILENAME.\n      -x  keyseq:shell-command\tCause SHELL-COMMAND to be executed when\n    \t\t\t\tKEYSEQ is entered.\n      -X                 List key sequences bound with -x and associated commands\n                         in a form that can be reused as input.\n    \n    Exit Status:\n    bind returns 0 unless an unrecognized option is given or an error occurs."
        ;
        iVar7 = 2;
      }
      puVar3[1] = pcVar5;
      iVar7 = expand_word(puVar3,iVar7);
      dispose_word(puVar3);
      if (iVar7 == 0) {
        __ptr_01 = (undefined1 *)xmalloc(1);
        *__ptr_01 = 0;
      }
      else {
        __ptr_01 = (undefined1 *)string_list(iVar7);
        dispose_words(iVar7);
      }
      FUN_0008e9c0();
      free(__ptr_01);
      if (iVar1 != iVar2) {
        if (iVar2 < rl_end) {
          rl_point = iVar2;
          if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {
            rl_forward_word(1,0);
          }
        }
        return 0;
      }
      rl_point = rl_end;
      return 0;
    }
  }
  FUN_0008c550();
  return 1;
}

