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

int rl_backward_menu_complete(int count,int key)

{
  uint uVar1;
  int from;
  int iVar2;
  size_t sVar3;
  char **ppcVar4;
  char **ppcVar5;
  rl_compentry_func_t *our_func;
  char *pcVar6;
  int in_GS_OFFSET;
  int found_quote;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xed0c9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&
     (full_completion_8480 == 0)) {
LAB_000ed3ee:
    if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {
      rl_ding();
      if (matches_8476 != (char **)0x0) {
        free(matches_8476);
      }
      matches_8476 = (char **)0x0;
      completion_changed_buffer = 0;
      goto LAB_000ed4cf;
    }
LAB_000ed37b:
    match_list_index_8477 = match_list_index_8477 - count;
    if (match_list_index_8477 < 0) {
      do {
        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;
        if (-1 < match_list_index_8477) break;
        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;
      } while (match_list_index_8477 < 0);
    }
    else {
      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;
    }
    if ((match_list_size_8478 < 2) || (match_list_index_8477 != 0)) {
      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);
      pcVar6 = matches_8476[match_list_index_8477];
      iVar2 = strcmp(orig_text_8475,pcVar6);
      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);
    }
    else {
      rl_ding();
      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);
    }
    completion_changed_buffer = 1;
  }
  else {
    if (orig_text_8475 != (char *)0x0) {
      free(orig_text_8475);
    }
    ppcVar5 = matches_8476;
    if (matches_8476 != (char **)0x0) {
      pcVar6 = *matches_8476;
      ppcVar4 = matches_8476;
      while (pcVar6 != (char *)0x0) {
        ppcVar4 = ppcVar4 + 1;
        xfree(pcVar6);
        pcVar6 = *ppcVar4;
      }
      xfree(ppcVar5);
    }
    match_list_size_8478 = 0;
    match_list_index_8477 = 0;
    matches_8476 = (char **)0x0;
    full_completion_8480 = 0;
    rl_readline_state = rl_readline_state | 0x4000;
    rl_filename_completion_desired = 0;
    rl_filename_quoting_desired = 1;
    rl_completion_type = 0x25;
    rl_completion_suppress_quote = 0;
    rl_completion_suppress_append = 0;
    rl_completion_append_character = 0x20;
    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
    _rl_complete_display_matches_interrupt = 0;
    our_func = rl_menu_completion_entry_function;
    if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&
       (our_func = rl_completion_entry_function,
       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {
      our_func = rl_filename_completion_function;
    }
    quote_char_8483 = '\0';
    delimiter_8484 = 0;
    found_quote = 0;
    orig_end_8482 = rl_point;
    iVar2 = 0;
    if (rl_point != 0) {
      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);
      iVar2 = orig_end_8482;
    }
    orig_start_8481 = rl_point;
    from = rl_point;
    rl_point = iVar2;
    orig_text_8475 = rl_copy_text(from,iVar2);
    matches_8476 = gen_completion_matches
                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,
                              (int)quote_char_8483);
    if (matches_8476 == (char **)0x0) {
      nontrivial_lcd_8479 = 0;
    }
    else {
      iVar2 = strcmp(orig_text_8475,*matches_8476);
      nontrivial_lcd_8479 = (uint)(iVar2 != 0);
      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);
      if (iVar2 != 0) {
        rl_readline_state = rl_readline_state & 0xffffbfff;
        match_list_size_8478 = 0;
        pcVar6 = *matches_8476;
        iVar2 = 1;
        if (pcVar6 == (char *)0x0) {
          rl_ding();
          if (matches_8476 != (char **)0x0) {
            free(matches_8476);
          }
          matches_8476 = (char **)0x0;
          match_list_index_8477 = 0;
          completion_changed_buffer = 0;
          goto LAB_000ed4cf;
        }
        do {
          match_list_size_8478 = iVar2;
          iVar2 = match_list_size_8478 + 1;
        } while (matches_8476[match_list_size_8478] != (char *)0x0);
        ppcVar5 = matches_8476;
        uVar1 = completion_changed_buffer;
        if (*pcVar6 != '\0') {
          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)
          ;
          ppcVar5 = matches_8476;
          pcVar6 = *matches_8476;
          sVar3 = strlen(pcVar6);
          orig_end_8482 = sVar3 + orig_start_8481;
          uVar1 = 1;
          if (*orig_text_8475 == *pcVar6) {
            iVar2 = strcmp(orig_text_8475,pcVar6);
            uVar1 = (uint)(iVar2 != 0);
          }
        }
        completion_changed_buffer = uVar1;
        if (match_list_size_8478 < 2) {
          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);
          full_completion_8480 = 1;
          goto LAB_000ed4cf;
        }
        if (_rl_complete_show_all == 0) {
          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;
        }
        else {
          display_matches(ppcVar5);
          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)
             ) {
            rl_ding();
            if (matches_8476 != (char **)0x0) {
              free(matches_8476);
            }
            matches_8476 = (char **)0x0;
            full_completion_8480 = 1;
            goto LAB_000ed4cf;
          }
          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;
        }
        rl_ding();
        goto LAB_000ed4cf;
      }
    }
    rl_ding();
    if (matches_8476 != (char **)0x0) {
      free(matches_8476);
    }
    matches_8476 = (char **)0x0;
    if (orig_text_8475 != (char *)0x0) {
      free(orig_text_8475);
    }
    rl_readline_state = rl_readline_state & 0xffffbfff;
    orig_text_8475 = (char *)0x0;
    completion_changed_buffer = 0;
  }
LAB_000ed4cf:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

undefined4 rl_backward_menu_complete(int param_1)

{
  char *__s;
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  size_t sVar5;
  int *piVar6;
  code *pcVar7;
  int in_GS_OFFSET;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xed0c9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&
     (DAT_00179df8 == 0)) {
LAB_000ed3ee:
    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {
      rl_ding();
      if (DAT_00179df0 != (int *)0x0) {
        free(DAT_00179df0);
      }
      DAT_00179df0 = (int *)0x0;
      DAT_00179e48 = 0;
      goto LAB_000ed4cf;
    }
LAB_000ed37b:
    DAT_00179de8 = DAT_00179de8 - param_1;
    if (DAT_00179de8 < 0) {
      do {
        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;
        if (-1 < DAT_00179de8) break;
        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;
      } while (DAT_00179de8 < 0);
    }
    else {
      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;
    }
    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {
      FUN_000ea0a0(&DAT_00179ddc);
      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);
      FUN_000ea870(iVar4);
    }
    else {
      rl_ding();
      FUN_000ea0a0(&DAT_00179ddc);
    }
    DAT_00179e48 = 1;
  }
  else {
    if (DAT_00179df4 != (char *)0x0) {
      free(DAT_00179df4);
    }
    piVar1 = DAT_00179df0;
    if (DAT_00179df0 != (int *)0x0) {
      iVar4 = *DAT_00179df0;
      piVar6 = DAT_00179df0;
      while (iVar4 != 0) {
        piVar6 = piVar6 + 1;
        xfree(iVar4);
        iVar4 = *piVar6;
      }
      xfree(piVar1);
    }
    DAT_00179dec = 0;
    DAT_00179de8 = 0;
    DAT_00179df0 = (int *)0x0;
    DAT_00179df8 = 0;
    rl_readline_state = rl_readline_state | 0x4000;
    rl_filename_completion_desired = 0;
    rl_filename_quoting_desired = 1;
    rl_completion_type = 0x25;
    rl_completion_suppress_quote = 0;
    rl_completion_suppress_append = 0;
    rl_completion_append_character = 0x20;
    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
    DAT_00179e44 = 0;
    pcVar7 = rl_menu_completion_entry_function;
    if ((rl_menu_completion_entry_function == (code *)0x0) &&
       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {
      pcVar7 = rl_filename_completion_function;
    }
    DAT_00179ddc = '\0';
    DAT_00179de0 = 0;
    local_24 = 0;
    DAT_00179de4 = rl_point;
    iVar4 = 0;
    if (rl_point != 0) {
      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);
      iVar4 = DAT_00179de4;
    }
    DAT_00179dd8 = rl_point;
    iVar3 = rl_point;
    rl_point = iVar4;
    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);
    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);
    if (DAT_00179df0 == (int *)0x0) {
      DAT_00179dd4 = 0;
    }
    else {
      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);
      DAT_00179dd4 = (uint)(iVar4 != 0);
      iVar4 = FUN_000e9c60();
      if (iVar4 != 0) {
        rl_readline_state = rl_readline_state & 0xffffbfff;
        DAT_00179dec = 0;
        iVar4 = 1;
        if ((char *)*DAT_00179df0 == (char *)0x0) {
          rl_ding();
          if (DAT_00179df0 != (int *)0x0) {
            free(DAT_00179df0);
          }
          DAT_00179df0 = (int *)0x0;
          DAT_00179de8 = 0;
          DAT_00179e48 = 0;
          goto LAB_000ed4cf;
        }
        do {
          DAT_00179dec = iVar4;
          iVar4 = DAT_00179dec + 1;
        } while (DAT_00179df0[DAT_00179dec] != 0);
        uVar2 = DAT_00179e48;
        if (*(char *)*DAT_00179df0 != '\0') {
          FUN_000ea0a0(&DAT_00179ddc);
          __s = (char *)*DAT_00179df0;
          sVar5 = strlen(__s);
          DAT_00179de4 = sVar5 + DAT_00179dd8;
          uVar2 = 1;
          if (*DAT_00179df4 == *__s) {
            iVar4 = strcmp(DAT_00179df4,__s);
            uVar2 = (uint)(iVar4 != 0);
          }
        }
        DAT_00179e48 = uVar2;
        if (DAT_00179dec < 2) {
          FUN_000ea870(DAT_00179dd4);
          DAT_00179df8 = 1;
          goto LAB_000ed4cf;
        }
        if (_rl_complete_show_all == 0) {
          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;
        }
        else {
          FUN_000eb8d0();
          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {
            rl_ding();
            if (DAT_00179df0 != (int *)0x0) {
              free(DAT_00179df0);
            }
            DAT_00179df0 = (int *)0x0;
            DAT_00179df8 = 1;
            goto LAB_000ed4cf;
          }
          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;
        }
        rl_ding();
        goto LAB_000ed4cf;
      }
    }
    rl_ding();
    if (DAT_00179df0 != (int *)0x0) {
      free(DAT_00179df0);
    }
    DAT_00179df0 = (int *)0x0;
    if (DAT_00179df4 != (char *)0x0) {
      free(DAT_00179df4);
    }
    rl_readline_state = rl_readline_state & 0xffffbfff;
    DAT_00179df4 = (char *)0x0;
    DAT_00179e48 = 0;
  }
LAB_000ed4cf:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0010f8b0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000312b0
ADD EBX,0x84f37
SUB ESP,0x1c
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0xc],EAX
XOR EAX,EAX
LEA EAX,[EBX + 0x7b40]
LEA EDX,[EBX + 0xfff7ab00]
MOV EAX,dword ptr [EAX]
CMP EAX,EDX
JZ 0x000ed3e0
LEA EDX,[EBX + 0xfff7b0c0]
CMP EAX,EDX
JZ 0x000ed3e0
MOV EAX,dword ptr [EBX + 0x7df4]
TEST EAX,EAX
JZ 0x000ed118
SUB ESP,0xc
PUSH EAX
CALL 0x0002e200
ADD ESP,0x10
MOV EDI,dword ptr [EBX + 0x7df0]
TEST EDI,EDI
JZ 0x000ed152
MOV EAX,dword ptr [EDI]
LEA ESI,[EDI + 0x4]
TEST EAX,EAX
JZ 0x000ed146
LEA ESI,[ESI]
NOP
SUB ESP,0xc
ADD ESI,0x4
PUSH EAX
CALL 0x000ad7e0
MOV EAX,dword ptr [ESI + -0x4]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000ed130
SUB ESP,0xc
PUSH EDI
CALL 0x000ad7e0
ADD ESP,0x10
LEA ESI,[EBX + 0x7b44]
LEA EAX,[EBX + 0xd9ac]
MOV dword ptr [EBX + 0x7dec],0x0
MOV EDX,dword ptr [EBX + 0x7dc4]
MOV EDI,dword ptr [EBX + 0x7d88]
MOV dword ptr [EBX + 0x7de8],0x0
MOV dword ptr [EBX + 0x7df0],0x0
MOV dword ptr [EBX + 0x7df8],0x0
OR dword ptr [ESI],0x4000
MOV dword ptr [EBX + 0x7d64],0x0
MOV dword ptr [EBX + 0x4618],0x1
MOV dword ptr [EBX + 0x7d7c],0x25
MOV dword ptr [EBX + 0x7d50],0x0
MOV dword ptr [EBX + 0x7d54],0x0
MOV dword ptr [EBX + 0x4614],0x20
MOV dword ptr [EAX],EDX
MOV dword ptr [EBX + 0x7e44],0x0
TEST EDI,EDI
JZ 0x000ed570
LEA EBP,[EBX + 0xd988]
MOV byte ptr [EBX + 0x7ddc],0x0
XOR EDX,EDX
MOV dword ptr [EBX + 0x7de0],0x0
MOV EAX,dword ptr [EBP]
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [EBX + 0x7de4],EAX
TEST EAX,EAX
JNZ 0x000ed440
SUB ESP,0x8
MOV dword ptr [EBP],EDX
PUSH EDX
PUSH EAX
MOV dword ptr [EBX + 0x7dd8],EAX
CALL 0x000fcd10
MOVSX EDX,byte ptr [EBX + 0x7ddc]
ADD ESP,0xc
MOV ECX,dword ptr [EBX + 0x7de4]
MOV dword ptr [EBX + 0x7df4],EAX
PUSH EDX
MOV EDX,dword ptr [EBX + 0x7dd8]
PUSH dword ptr [ESP + 0x10]
PUSH EDI
CALL 0x000ebd80
ADD ESP,0x10
MOV dword ptr [EBX + 0x7df0],EAX
TEST EAX,EAX
JZ 0x000ed470
SUB ESP,0x8
PUSH dword ptr [EAX]
PUSH dword ptr [EBX + 0x7df4]
CALL 0x0002e100
ADD ESP,0x10
MOV EDX,dword ptr [EBX + 0x7d64]
TEST EAX,EAX
SETNZ AL
MOVZX EAX,AL
MOV dword ptr [EBX + 0x7dd4],EAX
LEA EAX,[EBX + 0x7df0]
CALL 0x000e9c60
TEST EAX,EAX
JZ 0x000ed47a
AND dword ptr [ESI],0xffffbfff
MOV ESI,dword ptr [EBX + 0x7df0]
MOV EAX,0x1
MOV dword ptr [EBX + 0x7dec],0x0
MOV EDI,dword ptr [ESI]
TEST EDI,EDI
JZ 0x000ed5c0
LEA ESI,[ESI]
MOV ECX,EAX
ADD EAX,0x1
MOV EDX,dword ptr [ESI + EAX*0x4 + -0x4]
TEST EDX,EDX
JNZ 0x000ed2c8
CMP byte ptr [EDI],0x0
MOV dword ptr [EBX + 0x7dec],ECX
JZ 0x000ed356
MOV EAX,dword ptr [ESI + 0x4]
XOR ECX,ECX
MOV EDX,dword ptr [EBX + 0x7dd8]
TEST EAX,EAX
LEA EAX,[EBX + 0x7ddc]
SETNZ CL
SUB ESP,0xc
PUSH EAX
ADD ECX,0x1
MOV EAX,EDI
CALL 0x000ea0a0
MOV ESI,dword ptr [EBX + 0x7df0]
MOV EDI,dword ptr [ESI]
MOV dword ptr [ESP],EDI
CALL 0x0002e760
MOV EDX,dword ptr [EBX + 0x7df4]
ADD ESP,0x10
MOVZX ECX,byte ptr [EDI]
ADD EAX,dword ptr [EBX + 0x7dd8]
MOV dword ptr [EBX + 0x7de4],EAX
MOV EAX,0x1
CMP byte ptr [EDX],CL
JNZ 0x000ed34a
SUB ESP,0x8
PUSH EDI
PUSH EDX
CALL 0x0002e100
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
MOVZX EAX,AL
MOV dword ptr [EBX + 0x7e48],EAX
MOV ECX,dword ptr [EBX + 0x7dec]
CMP ECX,0x1
JLE 0x000ed600
MOV EAX,dword ptr [EBX + 0x7dcc]
TEST EAX,EAX
JNZ 0x000ed590
MOV EDI,dword ptr [EBX + 0x7da8]
TEST EDI,EDI
JNZ 0x000ed5b3
MOV EDX,dword ptr [EBX + 0x7de8]
SUB EDX,dword ptr [ESP + 0x30]
JS 0x000ed4f0
MOV EAX,EDX
CDQ
IDIV ECX
MOV dword ptr [EBX + 0x7de8],EDX
CMP ECX,0x1
JLE 0x000ed508
TEST EDX,EDX
JNZ 0x000ed508
CALL 0x00102470
SUB ESP,0xc
LEA EAX,[EBX + 0x7ddc]
MOV EDX,dword ptr [EBX + 0x7dd8]
PUSH EAX
MOV EAX,dword ptr [EBX + 0x7df0]
MOV ECX,0x2
MOV EAX,dword ptr [EAX]
CALL 0x000ea0a0
ADD ESP,0x10
JMP 0x000ed55c
MOV ECX,dword ptr [EBX + 0x7df8]
TEST ECX,ECX
JNZ 0x000ed102
MOV ESI,dword ptr [EBX + 0x7df0]
TEST ESI,ESI
JZ 0x000ed406
MOV ECX,dword ptr [EBX + 0x7dec]
TEST ECX,ECX
JNZ 0x000ed37b
CALL 0x00102470
MOV EAX,dword ptr [EBX + 0x7df0]
TEST EAX,EAX
JZ 0x000ed421
SUB ESP,0xc
PUSH EAX
CALL 0x0002e200
ADD ESP,0x10
MOV dword ptr [EBX + 0x7df0],0x0
MOV dword ptr [EBX + 0x7e48],0x0
JMP 0x000ed4cf
SUB ESP,0x8
LEA EAX,[EBX + 0x7de0]
PUSH EAX
LEA EAX,[ESP + 0x14]
PUSH EAX
CALL 0x000eabc0
MOV EDX,dword ptr [EBX + 0x7de4]
ADD ESP,0x10
MOV byte ptr [EBX + 0x7ddc],AL
MOV EAX,dword ptr [EBP]
JMP 0x000ed21a
MOV dword ptr [EBX + 0x7dd4],0x0
CALL 0x00102470
MOV EAX,dword ptr [EBX + 0x7df0]
TEST EAX,EAX
JZ 0x000ed495
SUB ESP,0xc
PUSH EAX
CALL 0x0002e200
ADD ESP,0x10
MOV dword ptr [EBX + 0x7df0],0x0
MOV EAX,dword ptr [EBX + 0x7df4]
TEST EAX,EAX
JZ 0x000ed4b5
SUB ESP,0xc
PUSH EAX
CALL 0x0002e200
ADD ESP,0x10
AND dword ptr [ESI],0xffffbfff
MOV dword ptr [EBX + 0x7df4],0x0
MOV dword ptr [EBX + 0x7e48],0x0
XOR EAX,EAX
MOV ECX,dword ptr [ESP + 0xc]
XOR ECX,dword ptr GS:[0x14]
JNZ 0x000ed670
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD EDX,ECX
JNS 0x000ed390
ADD EDX,ECX
JS 0x000ed4f0
JMP 0x000ed390
SUB ESP,0xc
MOV EAX,dword ptr [ESI + EDX*0x4]
LEA EDX,[EBX + 0x7ddc]
MOV ECX,0x1
PUSH EDX
MOV EDX,dword ptr [EBX + 0x7dd8]
CALL 0x000ea0a0
MOV EDX,dword ptr [EBX + 0x7de8]
MOV EAX,dword ptr [EBX + 0x7df0]
MOV ESI,dword ptr [EAX + EDX*0x4]
POP EAX
POP EDX
PUSH ESI
PUSH dword ptr [EBX + 0x7df4]
CALL 0x0002e100
MOVSX ECX,byte ptr [EBX + 0x7ddc]
MOV EDX,dword ptr [EBX + 0x7de0]
MOV dword ptr [ESP],EAX
MOV EAX,ESI
CALL 0x000ea870
ADD ESP,0x10
MOV dword ptr [EBX + 0x7e48],0x1
JMP 0x000ed4cf
MOV EDI,dword ptr [EBX + 0x7d8c]
LEA EAX,[EBX + 0xfff76ae0]
TEST EDI,EDI
CMOVZ EDI,EAX
JMP 0x000ed1e8
MOV EAX,ESI
CALL 0x000eb8d0
MOV EAX,dword ptr [EBX + 0x4624]
TEST EAX,EAX
JG 0x000ed630
MOV EBP,dword ptr [EBX + 0x7da8]
TEST EBP,EBP
JZ 0x000ed3ee
CALL 0x00102470
JMP 0x000ed4cf
CALL 0x00102470
MOV EAX,dword ptr [EBX + 0x7df0]
TEST EAX,EAX
JZ 0x000ed5db
SUB ESP,0xc
PUSH EAX
CALL 0x0002e200
ADD ESP,0x10
MOV dword ptr [EBX + 0x7df0],0x0
MOV dword ptr [EBX + 0x7de8],0x0
MOV dword ptr [EBX + 0x7e48],0x0
JMP 0x000ed4cf
SUB ESP,0xc
PUSH dword ptr [EBX + 0x7dd4]
MOV EDX,dword ptr [EBX + 0x7de0]
MOV EAX,EDI
MOVSX ECX,byte ptr [EBX + 0x7ddc]
CALL 0x000ea870
ADD ESP,0x10
MOV dword ptr [EBX + 0x7df8],0x1
JMP 0x000ed4cf
CMP EAX,dword ptr [EBX + 0x7dec]
JG 0x000ed5a5
CALL 0x00102470
MOV EAX,dword ptr [EBX + 0x7df0]
TEST EAX,EAX
JZ 0x000ed657
SUB ESP,0xc
PUSH EAX
CALL 0x0002e200
ADD ESP,0x10
MOV dword ptr [EBX + 0x7df0],0x0
MOV dword ptr [EBX + 0x7df8],0x1
JMP 0x000ed4cf
CALL 0x0010f8b0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 rl_backward_menu_complete(int param_1)\n\n{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0010f8b0();\n}\n\n" comment (function_definition "undefined4 rl_backward_menu_complete(int param_1)\n\n{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0010f8b0();\n}" type_identifier (function_declarator "rl_backward_menu_complete(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0010f8b0();\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xed0c9;" (assignment_expression "uStack_14 = 0xed0c9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" if (parenthesized_expression "(((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0))" ( (binary_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)" (parenthesized_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete))" ( (binary_expression "(rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)" (parenthesized_expression "(rl_last_func == rl_menu_complete)" ( (binary_expression "rl_last_func == rl_menu_complete" identifier == identifier) )) || (parenthesized_expression "(rl_last_func == rl_backward_menu_complete)" ( (binary_expression "rl_last_func == rl_backward_menu_complete" identifier == identifier) ))) )) && (parenthesized_expression "(DAT_00179df8 == 0)" ( (binary_expression "DAT_00179df8 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }" { (labeled_statement "LAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" statement_identifier : (if_statement "if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" if (parenthesized_expression "((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0))" ( (binary_expression "(DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)" (parenthesized_expression "(DAT_00179df0 == (int *)0x0)" ( (binary_expression "DAT_00179df0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(DAT_00179dec == 0)" ( (binary_expression "DAT_00179dec == 0" identifier == number_literal) ))) )) (compound_statement "{\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free(DAT_00179df0);\n      }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) }))) (labeled_statement "LAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;" statement_identifier : (expression_statement "DAT_00179de8 = DAT_00179de8 - param_1;" (assignment_expression "DAT_00179de8 = DAT_00179de8 - param_1" identifier = (binary_expression "DAT_00179de8 - param_1" identifier - identifier)) ;)) (if_statement "if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" if (parenthesized_expression "(DAT_00179de8 < 0)" ( (binary_expression "DAT_00179de8 < 0" identifier < number_literal) )) (compound_statement "{\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }" { (do_statement "do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);" do (compound_statement "{\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      }" { (expression_statement "DAT_00179de8 = DAT_00179de8 + DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 + DAT_00179dec" identifier = (binary_expression "DAT_00179de8 + DAT_00179dec" identifier + identifier)) ;) (if_statement "if (-1 < DAT_00179de8) break;" if (parenthesized_expression "(-1 < DAT_00179de8)" ( (binary_expression "-1 < DAT_00179de8" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "DAT_00179de8 = DAT_00179de8 + DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 + DAT_00179dec" identifier = (binary_expression "DAT_00179de8 + DAT_00179dec" identifier + identifier)) ;) }) while (parenthesized_expression "(DAT_00179de8 < 0)" ( (binary_expression "DAT_00179de8 < 0" identifier < number_literal) )) ;) }) (else_clause "else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" else (compound_statement "{\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" { (expression_statement "DAT_00179de8 = DAT_00179de8 % DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 % DAT_00179dec" identifier = (binary_expression "DAT_00179de8 % DAT_00179dec" identifier % identifier)) ;) }))) (if_statement "if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" if (parenthesized_expression "((DAT_00179dec < 2) || (DAT_00179de8 != 0))" ( (binary_expression "(DAT_00179dec < 2) || (DAT_00179de8 != 0)" (parenthesized_expression "(DAT_00179dec < 2)" ( (binary_expression "DAT_00179dec < 2" identifier < number_literal) )) || (parenthesized_expression "(DAT_00179de8 != 0)" ( (binary_expression "DAT_00179de8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }" { (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" identifier (argument_list "(&DAT_00179ddc)" ( (pointer_expression "&DAT_00179ddc" & identifier) ))) ;) (expression_statement "iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" identifier = (call_expression "strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" identifier (argument_list "(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" ( identifier , (cast_expression "(char *)DAT_00179df0[DAT_00179de8]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00179df0[DAT_00179de8]" identifier [ identifier ])) )))) ;) (expression_statement "FUN_000ea870(iVar4);" (call_expression "FUN_000ea870(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) }) (else_clause "else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" else (compound_statement "{\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" identifier (argument_list "(&DAT_00179ddc)" ( (pointer_expression "&DAT_00179ddc" & identifier) ))) ;) }))) (expression_statement "DAT_00179e48 = 1;" (assignment_expression "DAT_00179e48 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" else (compound_statement "{\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" { (if_statement "if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }" if (parenthesized_expression "(DAT_00179df4 != (char *)0x0)" ( (binary_expression "DAT_00179df4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_00179df4);\n    }" { (expression_statement "free(DAT_00179df4);" (call_expression "free(DAT_00179df4)" identifier (argument_list "(DAT_00179df4)" ( identifier ))) ;) })) (expression_statement "piVar1 = DAT_00179df0;" (assignment_expression "piVar1 = DAT_00179df0" identifier = identifier) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }" { (expression_statement "iVar4 = *DAT_00179df0;" (assignment_expression "iVar4 = *DAT_00179df0" identifier = (pointer_expression "*DAT_00179df0" * identifier)) ;) (expression_statement "piVar6 = DAT_00179df0;" (assignment_expression "piVar6 = DAT_00179df0" identifier = identifier) ;) (while_statement "while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }" while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }" { (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "xfree(iVar4);" (call_expression "xfree(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (expression_statement "xfree(piVar1);" (call_expression "xfree(piVar1)" identifier (argument_list "(piVar1)" ( identifier ))) ;) })) (expression_statement "DAT_00179dec = 0;" (assignment_expression "DAT_00179dec = 0" identifier = number_literal) ;) (expression_statement "DAT_00179de8 = 0;" (assignment_expression "DAT_00179de8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179df8 = 0;" (assignment_expression "DAT_00179df8 = 0" identifier = number_literal) ;) (expression_statement "rl_readline_state = rl_readline_state | 0x4000;" (assignment_expression "rl_readline_state = rl_readline_state | 0x4000" identifier = (binary_expression "rl_readline_state | 0x4000" identifier | number_literal)) ;) (expression_statement "rl_filename_completion_desired = 0;" (assignment_expression "rl_filename_completion_desired = 0" identifier = number_literal) ;) (expression_statement "rl_filename_quoting_desired = 1;" (assignment_expression "rl_filename_quoting_desired = 1" identifier = number_literal) ;) (expression_statement "rl_completion_type = 0x25;" (assignment_expression "rl_completion_type = 0x25" identifier = number_literal) ;) (expression_statement "rl_completion_suppress_quote = 0;" (assignment_expression "rl_completion_suppress_quote = 0" identifier = number_literal) ;) (expression_statement "rl_completion_suppress_append = 0;" (assignment_expression "rl_completion_suppress_append = 0" identifier = number_literal) ;) (expression_statement "rl_completion_append_character = 0x20;" (assignment_expression "rl_completion_append_character = 0x20" identifier = number_literal) ;) (expression_statement "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;" (assignment_expression "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs" identifier = identifier) ;) (expression_statement "DAT_00179e44 = 0;" (assignment_expression "DAT_00179e44 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = rl_menu_completion_entry_function;" (assignment_expression "pcVar7 = rl_menu_completion_entry_function" identifier = identifier) ;) (if_statement "if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }" if (parenthesized_expression "((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0))" ( (binary_expression "(rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)" (parenthesized_expression "(rl_menu_completion_entry_function == (code *)0x0)" ( (binary_expression "rl_menu_completion_entry_function == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)" ( (comma_expression "pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0" (assignment_expression "pcVar7 = rl_completion_entry_function" identifier = identifier) , (binary_expression "rl_completion_entry_function == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      pcVar7 = rl_filename_completion_function;\n    }" { (expression_statement "pcVar7 = rl_filename_completion_function;" (assignment_expression "pcVar7 = rl_filename_completion_function" identifier = identifier) ;) })) (expression_statement "DAT_00179ddc = '\0';" (assignment_expression "DAT_00179ddc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_00179de0 = 0;" (assignment_expression "DAT_00179de0 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00179de4 = rl_point;" (assignment_expression "DAT_00179de4 = rl_point" identifier = identifier) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }" if (parenthesized_expression "(rl_point != 0)" ( (binary_expression "rl_point != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }" { (expression_statement "DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);" (assignment_expression "DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0)" identifier = (call_expression "_rl_find_completion_word(&local_24,&DAT_00179de0)" identifier (argument_list "(&local_24,&DAT_00179de0)" ( (pointer_expression "&local_24" & identifier) , (pointer_expression "&DAT_00179de0" & identifier) )))) ;) (expression_statement "iVar4 = DAT_00179de4;" (assignment_expression "iVar4 = DAT_00179de4" identifier = identifier) ;) })) (expression_statement "DAT_00179dd8 = rl_point;" (assignment_expression "DAT_00179dd8 = rl_point" identifier = identifier) ;) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" identifier = identifier) ;) (expression_statement "rl_point = iVar4;" (assignment_expression "rl_point = iVar4" identifier = identifier) ;) (expression_statement "DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);" (assignment_expression "DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4)" identifier = (cast_expression "(char *)rl_copy_text(iVar3,iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "rl_copy_text(iVar3,iVar4)" identifier (argument_list "(iVar3,iVar4)" ( identifier , identifier ))))) ;) (expression_statement "DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);" (assignment_expression "DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" identifier = (cast_expression "(int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" identifier (argument_list "(pcVar7,local_24,(int)DAT_00179ddc)" ( identifier , identifier , (cast_expression "(int)DAT_00179ddc" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" if (parenthesized_expression "(DAT_00179df0 == (int *)0x0)" ( (binary_expression "DAT_00179df0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00179dd4 = 0;\n    }" { (expression_statement "DAT_00179dd4 = 0;" (assignment_expression "DAT_00179dd4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" else (compound_statement "{\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" { (expression_statement "iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0)" identifier = (call_expression "strcmp(DAT_00179df4,(char *)*DAT_00179df0)" identifier (argument_list "(DAT_00179df4,(char *)*DAT_00179df0)" ( identifier , (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier)) )))) ;) (expression_statement "DAT_00179dd4 = (uint)(iVar4 != 0);" (assignment_expression "DAT_00179dd4 = (uint)(iVar4 != 0)" identifier = (call_expression "(uint)(iVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )))) ;) (expression_statement "iVar4 = FUN_000e9c60();" (assignment_expression "iVar4 = FUN_000e9c60()" identifier = (call_expression "FUN_000e9c60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" { (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" identifier = (binary_expression "rl_readline_state & 0xffffbfff" identifier & number_literal)) ;) (expression_statement "DAT_00179dec = 0;" (assignment_expression "DAT_00179dec = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (if_statement "if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }" if (parenthesized_expression "((char *)*DAT_00179df0 == (char *)0x0)" ( (binary_expression "(char *)*DAT_00179df0 == (char *)0x0" (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier)) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(DAT_00179df0);\n          }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179de8 = 0;" (assignment_expression "DAT_00179de8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (do_statement "do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);" do (compound_statement "{\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        }" { (expression_statement "DAT_00179dec = iVar4;" (assignment_expression "DAT_00179dec = iVar4" identifier = identifier) ;) (expression_statement "iVar4 = DAT_00179dec + 1;" (assignment_expression "iVar4 = DAT_00179dec + 1" identifier = (binary_expression "DAT_00179dec + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(DAT_00179df0[DAT_00179dec] != 0)" ( (binary_expression "DAT_00179df0[DAT_00179dec] != 0" (subscript_expression "DAT_00179df0[DAT_00179dec]" identifier [ identifier ]) != number_literal) )) ;) (expression_statement "uVar2 = DAT_00179e48;" (assignment_expression "uVar2 = DAT_00179e48" identifier = identifier) ;) (if_statement "if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }" if (parenthesized_expression "(*(char *)*DAT_00179df0 != '\0')" ( (binary_expression "*(char *)*DAT_00179df0 != '\0'" (pointer_expression "*(char *)*DAT_00179df0" * (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }" { (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" identifier (argument_list "(&DAT_00179ddc)" ( (pointer_expression "&DAT_00179ddc" & identifier) ))) ;) (expression_statement "__s = (char *)*DAT_00179df0;" (assignment_expression "__s = (char *)*DAT_00179df0" identifier = (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier))) ;) (expression_statement "sVar5 = strlen(__s);" (assignment_expression "sVar5 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "DAT_00179de4 = sVar5 + DAT_00179dd8;" (assignment_expression "DAT_00179de4 = sVar5 + DAT_00179dd8" identifier = (binary_expression "sVar5 + DAT_00179dd8" identifier + identifier)) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (if_statement "if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }" if (parenthesized_expression "(*DAT_00179df4 == *__s)" ( (binary_expression "*DAT_00179df4 == *__s" (pointer_expression "*DAT_00179df4" * identifier) == (pointer_expression "*__s" * identifier)) )) (compound_statement "{\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }" { (expression_statement "iVar4 = strcmp(DAT_00179df4,__s);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,__s)" identifier = (call_expression "strcmp(DAT_00179df4,__s)" identifier (argument_list "(DAT_00179df4,__s)" ( identifier , identifier )))) ;) (expression_statement "uVar2 = (uint)(iVar4 != 0);" (assignment_expression "uVar2 = (uint)(iVar4 != 0)" identifier = (call_expression "(uint)(iVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )))) ;) })) })) (expression_statement "DAT_00179e48 = uVar2;" (assignment_expression "DAT_00179e48 = uVar2" identifier = identifier) ;) (if_statement "if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }" if (parenthesized_expression "(DAT_00179dec < 2)" ( (binary_expression "DAT_00179dec < 2" identifier < number_literal) )) (compound_statement "{\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }" { (expression_statement "FUN_000ea870(DAT_00179dd4);" (call_expression "FUN_000ea870(DAT_00179dd4)" identifier (argument_list "(DAT_00179dd4)" ( identifier ))) ;) (expression_statement "DAT_00179df8 = 1;" (assignment_expression "DAT_00179df8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (if_statement "if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" if (parenthesized_expression "(_rl_complete_show_all == 0)" ( (binary_expression "_rl_complete_show_all == 0" identifier == number_literal) )) (compound_statement "{\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }" { (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;" if (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" ( (binary_expression "_rl_menu_complete_prefix_first == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ed37b;" goto statement_identifier ;)) }) (else_clause "else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" else (compound_statement "{\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" { (expression_statement "FUN_000eb8d0();" (call_expression "FUN_000eb8d0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }" if (parenthesized_expression "((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec))" ( (binary_expression "(0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)" (parenthesized_expression "(0 < rl_completion_query_items)" ( (binary_expression "0 < rl_completion_query_items" number_literal < identifier) )) && (parenthesized_expression "(rl_completion_query_items <= DAT_00179dec)" ( (binary_expression "rl_completion_query_items <= DAT_00179dec" identifier <= identifier) ))) )) (compound_statement "{\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(DAT_00179df0);\n            }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179df8 = 1;" (assignment_expression "DAT_00179df8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;" if (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" ( (binary_expression "_rl_menu_complete_prefix_first == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ed3ee;" goto statement_identifier ;)) }))) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) }))) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_00179df0);\n    }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }" if (parenthesized_expression "(DAT_00179df4 != (char *)0x0)" ( (binary_expression "DAT_00179df4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_00179df4);\n    }" { (expression_statement "free(DAT_00179df4);" (call_expression "free(DAT_00179df4)" identifier (argument_list "(DAT_00179df4)" ( identifier ))) ;) })) (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" identifier = (binary_expression "rl_readline_state & 0xffffbfff" identifier & number_literal)) ;) (expression_statement "DAT_00179df4 = (char *)0x0;" (assignment_expression "DAT_00179df4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) comment (expression_statement "FUN_0010f8b0();" (call_expression "FUN_0010f8b0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint rl_backward_menu_complete(int count,int key)\n\n{\n  uint uVar1;\n  int from;\n  int iVar2;\n  size_t sVar3;\n  char **ppcVar4;\n  char **ppcVar5;\n  rl_compentry_func_t *our_func;\n  char *pcVar6;\n  int in_GS_OFFSET;\n  int found_quote;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (full_completion_8480 == 0)) {\nLAB_000ed3ee:\n    if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    match_list_index_8477 = match_list_index_8477 - count;\n    if (match_list_index_8477 < 0) {\n      do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);\n    }\n    else {\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }\n    if ((match_list_size_8478 < 2) || (match_list_index_8477 != 0)) {\n      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);\n      pcVar6 = matches_8476[match_list_index_8477];\n      iVar2 = strcmp(orig_text_8475,pcVar6);\n      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);\n    }\n    else {\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }\n    completion_changed_buffer = 1;\n  }\n  else {\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    ppcVar5 = matches_8476;\n    if (matches_8476 != (char **)0x0) {\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }\n    match_list_size_8478 = 0;\n    match_list_index_8477 = 0;\n    matches_8476 = (char **)0x0;\n    full_completion_8480 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    _rl_complete_display_matches_interrupt = 0;\n    our_func = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {\n      our_func = rl_filename_completion_function;\n    }\n    quote_char_8483 = '\0';\n    delimiter_8484 = 0;\n    found_quote = 0;\n    orig_end_8482 = rl_point;\n    iVar2 = 0;\n    if (rl_point != 0) {\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }\n    orig_start_8481 = rl_point;\n    from = rl_point;\n    rl_point = iVar2;\n    orig_text_8475 = rl_copy_text(from,iVar2);\n    matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483);\n    if (matches_8476 == (char **)0x0) {\n      nontrivial_lcd_8479 = 0;\n    }\n    else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (matches_8476 != (char **)0x0) {\n      free(matches_8476);\n    }\n    matches_8476 = (char **)0x0;\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    orig_text_8475 = (char *)0x0;\n    completion_changed_buffer = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "int rl_backward_menu_complete(int count,int key)\n\n{\n  uint uVar1;\n  int from;\n  int iVar2;\n  size_t sVar3;\n  char **ppcVar4;\n  char **ppcVar5;\n  rl_compentry_func_t *our_func;\n  char *pcVar6;\n  int in_GS_OFFSET;\n  int found_quote;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (full_completion_8480 == 0)) {\nLAB_000ed3ee:\n    if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    match_list_index_8477 = match_list_index_8477 - count;\n    if (match_list_index_8477 < 0) {\n      do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);\n    }\n    else {\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }\n    if ((match_list_size_8478 < 2) || (match_list_index_8477 != 0)) {\n      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);\n      pcVar6 = matches_8476[match_list_index_8477];\n      iVar2 = strcmp(orig_text_8475,pcVar6);\n      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);\n    }\n    else {\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }\n    completion_changed_buffer = 1;\n  }\n  else {\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    ppcVar5 = matches_8476;\n    if (matches_8476 != (char **)0x0) {\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }\n    match_list_size_8478 = 0;\n    match_list_index_8477 = 0;\n    matches_8476 = (char **)0x0;\n    full_completion_8480 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    _rl_complete_display_matches_interrupt = 0;\n    our_func = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {\n      our_func = rl_filename_completion_function;\n    }\n    quote_char_8483 = '\0';\n    delimiter_8484 = 0;\n    found_quote = 0;\n    orig_end_8482 = rl_point;\n    iVar2 = 0;\n    if (rl_point != 0) {\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }\n    orig_start_8481 = rl_point;\n    from = rl_point;\n    rl_point = iVar2;\n    orig_text_8475 = rl_copy_text(from,iVar2);\n    matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483);\n    if (matches_8476 == (char **)0x0) {\n      nontrivial_lcd_8479 = 0;\n    }\n    else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (matches_8476 != (char **)0x0) {\n      free(matches_8476);\n    }\n    matches_8476 = (char **)0x0;\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    orig_text_8475 = (char *)0x0;\n    completion_changed_buffer = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "rl_backward_menu_complete(int count,int key)" identifier (parameter_list "(int count,int key)" ( (parameter_declaration "int count" primitive_type identifier) , (parameter_declaration "int key" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  int from;\n  int iVar2;\n  size_t sVar3;\n  char **ppcVar4;\n  char **ppcVar5;\n  rl_compentry_func_t *our_func;\n  char *pcVar6;\n  int in_GS_OFFSET;\n  int found_quote;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (full_completion_8480 == 0)) {\nLAB_000ed3ee:\n    if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    match_list_index_8477 = match_list_index_8477 - count;\n    if (match_list_index_8477 < 0) {\n      do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);\n    }\n    else {\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }\n    if ((match_list_size_8478 < 2) || (match_list_index_8477 != 0)) {\n      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);\n      pcVar6 = matches_8476[match_list_index_8477];\n      iVar2 = strcmp(orig_text_8475,pcVar6);\n      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);\n    }\n    else {\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }\n    completion_changed_buffer = 1;\n  }\n  else {\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    ppcVar5 = matches_8476;\n    if (matches_8476 != (char **)0x0) {\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }\n    match_list_size_8478 = 0;\n    match_list_index_8477 = 0;\n    matches_8476 = (char **)0x0;\n    full_completion_8480 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    _rl_complete_display_matches_interrupt = 0;\n    our_func = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {\n      our_func = rl_filename_completion_function;\n    }\n    quote_char_8483 = '\0';\n    delimiter_8484 = 0;\n    found_quote = 0;\n    orig_end_8482 = rl_point;\n    iVar2 = 0;\n    if (rl_point != 0) {\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }\n    orig_start_8481 = rl_point;\n    from = rl_point;\n    rl_point = iVar2;\n    orig_text_8475 = rl_copy_text(from,iVar2);\n    matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483);\n    if (matches_8476 == (char **)0x0) {\n      nontrivial_lcd_8479 = 0;\n    }\n    else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (matches_8476 != (char **)0x0) {\n      free(matches_8476);\n    }\n    matches_8476 = (char **)0x0;\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    orig_text_8475 = (char *)0x0;\n    completion_changed_buffer = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int from;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "char **ppcVar4;" primitive_type (pointer_declarator "**ppcVar4" * (pointer_declarator "*ppcVar4" * identifier)) ;) (declaration "char **ppcVar5;" primitive_type (pointer_declarator "**ppcVar5" * (pointer_declarator "*ppcVar5" * identifier)) ;) (declaration "rl_compentry_func_t *our_func;" type_identifier (pointer_declarator "*our_func" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int found_quote;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xed0c9;" (assignment_expression "uStack_14 = 0xed0c9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (full_completion_8480 == 0)) {\nLAB_000ed3ee:\n    if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    match_list_index_8477 = match_list_index_8477 - count;\n    if (match_list_index_8477 < 0) {\n      do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);\n    }\n    else {\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }\n    if ((match_list_size_8478 < 2) || (match_list_index_8477 != 0)) {\n      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);\n      pcVar6 = matches_8476[match_list_index_8477];\n      iVar2 = strcmp(orig_text_8475,pcVar6);\n      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);\n    }\n    else {\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }\n    completion_changed_buffer = 1;\n  }\n  else {\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    ppcVar5 = matches_8476;\n    if (matches_8476 != (char **)0x0) {\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }\n    match_list_size_8478 = 0;\n    match_list_index_8477 = 0;\n    matches_8476 = (char **)0x0;\n    full_completion_8480 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    _rl_complete_display_matches_interrupt = 0;\n    our_func = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {\n      our_func = rl_filename_completion_function;\n    }\n    quote_char_8483 = '\0';\n    delimiter_8484 = 0;\n    found_quote = 0;\n    orig_end_8482 = rl_point;\n    iVar2 = 0;\n    if (rl_point != 0) {\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }\n    orig_start_8481 = rl_point;\n    from = rl_point;\n    rl_point = iVar2;\n    orig_text_8475 = rl_copy_text(from,iVar2);\n    matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483);\n    if (matches_8476 == (char **)0x0) {\n      nontrivial_lcd_8479 = 0;\n    }\n    else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (matches_8476 != (char **)0x0) {\n      free(matches_8476);\n    }\n    matches_8476 = (char **)0x0;\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    orig_text_8475 = (char *)0x0;\n    completion_changed_buffer = 0;\n  }" if (parenthesized_expression "(((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (full_completion_8480 == 0))" ( (binary_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (full_completion_8480 == 0)" (parenthesized_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete))" ( (binary_expression "(rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)" (parenthesized_expression "(rl_last_func == rl_menu_complete)" ( (binary_expression "rl_last_func == rl_menu_complete" identifier == identifier) )) || (parenthesized_expression "(rl_last_func == rl_backward_menu_complete)" ( (binary_expression "rl_last_func == rl_backward_menu_complete" identifier == identifier) ))) )) && (parenthesized_expression "(full_completion_8480 == 0)" ( (binary_expression "full_completion_8480 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000ed3ee:\n    if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    match_list_index_8477 = match_list_index_8477 - count;\n    if (match_list_index_8477 < 0) {\n      do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);\n    }\n    else {\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }\n    if ((match_list_size_8478 < 2) || (match_list_index_8477 != 0)) {\n      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);\n      pcVar6 = matches_8476[match_list_index_8477];\n      iVar2 = strcmp(orig_text_8475,pcVar6);\n      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);\n    }\n    else {\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }\n    completion_changed_buffer = 1;\n  }" { (labeled_statement "LAB_000ed3ee:\n    if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }" statement_identifier : (if_statement "if ((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)) {\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }" if (parenthesized_expression "((matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0))" ( (binary_expression "(matches_8476 == (char **)0x0) || (ppcVar5 = matches_8476, match_list_size_8478 == 0)" (parenthesized_expression "(matches_8476 == (char **)0x0)" ( (binary_expression "matches_8476 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) || (parenthesized_expression "(ppcVar5 = matches_8476, match_list_size_8478 == 0)" ( (comma_expression "ppcVar5 = matches_8476, match_list_size_8478 == 0" (assignment_expression "ppcVar5 = matches_8476" identifier = identifier) , (binary_expression "match_list_size_8478 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      rl_ding();\n      if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }\n      matches_8476 = (char **)0x0;\n      completion_changed_buffer = 0;\n      goto LAB_000ed4cf;\n    }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (matches_8476 != (char **)0x0) {\n        free(matches_8476);\n      }" if (parenthesized_expression "(matches_8476 != (char **)0x0)" ( (binary_expression "matches_8476 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        free(matches_8476);\n      }" { (expression_statement "free(matches_8476);" (call_expression "free(matches_8476)" identifier (argument_list "(matches_8476)" ( identifier ))) ;) })) (expression_statement "matches_8476 = (char **)0x0;" (assignment_expression "matches_8476 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "completion_changed_buffer = 0;" (assignment_expression "completion_changed_buffer = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) }))) (labeled_statement "LAB_000ed37b:\n    match_list_index_8477 = match_list_index_8477 - count;" statement_identifier : (expression_statement "match_list_index_8477 = match_list_index_8477 - count;" (assignment_expression "match_list_index_8477 = match_list_index_8477 - count" identifier = (binary_expression "match_list_index_8477 - count" identifier - identifier)) ;)) (if_statement "if (match_list_index_8477 < 0) {\n      do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);\n    }\n    else {\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }" if (parenthesized_expression "(match_list_index_8477 < 0)" ( (binary_expression "match_list_index_8477 < 0" identifier < number_literal) )) (compound_statement "{\n      do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);\n    }" { (do_statement "do {\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      } while (match_list_index_8477 < 0);" do (compound_statement "{\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n        if (-1 < match_list_index_8477) break;\n        match_list_index_8477 = match_list_index_8477 + match_list_size_8478;\n      }" { (expression_statement "match_list_index_8477 = match_list_index_8477 + match_list_size_8478;" (assignment_expression "match_list_index_8477 = match_list_index_8477 + match_list_size_8478" identifier = (binary_expression "match_list_index_8477 + match_list_size_8478" identifier + identifier)) ;) (if_statement "if (-1 < match_list_index_8477) break;" if (parenthesized_expression "(-1 < match_list_index_8477)" ( (binary_expression "-1 < match_list_index_8477" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "match_list_index_8477 = match_list_index_8477 + match_list_size_8478;" (assignment_expression "match_list_index_8477 = match_list_index_8477 + match_list_size_8478" identifier = (binary_expression "match_list_index_8477 + match_list_size_8478" identifier + identifier)) ;) }) while (parenthesized_expression "(match_list_index_8477 < 0)" ( (binary_expression "match_list_index_8477 < 0" identifier < number_literal) )) ;) }) (else_clause "else {\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }" else (compound_statement "{\n      match_list_index_8477 = match_list_index_8477 % match_list_size_8478;\n    }" { (expression_statement "match_list_index_8477 = match_list_index_8477 % match_list_size_8478;" (assignment_expression "match_list_index_8477 = match_list_index_8477 % match_list_size_8478" identifier = (binary_expression "match_list_index_8477 % match_list_size_8478" identifier % identifier)) ;) }))) (if_statement "if ((match_list_size_8478 < 2) || (match_list_index_8477 != 0)) {\n      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);\n      pcVar6 = matches_8476[match_list_index_8477];\n      iVar2 = strcmp(orig_text_8475,pcVar6);\n      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);\n    }\n    else {\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }" if (parenthesized_expression "((match_list_size_8478 < 2) || (match_list_index_8477 != 0))" ( (binary_expression "(match_list_size_8478 < 2) || (match_list_index_8477 != 0)" (parenthesized_expression "(match_list_size_8478 < 2)" ( (binary_expression "match_list_size_8478 < 2" identifier < number_literal) )) || (parenthesized_expression "(match_list_index_8477 != 0)" ( (binary_expression "match_list_index_8477 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);\n      pcVar6 = matches_8476[match_list_index_8477];\n      iVar2 = strcmp(orig_text_8475,pcVar6);\n      append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);\n    }" { (expression_statement "insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483);" (call_expression "insert_match(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483)" identifier (argument_list "(ppcVar5[match_list_index_8477],orig_start_8481,1,&quote_char_8483)" ( (subscript_expression "ppcVar5[match_list_index_8477]" identifier [ identifier ]) , identifier , number_literal , (pointer_expression "&quote_char_8483" & identifier) ))) ;) (expression_statement "pcVar6 = matches_8476[match_list_index_8477];" (assignment_expression "pcVar6 = matches_8476[match_list_index_8477]" identifier = (subscript_expression "matches_8476[match_list_index_8477]" identifier [ identifier ])) ;) (expression_statement "iVar2 = strcmp(orig_text_8475,pcVar6);" (assignment_expression "iVar2 = strcmp(orig_text_8475,pcVar6)" identifier = (call_expression "strcmp(orig_text_8475,pcVar6)" identifier (argument_list "(orig_text_8475,pcVar6)" ( identifier , identifier )))) ;) (expression_statement "append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2);" (call_expression "append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2)" identifier (argument_list "(pcVar6,delimiter_8484,(int)quote_char_8483,iVar2)" ( identifier , identifier , (cast_expression "(int)quote_char_8483" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) }) (else_clause "else {\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }" else (compound_statement "{\n      rl_ding();\n      insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);\n    }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (expression_statement "insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483);" (call_expression "insert_match(*matches_8476,orig_start_8481,2,&quote_char_8483)" identifier (argument_list "(*matches_8476,orig_start_8481,2,&quote_char_8483)" ( (pointer_expression "*matches_8476" * identifier) , identifier , number_literal , (pointer_expression "&quote_char_8483" & identifier) ))) ;) }))) (expression_statement "completion_changed_buffer = 1;" (assignment_expression "completion_changed_buffer = 1" identifier = number_literal) ;) }) (else_clause "else {\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    ppcVar5 = matches_8476;\n    if (matches_8476 != (char **)0x0) {\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }\n    match_list_size_8478 = 0;\n    match_list_index_8477 = 0;\n    matches_8476 = (char **)0x0;\n    full_completion_8480 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    _rl_complete_display_matches_interrupt = 0;\n    our_func = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {\n      our_func = rl_filename_completion_function;\n    }\n    quote_char_8483 = '\0';\n    delimiter_8484 = 0;\n    found_quote = 0;\n    orig_end_8482 = rl_point;\n    iVar2 = 0;\n    if (rl_point != 0) {\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }\n    orig_start_8481 = rl_point;\n    from = rl_point;\n    rl_point = iVar2;\n    orig_text_8475 = rl_copy_text(from,iVar2);\n    matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483);\n    if (matches_8476 == (char **)0x0) {\n      nontrivial_lcd_8479 = 0;\n    }\n    else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (matches_8476 != (char **)0x0) {\n      free(matches_8476);\n    }\n    matches_8476 = (char **)0x0;\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    orig_text_8475 = (char *)0x0;\n    completion_changed_buffer = 0;\n  }" else (compound_statement "{\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    ppcVar5 = matches_8476;\n    if (matches_8476 != (char **)0x0) {\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }\n    match_list_size_8478 = 0;\n    match_list_index_8477 = 0;\n    matches_8476 = (char **)0x0;\n    full_completion_8480 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    _rl_complete_display_matches_interrupt = 0;\n    our_func = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {\n      our_func = rl_filename_completion_function;\n    }\n    quote_char_8483 = '\0';\n    delimiter_8484 = 0;\n    found_quote = 0;\n    orig_end_8482 = rl_point;\n    iVar2 = 0;\n    if (rl_point != 0) {\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }\n    orig_start_8481 = rl_point;\n    from = rl_point;\n    rl_point = iVar2;\n    orig_text_8475 = rl_copy_text(from,iVar2);\n    matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483);\n    if (matches_8476 == (char **)0x0) {\n      nontrivial_lcd_8479 = 0;\n    }\n    else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (matches_8476 != (char **)0x0) {\n      free(matches_8476);\n    }\n    matches_8476 = (char **)0x0;\n    if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    orig_text_8475 = (char *)0x0;\n    completion_changed_buffer = 0;\n  }" { (if_statement "if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }" if (parenthesized_expression "(orig_text_8475 != (char *)0x0)" ( (binary_expression "orig_text_8475 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(orig_text_8475);\n    }" { (expression_statement "free(orig_text_8475);" (call_expression "free(orig_text_8475)" identifier (argument_list "(orig_text_8475)" ( identifier ))) ;) })) (expression_statement "ppcVar5 = matches_8476;" (assignment_expression "ppcVar5 = matches_8476" identifier = identifier) ;) (if_statement "if (matches_8476 != (char **)0x0) {\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }" if (parenthesized_expression "(matches_8476 != (char **)0x0)" ( (binary_expression "matches_8476 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      pcVar6 = *matches_8476;\n      ppcVar4 = matches_8476;\n      while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }\n      xfree(ppcVar5);\n    }" { (expression_statement "pcVar6 = *matches_8476;" (assignment_expression "pcVar6 = *matches_8476" identifier = (pointer_expression "*matches_8476" * identifier)) ;) (expression_statement "ppcVar4 = matches_8476;" (assignment_expression "ppcVar4 = matches_8476" identifier = identifier) ;) (while_statement "while (pcVar6 != (char *)0x0) {\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }" while (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ppcVar4 = ppcVar4 + 1;\n        xfree(pcVar6);\n        pcVar6 = *ppcVar4;\n      }" { (expression_statement "ppcVar4 = ppcVar4 + 1;" (assignment_expression "ppcVar4 = ppcVar4 + 1" identifier = (binary_expression "ppcVar4 + 1" identifier + number_literal)) ;) (expression_statement "xfree(pcVar6);" (call_expression "xfree(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (expression_statement "pcVar6 = *ppcVar4;" (assignment_expression "pcVar6 = *ppcVar4" identifier = (pointer_expression "*ppcVar4" * identifier)) ;) })) (expression_statement "xfree(ppcVar5);" (call_expression "xfree(ppcVar5)" identifier (argument_list "(ppcVar5)" ( identifier ))) ;) })) (expression_statement "match_list_size_8478 = 0;" (assignment_expression "match_list_size_8478 = 0" identifier = number_literal) ;) (expression_statement "match_list_index_8477 = 0;" (assignment_expression "match_list_index_8477 = 0" identifier = number_literal) ;) (expression_statement "matches_8476 = (char **)0x0;" (assignment_expression "matches_8476 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "full_completion_8480 = 0;" (assignment_expression "full_completion_8480 = 0" identifier = number_literal) ;) (expression_statement "rl_readline_state = rl_readline_state | 0x4000;" (assignment_expression "rl_readline_state = rl_readline_state | 0x4000" identifier = (binary_expression "rl_readline_state | 0x4000" identifier | number_literal)) ;) (expression_statement "rl_filename_completion_desired = 0;" (assignment_expression "rl_filename_completion_desired = 0" identifier = number_literal) ;) (expression_statement "rl_filename_quoting_desired = 1;" (assignment_expression "rl_filename_quoting_desired = 1" identifier = number_literal) ;) (expression_statement "rl_completion_type = 0x25;" (assignment_expression "rl_completion_type = 0x25" identifier = number_literal) ;) (expression_statement "rl_completion_suppress_quote = 0;" (assignment_expression "rl_completion_suppress_quote = 0" identifier = number_literal) ;) (expression_statement "rl_completion_suppress_append = 0;" (assignment_expression "rl_completion_suppress_append = 0" identifier = number_literal) ;) (expression_statement "rl_completion_append_character = 0x20;" (assignment_expression "rl_completion_append_character = 0x20" identifier = number_literal) ;) (expression_statement "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;" (assignment_expression "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs" identifier = identifier) ;) (expression_statement "_rl_complete_display_matches_interrupt = 0;" (assignment_expression "_rl_complete_display_matches_interrupt = 0" identifier = number_literal) ;) (expression_statement "our_func = rl_menu_completion_entry_function;" (assignment_expression "our_func = rl_menu_completion_entry_function" identifier = identifier) ;) (if_statement "if ((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)) {\n      our_func = rl_filename_completion_function;\n    }" if (parenthesized_expression "((rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0))" ( (binary_expression "(rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0) &&\n       (our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)" (parenthesized_expression "(rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0)" ( (binary_expression "rl_menu_completion_entry_function == (rl_compentry_func_t *)0x0" identifier == (cast_expression "(rl_compentry_func_t *)0x0" ( (type_descriptor "rl_compentry_func_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0)" ( (comma_expression "our_func = rl_completion_entry_function,\n       rl_completion_entry_function == (rl_compentry_func_t *)0x0" (assignment_expression "our_func = rl_completion_entry_function" identifier = identifier) , (binary_expression "rl_completion_entry_function == (rl_compentry_func_t *)0x0" identifier == (cast_expression "(rl_compentry_func_t *)0x0" ( (type_descriptor "rl_compentry_func_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      our_func = rl_filename_completion_function;\n    }" { (expression_statement "our_func = rl_filename_completion_function;" (assignment_expression "our_func = rl_filename_completion_function" identifier = identifier) ;) })) (expression_statement "quote_char_8483 = '\0';" (assignment_expression "quote_char_8483 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "delimiter_8484 = 0;" (assignment_expression "delimiter_8484 = 0" identifier = number_literal) ;) (expression_statement "found_quote = 0;" (assignment_expression "found_quote = 0" identifier = number_literal) ;) (expression_statement "orig_end_8482 = rl_point;" (assignment_expression "orig_end_8482 = rl_point" identifier = identifier) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (if_statement "if (rl_point != 0) {\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }" if (parenthesized_expression "(rl_point != 0)" ( (binary_expression "rl_point != 0" identifier != number_literal) )) (compound_statement "{\n      quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);\n      iVar2 = orig_end_8482;\n    }" { (expression_statement "quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484);" (assignment_expression "quote_char_8483 = _rl_find_completion_word(&found_quote,&delimiter_8484)" identifier = (call_expression "_rl_find_completion_word(&found_quote,&delimiter_8484)" identifier (argument_list "(&found_quote,&delimiter_8484)" ( (pointer_expression "&found_quote" & identifier) , (pointer_expression "&delimiter_8484" & identifier) )))) ;) (expression_statement "iVar2 = orig_end_8482;" (assignment_expression "iVar2 = orig_end_8482" identifier = identifier) ;) })) (expression_statement "orig_start_8481 = rl_point;" (assignment_expression "orig_start_8481 = rl_point" identifier = identifier) ;) (expression_statement "from = rl_point;" (assignment_expression "from = rl_point" identifier = identifier) ;) (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" identifier = identifier) ;) (expression_statement "orig_text_8475 = rl_copy_text(from,iVar2);" (assignment_expression "orig_text_8475 = rl_copy_text(from,iVar2)" identifier = (call_expression "rl_copy_text(from,iVar2)" identifier (argument_list "(from,iVar2)" ( identifier , identifier )))) ;) (expression_statement "matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483);" (assignment_expression "matches_8476 = gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483)" identifier = (call_expression "gen_completion_matches\n                             (orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483)" identifier (argument_list "(orig_text_8475,orig_start_8481,orig_end_8482,our_func,found_quote,\n                              (int)quote_char_8483)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(int)quote_char_8483" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (if_statement "if (matches_8476 == (char **)0x0) {\n      nontrivial_lcd_8479 = 0;\n    }\n    else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" if (parenthesized_expression "(matches_8476 == (char **)0x0)" ( (binary_expression "matches_8476 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      nontrivial_lcd_8479 = 0;\n    }" { (expression_statement "nontrivial_lcd_8479 = 0;" (assignment_expression "nontrivial_lcd_8479 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" else (compound_statement "{\n      iVar2 = strcmp(orig_text_8475,*matches_8476);\n      nontrivial_lcd_8479 = (uint)(iVar2 != 0);\n      iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);\n      if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" { (expression_statement "iVar2 = strcmp(orig_text_8475,*matches_8476);" (assignment_expression "iVar2 = strcmp(orig_text_8475,*matches_8476)" identifier = (call_expression "strcmp(orig_text_8475,*matches_8476)" identifier (argument_list "(orig_text_8475,*matches_8476)" ( identifier , (pointer_expression "*matches_8476" * identifier) )))) ;) (expression_statement "nontrivial_lcd_8479 = (uint)(iVar2 != 0);" (assignment_expression "nontrivial_lcd_8479 = (uint)(iVar2 != 0)" identifier = (call_expression "(uint)(iVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )))) ;) (expression_statement "iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired);" (assignment_expression "iVar2 = postprocess_matches(&matches_8476,rl_filename_completion_desired)" identifier = (call_expression "postprocess_matches(&matches_8476,rl_filename_completion_desired)" identifier (argument_list "(&matches_8476,rl_filename_completion_desired)" ( (pointer_expression "&matches_8476" & identifier) , identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        match_list_size_8478 = 0;\n        pcVar6 = *matches_8476;\n        iVar2 = 1;\n        if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);\n        ppcVar5 = matches_8476;\n        uVar1 = completion_changed_buffer;\n        if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }\n        completion_changed_buffer = uVar1;\n        if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" { (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" identifier = (binary_expression "rl_readline_state & 0xffffbfff" identifier & number_literal)) ;) (expression_statement "match_list_size_8478 = 0;" (assignment_expression "match_list_size_8478 = 0" identifier = number_literal) ;) (expression_statement "pcVar6 = *matches_8476;" (assignment_expression "pcVar6 = *matches_8476" identifier = (pointer_expression "*matches_8476" * identifier)) ;) (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (if_statement "if (pcVar6 == (char *)0x0) {\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          rl_ding();\n          if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }\n          matches_8476 = (char **)0x0;\n          match_list_index_8477 = 0;\n          completion_changed_buffer = 0;\n          goto LAB_000ed4cf;\n        }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (matches_8476 != (char **)0x0) {\n            free(matches_8476);\n          }" if (parenthesized_expression "(matches_8476 != (char **)0x0)" ( (binary_expression "matches_8476 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            free(matches_8476);\n          }" { (expression_statement "free(matches_8476);" (call_expression "free(matches_8476)" identifier (argument_list "(matches_8476)" ( identifier ))) ;) })) (expression_statement "matches_8476 = (char **)0x0;" (assignment_expression "matches_8476 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "match_list_index_8477 = 0;" (assignment_expression "match_list_index_8477 = 0" identifier = number_literal) ;) (expression_statement "completion_changed_buffer = 0;" (assignment_expression "completion_changed_buffer = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (do_statement "do {\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        } while (matches_8476[match_list_size_8478] != (char *)0x0);" do (compound_statement "{\n          match_list_size_8478 = iVar2;\n          iVar2 = match_list_size_8478 + 1;\n        }" { (expression_statement "match_list_size_8478 = iVar2;" (assignment_expression "match_list_size_8478 = iVar2" identifier = identifier) ;) (expression_statement "iVar2 = match_list_size_8478 + 1;" (assignment_expression "iVar2 = match_list_size_8478 + 1" identifier = (binary_expression "match_list_size_8478 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(matches_8476[match_list_size_8478] != (char *)0x0)" ( (binary_expression "matches_8476[match_list_size_8478] != (char *)0x0" (subscript_expression "matches_8476[match_list_size_8478]" identifier [ identifier ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "ppcVar5 = matches_8476;" (assignment_expression "ppcVar5 = matches_8476" identifier = identifier) ;) (expression_statement "uVar1 = completion_changed_buffer;" (assignment_expression "uVar1 = completion_changed_buffer" identifier = identifier) ;) (if_statement "if (*pcVar6 != '\0') {\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }" if (parenthesized_expression "(*pcVar6 != '\0')" ( (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;\n          ppcVar5 = matches_8476;\n          pcVar6 = *matches_8476;\n          sVar3 = strlen(pcVar6);\n          orig_end_8482 = sVar3 + orig_start_8481;\n          uVar1 = 1;\n          if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }\n        }" { (expression_statement "insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)\n          ;" (call_expression "insert_match(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)" identifier (argument_list "(pcVar6,orig_start_8481,(matches_8476[1] != (char *)0x0) + 1,&quote_char_8483)" ( identifier , identifier , (binary_expression "(matches_8476[1] != (char *)0x0) + 1" (parenthesized_expression "(matches_8476[1] != (char *)0x0)" ( (binary_expression "matches_8476[1] != (char *)0x0" (subscript_expression "matches_8476[1]" identifier [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) + number_literal) , (pointer_expression "&quote_char_8483" & identifier) ))) ;) (expression_statement "ppcVar5 = matches_8476;" (assignment_expression "ppcVar5 = matches_8476" identifier = identifier) ;) (expression_statement "pcVar6 = *matches_8476;" (assignment_expression "pcVar6 = *matches_8476" identifier = (pointer_expression "*matches_8476" * identifier)) ;) (expression_statement "sVar3 = strlen(pcVar6);" (assignment_expression "sVar3 = strlen(pcVar6)" identifier = (call_expression "strlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "orig_end_8482 = sVar3 + orig_start_8481;" (assignment_expression "orig_end_8482 = sVar3 + orig_start_8481" identifier = (binary_expression "sVar3 + orig_start_8481" identifier + identifier)) ;) (expression_statement "uVar1 = 1;" (assignment_expression "uVar1 = 1" identifier = number_literal) ;) (if_statement "if (*orig_text_8475 == *pcVar6) {\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }" if (parenthesized_expression "(*orig_text_8475 == *pcVar6)" ( (binary_expression "*orig_text_8475 == *pcVar6" (pointer_expression "*orig_text_8475" * identifier) == (pointer_expression "*pcVar6" * identifier)) )) (compound_statement "{\n            iVar2 = strcmp(orig_text_8475,pcVar6);\n            uVar1 = (uint)(iVar2 != 0);\n          }" { (expression_statement "iVar2 = strcmp(orig_text_8475,pcVar6);" (assignment_expression "iVar2 = strcmp(orig_text_8475,pcVar6)" identifier = (call_expression "strcmp(orig_text_8475,pcVar6)" identifier (argument_list "(orig_text_8475,pcVar6)" ( identifier , identifier )))) ;) (expression_statement "uVar1 = (uint)(iVar2 != 0);" (assignment_expression "uVar1 = (uint)(iVar2 != 0)" identifier = (call_expression "(uint)(iVar2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )))) ;) })) })) (expression_statement "completion_changed_buffer = uVar1;" (assignment_expression "completion_changed_buffer = uVar1" identifier = identifier) ;) (if_statement "if (match_list_size_8478 < 2) {\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }" if (parenthesized_expression "(match_list_size_8478 < 2)" ( (binary_expression "match_list_size_8478 < 2" identifier < number_literal) )) (compound_statement "{\n          append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);\n          full_completion_8480 = 1;\n          goto LAB_000ed4cf;\n        }" { (expression_statement "append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);" (call_expression "append_to_match(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479)" identifier (argument_list "(pcVar6,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479)" ( identifier , identifier , (cast_expression "(int)quote_char_8483" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "full_completion_8480 = 1;" (assignment_expression "full_completion_8480 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (if_statement "if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" if (parenthesized_expression "(_rl_complete_show_all == 0)" ( (binary_expression "_rl_complete_show_all == 0" identifier == number_literal) )) (compound_statement "{\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }" { (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;" if (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" ( (binary_expression "_rl_menu_complete_prefix_first == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ed37b;" goto statement_identifier ;)) }) (else_clause "else {\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" else (compound_statement "{\n          display_matches(ppcVar5);\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" { (expression_statement "display_matches(ppcVar5);" (call_expression "display_matches(ppcVar5)" identifier (argument_list "(ppcVar5)" ( identifier ))) ;) (if_statement "if ((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             ) {\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }" if (parenthesized_expression "((0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)\n             )" ( (binary_expression "(0 < rl_completion_query_items) && (rl_completion_query_items <= match_list_size_8478)" (parenthesized_expression "(0 < rl_completion_query_items)" ( (binary_expression "0 < rl_completion_query_items" number_literal < identifier) )) && (parenthesized_expression "(rl_completion_query_items <= match_list_size_8478)" ( (binary_expression "rl_completion_query_items <= match_list_size_8478" identifier <= identifier) ))) )) (compound_statement "{\n            rl_ding();\n            if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }\n            matches_8476 = (char **)0x0;\n            full_completion_8480 = 1;\n            goto LAB_000ed4cf;\n          }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (matches_8476 != (char **)0x0) {\n              free(matches_8476);\n            }" if (parenthesized_expression "(matches_8476 != (char **)0x0)" ( (binary_expression "matches_8476 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              free(matches_8476);\n            }" { (expression_statement "free(matches_8476);" (call_expression "free(matches_8476)" identifier (argument_list "(matches_8476)" ( identifier ))) ;) })) (expression_statement "matches_8476 = (char **)0x0;" (assignment_expression "matches_8476 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "full_completion_8480 = 1;" (assignment_expression "full_completion_8480 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;" if (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" ( (binary_expression "_rl_menu_complete_prefix_first == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ed3ee;" goto statement_identifier ;)) }))) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) }))) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (matches_8476 != (char **)0x0) {\n      free(matches_8476);\n    }" if (parenthesized_expression "(matches_8476 != (char **)0x0)" ( (binary_expression "matches_8476 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      free(matches_8476);\n    }" { (expression_statement "free(matches_8476);" (call_expression "free(matches_8476)" identifier (argument_list "(matches_8476)" ( identifier ))) ;) })) (expression_statement "matches_8476 = (char **)0x0;" (assignment_expression "matches_8476 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (orig_text_8475 != (char *)0x0) {\n      free(orig_text_8475);\n    }" if (parenthesized_expression "(orig_text_8475 != (char *)0x0)" ( (binary_expression "orig_text_8475 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(orig_text_8475);\n    }" { (expression_statement "free(orig_text_8475);" (call_expression "free(orig_text_8475)" identifier (argument_list "(orig_text_8475)" ( identifier ))) ;) })) (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" identifier = (binary_expression "rl_readline_state & 0xffffbfff" identifier & number_literal)) ;) (expression_statement "orig_text_8475 = (char *)0x0;" (assignment_expression "orig_text_8475 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "completion_changed_buffer = 0;" (assignment_expression "completion_changed_buffer = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "undefined4 rl_backward_menu_complete(int param_1)\n\n{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    \n  FUN_0010f8b0();\n}\n\n" (function_definition "undefined4 rl_backward_menu_complete(int param_1)\n\n{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    \n  FUN_0010f8b0();\n}" type_identifier (function_declarator "rl_backward_menu_complete(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    \n  FUN_0010f8b0();\n}" { (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0xed0c9;" (assignment_expression "uStack_14 = 0xed0c9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" if (parenthesized_expression "(((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0))" ( (binary_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)" (parenthesized_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete))" ( (binary_expression "(rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)" (parenthesized_expression "(rl_last_func == rl_menu_complete)" ( (binary_expression "rl_last_func == rl_menu_complete" identifier == identifier) )) || (parenthesized_expression "(rl_last_func == rl_backward_menu_complete)" ( (binary_expression "rl_last_func == rl_backward_menu_complete" identifier == identifier) ))) )) && (parenthesized_expression "(DAT_00179df8 == 0)" ( (binary_expression "DAT_00179df8 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }" { (labeled_statement "LAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" statement_identifier : (if_statement "if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" if (parenthesized_expression "((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0))" ( (binary_expression "(DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)" (parenthesized_expression "(DAT_00179df0 == (int *)0x0)" ( (binary_expression "DAT_00179df0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(DAT_00179dec == 0)" ( (binary_expression "DAT_00179dec == 0" identifier == number_literal) ))) )) (compound_statement "{\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free(DAT_00179df0);\n      }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) }))) (labeled_statement "LAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;" statement_identifier : (expression_statement "DAT_00179de8 = DAT_00179de8 - param_1;" (assignment_expression "DAT_00179de8 = DAT_00179de8 - param_1" identifier = (binary_expression "DAT_00179de8 - param_1" identifier - identifier)) ;)) (if_statement "if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" if (parenthesized_expression "(DAT_00179de8 < 0)" ( (binary_expression "DAT_00179de8 < 0" identifier < number_literal) )) (compound_statement "{\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }" { (do_statement "do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);" do (compound_statement "{\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      }" { (expression_statement "DAT_00179de8 = DAT_00179de8 + DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 + DAT_00179dec" identifier = (binary_expression "DAT_00179de8 + DAT_00179dec" identifier + identifier)) ;) (if_statement "if (-1 < DAT_00179de8) break;" if (parenthesized_expression "(-1 < DAT_00179de8)" ( (binary_expression "-1 < DAT_00179de8" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "DAT_00179de8 = DAT_00179de8 + DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 + DAT_00179dec" identifier = (binary_expression "DAT_00179de8 + DAT_00179dec" identifier + identifier)) ;) }) while (parenthesized_expression "(DAT_00179de8 < 0)" ( (binary_expression "DAT_00179de8 < 0" identifier < number_literal) )) ;) }) (else_clause "else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" else (compound_statement "{\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" { (expression_statement "DAT_00179de8 = DAT_00179de8 % DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 % DAT_00179dec" identifier = (binary_expression "DAT_00179de8 % DAT_00179dec" identifier % identifier)) ;) }))) (if_statement "if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" if (parenthesized_expression "((DAT_00179dec < 2) || (DAT_00179de8 != 0))" ( (binary_expression "(DAT_00179dec < 2) || (DAT_00179de8 != 0)" (parenthesized_expression "(DAT_00179dec < 2)" ( (binary_expression "DAT_00179dec < 2" identifier < number_literal) )) || (parenthesized_expression "(DAT_00179de8 != 0)" ( (binary_expression "DAT_00179de8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }" { (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" identifier (argument_list "(&DAT_00179ddc)" ( (pointer_expression "&DAT_00179ddc" & identifier) ))) ;) (expression_statement "iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" identifier = (call_expression "strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" identifier (argument_list "(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" ( identifier , (cast_expression "(char *)DAT_00179df0[DAT_00179de8]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00179df0[DAT_00179de8]" identifier [ identifier ])) )))) ;) (expression_statement "FUN_000ea870(iVar4);" (call_expression "FUN_000ea870(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) }) (else_clause "else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" else (compound_statement "{\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" identifier (argument_list "(&DAT_00179ddc)" ( (pointer_expression "&DAT_00179ddc" & identifier) ))) ;) }))) (expression_statement "DAT_00179e48 = 1;" (assignment_expression "DAT_00179e48 = 1" identifier = number_literal) ;) }) (else_clause "else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" else (compound_statement "{\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" { (if_statement "if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }" if (parenthesized_expression "(DAT_00179df4 != (char *)0x0)" ( (binary_expression "DAT_00179df4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_00179df4);\n    }" { (expression_statement "free(DAT_00179df4);" (call_expression "free(DAT_00179df4)" identifier (argument_list "(DAT_00179df4)" ( identifier ))) ;) })) (expression_statement "piVar1 = DAT_00179df0;" (assignment_expression "piVar1 = DAT_00179df0" identifier = identifier) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }" { (expression_statement "iVar4 = *DAT_00179df0;" (assignment_expression "iVar4 = *DAT_00179df0" identifier = (pointer_expression "*DAT_00179df0" * identifier)) ;) (expression_statement "piVar6 = DAT_00179df0;" (assignment_expression "piVar6 = DAT_00179df0" identifier = identifier) ;) (while_statement "while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }" while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }" { (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" identifier = (binary_expression "piVar6 + 1" identifier + number_literal)) ;) (expression_statement "xfree(iVar4);" (call_expression "xfree(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) })) (expression_statement "xfree(piVar1);" (call_expression "xfree(piVar1)" identifier (argument_list "(piVar1)" ( identifier ))) ;) })) (expression_statement "DAT_00179dec = 0;" (assignment_expression "DAT_00179dec = 0" identifier = number_literal) ;) (expression_statement "DAT_00179de8 = 0;" (assignment_expression "DAT_00179de8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179df8 = 0;" (assignment_expression "DAT_00179df8 = 0" identifier = number_literal) ;) (expression_statement "rl_readline_state = rl_readline_state | 0x4000;" (assignment_expression "rl_readline_state = rl_readline_state | 0x4000" identifier = (binary_expression "rl_readline_state | 0x4000" identifier | number_literal)) ;) (expression_statement "rl_filename_completion_desired = 0;" (assignment_expression "rl_filename_completion_desired = 0" identifier = number_literal) ;) (expression_statement "rl_filename_quoting_desired = 1;" (assignment_expression "rl_filename_quoting_desired = 1" identifier = number_literal) ;) (expression_statement "rl_completion_type = 0x25;" (assignment_expression "rl_completion_type = 0x25" identifier = number_literal) ;) (expression_statement "rl_completion_suppress_quote = 0;" (assignment_expression "rl_completion_suppress_quote = 0" identifier = number_literal) ;) (expression_statement "rl_completion_suppress_append = 0;" (assignment_expression "rl_completion_suppress_append = 0" identifier = number_literal) ;) (expression_statement "rl_completion_append_character = 0x20;" (assignment_expression "rl_completion_append_character = 0x20" identifier = number_literal) ;) (expression_statement "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;" (assignment_expression "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs" identifier = identifier) ;) (expression_statement "DAT_00179e44 = 0;" (assignment_expression "DAT_00179e44 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = rl_menu_completion_entry_function;" (assignment_expression "pcVar7 = rl_menu_completion_entry_function" identifier = identifier) ;) (if_statement "if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }" if (parenthesized_expression "((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0))" ( (binary_expression "(rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)" (parenthesized_expression "(rl_menu_completion_entry_function == (code *)0x0)" ( (binary_expression "rl_menu_completion_entry_function == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)" ( (comma_expression "pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0" (assignment_expression "pcVar7 = rl_completion_entry_function" identifier = identifier) , (binary_expression "rl_completion_entry_function == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      pcVar7 = rl_filename_completion_function;\n    }" { (expression_statement "pcVar7 = rl_filename_completion_function;" (assignment_expression "pcVar7 = rl_filename_completion_function" identifier = identifier) ;) })) (expression_statement "DAT_00179ddc = '\0';" (assignment_expression "DAT_00179ddc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_00179de0 = 0;" (assignment_expression "DAT_00179de0 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "DAT_00179de4 = rl_point;" (assignment_expression "DAT_00179de4 = rl_point" identifier = identifier) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }" if (parenthesized_expression "(rl_point != 0)" ( (binary_expression "rl_point != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }" { (expression_statement "DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);" (assignment_expression "DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0)" identifier = (call_expression "_rl_find_completion_word(&local_24,&DAT_00179de0)" identifier (argument_list "(&local_24,&DAT_00179de0)" ( (pointer_expression "&local_24" & identifier) , (pointer_expression "&DAT_00179de0" & identifier) )))) ;) (expression_statement "iVar4 = DAT_00179de4;" (assignment_expression "iVar4 = DAT_00179de4" identifier = identifier) ;) })) (expression_statement "DAT_00179dd8 = rl_point;" (assignment_expression "DAT_00179dd8 = rl_point" identifier = identifier) ;) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" identifier = identifier) ;) (expression_statement "rl_point = iVar4;" (assignment_expression "rl_point = iVar4" identifier = identifier) ;) (expression_statement "DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);" (assignment_expression "DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4)" identifier = (cast_expression "(char *)rl_copy_text(iVar3,iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "rl_copy_text(iVar3,iVar4)" identifier (argument_list "(iVar3,iVar4)" ( identifier , identifier ))))) ;) (expression_statement "DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);" (assignment_expression "DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" identifier = (cast_expression "(int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" identifier (argument_list "(pcVar7,local_24,(int)DAT_00179ddc)" ( identifier , identifier , (cast_expression "(int)DAT_00179ddc" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (if_statement "if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" if (parenthesized_expression "(DAT_00179df0 == (int *)0x0)" ( (binary_expression "DAT_00179df0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00179dd4 = 0;\n    }" { (expression_statement "DAT_00179dd4 = 0;" (assignment_expression "DAT_00179dd4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" else (compound_statement "{\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" { (expression_statement "iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0)" identifier = (call_expression "strcmp(DAT_00179df4,(char *)*DAT_00179df0)" identifier (argument_list "(DAT_00179df4,(char *)*DAT_00179df0)" ( identifier , (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier)) )))) ;) (expression_statement "DAT_00179dd4 = (uint)(iVar4 != 0);" (assignment_expression "DAT_00179dd4 = (uint)(iVar4 != 0)" identifier = (call_expression "(uint)(iVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )))) ;) (expression_statement "iVar4 = FUN_000e9c60();" (assignment_expression "iVar4 = FUN_000e9c60()" identifier = (call_expression "FUN_000e9c60()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" { (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" identifier = (binary_expression "rl_readline_state & 0xffffbfff" identifier & number_literal)) ;) (expression_statement "DAT_00179dec = 0;" (assignment_expression "DAT_00179dec = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" identifier = number_literal) ;) (if_statement "if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }" if (parenthesized_expression "((char *)*DAT_00179df0 == (char *)0x0)" ( (binary_expression "(char *)*DAT_00179df0 == (char *)0x0" (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier)) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            free(DAT_00179df0);\n          }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179de8 = 0;" (assignment_expression "DAT_00179de8 = 0" identifier = number_literal) ;) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (do_statement "do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);" do (compound_statement "{\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        }" { (expression_statement "DAT_00179dec = iVar4;" (assignment_expression "DAT_00179dec = iVar4" identifier = identifier) ;) (expression_statement "iVar4 = DAT_00179dec + 1;" (assignment_expression "iVar4 = DAT_00179dec + 1" identifier = (binary_expression "DAT_00179dec + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(DAT_00179df0[DAT_00179dec] != 0)" ( (binary_expression "DAT_00179df0[DAT_00179dec] != 0" (subscript_expression "DAT_00179df0[DAT_00179dec]" identifier [ identifier ]) != number_literal) )) ;) (expression_statement "uVar2 = DAT_00179e48;" (assignment_expression "uVar2 = DAT_00179e48" identifier = identifier) ;) (if_statement "if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }" if (parenthesized_expression "(*(char *)*DAT_00179df0 != '\0')" ( (binary_expression "*(char *)*DAT_00179df0 != '\0'" (pointer_expression "*(char *)*DAT_00179df0" * (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }" { (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" identifier (argument_list "(&DAT_00179ddc)" ( (pointer_expression "&DAT_00179ddc" & identifier) ))) ;) (expression_statement "__s = (char *)*DAT_00179df0;" (assignment_expression "__s = (char *)*DAT_00179df0" identifier = (cast_expression "(char *)*DAT_00179df0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00179df0" * identifier))) ;) (expression_statement "sVar5 = strlen(__s);" (assignment_expression "sVar5 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "DAT_00179de4 = sVar5 + DAT_00179dd8;" (assignment_expression "DAT_00179de4 = sVar5 + DAT_00179dd8" identifier = (binary_expression "sVar5 + DAT_00179dd8" identifier + identifier)) ;) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" identifier = number_literal) ;) (if_statement "if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }" if (parenthesized_expression "(*DAT_00179df4 == *__s)" ( (binary_expression "*DAT_00179df4 == *__s" (pointer_expression "*DAT_00179df4" * identifier) == (pointer_expression "*__s" * identifier)) )) (compound_statement "{\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }" { (expression_statement "iVar4 = strcmp(DAT_00179df4,__s);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,__s)" identifier = (call_expression "strcmp(DAT_00179df4,__s)" identifier (argument_list "(DAT_00179df4,__s)" ( identifier , identifier )))) ;) (expression_statement "uVar2 = (uint)(iVar4 != 0);" (assignment_expression "uVar2 = (uint)(iVar4 != 0)" identifier = (call_expression "(uint)(iVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )))) ;) })) })) (expression_statement "DAT_00179e48 = uVar2;" (assignment_expression "DAT_00179e48 = uVar2" identifier = identifier) ;) (if_statement "if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }" if (parenthesized_expression "(DAT_00179dec < 2)" ( (binary_expression "DAT_00179dec < 2" identifier < number_literal) )) (compound_statement "{\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }" { (expression_statement "FUN_000ea870(DAT_00179dd4);" (call_expression "FUN_000ea870(DAT_00179dd4)" identifier (argument_list "(DAT_00179dd4)" ( identifier ))) ;) (expression_statement "DAT_00179df8 = 1;" (assignment_expression "DAT_00179df8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (if_statement "if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" if (parenthesized_expression "(_rl_complete_show_all == 0)" ( (binary_expression "_rl_complete_show_all == 0" identifier == number_literal) )) (compound_statement "{\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }" { (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;" if (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" ( (binary_expression "_rl_menu_complete_prefix_first == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ed37b;" goto statement_identifier ;)) }) (else_clause "else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" else (compound_statement "{\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" { (expression_statement "FUN_000eb8d0();" (call_expression "FUN_000eb8d0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }" if (parenthesized_expression "((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec))" ( (binary_expression "(0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)" (parenthesized_expression "(0 < rl_completion_query_items)" ( (binary_expression "0 < rl_completion_query_items" number_literal < identifier) )) && (parenthesized_expression "(rl_completion_query_items <= DAT_00179dec)" ( (binary_expression "rl_completion_query_items <= DAT_00179dec" identifier <= identifier) ))) )) (compound_statement "{\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }" { (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(DAT_00179df0);\n            }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179df8 = 1;" (assignment_expression "DAT_00179df8 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;" if (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" ( (binary_expression "_rl_menu_complete_prefix_first == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ed3ee;" goto statement_identifier ;)) }))) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000ed4cf;" goto statement_identifier ;) })) }))) (expression_statement "rl_ding();" (call_expression "rl_ding()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }" if (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" ( (binary_expression "DAT_00179df0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_00179df0);\n    }" { (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" identifier (argument_list "(DAT_00179df0)" ( identifier ))) ;) })) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }" if (parenthesized_expression "(DAT_00179df4 != (char *)0x0)" ( (binary_expression "DAT_00179df4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(DAT_00179df4);\n    }" { (expression_statement "free(DAT_00179df4);" (call_expression "free(DAT_00179df4)" identifier (argument_list "(DAT_00179df4)" ( identifier ))) ;) })) (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" identifier = (binary_expression "rl_readline_state & 0xffffbfff" identifier & number_literal)) ;) (expression_statement "DAT_00179df4 = (char *)0x0;" (assignment_expression "DAT_00179df4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "FUN_0010f8b0();" (call_expression "FUN_0010f8b0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ IDENT ])) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (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 ( 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 (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "undefined4 rl_backward_menu_complete(int param_1)\n\n{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    \n  FUN_0010f8b0();\n}" (type_identifier "undefined4") (function_declarator "rl_backward_menu_complete(int param_1)" (identifier "rl_backward_menu_complete") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  char *__s;\n  int *piVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  size_t sVar5;\n  int *piVar6;\n  code *pcVar7;\n  int in_GS_OFFSET;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0xed0c9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }\nLAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }\n                    \n  FUN_0010f8b0();\n}" ({ "{") (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "code *pcVar7;" (type_identifier "code") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0xed0c9;" (assignment_expression "uStack_14 = 0xed0c9" (identifier "uStack_14") (= "=") (number_literal "0xed0c9")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)) {\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }\n  else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" (if "if") (parenthesized_expression "(((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0))" (( "(") (binary_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)) &&\n     (DAT_00179df8 == 0)" (parenthesized_expression "((rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete))" (( "(") (binary_expression "(rl_last_func == rl_menu_complete) || (rl_last_func == rl_backward_menu_complete)" (parenthesized_expression "(rl_last_func == rl_menu_complete)" (( "(") (binary_expression "rl_last_func == rl_menu_complete" (identifier "rl_last_func") (== "==") (identifier "rl_menu_complete")) () ")")) (|| "||") (parenthesized_expression "(rl_last_func == rl_backward_menu_complete)" (( "(") (binary_expression "rl_last_func == rl_backward_menu_complete" (identifier "rl_last_func") (== "==") (identifier "rl_backward_menu_complete")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_00179df8 == 0)" (( "(") (binary_expression "DAT_00179df8 == 0" (identifier "DAT_00179df8") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }\nLAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;\n    if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }\n    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }\n    DAT_00179e48 = 1;\n  }" ({ "{") (labeled_statement "LAB_000ed3ee:\n    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" (statement_identifier "LAB_000ed3ee") (: ":") (if_statement "if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" (if "if") (parenthesized_expression "((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0))" (( "(") (binary_expression "(DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)" (parenthesized_expression "(DAT_00179df0 == (int *)0x0)" (( "(") (binary_expression "DAT_00179df0 == (int *)0x0" (identifier "DAT_00179df0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(DAT_00179dec == 0)" (( "(") (binary_expression "DAT_00179dec == 0" (identifier "DAT_00179dec") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      rl_ding();\n      if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }\n      DAT_00179df0 = (int *)0x0;\n      DAT_00179e48 = 0;\n      goto LAB_000ed4cf;\n    }" ({ "{") (expression_statement "rl_ding();" (call_expression "rl_ding()" (identifier "rl_ding") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n        free(DAT_00179df0);\n      }" (if "if") (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" (( "(") (binary_expression "DAT_00179df0 != (int *)0x0" (identifier "DAT_00179df0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        free(DAT_00179df0);\n      }" ({ "{") (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" (identifier "free") (argument_list "(DAT_00179df0)" (( "(") (identifier "DAT_00179df0") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" (identifier "DAT_00179df0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" (identifier "DAT_00179e48") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000ed4cf;" (goto "goto") (statement_identifier "LAB_000ed4cf") (; ";")) (} "}")))) (labeled_statement "LAB_000ed37b:\n    DAT_00179de8 = DAT_00179de8 - param_1;" (statement_identifier "LAB_000ed37b") (: ":") (expression_statement "DAT_00179de8 = DAT_00179de8 - param_1;" (assignment_expression "DAT_00179de8 = DAT_00179de8 - param_1" (identifier "DAT_00179de8") (= "=") (binary_expression "DAT_00179de8 - param_1" (identifier "DAT_00179de8") (- "-") (identifier "param_1"))) (; ";"))) (if_statement "if (DAT_00179de8 < 0) {\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }\n    else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" (if "if") (parenthesized_expression "(DAT_00179de8 < 0)" (( "(") (binary_expression "DAT_00179de8 < 0" (identifier "DAT_00179de8") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);\n    }" ({ "{") (do_statement "do {\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      } while (DAT_00179de8 < 0);" (do "do") (compound_statement "{\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n        if (-1 < DAT_00179de8) break;\n        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;\n      }" ({ "{") (expression_statement "DAT_00179de8 = DAT_00179de8 + DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 + DAT_00179dec" (identifier "DAT_00179de8") (= "=") (binary_expression "DAT_00179de8 + DAT_00179dec" (identifier "DAT_00179de8") (+ "+") (identifier "DAT_00179dec"))) (; ";")) (if_statement "if (-1 < DAT_00179de8) break;" (if "if") (parenthesized_expression "(-1 < DAT_00179de8)" (( "(") (binary_expression "-1 < DAT_00179de8" (number_literal "-1") (< "<") (identifier "DAT_00179de8")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "DAT_00179de8 = DAT_00179de8 + DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 + DAT_00179dec" (identifier "DAT_00179de8") (= "=") (binary_expression "DAT_00179de8 + DAT_00179dec" (identifier "DAT_00179de8") (+ "+") (identifier "DAT_00179dec"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(DAT_00179de8 < 0)" (( "(") (binary_expression "DAT_00179de8 < 0" (identifier "DAT_00179de8") (< "<") (number_literal "0")) () ")")) (; ";")) (} "}")) (else_clause "else {\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" (else "else") (compound_statement "{\n      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;\n    }" ({ "{") (expression_statement "DAT_00179de8 = DAT_00179de8 % DAT_00179dec;" (assignment_expression "DAT_00179de8 = DAT_00179de8 % DAT_00179dec" (identifier "DAT_00179de8") (= "=") (binary_expression "DAT_00179de8 % DAT_00179dec" (identifier "DAT_00179de8") (% "%") (identifier "DAT_00179dec"))) (; ";")) (} "}")))) (if_statement "if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }\n    else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" (if "if") (parenthesized_expression "((DAT_00179dec < 2) || (DAT_00179de8 != 0))" (( "(") (binary_expression "(DAT_00179dec < 2) || (DAT_00179de8 != 0)" (parenthesized_expression "(DAT_00179dec < 2)" (( "(") (binary_expression "DAT_00179dec < 2" (identifier "DAT_00179dec") (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(DAT_00179de8 != 0)" (( "(") (binary_expression "DAT_00179de8 != 0" (identifier "DAT_00179de8") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      FUN_000ea0a0(&DAT_00179ddc);\n      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);\n      FUN_000ea870(iVar4);\n    }" ({ "{") (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" (identifier "FUN_000ea0a0") (argument_list "(&DAT_00179ddc)" (( "(") (pointer_expression "&DAT_00179ddc" (& "&") (identifier "DAT_00179ddc")) () ")"))) (; ";")) (expression_statement "iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" (identifier "iVar4") (= "=") (call_expression "strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" (identifier "strcmp") (argument_list "(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8])" (( "(") (identifier "DAT_00179df4") (, ",") (cast_expression "(char *)DAT_00179df0[DAT_00179de8]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_00179df0[DAT_00179de8]" (identifier "DAT_00179df0") ([ "[") (identifier "DAT_00179de8") (] "]"))) () ")")))) (; ";")) (expression_statement "FUN_000ea870(iVar4);" (call_expression "FUN_000ea870(iVar4)" (identifier "FUN_000ea870") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" (else "else") (compound_statement "{\n      rl_ding();\n      FUN_000ea0a0(&DAT_00179ddc);\n    }" ({ "{") (expression_statement "rl_ding();" (call_expression "rl_ding()" (identifier "rl_ding") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" (identifier "FUN_000ea0a0") (argument_list "(&DAT_00179ddc)" (( "(") (pointer_expression "&DAT_00179ddc" (& "&") (identifier "DAT_00179ddc")) () ")"))) (; ";")) (} "}")))) (expression_statement "DAT_00179e48 = 1;" (assignment_expression "DAT_00179e48 = 1" (identifier "DAT_00179e48") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" (else "else") (compound_statement "{\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    piVar1 = DAT_00179df0;\n    if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }\n    DAT_00179dec = 0;\n    DAT_00179de8 = 0;\n    DAT_00179df0 = (int *)0x0;\n    DAT_00179df8 = 0;\n    rl_readline_state = rl_readline_state | 0x4000;\n    rl_filename_completion_desired = 0;\n    rl_filename_quoting_desired = 1;\n    rl_completion_type = 0x25;\n    rl_completion_suppress_quote = 0;\n    rl_completion_suppress_append = 0;\n    rl_completion_append_character = 0x20;\n    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;\n    DAT_00179e44 = 0;\n    pcVar7 = rl_menu_completion_entry_function;\n    if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }\n    DAT_00179ddc = '\0';\n    DAT_00179de0 = 0;\n    local_24 = 0;\n    DAT_00179de4 = rl_point;\n    iVar4 = 0;\n    if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }\n    DAT_00179dd8 = rl_point;\n    iVar3 = rl_point;\n    rl_point = iVar4;\n    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);\n    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);\n    if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }\n    rl_ding();\n    if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }\n    DAT_00179df0 = (int *)0x0;\n    if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }\n    rl_readline_state = rl_readline_state & 0xffffbfff;\n    DAT_00179df4 = (char *)0x0;\n    DAT_00179e48 = 0;\n  }" ({ "{") (if_statement "if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }" (if "if") (parenthesized_expression "(DAT_00179df4 != (char *)0x0)" (( "(") (binary_expression "DAT_00179df4 != (char *)0x0" (identifier "DAT_00179df4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(DAT_00179df4);\n    }" ({ "{") (expression_statement "free(DAT_00179df4);" (call_expression "free(DAT_00179df4)" (identifier "free") (argument_list "(DAT_00179df4)" (( "(") (identifier "DAT_00179df4") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = DAT_00179df0;" (assignment_expression "piVar1 = DAT_00179df0" (identifier "piVar1") (= "=") (identifier "DAT_00179df0")) (; ";")) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }" (if "if") (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" (( "(") (binary_expression "DAT_00179df0 != (int *)0x0" (identifier "DAT_00179df0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar4 = *DAT_00179df0;\n      piVar6 = DAT_00179df0;\n      while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }\n      xfree(piVar1);\n    }" ({ "{") (expression_statement "iVar4 = *DAT_00179df0;" (assignment_expression "iVar4 = *DAT_00179df0" (identifier "iVar4") (= "=") (pointer_expression "*DAT_00179df0" (* "*") (identifier "DAT_00179df0"))) (; ";")) (expression_statement "piVar6 = DAT_00179df0;" (assignment_expression "piVar6 = DAT_00179df0" (identifier "piVar6") (= "=") (identifier "DAT_00179df0")) (; ";")) (while_statement "while (iVar4 != 0) {\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }" (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar6 = piVar6 + 1;\n        xfree(iVar4);\n        iVar4 = *piVar6;\n      }" ({ "{") (expression_statement "piVar6 = piVar6 + 1;" (assignment_expression "piVar6 = piVar6 + 1" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 1" (identifier "piVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "xfree(iVar4);" (call_expression "xfree(iVar4)" (identifier "xfree") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" (identifier "iVar4") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (} "}"))) (expression_statement "xfree(piVar1);" (call_expression "xfree(piVar1)" (identifier "xfree") (argument_list "(piVar1)" (( "(") (identifier "piVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00179dec = 0;" (assignment_expression "DAT_00179dec = 0" (identifier "DAT_00179dec") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00179de8 = 0;" (assignment_expression "DAT_00179de8 = 0" (identifier "DAT_00179de8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" (identifier "DAT_00179df0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00179df8 = 0;" (assignment_expression "DAT_00179df8 = 0" (identifier "DAT_00179df8") (= "=") (number_literal "0")) (; ";")) (expression_statement "rl_readline_state = rl_readline_state | 0x4000;" (assignment_expression "rl_readline_state = rl_readline_state | 0x4000" (identifier "rl_readline_state") (= "=") (binary_expression "rl_readline_state | 0x4000" (identifier "rl_readline_state") (| "|") (number_literal "0x4000"))) (; ";")) (expression_statement "rl_filename_completion_desired = 0;" (assignment_expression "rl_filename_completion_desired = 0" (identifier "rl_filename_completion_desired") (= "=") (number_literal "0")) (; ";")) (expression_statement "rl_filename_quoting_desired = 1;" (assignment_expression "rl_filename_quoting_desired = 1" (identifier "rl_filename_quoting_desired") (= "=") (number_literal "1")) (; ";")) (expression_statement "rl_completion_type = 0x25;" (assignment_expression "rl_completion_type = 0x25" (identifier "rl_completion_type") (= "=") (number_literal "0x25")) (; ";")) (expression_statement "rl_completion_suppress_quote = 0;" (assignment_expression "rl_completion_suppress_quote = 0" (identifier "rl_completion_suppress_quote") (= "=") (number_literal "0")) (; ";")) (expression_statement "rl_completion_suppress_append = 0;" (assignment_expression "rl_completion_suppress_append = 0" (identifier "rl_completion_suppress_append") (= "=") (number_literal "0")) (; ";")) (expression_statement "rl_completion_append_character = 0x20;" (assignment_expression "rl_completion_append_character = 0x20" (identifier "rl_completion_append_character") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;" (assignment_expression "rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs" (identifier "rl_completion_mark_symlink_dirs") (= "=") (identifier "_rl_complete_mark_symlink_dirs")) (; ";")) (expression_statement "DAT_00179e44 = 0;" (assignment_expression "DAT_00179e44 = 0" (identifier "DAT_00179e44") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar7 = rl_menu_completion_entry_function;" (assignment_expression "pcVar7 = rl_menu_completion_entry_function" (identifier "pcVar7") (= "=") (identifier "rl_menu_completion_entry_function")) (; ";")) (if_statement "if ((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {\n      pcVar7 = rl_filename_completion_function;\n    }" (if "if") (parenthesized_expression "((rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0))" (( "(") (binary_expression "(rl_menu_completion_entry_function == (code *)0x0) &&\n       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)" (parenthesized_expression "(rl_menu_completion_entry_function == (code *)0x0)" (( "(") (binary_expression "rl_menu_completion_entry_function == (code *)0x0" (identifier "rl_menu_completion_entry_function") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)" (( "(") (comma_expression "pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0" (assignment_expression "pcVar7 = rl_completion_entry_function" (identifier "pcVar7") (= "=") (identifier "rl_completion_entry_function")) (, ",") (binary_expression "rl_completion_entry_function == (code *)0x0" (identifier "rl_completion_entry_function") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      pcVar7 = rl_filename_completion_function;\n    }" ({ "{") (expression_statement "pcVar7 = rl_filename_completion_function;" (assignment_expression "pcVar7 = rl_filename_completion_function" (identifier "pcVar7") (= "=") (identifier "rl_filename_completion_function")) (; ";")) (} "}"))) (expression_statement "DAT_00179ddc = '\0';" (assignment_expression "DAT_00179ddc = '\0'" (identifier "DAT_00179ddc") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "DAT_00179de0 = 0;" (assignment_expression "DAT_00179de0 = 0" (identifier "DAT_00179de0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00179de4 = rl_point;" (assignment_expression "DAT_00179de4 = rl_point" (identifier "DAT_00179de4") (= "=") (identifier "rl_point")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (if_statement "if (rl_point != 0) {\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }" (if "if") (parenthesized_expression "(rl_point != 0)" (( "(") (binary_expression "rl_point != 0" (identifier "rl_point") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);\n      iVar4 = DAT_00179de4;\n    }" ({ "{") (expression_statement "DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);" (assignment_expression "DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0)" (identifier "DAT_00179ddc") (= "=") (call_expression "_rl_find_completion_word(&local_24,&DAT_00179de0)" (identifier "_rl_find_completion_word") (argument_list "(&local_24,&DAT_00179de0)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (pointer_expression "&DAT_00179de0" (& "&") (identifier "DAT_00179de0")) () ")")))) (; ";")) (expression_statement "iVar4 = DAT_00179de4;" (assignment_expression "iVar4 = DAT_00179de4" (identifier "iVar4") (= "=") (identifier "DAT_00179de4")) (; ";")) (} "}"))) (expression_statement "DAT_00179dd8 = rl_point;" (assignment_expression "DAT_00179dd8 = rl_point" (identifier "DAT_00179dd8") (= "=") (identifier "rl_point")) (; ";")) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" (identifier "iVar3") (= "=") (identifier "rl_point")) (; ";")) (expression_statement "rl_point = iVar4;" (assignment_expression "rl_point = iVar4" (identifier "rl_point") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);" (assignment_expression "DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4)" (identifier "DAT_00179df4") (= "=") (cast_expression "(char *)rl_copy_text(iVar3,iVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "rl_copy_text(iVar3,iVar4)" (identifier "rl_copy_text") (argument_list "(iVar3,iVar4)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar4") () ")"))))) (; ";")) (expression_statement "DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);" (assignment_expression "DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" (identifier "DAT_00179df0") (= "=") (cast_expression "(int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc)" (identifier "FUN_000ebd80") (argument_list "(pcVar7,local_24,(int)DAT_00179ddc)" (( "(") (identifier "pcVar7") (, ",") (identifier "local_24") (, ",") (cast_expression "(int)DAT_00179ddc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00179ddc")) () ")"))))) (; ";")) (if_statement "if (DAT_00179df0 == (int *)0x0) {\n      DAT_00179dd4 = 0;\n    }\n    else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_00179df0 == (int *)0x0)" (( "(") (binary_expression "DAT_00179df0 == (int *)0x0" (identifier "DAT_00179df0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      DAT_00179dd4 = 0;\n    }" ({ "{") (expression_statement "DAT_00179dd4 = 0;" (assignment_expression "DAT_00179dd4 = 0" (identifier "DAT_00179dd4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" (else "else") (compound_statement "{\n      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);\n      DAT_00179dd4 = (uint)(iVar4 != 0);\n      iVar4 = FUN_000e9c60();\n      if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }\n    }" ({ "{") (expression_statement "iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0)" (identifier "iVar4") (= "=") (call_expression "strcmp(DAT_00179df4,(char *)*DAT_00179df0)" (identifier "strcmp") (argument_list "(DAT_00179df4,(char *)*DAT_00179df0)" (( "(") (identifier "DAT_00179df4") (, ",") (cast_expression "(char *)*DAT_00179df0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00179df0" (* "*") (identifier "DAT_00179df0"))) () ")")))) (; ";")) (expression_statement "DAT_00179dd4 = (uint)(iVar4 != 0);" (assignment_expression "DAT_00179dd4 = (uint)(iVar4 != 0)" (identifier "DAT_00179dd4") (= "=") (call_expression "(uint)(iVar4 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (expression_statement "iVar4 = FUN_000e9c60();" (assignment_expression "iVar4 = FUN_000e9c60()" (identifier "iVar4") (= "=") (call_expression "FUN_000e9c60()" (identifier "FUN_000e9c60") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        rl_readline_state = rl_readline_state & 0xffffbfff;\n        DAT_00179dec = 0;\n        iVar4 = 1;\n        if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }\n        do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);\n        uVar2 = DAT_00179e48;\n        if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }\n        DAT_00179e48 = uVar2;\n        if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }\n        if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }\n        rl_ding();\n        goto LAB_000ed4cf;\n      }" ({ "{") (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" (identifier "rl_readline_state") (= "=") (binary_expression "rl_readline_state & 0xffffbfff" (identifier "rl_readline_state") (& "&") (number_literal "0xffffbfff"))) (; ";")) (expression_statement "DAT_00179dec = 0;" (assignment_expression "DAT_00179dec = 0" (identifier "DAT_00179dec") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = 1;" (assignment_expression "iVar4 = 1" (identifier "iVar4") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((char *)*DAT_00179df0 == (char *)0x0) {\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }" (if "if") (parenthesized_expression "((char *)*DAT_00179df0 == (char *)0x0)" (( "(") (binary_expression "(char *)*DAT_00179df0 == (char *)0x0" (cast_expression "(char *)*DAT_00179df0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00179df0" (* "*") (identifier "DAT_00179df0"))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          rl_ding();\n          if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }\n          DAT_00179df0 = (int *)0x0;\n          DAT_00179de8 = 0;\n          DAT_00179e48 = 0;\n          goto LAB_000ed4cf;\n        }" ({ "{") (expression_statement "rl_ding();" (call_expression "rl_ding()" (identifier "rl_ding") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n            free(DAT_00179df0);\n          }" (if "if") (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" (( "(") (binary_expression "DAT_00179df0 != (int *)0x0" (identifier "DAT_00179df0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            free(DAT_00179df0);\n          }" ({ "{") (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" (identifier "free") (argument_list "(DAT_00179df0)" (( "(") (identifier "DAT_00179df0") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" (identifier "DAT_00179df0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00179de8 = 0;" (assignment_expression "DAT_00179de8 = 0" (identifier "DAT_00179de8") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" (identifier "DAT_00179e48") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000ed4cf;" (goto "goto") (statement_identifier "LAB_000ed4cf") (; ";")) (} "}"))) (do_statement "do {\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        } while (DAT_00179df0[DAT_00179dec] != 0);" (do "do") (compound_statement "{\n          DAT_00179dec = iVar4;\n          iVar4 = DAT_00179dec + 1;\n        }" ({ "{") (expression_statement "DAT_00179dec = iVar4;" (assignment_expression "DAT_00179dec = iVar4" (identifier "DAT_00179dec") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar4 = DAT_00179dec + 1;" (assignment_expression "iVar4 = DAT_00179dec + 1" (identifier "iVar4") (= "=") (binary_expression "DAT_00179dec + 1" (identifier "DAT_00179dec") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(DAT_00179df0[DAT_00179dec] != 0)" (( "(") (binary_expression "DAT_00179df0[DAT_00179dec] != 0" (subscript_expression "DAT_00179df0[DAT_00179dec]" (identifier "DAT_00179df0") ([ "[") (identifier "DAT_00179dec") (] "]")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar2 = DAT_00179e48;" (assignment_expression "uVar2 = DAT_00179e48" (identifier "uVar2") (= "=") (identifier "DAT_00179e48")) (; ";")) (if_statement "if (*(char *)*DAT_00179df0 != '\0') {\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)*DAT_00179df0 != '\0')" (( "(") (binary_expression "*(char *)*DAT_00179df0 != '\0'" (pointer_expression "*(char *)*DAT_00179df0" (* "*") (cast_expression "(char *)*DAT_00179df0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00179df0" (* "*") (identifier "DAT_00179df0")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          FUN_000ea0a0(&DAT_00179ddc);\n          __s = (char *)*DAT_00179df0;\n          sVar5 = strlen(__s);\n          DAT_00179de4 = sVar5 + DAT_00179dd8;\n          uVar2 = 1;\n          if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }\n        }" ({ "{") (expression_statement "FUN_000ea0a0(&DAT_00179ddc);" (call_expression "FUN_000ea0a0(&DAT_00179ddc)" (identifier "FUN_000ea0a0") (argument_list "(&DAT_00179ddc)" (( "(") (pointer_expression "&DAT_00179ddc" (& "&") (identifier "DAT_00179ddc")) () ")"))) (; ";")) (expression_statement "__s = (char *)*DAT_00179df0;" (assignment_expression "__s = (char *)*DAT_00179df0" (identifier "__s") (= "=") (cast_expression "(char *)*DAT_00179df0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00179df0" (* "*") (identifier "DAT_00179df0")))) (; ";")) (expression_statement "sVar5 = strlen(__s);" (assignment_expression "sVar5 = strlen(__s)" (identifier "sVar5") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "DAT_00179de4 = sVar5 + DAT_00179dd8;" (assignment_expression "DAT_00179de4 = sVar5 + DAT_00179dd8" (identifier "DAT_00179de4") (= "=") (binary_expression "sVar5 + DAT_00179dd8" (identifier "sVar5") (+ "+") (identifier "DAT_00179dd8"))) (; ";")) (expression_statement "uVar2 = 1;" (assignment_expression "uVar2 = 1" (identifier "uVar2") (= "=") (number_literal "1")) (; ";")) (if_statement "if (*DAT_00179df4 == *__s) {\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }" (if "if") (parenthesized_expression "(*DAT_00179df4 == *__s)" (( "(") (binary_expression "*DAT_00179df4 == *__s" (pointer_expression "*DAT_00179df4" (* "*") (identifier "DAT_00179df4")) (== "==") (pointer_expression "*__s" (* "*") (identifier "__s"))) () ")")) (compound_statement "{\n            iVar4 = strcmp(DAT_00179df4,__s);\n            uVar2 = (uint)(iVar4 != 0);\n          }" ({ "{") (expression_statement "iVar4 = strcmp(DAT_00179df4,__s);" (assignment_expression "iVar4 = strcmp(DAT_00179df4,__s)" (identifier "iVar4") (= "=") (call_expression "strcmp(DAT_00179df4,__s)" (identifier "strcmp") (argument_list "(DAT_00179df4,__s)" (( "(") (identifier "DAT_00179df4") (, ",") (identifier "__s") () ")")))) (; ";")) (expression_statement "uVar2 = (uint)(iVar4 != 0);" (assignment_expression "uVar2 = (uint)(iVar4 != 0)" (identifier "uVar2") (= "=") (call_expression "(uint)(iVar4 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "DAT_00179e48 = uVar2;" (assignment_expression "DAT_00179e48 = uVar2" (identifier "DAT_00179e48") (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (DAT_00179dec < 2) {\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }" (if "if") (parenthesized_expression "(DAT_00179dec < 2)" (( "(") (binary_expression "DAT_00179dec < 2" (identifier "DAT_00179dec") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          FUN_000ea870(DAT_00179dd4);\n          DAT_00179df8 = 1;\n          goto LAB_000ed4cf;\n        }" ({ "{") (expression_statement "FUN_000ea870(DAT_00179dd4);" (call_expression "FUN_000ea870(DAT_00179dd4)" (identifier "FUN_000ea870") (argument_list "(DAT_00179dd4)" (( "(") (identifier "DAT_00179dd4") () ")"))) (; ";")) (expression_statement "DAT_00179df8 = 1;" (assignment_expression "DAT_00179df8 = 1" (identifier "DAT_00179df8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000ed4cf;" (goto "goto") (statement_identifier "LAB_000ed4cf") (; ";")) (} "}"))) (if_statement "if (_rl_complete_show_all == 0) {\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }\n        else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" (if "if") (parenthesized_expression "(_rl_complete_show_all == 0)" (( "(") (binary_expression "_rl_complete_show_all == 0" (identifier "_rl_complete_show_all") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;\n        }" ({ "{") (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;" (if "if") (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" (( "(") (binary_expression "_rl_menu_complete_prefix_first == 0" (identifier "_rl_menu_complete_prefix_first") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ed37b;" (goto "goto") (statement_identifier "LAB_000ed37b") (; ";"))) (} "}")) (else_clause "else {\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" (else "else") (compound_statement "{\n          FUN_000eb8d0();\n          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }\n          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;\n        }" ({ "{") (expression_statement "FUN_000eb8d0();" (call_expression "FUN_000eb8d0()" (identifier "FUN_000eb8d0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }" (if "if") (parenthesized_expression "((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec))" (( "(") (binary_expression "(0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)" (parenthesized_expression "(0 < rl_completion_query_items)" (( "(") (binary_expression "0 < rl_completion_query_items" (number_literal "0") (< "<") (identifier "rl_completion_query_items")) () ")")) (&& "&&") (parenthesized_expression "(rl_completion_query_items <= DAT_00179dec)" (( "(") (binary_expression "rl_completion_query_items <= DAT_00179dec" (identifier "rl_completion_query_items") (<= "<=") (identifier "DAT_00179dec")) () ")"))) () ")")) (compound_statement "{\n            rl_ding();\n            if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }\n            DAT_00179df0 = (int *)0x0;\n            DAT_00179df8 = 1;\n            goto LAB_000ed4cf;\n          }" ({ "{") (expression_statement "rl_ding();" (call_expression "rl_ding()" (identifier "rl_ding") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n              free(DAT_00179df0);\n            }" (if "if") (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" (( "(") (binary_expression "DAT_00179df0 != (int *)0x0" (identifier "DAT_00179df0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              free(DAT_00179df0);\n            }" ({ "{") (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" (identifier "free") (argument_list "(DAT_00179df0)" (( "(") (identifier "DAT_00179df0") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" (identifier "DAT_00179df0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00179df8 = 1;" (assignment_expression "DAT_00179df8 = 1" (identifier "DAT_00179df8") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000ed4cf;" (goto "goto") (statement_identifier "LAB_000ed4cf") (; ";")) (} "}"))) (if_statement "if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;" (if "if") (parenthesized_expression "(_rl_menu_complete_prefix_first == 0)" (( "(") (binary_expression "_rl_menu_complete_prefix_first == 0" (identifier "_rl_menu_complete_prefix_first") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ed3ee;" (goto "goto") (statement_identifier "LAB_000ed3ee") (; ";"))) (} "}")))) (expression_statement "rl_ding();" (call_expression "rl_ding()" (identifier "rl_ding") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_000ed4cf;" (goto "goto") (statement_identifier "LAB_000ed4cf") (; ";")) (} "}"))) (} "}")))) (expression_statement "rl_ding();" (call_expression "rl_ding()" (identifier "rl_ding") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_00179df0 != (int *)0x0) {\n      free(DAT_00179df0);\n    }" (if "if") (parenthesized_expression "(DAT_00179df0 != (int *)0x0)" (( "(") (binary_expression "DAT_00179df0 != (int *)0x0" (identifier "DAT_00179df0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(DAT_00179df0);\n    }" ({ "{") (expression_statement "free(DAT_00179df0);" (call_expression "free(DAT_00179df0)" (identifier "free") (argument_list "(DAT_00179df0)" (( "(") (identifier "DAT_00179df0") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00179df0 = (int *)0x0;" (assignment_expression "DAT_00179df0 = (int *)0x0" (identifier "DAT_00179df0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (DAT_00179df4 != (char *)0x0) {\n      free(DAT_00179df4);\n    }" (if "if") (parenthesized_expression "(DAT_00179df4 != (char *)0x0)" (( "(") (binary_expression "DAT_00179df4 != (char *)0x0" (identifier "DAT_00179df4") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(DAT_00179df4);\n    }" ({ "{") (expression_statement "free(DAT_00179df4);" (call_expression "free(DAT_00179df4)" (identifier "free") (argument_list "(DAT_00179df4)" (( "(") (identifier "DAT_00179df4") () ")"))) (; ";")) (} "}"))) (expression_statement "rl_readline_state = rl_readline_state & 0xffffbfff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffbfff" (identifier "rl_readline_state") (= "=") (binary_expression "rl_readline_state & 0xffffbfff" (identifier "rl_readline_state") (& "&") (number_literal "0xffffbfff"))) (; ";")) (expression_statement "DAT_00179df4 = (char *)0x0;" (assignment_expression "DAT_00179df4 = (char *)0x0" (identifier "DAT_00179df4") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "DAT_00179e48 = 0;" (assignment_expression "DAT_00179e48 = 0" (identifier "DAT_00179e48") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_000ed4cf:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" (statement_identifier "LAB_000ed4cf") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "FUN_0010f8b0();" (call_expression "FUN_0010f8b0()" (identifier "FUN_0010f8b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

int function_1(int var_10,int key)

{
  type_1 uVar1;
  int from;
  int var_25;
  size_t var_28;
  char **var_16;
  char **ppcVar5;
  type_2 *our_func;
  char *var_15;
  int var_1;
  int found_quote;
  int var_34;
  type_3 uStack_14;
  
  uStack_14 = 0xed0c9;
  var_34 = *(int *)(var_1 + 0x14);
  if (((var_2 == var_3) || (var_2 == function_1)) &&
     (var_4 == 0)) {
LAB_000ed3ee:
    if ((var_5 == (char **)0x0) || (ppcVar5 = var_5, var_6 == 0)) {
      var_7();
      if (var_5 != (char **)0x0) {
        var_8(var_5);
      }
      var_5 = (char **)0x0;
      completion_changed_buffer = 0;
      goto LAB_000ed4cf;
    }
LAB_000ed37b:
    var_9 = var_9 - var_10;
    if (var_9 < 0) {
      do {
        var_9 = var_9 + var_6;
        if (-1 < var_9) break;
        var_9 = var_9 + var_6;
      } while (var_9 < 0);
    }
    else {
      var_9 = var_9 % var_6;
    }
    if ((var_6 < 2) || (var_9 != 0)) {
      var_11(ppcVar5[var_9],var_29,1,&quote_char_8483);
      var_15 = var_5[var_9];
      var_25 = var_12(var_14,var_15);
      var_13(var_15,delimiter_8484,(int)quote_char_8483,var_25);
    }
    else {
      var_7();
      var_11(*var_5,var_29,2,&quote_char_8483);
    }
    completion_changed_buffer = 1;
  }
  else {
    if (var_14 != (char *)0x0) {
      var_8(var_14);
    }
    ppcVar5 = var_5;
    if (var_5 != (char **)0x0) {
      var_15 = *var_5;
      var_16 = var_5;
      while (var_15 != (char *)0x0) {
        var_16 = var_16 + 1;
        var_17(var_15);
        var_15 = *var_16;
      }
      var_17(ppcVar5);
    }
    var_6 = 0;
    var_9 = 0;
    var_5 = (char **)0x0;
    var_4 = 0;
    var_18 = var_18 | 0x4000;
    rl_filename_completion_desired = 0;
    rl_filename_quoting_desired = 1;
    rl_completion_type = 0x25;
    rl_completion_suppress_quote = 0;
    rl_completion_suppress_append = 0;
    rl_completion_append_character = 0x20;
    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
    _rl_complete_display_matches_interrupt = 0;
    our_func = var_19;
    if ((var_19 == (type_2 *)0x0) &&
       (our_func = var_20,
       var_20 == (type_2 *)0x0)) {
      our_func = rl_filename_completion_function;
    }
    quote_char_8483 = '\0';
    delimiter_8484 = 0;
    found_quote = 0;
    orig_end_8482 = var_21;
    var_25 = 0;
    if (var_21 != 0) {
      quote_char_8483 = var_22(&found_quote,&delimiter_8484);
      var_25 = orig_end_8482;
    }
    var_29 = var_21;
    from = var_21;
    var_21 = var_25;
    var_14 = var_23(from,var_25);
    var_5 = var_24
                             (var_14,var_29,orig_end_8482,our_func,found_quote,
                              (int)quote_char_8483);
    if (var_5 == (char **)0x0) {
      nontrivial_lcd_8479 = 0;
    }
    else {
      var_25 = var_12(var_14,*var_5);
      nontrivial_lcd_8479 = (type_1)(var_25 != 0);
      var_25 = var_26(&var_5,rl_filename_completion_desired);
      if (var_25 != 0) {
        var_18 = var_18 & 0xffffbfff;
        var_6 = 0;
        var_15 = *var_5;
        var_25 = 1;
        if (var_15 == (char *)0x0) {
          var_7();
          if (var_5 != (char **)0x0) {
            var_8(var_5);
          }
          var_5 = (char **)0x0;
          var_9 = 0;
          completion_changed_buffer = 0;
          goto LAB_000ed4cf;
        }
        do {
          var_6 = var_25;
          var_25 = var_6 + 1;
        } while (var_5[var_6] != (char *)0x0);
        ppcVar5 = var_5;
        uVar1 = completion_changed_buffer;
        if (*var_15 != '\0') {
          var_11(var_15,var_29,(var_5[1] != (char *)0x0) + 1,&quote_char_8483)
          ;
          ppcVar5 = var_5;
          var_15 = *var_5;
          var_28 = var_27(var_15);
          orig_end_8482 = var_28 + var_29;
          uVar1 = 1;
          if (*var_14 == *var_15) {
            var_25 = var_12(var_14,var_15);
            uVar1 = (type_1)(var_25 != 0);
          }
        }
        completion_changed_buffer = uVar1;
        if (var_6 < 2) {
          var_13(var_15,delimiter_8484,(int)quote_char_8483,nontrivial_lcd_8479);
          var_4 = 1;
          goto LAB_000ed4cf;
        }
        if (var_30 == 0) {
          if (var_31 == 0) goto LAB_000ed37b;
        }
        else {
          var_32(ppcVar5);
          if ((0 < var_33) && (var_33 <= var_6)
             ) {
            var_7();
            if (var_5 != (char **)0x0) {
              var_8(var_5);
            }
            var_5 = (char **)0x0;
            var_4 = 1;
            goto LAB_000ed4cf;
          }
          if (var_31 == 0) goto LAB_000ed3ee;
        }
        var_7();
        goto LAB_000ed4cf;
      }
    }
    var_7();
    if (var_5 != (char **)0x0) {
      var_8(var_5);
    }
    var_5 = (char **)0x0;
    if (var_14 != (char *)0x0) {
      var_8(var_14);
    }
    var_18 = var_18 & 0xffffbfff;
    var_14 = (char *)0x0;
    completion_changed_buffer = 0;
  }
LAB_000ed4cf:
  if (var_34 == *(int *)(var_1 + 0x14)) {
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  var_35();
}


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

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

undefined4 MASKED(int param_1)

{
  char *__s;
  int *piVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  size_t sVar5;
  int *piVar6;
  code *pcVar7;
  int in_GS_OFFSET;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0xed0c9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (((rl_last_func == rl_menu_complete) || (rl_last_func == MASKED)) &&
     (DAT_00179df8 == 0)) {
LAB_000ed3ee:
    if ((DAT_00179df0 == (int *)0x0) || (DAT_00179dec == 0)) {
      rl_ding();
      if (DAT_00179df0 != (int *)0x0) {
        free(DAT_00179df0);
      }
      DAT_00179df0 = (int *)0x0;
      DAT_00179e48 = 0;
      goto LAB_000ed4cf;
    }
LAB_000ed37b:
    DAT_00179de8 = DAT_00179de8 - param_1;
    if (DAT_00179de8 < 0) {
      do {
        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;
        if (-1 < DAT_00179de8) break;
        DAT_00179de8 = DAT_00179de8 + DAT_00179dec;
      } while (DAT_00179de8 < 0);
    }
    else {
      DAT_00179de8 = DAT_00179de8 % DAT_00179dec;
    }
    if ((DAT_00179dec < 2) || (DAT_00179de8 != 0)) {
      FUN_000ea0a0(&DAT_00179ddc);
      iVar4 = strcmp(DAT_00179df4,(char *)DAT_00179df0[DAT_00179de8]);
      FUN_000ea870(iVar4);
    }
    else {
      rl_ding();
      FUN_000ea0a0(&DAT_00179ddc);
    }
    DAT_00179e48 = 1;
  }
  else {
    if (DAT_00179df4 != (char *)0x0) {
      free(DAT_00179df4);
    }
    piVar1 = DAT_00179df0;
    if (DAT_00179df0 != (int *)0x0) {
      iVar4 = *DAT_00179df0;
      piVar6 = DAT_00179df0;
      while (iVar4 != 0) {
        piVar6 = piVar6 + 1;
        xfree(iVar4);
        iVar4 = *piVar6;
      }
      xfree(piVar1);
    }
    DAT_00179dec = 0;
    DAT_00179de8 = 0;
    DAT_00179df0 = (int *)0x0;
    DAT_00179df8 = 0;
    rl_readline_state = rl_readline_state | 0x4000;
    rl_filename_completion_desired = 0;
    rl_filename_quoting_desired = 1;
    rl_completion_type = 0x25;
    rl_completion_suppress_quote = 0;
    rl_completion_suppress_append = 0;
    rl_completion_append_character = 0x20;
    rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;
    DAT_00179e44 = 0;
    pcVar7 = rl_menu_completion_entry_function;
    if ((rl_menu_completion_entry_function == (code *)0x0) &&
       (pcVar7 = rl_completion_entry_function, rl_completion_entry_function == (code *)0x0)) {
      pcVar7 = rl_filename_completion_function;
    }
    DAT_00179ddc = '\0';
    DAT_00179de0 = 0;
    local_24 = 0;
    DAT_00179de4 = rl_point;
    iVar4 = 0;
    if (rl_point != 0) {
      DAT_00179ddc = _rl_find_completion_word(&local_24,&DAT_00179de0);
      iVar4 = DAT_00179de4;
    }
    DAT_00179dd8 = rl_point;
    iVar3 = rl_point;
    rl_point = iVar4;
    DAT_00179df4 = (char *)rl_copy_text(iVar3,iVar4);
    DAT_00179df0 = (int *)FUN_000ebd80(pcVar7,local_24,(int)DAT_00179ddc);
    if (DAT_00179df0 == (int *)0x0) {
      DAT_00179dd4 = 0;
    }
    else {
      iVar4 = strcmp(DAT_00179df4,(char *)*DAT_00179df0);
      DAT_00179dd4 = (uint)(iVar4 != 0);
      iVar4 = FUN_000e9c60();
      if (iVar4 != 0) {
        rl_readline_state = rl_readline_state & 0xffffbfff;
        DAT_00179dec = 0;
        iVar4 = 1;
        if ((char *)*DAT_00179df0 == (char *)0x0) {
          rl_ding();
          if (DAT_00179df0 != (int *)0x0) {
            free(DAT_00179df0);
          }
          DAT_00179df0 = (int *)0x0;
          DAT_00179de8 = 0;
          DAT_00179e48 = 0;
          goto LAB_000ed4cf;
        }
        do {
          DAT_00179dec = iVar4;
          iVar4 = DAT_00179dec + 1;
        } while (DAT_00179df0[DAT_00179dec] != 0);
        uVar2 = DAT_00179e48;
        if (*(char *)*DAT_00179df0 != '\0') {
          FUN_000ea0a0(&DAT_00179ddc);
          __s = (char *)*DAT_00179df0;
          sVar5 = strlen(__s);
          DAT_00179de4 = sVar5 + DAT_00179dd8;
          uVar2 = 1;
          if (*DAT_00179df4 == *__s) {
            iVar4 = strcmp(DAT_00179df4,__s);
            uVar2 = (uint)(iVar4 != 0);
          }
        }
        DAT_00179e48 = uVar2;
        if (DAT_00179dec < 2) {
          FUN_000ea870(DAT_00179dd4);
          DAT_00179df8 = 1;
          goto LAB_000ed4cf;
        }
        if (_rl_complete_show_all == 0) {
          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed37b;
        }
        else {
          FUN_000eb8d0();
          if ((0 < rl_completion_query_items) && (rl_completion_query_items <= DAT_00179dec)) {
            rl_ding();
            if (DAT_00179df0 != (int *)0x0) {
              free(DAT_00179df0);
            }
            DAT_00179df0 = (int *)0x0;
            DAT_00179df8 = 1;
            goto LAB_000ed4cf;
          }
          if (_rl_menu_complete_prefix_first == 0) goto LAB_000ed3ee;
        }
        rl_ding();
        goto LAB_000ed4cf;
      }
    }
    rl_ding();
    if (DAT_00179df0 != (int *)0x0) {
      free(DAT_00179df0);
    }
    DAT_00179df0 = (int *)0x0;
    if (DAT_00179df4 != (char *)0x0) {
      free(DAT_00179df4);
    }
    rl_readline_state = rl_readline_state & 0xffffbfff;
    DAT_00179df4 = (char *)0x0;
    DAT_00179e48 = 0;
  }
LAB_000ed4cf:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0010f8b0();
}

