
wchar_t _rl_vi_domove_motion_cleanup(wchar_t c,_rl_vimotion_cxt_conflict *m)

{
  char *pcVar1;
  int iVar2;
  int iVar3;
  wchar_t wVar4;
  int iVar5;
  long lVar6;
  size_t sVar7;
  ushort **ppuVar8;
  __int32_t **pp_Var9;
  int iVar10;
  byte bVar11;
  bool bVar12;
  
  rl_end = m->end;
  rl_line_buffer[rl_end] = '\0';
  iVar3 = rl_mark;
  iVar2 = rl_end;
  if (rl_end < rl_point) {
    rl_point = rl_end;
  }
  iVar5 = rl_point;
  if (rl_mark == rl_point) {
    rl_readline_state = rl_readline_state & 0xffffffffffefffff;
    return L'\xffffffff';
  }
  bVar11 = (byte)c;
  if ((c & 0xffU) == c) {
    ppuVar8 = __ctype_b_loc();
    if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;
    pp_Var9 = __ctype_toupper_loc();
    bVar12 = (*pp_Var9)[bVar11] == 0x57;
  }
  else {
LAB_001b18ee:
    bVar12 = c == L'W';
  }
  if ((iVar5 < iVar2 && iVar3 < iVar5) && (bVar12)) {
    if ((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')) {
      rl_point = iVar5 + -1;
      goto LAB_001b190c;
    }
    iVar10 = rl_mark;
    if (m->key == L'c') goto LAB_001b19d5;
  }
  else {
LAB_001b190c:
    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {
LAB_001b19d5:
      if ((c & 0xffU) == c) {
        ppuVar8 = __ctype_b_loc();
        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;
        pp_Var9 = __ctype_toupper_loc();
        bVar12 = (*pp_Var9)[bVar11] == 0x57;
      }
      else {
LAB_001b19de:
        bVar12 = c == L'W';
      }
      if (bVar12) {
        if (iVar3 < iVar5) {
          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {
            lVar6 = (long)(iVar5 + -1);
            do {
              iVar5 = (int)lVar6;
              rl_point = iVar5;
              if (iVar5 <= iVar3) goto LAB_001b1ac4;
              pcVar1 = rl_line_buffer + lVar6;
              lVar6 = lVar6 + -1;
            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));
          }
        }
        else {
LAB_001b1ac4:
          if (iVar3 == iVar5) {
            if (iVar5 < iVar2) {
              sVar7 = __ctype_get_mb_cur_max();
              iVar2 = rl_point;
              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {
                rl_point = rl_point + 1;
              }
              else {
                rl_point = _rl_forward_char_internal(L'\x01');
                if ((iVar2 == rl_point) || (rl_end < rl_point)) {
                  rl_point = rl_end;
                }
              }
            }
            goto LAB_001b1918;
          }
        }
        if ((-1 < iVar5) &&
           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))
            && (iVar5 < iVar2)))) {
          sVar7 = __ctype_get_mb_cur_max();
          iVar2 = rl_point;
          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {
            rl_point = rl_point + 1;
          }
          else {
            rl_point = _rl_forward_char_internal(L'\x01');
            if ((iVar2 == rl_point) || (rl_end < rl_point)) {
              rl_point = rl_end;
            }
          }
        }
      }
    }
LAB_001b1918:
    iVar10 = rl_mark;
    if (rl_point <= rl_mark) goto LAB_001b192c;
  }
  rl_mark = rl_point;
  rl_point = iVar10;
LAB_001b192c:
  if ((rl_readline_state & 0x80000) != 0) {
    (*rl_redisplay_function)();
  }
  wVar4 = vidomove_dispatch(m);
  return wVar4;
}



undefined8 _rl_vi_domove_motion_cleanup(uint param_1,long param_2)

{
  char *pcVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined8 uVar6;
  long lVar7;
  size_t sVar8;
  ushort **ppuVar9;
  __int32_t **pp_Var10;
  int iVar11;
  byte bVar12;
  
  rl_end = *(int *)(param_2 + 0x18);
  *(undefined1 *)(rl_line_buffer + rl_end) = 0;
  iVar4 = rl_mark;
  iVar3 = rl_end;
  if (rl_end < rl_point) {
    rl_point = rl_end;
  }
  iVar5 = rl_point;
  if (rl_mark == rl_point) {
    rl_readline_state = rl_readline_state & 0xffffffffffefffff;
    return 0xffffffff;
  }
  bVar12 = (byte)param_1;
  uVar2 = param_1;
  if ((param_1 & 0xff) == param_1) {
    ppuVar9 = __ctype_b_loc();
    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {
      pp_Var10 = __ctype_toupper_loc();
      uVar2 = (*pp_Var10)[bVar12];
    }
  }
  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {
    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {
      rl_point = iVar5 + -1;
      goto LAB_001b190c;
    }
    iVar11 = rl_mark;
    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;
  }
  else {
LAB_001b190c:
    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {
LAB_001b19d5:
      if ((param_1 & 0xff) == param_1) {
        ppuVar9 = __ctype_b_loc();
        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {
          pp_Var10 = __ctype_toupper_loc();
          param_1 = (*pp_Var10)[bVar12];
        }
      }
      if (param_1 == 0x57) {
        if (iVar4 < iVar5) {
          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||
             (*(char *)(rl_line_buffer + iVar5) == '\t')) {
            lVar7 = (long)(iVar5 + -1);
            do {
              iVar5 = (int)lVar7;
              rl_point = iVar5;
              if (iVar5 <= iVar4) goto LAB_001b1ac4;
              pcVar1 = (char *)(rl_line_buffer + lVar7);
              lVar7 = lVar7 + -1;
            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));
          }
        }
        else {
LAB_001b1ac4:
          if (iVar4 == iVar5) {
            if (iVar5 < iVar3) {
              sVar8 = __ctype_get_mb_cur_max();
              iVar3 = rl_point;
              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {
                rl_point = rl_point + 1;
              }
              else {
                rl_point = _rl_forward_char_internal(1);
                if ((iVar3 == rl_point) || (rl_end < rl_point)) {
                  rl_point = rl_end;
                }
              }
            }
            goto LAB_001b1918;
          }
        }
        if ((-1 < iVar5) &&
           (((iVar5 < iVar3 + -1 &&
             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')
             ) && (iVar5 < iVar3)))) {
          sVar8 = __ctype_get_mb_cur_max();
          iVar3 = rl_point;
          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {
            rl_point = rl_point + 1;
          }
          else {
            rl_point = _rl_forward_char_internal(1);
            if ((iVar3 == rl_point) || (rl_end < rl_point)) {
              rl_point = rl_end;
            }
          }
        }
      }
    }
LAB_001b1918:
    iVar11 = rl_mark;
    if (rl_point <= rl_mark) goto LAB_001b192c;
  }
  rl_mark = rl_point;
  rl_point = iVar11;
LAB_001b192c:
  if ((rl_readline_state & 0x80000) != 0) {
    (*(code *)rl_redisplay_function)();
  }
  uVar6 = FUN_001b12b4(param_2);
  return uVar6;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x18
MOV EAX,dword ptr [RSI + 0x18]
MOV dword ptr [0x0021c6d8],EAX
CDQE
MOV RDX,qword ptr [0x002164f0]
MOV byte ptr [RDX + RAX*0x1],0x0
MOV R14D,dword ptr [0x0021c6d8]
CMP dword ptr [0x0021c7b8],R14D
JLE 0x001b18c9
MOV dword ptr [0x0021c7b8],R14D
MOV R13D,dword ptr [0x0021c7a8]
MOV EBP,dword ptr [0x0021c7b8]
CMP R13D,EBP
JZ 0x001b1952
MOV R12,RSI
MOV EBX,EDI
MOV byte ptr [RSP + 0x7],DIL
MOVZX R15D,DIL
CMP R15D,EDI
JZ 0x001b1964
CMP EBX,0x57
SETZ CL
CMP R14D,EBP
SETG DL
CMP R13D,EBP
SETL AL
TEST DL,AL
JZ 0x001b190c
TEST CL,CL
JNZ 0x001b199a
CMP dword ptr [R12 + 0x1c],0x63
JZ 0x001b19c6
MOV EDX,dword ptr [0x0021c7a8]
MOV EAX,dword ptr [0x0021c7b8]
CMP EDX,EAX
JL 0x001b1b7c
TEST byte ptr [0x00216562],0x8
JZ 0x001b193b
CALL qword ptr [0x00212a98]
MOV RDI,R12
CALL 0x001b12b4
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
AND qword ptr [0x00216560],-0x100001
MOV EAX,0xffffffff
JMP 0x001b1943
CALL 0x0012dd50
MOVZX ECX,byte ptr [RSP + 0x7]
MOV RAX,qword ptr [RAX]
MOV qword ptr [RSP + 0x8],RCX
TEST byte ptr [RAX + RCX*0x2 + 0x1],0x2
JZ 0x001b18ee
CALL 0x0012d040
MOV RAX,qword ptr [RAX]
MOV RCX,qword ptr [RSP + 0x8]
CMP dword ptr [RAX + RCX*0x4],0x57
SETZ CL
JMP 0x001b18f4
MOVSXD RAX,EBP
MOV RDX,qword ptr [0x002164f0]
MOVZX EAX,byte ptr [RDX + RAX*0x1]
CMP AL,0x20
JZ 0x001b1b64
CMP AL,0x9
JZ 0x001b1b64
SUB EBP,0x1
MOV dword ptr [0x0021c7b8],EBP
JMP 0x001b190c
MOV EBP,dword ptr [0x0021c7b8]
CMP R13D,EBP
JG 0x001b1918
CMP R15D,EBX
JZ 0x001b1a95
CMP EBX,0x57
SETZ AL
TEST AL,AL
JZ 0x001b1918
CMP R13D,EBP
JGE 0x001b1ac4
MOV RCX,qword ptr [0x002164f0]
MOVSXD RAX,EBP
MOVZX EAX,byte ptr [RCX + RAX*0x1]
CMP AL,0x20
JZ 0x001b1a0b
CMP AL,0x9
JNZ 0x001b1a34
SUB EBP,0x1
MOVSXD RAX,EBP
MOV EBP,EAX
MOV dword ptr [0x0021c7b8],EAX
CMP R13D,EAX
JGE 0x001b1ac4
MOVZX EDX,byte ptr [RCX + RAX*0x1]
SUB RAX,0x1
CMP DL,0x20
JZ 0x001b1a11
CMP DL,0x9
JZ 0x001b1a11
TEST EBP,EBP
JS 0x001b1918
LEA EAX,[R14 + -0x1]
CMP EAX,EBP
JLE 0x001b1918
MOVSXD RAX,EBP
MOV RDX,qword ptr [0x002164f0]
MOVZX EAX,byte ptr [RDX + RAX*0x1]
CMP AL,0x20
SETNZ DL
CMP AL,0x9
SETNZ AL
TEST DL,AL
JZ 0x001b1918
CMP R14D,EBP
JLE 0x001b1918
CALL 0x0012d370
CMP RAX,0x1
JZ 0x001b1a89
CMP dword ptr [0x0021776c],0x0
JZ 0x001b1b2d
ADD dword ptr [0x0021c7b8],0x1
JMP 0x001b1918
CALL 0x0012dd50
MOVZX R15D,byte ptr [RSP + 0x7]
MOV RAX,qword ptr [RAX]
TEST byte ptr [RAX + R15*0x2 + 0x1],0x2
JZ 0x001b19de
CALL 0x0012d040
MOV RAX,qword ptr [RAX]
CMP dword ptr [RAX + R15*0x4],0x57
SETZ AL
JMP 0x001b19e4
CMP R13D,EBP
JNZ 0x001b1a34
CMP R14D,EBP
JLE 0x001b1918
CALL 0x0012d370
CMP RAX,0x1
JZ 0x001b1aea
CMP dword ptr [0x0021776c],0x0
JZ 0x001b1af6
ADD dword ptr [0x0021c7b8],0x1
JMP 0x001b1918
MOV EBX,dword ptr [0x0021c7b8]
MOV EDI,0x1
CALL 0x001c7e12
MOV dword ptr [0x0021c7b8],EAX
CMP EBX,EAX
JZ 0x001b1b1c
CMP EAX,dword ptr [0x0021c6d8]
JLE 0x001b1918
MOV EAX,dword ptr [0x0021c6d8]
MOV dword ptr [0x0021c7b8],EAX
JMP 0x001b1918
MOV EBX,dword ptr [0x0021c7b8]
MOV EDI,0x1
CALL 0x001c7e12
MOV dword ptr [0x0021c7b8],EAX
CMP EBX,EAX
JZ 0x001b1b53
CMP EAX,dword ptr [0x0021c6d8]
JLE 0x001b1918
MOV EAX,dword ptr [0x0021c6d8]
MOV dword ptr [0x0021c7b8],EAX
JMP 0x001b1918
CMP dword ptr [R12 + 0x1c],0x63
JZ 0x001b19d5
MOV EDX,dword ptr [0x0021c7a8]
MOV EAX,dword ptr [0x0021c7b8]
MOV dword ptr [0x0021c7b8],EDX
MOV dword ptr [0x0021c7a8],EAX
JMP 0x001b192c
(translation_unit "undefined8 _rl_vi_domove_motion_cleanup(uint param_1,long param_2)\n\n{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}\n\n" (function_definition "undefined8 _rl_vi_domove_motion_cleanup(uint param_1,long param_2)\n\n{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}" type_identifier (function_declarator "_rl_vi_domove_motion_cleanup(uint param_1,long param_2)" identifier (parameter_list "(uint param_1,long param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "ushort **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "__int32_t **pp_Var10;" type_identifier (pointer_declarator "**pp_Var10" * (pointer_declarator "*pp_Var10" * identifier)) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (expression_statement "rl_end = *(int *)(param_2 + 0x18);" (assignment_expression "rl_end = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(rl_line_buffer + rl_end) = 0;" (assignment_expression "*(undefined1 *)(rl_line_buffer + rl_end) = 0" (pointer_expression "*(undefined1 *)(rl_line_buffer + rl_end)" * (cast_expression "(undefined1 *)(rl_line_buffer + rl_end)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + rl_end)" ( (binary_expression "rl_line_buffer + rl_end" identifier + identifier) )))) = number_literal) ;) (expression_statement "iVar4 = rl_mark;" (assignment_expression "iVar4 = rl_mark" identifier = identifier) ;) (expression_statement "iVar3 = rl_end;" (assignment_expression "iVar3 = rl_end" identifier = identifier) ;) (if_statement "if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }" if (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) )) (compound_statement "{\n    rl_point = rl_end;\n  }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) (expression_statement "iVar5 = rl_point;" (assignment_expression "iVar5 = rl_point" identifier = identifier) ;) (if_statement "if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }" if (parenthesized_expression "(rl_mark == rl_point)" ( (binary_expression "rl_mark == rl_point" identifier == identifier) )) (compound_statement "{\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }" { (expression_statement "rl_readline_state = rl_readline_state & 0xffffffffffefffff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffffffffefffff" identifier = (binary_expression "rl_readline_state & 0xffffffffffefffff" identifier & number_literal)) ;) (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "bVar12 = (byte)param_1;" (assignment_expression "bVar12 = (byte)param_1" identifier = (cast_expression "(byte)param_1" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = param_1;" (assignment_expression "uVar2 = param_1" identifier = identifier) ;) (if_statement "if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }" if (parenthesized_expression "((param_1 & 0xff) == param_1)" ( (binary_expression "(param_1 & 0xff) == param_1" (parenthesized_expression "(param_1 & 0xff)" ( (binary_expression "param_1 & 0xff" identifier & number_literal) )) == identifier) )) (compound_statement "{\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }" { (expression_statement "ppuVar9 = __ctype_b_loc();" (assignment_expression "ppuVar9 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }" if (parenthesized_expression "((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0)" ( (binary_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2)" ( (binary_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" * (cast_expression "(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2 + 1" (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2" (cast_expression "(long)*ppuVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ppuVar9" * identifier)) + (binary_expression "(ulong)bVar12 * 2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }" { (expression_statement "pp_Var10 = __ctype_toupper_loc();" (assignment_expression "pp_Var10 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (*pp_Var10)[bVar12];" (assignment_expression "uVar2 = (*pp_Var10)[bVar12]" identifier = (subscript_expression "(*pp_Var10)[bVar12]" (parenthesized_expression "(*pp_Var10)" ( (pointer_expression "*pp_Var10" * identifier) )) [ identifier ])) ;) })) })) (if_statement "if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" if (parenthesized_expression "((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57))" ( (binary_expression "(iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)" (parenthesized_expression "(iVar5 < iVar3 && iVar4 < iVar5)" ( (binary_expression "iVar5 < iVar3 && iVar4 < iVar5" (binary_expression "iVar5 < iVar3" identifier < identifier) && (binary_expression "iVar4 < iVar5" identifier < identifier)) )) && (parenthesized_expression "(uVar2 == 0x57)" ( (binary_expression "uVar2 == 0x57" identifier == number_literal) ))) )) (compound_statement "{\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }" { (if_statement "if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" if (parenthesized_expression "((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t'))" ( (binary_expression "(*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != ' ')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" { (expression_statement "rl_point = iVar5 + -1;" (assignment_expression "rl_point = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (goto_statement "goto LAB_001b190c;" goto statement_identifier ;) })) (expression_statement "iVar11 = rl_mark;" (assignment_expression "iVar11 = rl_mark" identifier = identifier) ;) (if_statement "if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 99)" ( (binary_expression "*(int *)(param_2 + 0x1c) == 99" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001b19d5;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" else (compound_statement "{\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" { (labeled_statement "LAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" statement_identifier : (if_statement "if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point))" ( (binary_expression "(*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)" (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 99)" ( (binary_expression "*(int *)(param_2 + 0x1c) == 99" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar5 = rl_point, iVar4 <= rl_point)" ( (comma_expression "iVar5 = rl_point, iVar4 <= rl_point" (assignment_expression "iVar5 = rl_point" identifier = identifier) , (binary_expression "iVar4 <= rl_point" identifier <= identifier)) ))) )) (compound_statement "{\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" { (labeled_statement "LAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" statement_identifier : (if_statement "if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" if (parenthesized_expression "((param_1 & 0xff) == param_1)" ( (binary_expression "(param_1 & 0xff) == param_1" (parenthesized_expression "(param_1 & 0xff)" ( (binary_expression "param_1 & 0xff" identifier & number_literal) )) == identifier) )) (compound_statement "{\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" { (expression_statement "ppuVar9 = __ctype_b_loc();" (assignment_expression "ppuVar9 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }" if (parenthesized_expression "((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0)" ( (binary_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2)" ( (binary_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" * (cast_expression "(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2 + 1" (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2" (cast_expression "(long)*ppuVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ppuVar9" * identifier)) + (binary_expression "(ulong)bVar12 * 2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }" { (expression_statement "pp_Var10 = __ctype_toupper_loc();" (assignment_expression "pp_Var10 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1 = (*pp_Var10)[bVar12];" (assignment_expression "param_1 = (*pp_Var10)[bVar12]" identifier = (subscript_expression "(*pp_Var10)[bVar12]" (parenthesized_expression "(*pp_Var10)" ( (pointer_expression "*pp_Var10" * identifier) )) [ identifier ])) ;) })) }))) (if_statement "if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(param_1 == 0x57)" ( (binary_expression "param_1 == 0x57" identifier == number_literal) )) (compound_statement "{\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" { (if_statement "if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" if (parenthesized_expression "(iVar4 < iVar5)" ( (binary_expression "iVar4 < iVar5" identifier < identifier) )) (compound_statement "{\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }" { (if_statement "if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" if (parenthesized_expression "((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t'))" ( (binary_expression "(*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) == ' ')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) == ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) == '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) == '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" { (expression_statement "lVar7 = (long)(iVar5 + -1);" (assignment_expression "lVar7 = (long)(iVar5 + -1)" identifier = (cast_expression "(long)(iVar5 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar5 + -1)" ( (binary_expression "iVar5 + -1" identifier + number_literal) )))) ;) (do_statement "do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));" do (compound_statement "{\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            }" { (expression_statement "iVar5 = (int)lVar7;" (assignment_expression "iVar5 = (int)lVar7" identifier = (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "rl_point = iVar5;" (assignment_expression "rl_point = iVar5" identifier = identifier) ;) (if_statement "if (iVar5 <= iVar4) goto LAB_001b1ac4;" if (parenthesized_expression "(iVar5 <= iVar4)" ( (binary_expression "iVar5 <= iVar4" identifier <= identifier) )) (goto_statement "goto LAB_001b1ac4;" goto statement_identifier ;)) (expression_statement "pcVar1 = (char *)(rl_line_buffer + lVar7);" (assignment_expression "pcVar1 = (char *)(rl_line_buffer + lVar7)" identifier = (cast_expression "(char *)(rl_line_buffer + lVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + lVar7)" ( (binary_expression "rl_line_buffer + lVar7" identifier + identifier) )))) ;) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*pcVar1 == ' ') || (*pcVar1 == '\t'))" ( (binary_expression "(*pcVar1 == ' ') || (*pcVar1 == '\t')" (parenthesized_expression "(*pcVar1 == ' ')" ( (binary_expression "*pcVar1 == ' '" (pointer_expression "*pcVar1" * identifier) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*pcVar1 == '\t')" ( (binary_expression "*pcVar1 == '\t'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) }) (else_clause "else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" else (compound_statement "{\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" { (labeled_statement "LAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" statement_identifier : (if_statement "if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" if (parenthesized_expression "(iVar4 == iVar5)" ( (binary_expression "iVar4 == iVar5" identifier == identifier) )) (compound_statement "{\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" { (if_statement "if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" if (parenthesized_expression "(iVar5 < iVar3)" ( (binary_expression "iVar5 < iVar3" identifier < identifier) )) (compound_statement "{\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" { (expression_statement "sVar8 = __ctype_get_mb_cur_max();" (assignment_expression "sVar8 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" identifier = identifier) ;) (if_statement "if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" if (parenthesized_expression "((sVar8 == 1) || (rl_byte_oriented != 0))" ( (binary_expression "(sVar8 == 1) || (rl_byte_oriented != 0)" (parenthesized_expression "(sVar8 == 1)" ( (binary_expression "sVar8 == 1" identifier == number_literal) )) || (parenthesized_expression "(rl_byte_oriented != 0)" ( (binary_expression "rl_byte_oriented != 0" identifier != number_literal) ))) )) (compound_statement "{\n                rl_point = rl_point + 1;\n              }" { (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" identifier = (binary_expression "rl_point + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" else (compound_statement "{\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" { (expression_statement "rl_point = _rl_forward_char_internal(1);" (assignment_expression "rl_point = _rl_forward_char_internal(1)" identifier = (call_expression "_rl_forward_char_internal(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (if_statement "if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }" if (parenthesized_expression "((iVar3 == rl_point) || (rl_end < rl_point))" ( (binary_expression "(iVar3 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar3 == rl_point)" ( (binary_expression "iVar3 == rl_point" identifier == identifier) )) || (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) ))) )) (compound_statement "{\n                  rl_point = rl_end;\n                }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) }))) })) (goto_statement "goto LAB_001b1918;" goto statement_identifier ;) }))) }))) (if_statement "if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" if (parenthesized_expression "((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3))))" ( (binary_expression "(-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))" (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))" ( (parenthesized_expression "((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3))" ( (binary_expression "(iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)" (parenthesized_expression "(iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             )" ( (binary_expression "iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')" (binary_expression "iVar5 < iVar3 + -1" identifier < (binary_expression "iVar3 + -1" identifier + number_literal)) && (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t'" (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "' '" ' character ')) && (binary_expression "*(char *)(rl_line_buffer + iVar5) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "'\t'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(iVar5 < iVar3)" ( (binary_expression "iVar5 < iVar3" identifier < identifier) ))) )) ))) )) (compound_statement "{\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" { (expression_statement "sVar8 = __ctype_get_mb_cur_max();" (assignment_expression "sVar8 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" identifier = identifier) ;) (if_statement "if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" if (parenthesized_expression "((sVar8 == 1) || (rl_byte_oriented != 0))" ( (binary_expression "(sVar8 == 1) || (rl_byte_oriented != 0)" (parenthesized_expression "(sVar8 == 1)" ( (binary_expression "sVar8 == 1" identifier == number_literal) )) || (parenthesized_expression "(rl_byte_oriented != 0)" ( (binary_expression "rl_byte_oriented != 0" identifier != number_literal) ))) )) (compound_statement "{\n            rl_point = rl_point + 1;\n          }" { (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" identifier = (binary_expression "rl_point + 1" identifier + number_literal)) ;) }) (else_clause "else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" else (compound_statement "{\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" { (expression_statement "rl_point = _rl_forward_char_internal(1);" (assignment_expression "rl_point = _rl_forward_char_internal(1)" identifier = (call_expression "_rl_forward_char_internal(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (if_statement "if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }" if (parenthesized_expression "((iVar3 == rl_point) || (rl_end < rl_point))" ( (binary_expression "(iVar3 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar3 == rl_point)" ( (binary_expression "iVar3 == rl_point" identifier == identifier) )) || (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) ))) )) (compound_statement "{\n              rl_point = rl_end;\n            }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) }))) })) })) }))) (labeled_statement "LAB_001b1918:\n    iVar11 = rl_mark;" statement_identifier : (expression_statement "iVar11 = rl_mark;" (assignment_expression "iVar11 = rl_mark" identifier = identifier) ;)) (if_statement "if (rl_point <= rl_mark) goto LAB_001b192c;" if (parenthesized_expression "(rl_point <= rl_mark)" ( (binary_expression "rl_point <= rl_mark" identifier <= identifier) )) (goto_statement "goto LAB_001b192c;" goto statement_identifier ;)) }))) (expression_statement "rl_mark = rl_point;" (assignment_expression "rl_mark = rl_point" identifier = identifier) ;) (expression_statement "rl_point = iVar11;" (assignment_expression "rl_point = iVar11" identifier = identifier) ;) (labeled_statement "LAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }" statement_identifier : (if_statement "if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }" if (parenthesized_expression "((rl_readline_state & 0x80000) != 0)" ( (binary_expression "(rl_readline_state & 0x80000) != 0" (parenthesized_expression "(rl_readline_state & 0x80000)" ( (binary_expression "rl_readline_state & 0x80000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (*(code *)rl_redisplay_function)();\n  }" { (expression_statement "(*(code *)rl_redisplay_function)();" (call_expression "(*(code *)rl_redisplay_function)()" (parenthesized_expression "(*(code *)rl_redisplay_function)" ( (pointer_expression "*(code *)rl_redisplay_function" * (cast_expression "(code *)rl_redisplay_function" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar6 = FUN_001b12b4(param_2);" (assignment_expression "uVar6 = FUN_001b12b4(param_2)" identifier = (call_expression "FUN_001b12b4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit "wchar_t _rl_vi_domove_motion_cleanup(wchar_t c,_rl_vimotion_cxt_conflict *m)\n\n{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  wchar_t wVar4;\n  int iVar5;\n  long lVar6;\n  size_t sVar7;\n  ushort **ppuVar8;\n  __int32_t **pp_Var9;\n  int iVar10;\n  byte bVar11;\n  bool bVar12;\n  \n  rl_end = m->end;\n  rl_line_buffer[rl_end] = '\0';\n  iVar3 = rl_mark;\n  iVar2 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return L'\xffffffff';\n  }\n  bVar11 = (byte)c;\n  if ((c & 0xffU) == c) {\n    ppuVar8 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;\n    pp_Var9 = __ctype_toupper_loc();\n    bVar12 = (*pp_Var9)[bVar11] == 0x57;\n  }\n  else {\nLAB_001b18ee:\n    bVar12 = c == L'W';\n  }\n  if ((iVar5 < iVar2 && iVar3 < iVar5) && (bVar12)) {\n    if ((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar10 = rl_mark;\n    if (m->key == L'c') goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar10 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar10;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*rl_redisplay_function)();\n  }\n  wVar4 = vidomove_dispatch(m);\n  return wVar4;\n}\n\n" (function_definition "wchar_t _rl_vi_domove_motion_cleanup(wchar_t c,_rl_vimotion_cxt_conflict *m)\n\n{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  wchar_t wVar4;\n  int iVar5;\n  long lVar6;\n  size_t sVar7;\n  ushort **ppuVar8;\n  __int32_t **pp_Var9;\n  int iVar10;\n  byte bVar11;\n  bool bVar12;\n  \n  rl_end = m->end;\n  rl_line_buffer[rl_end] = '\0';\n  iVar3 = rl_mark;\n  iVar2 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return L'\xffffffff';\n  }\n  bVar11 = (byte)c;\n  if ((c & 0xffU) == c) {\n    ppuVar8 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;\n    pp_Var9 = __ctype_toupper_loc();\n    bVar12 = (*pp_Var9)[bVar11] == 0x57;\n  }\n  else {\nLAB_001b18ee:\n    bVar12 = c == L'W';\n  }\n  if ((iVar5 < iVar2 && iVar3 < iVar5) && (bVar12)) {\n    if ((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar10 = rl_mark;\n    if (m->key == L'c') goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar10 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar10;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*rl_redisplay_function)();\n  }\n  wVar4 = vidomove_dispatch(m);\n  return wVar4;\n}" type_identifier (function_declarator "_rl_vi_domove_motion_cleanup(wchar_t c,_rl_vimotion_cxt_conflict *m)" identifier (parameter_list "(wchar_t c,_rl_vimotion_cxt_conflict *m)" ( (parameter_declaration "wchar_t c" type_identifier identifier) , (parameter_declaration "_rl_vimotion_cxt_conflict *m" type_identifier (pointer_declarator "*m" * identifier)) ))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  wchar_t wVar4;\n  int iVar5;\n  long lVar6;\n  size_t sVar7;\n  ushort **ppuVar8;\n  __int32_t **pp_Var9;\n  int iVar10;\n  byte bVar11;\n  bool bVar12;\n  \n  rl_end = m->end;\n  rl_line_buffer[rl_end] = '\0';\n  iVar3 = rl_mark;\n  iVar2 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return L'\xffffffff';\n  }\n  bVar11 = (byte)c;\n  if ((c & 0xffU) == c) {\n    ppuVar8 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;\n    pp_Var9 = __ctype_toupper_loc();\n    bVar12 = (*pp_Var9)[bVar11] == 0x57;\n  }\n  else {\nLAB_001b18ee:\n    bVar12 = c == L'W';\n  }\n  if ((iVar5 < iVar2 && iVar3 < iVar5) && (bVar12)) {\n    if ((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar10 = rl_mark;\n    if (m->key == L'c') goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar10 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar10;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*rl_redisplay_function)();\n  }\n  wVar4 = vidomove_dispatch(m);\n  return wVar4;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "wchar_t wVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "ushort **ppuVar8;" type_identifier (pointer_declarator "**ppuVar8" * (pointer_declarator "*ppuVar8" * identifier)) ;) (declaration "__int32_t **pp_Var9;" type_identifier (pointer_declarator "**pp_Var9" * (pointer_declarator "*pp_Var9" * identifier)) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (expression_statement "rl_end = m->end;" (assignment_expression "rl_end = m->end" identifier = (field_expression "m->end" identifier -> field_identifier)) ;) (expression_statement "rl_line_buffer[rl_end] = '\0';" (assignment_expression "rl_line_buffer[rl_end] = '\0'" (subscript_expression "rl_line_buffer[rl_end]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar3 = rl_mark;" (assignment_expression "iVar3 = rl_mark" identifier = identifier) ;) (expression_statement "iVar2 = rl_end;" (assignment_expression "iVar2 = rl_end" identifier = identifier) ;) (if_statement "if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }" if (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) )) (compound_statement "{\n    rl_point = rl_end;\n  }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) (expression_statement "iVar5 = rl_point;" (assignment_expression "iVar5 = rl_point" identifier = identifier) ;) (if_statement "if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return L'\xffffffff';\n  }" if (parenthesized_expression "(rl_mark == rl_point)" ( (binary_expression "rl_mark == rl_point" identifier == identifier) )) (compound_statement "{\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return L'\xffffffff';\n  }" { (expression_statement "rl_readline_state = rl_readline_state & 0xffffffffffefffff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffffffffefffff" identifier = (binary_expression "rl_readline_state & 0xffffffffffefffff" identifier & number_literal)) ;) (return_statement "return L'\xffffffff';" return (char_literal "L'\xffffffff'" L' escape_sequence character character character character ') ;) })) (expression_statement "bVar11 = (byte)c;" (assignment_expression "bVar11 = (byte)c" identifier = (cast_expression "(byte)c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((c & 0xffU) == c) {\n    ppuVar8 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;\n    pp_Var9 = __ctype_toupper_loc();\n    bVar12 = (*pp_Var9)[bVar11] == 0x57;\n  }\n  else {\nLAB_001b18ee:\n    bVar12 = c == L'W';\n  }" if (parenthesized_expression "((c & 0xffU) == c)" ( (binary_expression "(c & 0xffU) == c" (parenthesized_expression "(c & 0xffU)" ( (binary_expression "c & 0xffU" identifier & number_literal) )) == identifier) )) (compound_statement "{\n    ppuVar8 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;\n    pp_Var9 = __ctype_toupper_loc();\n    bVar12 = (*pp_Var9)[bVar11] == 0x57;\n  }" { (expression_statement "ppuVar8 = __ctype_b_loc();" (assignment_expression "ppuVar8 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;" if (parenthesized_expression "((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0)" ( (binary_expression "(*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0" (parenthesized_expression "(*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2)" ( (binary_expression "*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1)" * (cast_expression "(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*ppuVar8 + (ulong)bVar11 * 2 + 1)" ( (binary_expression "(long)*ppuVar8 + (ulong)bVar11 * 2 + 1" (binary_expression "(long)*ppuVar8 + (ulong)bVar11 * 2" (cast_expression "(long)*ppuVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ppuVar8" * identifier)) + (binary_expression "(ulong)bVar11 * 2" (cast_expression "(ulong)bVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001b18ee;" goto statement_identifier ;)) (expression_statement "pp_Var9 = __ctype_toupper_loc();" (assignment_expression "pp_Var9 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar12 = (*pp_Var9)[bVar11] == 0x57;" (assignment_expression "bVar12 = (*pp_Var9)[bVar11] == 0x57" identifier = (binary_expression "(*pp_Var9)[bVar11] == 0x57" (subscript_expression "(*pp_Var9)[bVar11]" (parenthesized_expression "(*pp_Var9)" ( (pointer_expression "*pp_Var9" * identifier) )) [ identifier ]) == number_literal)) ;) }) (else_clause "else {\nLAB_001b18ee:\n    bVar12 = c == L'W';\n  }" else (compound_statement "{\nLAB_001b18ee:\n    bVar12 = c == L'W';\n  }" { (labeled_statement "LAB_001b18ee:\n    bVar12 = c == L'W';" statement_identifier : (expression_statement "bVar12 = c == L'W';" (assignment_expression "bVar12 = c == L'W'" identifier = (binary_expression "c == L'W'" identifier == (char_literal "L'W'" L' character '))) ;)) }))) (if_statement "if ((iVar5 < iVar2 && iVar3 < iVar5) && (bVar12)) {\n    if ((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar10 = rl_mark;\n    if (m->key == L'c') goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar10 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" if (parenthesized_expression "((iVar5 < iVar2 && iVar3 < iVar5) && (bVar12))" ( (binary_expression "(iVar5 < iVar2 && iVar3 < iVar5) && (bVar12)" (parenthesized_expression "(iVar5 < iVar2 && iVar3 < iVar5)" ( (binary_expression "iVar5 < iVar2 && iVar3 < iVar5" (binary_expression "iVar5 < iVar2" identifier < identifier) && (binary_expression "iVar3 < iVar5" identifier < identifier)) )) && (parenthesized_expression "(bVar12)" ( identifier ))) )) (compound_statement "{\n    if ((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar10 = rl_mark;\n    if (m->key == L'c') goto LAB_001b19d5;\n  }" { (if_statement "if ((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" if (parenthesized_expression "((rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t'))" ( (binary_expression "(rl_line_buffer[iVar5] != ' ') && (rl_line_buffer[iVar5] != '\t')" (parenthesized_expression "(rl_line_buffer[iVar5] != ' ')" ( (binary_expression "rl_line_buffer[iVar5] != ' '" (subscript_expression "rl_line_buffer[iVar5]" identifier [ identifier ]) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(rl_line_buffer[iVar5] != '\t')" ( (binary_expression "rl_line_buffer[iVar5] != '\t'" (subscript_expression "rl_line_buffer[iVar5]" identifier [ identifier ]) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" { (expression_statement "rl_point = iVar5 + -1;" (assignment_expression "rl_point = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (goto_statement "goto LAB_001b190c;" goto statement_identifier ;) })) (expression_statement "iVar10 = rl_mark;" (assignment_expression "iVar10 = rl_mark" identifier = identifier) ;) (if_statement "if (m->key == L'c') goto LAB_001b19d5;" if (parenthesized_expression "(m->key == L'c')" ( (binary_expression "m->key == L'c'" (field_expression "m->key" identifier -> field_identifier) == (char_literal "L'c'" L' character ')) )) (goto_statement "goto LAB_001b19d5;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_001b190c:\n    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar10 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" else (compound_statement "{\nLAB_001b190c:\n    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar10 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" { (labeled_statement "LAB_001b190c:\n    if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" statement_identifier : (if_statement "if ((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)) {\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point))" ( (binary_expression "(m->key == L'c') && (iVar5 = rl_point, iVar3 <= rl_point)" (parenthesized_expression "(m->key == L'c')" ( (binary_expression "m->key == L'c'" (field_expression "m->key" identifier -> field_identifier) == (char_literal "L'c'" L' character ')) )) && (parenthesized_expression "(iVar5 = rl_point, iVar3 <= rl_point)" ( (comma_expression "iVar5 = rl_point, iVar3 <= rl_point" (assignment_expression "iVar5 = rl_point" identifier = identifier) , (binary_expression "iVar3 <= rl_point" identifier <= identifier)) ))) )) (compound_statement "{\nLAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }\n      if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" { (labeled_statement "LAB_001b19d5:\n      if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }" statement_identifier : (if_statement "if ((c & 0xffU) == c) {\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }\n      else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }" if (parenthesized_expression "((c & 0xffU) == c)" ( (binary_expression "(c & 0xffU) == c" (parenthesized_expression "(c & 0xffU)" ( (binary_expression "c & 0xffU" identifier & number_literal) )) == identifier) )) (compound_statement "{\n        ppuVar8 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;\n        pp_Var9 = __ctype_toupper_loc();\n        bVar12 = (*pp_Var9)[bVar11] == 0x57;\n      }" { (expression_statement "ppuVar8 = __ctype_b_loc();" (assignment_expression "ppuVar8 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;" if (parenthesized_expression "((*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0)" ( (binary_expression "(*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2) == 0" (parenthesized_expression "(*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2)" ( (binary_expression "*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1)" * (cast_expression "(byte *)((long)*ppuVar8 + (ulong)bVar11 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*ppuVar8 + (ulong)bVar11 * 2 + 1)" ( (binary_expression "(long)*ppuVar8 + (ulong)bVar11 * 2 + 1" (binary_expression "(long)*ppuVar8 + (ulong)bVar11 * 2" (cast_expression "(long)*ppuVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ppuVar8" * identifier)) + (binary_expression "(ulong)bVar11 * 2" (cast_expression "(ulong)bVar11" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001b19de;" goto statement_identifier ;)) (expression_statement "pp_Var9 = __ctype_toupper_loc();" (assignment_expression "pp_Var9 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar12 = (*pp_Var9)[bVar11] == 0x57;" (assignment_expression "bVar12 = (*pp_Var9)[bVar11] == 0x57" identifier = (binary_expression "(*pp_Var9)[bVar11] == 0x57" (subscript_expression "(*pp_Var9)[bVar11]" (parenthesized_expression "(*pp_Var9)" ( (pointer_expression "*pp_Var9" * identifier) )) [ identifier ]) == number_literal)) ;) }) (else_clause "else {\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }" else (compound_statement "{\nLAB_001b19de:\n        bVar12 = c == L'W';\n      }" { (labeled_statement "LAB_001b19de:\n        bVar12 = c == L'W';" statement_identifier : (expression_statement "bVar12 = c == L'W';" (assignment_expression "bVar12 = c == L'W'" identifier = (binary_expression "c == L'W'" identifier == (char_literal "L'W'" L' character '))) ;)) })))) (if_statement "if (bVar12) {\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n        if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" { (if_statement "if (iVar3 < iVar5) {\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" if (parenthesized_expression "(iVar3 < iVar5)" ( (binary_expression "iVar3 < iVar5" identifier < identifier) )) (compound_statement "{\n          if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }" { (if_statement "if ((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')) {\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" if (parenthesized_expression "((rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t'))" ( (binary_expression "(rl_line_buffer[iVar5] == ' ') || (rl_line_buffer[iVar5] == '\t')" (parenthesized_expression "(rl_line_buffer[iVar5] == ' ')" ( (binary_expression "rl_line_buffer[iVar5] == ' '" (subscript_expression "rl_line_buffer[iVar5]" identifier [ identifier ]) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(rl_line_buffer[iVar5] == '\t')" ( (binary_expression "rl_line_buffer[iVar5] == '\t'" (subscript_expression "rl_line_buffer[iVar5]" identifier [ identifier ]) == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n            lVar6 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" { (expression_statement "lVar6 = (long)(iVar5 + -1);" (assignment_expression "lVar6 = (long)(iVar5 + -1)" identifier = (cast_expression "(long)(iVar5 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar5 + -1)" ( (binary_expression "iVar5 + -1" identifier + number_literal) )))) ;) (do_statement "do {\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));" do (compound_statement "{\n              iVar5 = (int)lVar6;\n              rl_point = iVar5;\n              if (iVar5 <= iVar3) goto LAB_001b1ac4;\n              pcVar1 = rl_line_buffer + lVar6;\n              lVar6 = lVar6 + -1;\n            }" { (expression_statement "iVar5 = (int)lVar6;" (assignment_expression "iVar5 = (int)lVar6" identifier = (cast_expression "(int)lVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "rl_point = iVar5;" (assignment_expression "rl_point = iVar5" identifier = identifier) ;) (if_statement "if (iVar5 <= iVar3) goto LAB_001b1ac4;" if (parenthesized_expression "(iVar5 <= iVar3)" ( (binary_expression "iVar5 <= iVar3" identifier <= identifier) )) (goto_statement "goto LAB_001b1ac4;" goto statement_identifier ;)) (expression_statement "pcVar1 = rl_line_buffer + lVar6;" (assignment_expression "pcVar1 = rl_line_buffer + lVar6" identifier = (binary_expression "rl_line_buffer + lVar6" identifier + identifier)) ;) (expression_statement "lVar6 = lVar6 + -1;" (assignment_expression "lVar6 = lVar6 + -1" identifier = (binary_expression "lVar6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*pcVar1 == ' ') || (*pcVar1 == '\t'))" ( (binary_expression "(*pcVar1 == ' ') || (*pcVar1 == '\t')" (parenthesized_expression "(*pcVar1 == ' ')" ( (binary_expression "*pcVar1 == ' '" (pointer_expression "*pcVar1" * identifier) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*pcVar1 == '\t')" ( (binary_expression "*pcVar1 == '\t'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) }) (else_clause "else {\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" else (compound_statement "{\nLAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" { (labeled_statement "LAB_001b1ac4:\n          if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" statement_identifier : (if_statement "if (iVar3 == iVar5) {\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" if (parenthesized_expression "(iVar3 == iVar5)" ( (binary_expression "iVar3 == iVar5" identifier == identifier) )) (compound_statement "{\n            if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" { (if_statement "if (iVar5 < iVar2) {\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" if (parenthesized_expression "(iVar5 < iVar2)" ( (binary_expression "iVar5 < iVar2" identifier < identifier) )) (compound_statement "{\n              sVar7 = __ctype_get_mb_cur_max();\n              iVar2 = rl_point;\n              if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" { (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" identifier = identifier) ;) (if_statement "if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" if (parenthesized_expression "((sVar7 == 1) || (rl_byte_oriented != L'\0'))" ( (binary_expression "(sVar7 == 1) || (rl_byte_oriented != L'\0')" (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) || (parenthesized_expression "(rl_byte_oriented != L'\0')" ( (binary_expression "rl_byte_oriented != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) ))) )) (compound_statement "{\n                rl_point = rl_point + 1;\n              }" { (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" identifier = (binary_expression "rl_point + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" else (compound_statement "{\n                rl_point = _rl_forward_char_internal(L'\x01');\n                if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" { (expression_statement "rl_point = _rl_forward_char_internal(L'\x01');" (assignment_expression "rl_point = _rl_forward_char_internal(L'\x01')" identifier = (call_expression "_rl_forward_char_internal(L'\x01')" identifier (argument_list "(L'\x01')" ( (char_literal "L'\x01'" L' escape_sequence ') )))) ;) (if_statement "if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }" if (parenthesized_expression "((iVar2 == rl_point) || (rl_end < rl_point))" ( (binary_expression "(iVar2 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar2 == rl_point)" ( (binary_expression "iVar2 == rl_point" identifier == identifier) )) || (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) ))) )) (compound_statement "{\n                  rl_point = rl_end;\n                }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) }))) })) (goto_statement "goto LAB_001b1918;" goto statement_identifier ;) }))) }))) (if_statement "if ((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))) {\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" if (parenthesized_expression "((-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2))))" ( (binary_expression "(-1 < iVar5) &&\n           (((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))" (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)))" ( (parenthesized_expression "((iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2))" ( (binary_expression "(iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))\n            && (iVar5 < iVar2)" (parenthesized_expression "(iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'))" ( (binary_expression "iVar5 < iVar2 + -1 && (rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t')" (binary_expression "iVar5 < iVar2 + -1" identifier < (binary_expression "iVar2 + -1" identifier + number_literal)) && (parenthesized_expression "(rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t')" ( (binary_expression "rl_line_buffer[iVar5] != ' ' && rl_line_buffer[iVar5] != '\t'" (binary_expression "rl_line_buffer[iVar5] != ' '" (subscript_expression "rl_line_buffer[iVar5]" identifier [ identifier ]) != (char_literal "' '" ' character ')) && (binary_expression "rl_line_buffer[iVar5] != '\t'" (subscript_expression "rl_line_buffer[iVar5]" identifier [ identifier ]) != (char_literal "'\t'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(iVar5 < iVar2)" ( (binary_expression "iVar5 < iVar2" identifier < identifier) ))) )) ))) )) (compound_statement "{\n          sVar7 = __ctype_get_mb_cur_max();\n          iVar2 = rl_point;\n          if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" { (expression_statement "sVar7 = __ctype_get_mb_cur_max();" (assignment_expression "sVar7 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" identifier = identifier) ;) (if_statement "if ((sVar7 == 1) || (rl_byte_oriented != L'\0')) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" if (parenthesized_expression "((sVar7 == 1) || (rl_byte_oriented != L'\0'))" ( (binary_expression "(sVar7 == 1) || (rl_byte_oriented != L'\0')" (parenthesized_expression "(sVar7 == 1)" ( (binary_expression "sVar7 == 1" identifier == number_literal) )) || (parenthesized_expression "(rl_byte_oriented != L'\0')" ( (binary_expression "rl_byte_oriented != L'\0'" identifier != (char_literal "L'\0'" L' escape_sequence ')) ))) )) (compound_statement "{\n            rl_point = rl_point + 1;\n          }" { (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" identifier = (binary_expression "rl_point + 1" identifier + number_literal)) ;) }) (else_clause "else {\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" else (compound_statement "{\n            rl_point = _rl_forward_char_internal(L'\x01');\n            if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" { (expression_statement "rl_point = _rl_forward_char_internal(L'\x01');" (assignment_expression "rl_point = _rl_forward_char_internal(L'\x01')" identifier = (call_expression "_rl_forward_char_internal(L'\x01')" identifier (argument_list "(L'\x01')" ( (char_literal "L'\x01'" L' escape_sequence ') )))) ;) (if_statement "if ((iVar2 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }" if (parenthesized_expression "((iVar2 == rl_point) || (rl_end < rl_point))" ( (binary_expression "(iVar2 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar2 == rl_point)" ( (binary_expression "iVar2 == rl_point" identifier == identifier) )) || (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) ))) )) (compound_statement "{\n              rl_point = rl_end;\n            }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) }))) })) })) }))) (labeled_statement "LAB_001b1918:\n    iVar10 = rl_mark;" statement_identifier : (expression_statement "iVar10 = rl_mark;" (assignment_expression "iVar10 = rl_mark" identifier = identifier) ;)) (if_statement "if (rl_point <= rl_mark) goto LAB_001b192c;" if (parenthesized_expression "(rl_point <= rl_mark)" ( (binary_expression "rl_point <= rl_mark" identifier <= identifier) )) (goto_statement "goto LAB_001b192c;" goto statement_identifier ;)) }))) (expression_statement "rl_mark = rl_point;" (assignment_expression "rl_mark = rl_point" identifier = identifier) ;) (expression_statement "rl_point = iVar10;" (assignment_expression "rl_point = iVar10" identifier = identifier) ;) (labeled_statement "LAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*rl_redisplay_function)();\n  }" statement_identifier : (if_statement "if ((rl_readline_state & 0x80000) != 0) {\n    (*rl_redisplay_function)();\n  }" if (parenthesized_expression "((rl_readline_state & 0x80000) != 0)" ( (binary_expression "(rl_readline_state & 0x80000) != 0" (parenthesized_expression "(rl_readline_state & 0x80000)" ( (binary_expression "rl_readline_state & 0x80000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (*rl_redisplay_function)();\n  }" { (expression_statement "(*rl_redisplay_function)();" (call_expression "(*rl_redisplay_function)()" (parenthesized_expression "(*rl_redisplay_function)" ( (pointer_expression "*rl_redisplay_function" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "wVar4 = vidomove_dispatch(m);" (assignment_expression "wVar4 = vidomove_dispatch(m)" identifier = (call_expression "vidomove_dispatch(m)" identifier (argument_list "(m)" ( identifier )))) ;) (return_statement "return wVar4;" return identifier ;) })))
(translation_unit "undefined8 _rl_vi_domove_motion_cleanup(uint param_1,long param_2)\n\n{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}\n\n" (function_definition "undefined8 _rl_vi_domove_motion_cleanup(uint param_1,long param_2)\n\n{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}" type_identifier (function_declarator "_rl_vi_domove_motion_cleanup(uint param_1,long param_2)" identifier (parameter_list "(uint param_1,long param_2)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "ushort **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "__int32_t **pp_Var10;" type_identifier (pointer_declarator "**pp_Var10" * (pointer_declarator "*pp_Var10" * identifier)) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (expression_statement "rl_end = *(int *)(param_2 + 0x18);" (assignment_expression "rl_end = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(rl_line_buffer + rl_end) = 0;" (assignment_expression "*(undefined1 *)(rl_line_buffer + rl_end) = 0" (pointer_expression "*(undefined1 *)(rl_line_buffer + rl_end)" * (cast_expression "(undefined1 *)(rl_line_buffer + rl_end)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + rl_end)" ( (binary_expression "rl_line_buffer + rl_end" identifier + identifier) )))) = number_literal) ;) (expression_statement "iVar4 = rl_mark;" (assignment_expression "iVar4 = rl_mark" identifier = identifier) ;) (expression_statement "iVar3 = rl_end;" (assignment_expression "iVar3 = rl_end" identifier = identifier) ;) (if_statement "if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }" if (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) )) (compound_statement "{\n    rl_point = rl_end;\n  }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) (expression_statement "iVar5 = rl_point;" (assignment_expression "iVar5 = rl_point" identifier = identifier) ;) (if_statement "if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }" if (parenthesized_expression "(rl_mark == rl_point)" ( (binary_expression "rl_mark == rl_point" identifier == identifier) )) (compound_statement "{\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }" { (expression_statement "rl_readline_state = rl_readline_state & 0xffffffffffefffff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffffffffefffff" identifier = (binary_expression "rl_readline_state & 0xffffffffffefffff" identifier & number_literal)) ;) (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "bVar12 = (byte)param_1;" (assignment_expression "bVar12 = (byte)param_1" identifier = (cast_expression "(byte)param_1" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar2 = param_1;" (assignment_expression "uVar2 = param_1" identifier = identifier) ;) (if_statement "if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }" if (parenthesized_expression "((param_1 & 0xff) == param_1)" ( (binary_expression "(param_1 & 0xff) == param_1" (parenthesized_expression "(param_1 & 0xff)" ( (binary_expression "param_1 & 0xff" identifier & number_literal) )) == identifier) )) (compound_statement "{\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }" { (expression_statement "ppuVar9 = __ctype_b_loc();" (assignment_expression "ppuVar9 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }" if (parenthesized_expression "((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0)" ( (binary_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2)" ( (binary_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" * (cast_expression "(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2 + 1" (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2" (cast_expression "(long)*ppuVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ppuVar9" * identifier)) + (binary_expression "(ulong)bVar12 * 2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }" { (expression_statement "pp_Var10 = __ctype_toupper_loc();" (assignment_expression "pp_Var10 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar2 = (*pp_Var10)[bVar12];" (assignment_expression "uVar2 = (*pp_Var10)[bVar12]" identifier = (subscript_expression "(*pp_Var10)[bVar12]" (parenthesized_expression "(*pp_Var10)" ( (pointer_expression "*pp_Var10" * identifier) )) [ identifier ])) ;) })) })) (if_statement "if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" if (parenthesized_expression "((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57))" ( (binary_expression "(iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)" (parenthesized_expression "(iVar5 < iVar3 && iVar4 < iVar5)" ( (binary_expression "iVar5 < iVar3 && iVar4 < iVar5" (binary_expression "iVar5 < iVar3" identifier < identifier) && (binary_expression "iVar4 < iVar5" identifier < identifier)) )) && (parenthesized_expression "(uVar2 == 0x57)" ( (binary_expression "uVar2 == 0x57" identifier == number_literal) ))) )) (compound_statement "{\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }" { (if_statement "if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" if (parenthesized_expression "((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t'))" ( (binary_expression "(*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != ' ')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" { (expression_statement "rl_point = iVar5 + -1;" (assignment_expression "rl_point = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (goto_statement "goto LAB_001b190c;" goto statement_identifier ;) })) (expression_statement "iVar11 = rl_mark;" (assignment_expression "iVar11 = rl_mark" identifier = identifier) ;) (if_statement "if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;" if (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 99)" ( (binary_expression "*(int *)(param_2 + 0x1c) == 99" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001b19d5;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" else (compound_statement "{\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" { (labeled_statement "LAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" statement_identifier : (if_statement "if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point))" ( (binary_expression "(*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)" (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 99)" ( (binary_expression "*(int *)(param_2 + 0x1c) == 99" (pointer_expression "*(int *)(param_2 + 0x1c)" * (cast_expression "(int *)(param_2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1c)" ( (binary_expression "param_2 + 0x1c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar5 = rl_point, iVar4 <= rl_point)" ( (comma_expression "iVar5 = rl_point, iVar4 <= rl_point" (assignment_expression "iVar5 = rl_point" identifier = identifier) , (binary_expression "iVar4 <= rl_point" identifier <= identifier)) ))) )) (compound_statement "{\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" { (labeled_statement "LAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" statement_identifier : (if_statement "if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" if (parenthesized_expression "((param_1 & 0xff) == param_1)" ( (binary_expression "(param_1 & 0xff) == param_1" (parenthesized_expression "(param_1 & 0xff)" ( (binary_expression "param_1 & 0xff" identifier & number_literal) )) == identifier) )) (compound_statement "{\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" { (expression_statement "ppuVar9 = __ctype_b_loc();" (assignment_expression "ppuVar9 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }" if (parenthesized_expression "((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0)" ( (binary_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2)" ( (binary_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" * (cast_expression "(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" ( (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2 + 1" (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2" (cast_expression "(long)*ppuVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "*ppuVar9" * identifier)) + (binary_expression "(ulong)bVar12 * 2" (cast_expression "(ulong)bVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }" { (expression_statement "pp_Var10 = __ctype_toupper_loc();" (assignment_expression "pp_Var10 = __ctype_toupper_loc()" identifier = (call_expression "__ctype_toupper_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1 = (*pp_Var10)[bVar12];" (assignment_expression "param_1 = (*pp_Var10)[bVar12]" identifier = (subscript_expression "(*pp_Var10)[bVar12]" (parenthesized_expression "(*pp_Var10)" ( (pointer_expression "*pp_Var10" * identifier) )) [ identifier ])) ;) })) }))) (if_statement "if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(param_1 == 0x57)" ( (binary_expression "param_1 == 0x57" identifier == number_literal) )) (compound_statement "{\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" { (if_statement "if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" if (parenthesized_expression "(iVar4 < iVar5)" ( (binary_expression "iVar4 < iVar5" identifier < identifier) )) (compound_statement "{\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }" { (if_statement "if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" if (parenthesized_expression "((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t'))" ( (binary_expression "(*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) == ' ')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) == ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) == '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) == '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) == (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" { (expression_statement "lVar7 = (long)(iVar5 + -1);" (assignment_expression "lVar7 = (long)(iVar5 + -1)" identifier = (cast_expression "(long)(iVar5 + -1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(iVar5 + -1)" ( (binary_expression "iVar5 + -1" identifier + number_literal) )))) ;) (do_statement "do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));" do (compound_statement "{\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            }" { (expression_statement "iVar5 = (int)lVar7;" (assignment_expression "iVar5 = (int)lVar7" identifier = (cast_expression "(int)lVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "rl_point = iVar5;" (assignment_expression "rl_point = iVar5" identifier = identifier) ;) (if_statement "if (iVar5 <= iVar4) goto LAB_001b1ac4;" if (parenthesized_expression "(iVar5 <= iVar4)" ( (binary_expression "iVar5 <= iVar4" identifier <= identifier) )) (goto_statement "goto LAB_001b1ac4;" goto statement_identifier ;)) (expression_statement "pcVar1 = (char *)(rl_line_buffer + lVar7);" (assignment_expression "pcVar1 = (char *)(rl_line_buffer + lVar7)" identifier = (cast_expression "(char *)(rl_line_buffer + lVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + lVar7)" ( (binary_expression "rl_line_buffer + lVar7" identifier + identifier) )))) ;) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "((*pcVar1 == ' ') || (*pcVar1 == '\t'))" ( (binary_expression "(*pcVar1 == ' ') || (*pcVar1 == '\t')" (parenthesized_expression "(*pcVar1 == ' ')" ( (binary_expression "*pcVar1 == ' '" (pointer_expression "*pcVar1" * identifier) == (char_literal "' '" ' character ')) )) || (parenthesized_expression "(*pcVar1 == '\t')" ( (binary_expression "*pcVar1 == '\t'" (pointer_expression "*pcVar1" * identifier) == (char_literal "'\t'" ' escape_sequence ')) ))) )) ;) })) }) (else_clause "else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" else (compound_statement "{\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" { (labeled_statement "LAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" statement_identifier : (if_statement "if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" if (parenthesized_expression "(iVar4 == iVar5)" ( (binary_expression "iVar4 == iVar5" identifier == identifier) )) (compound_statement "{\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" { (if_statement "if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" if (parenthesized_expression "(iVar5 < iVar3)" ( (binary_expression "iVar5 < iVar3" identifier < identifier) )) (compound_statement "{\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" { (expression_statement "sVar8 = __ctype_get_mb_cur_max();" (assignment_expression "sVar8 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" identifier = identifier) ;) (if_statement "if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" if (parenthesized_expression "((sVar8 == 1) || (rl_byte_oriented != 0))" ( (binary_expression "(sVar8 == 1) || (rl_byte_oriented != 0)" (parenthesized_expression "(sVar8 == 1)" ( (binary_expression "sVar8 == 1" identifier == number_literal) )) || (parenthesized_expression "(rl_byte_oriented != 0)" ( (binary_expression "rl_byte_oriented != 0" identifier != number_literal) ))) )) (compound_statement "{\n                rl_point = rl_point + 1;\n              }" { (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" identifier = (binary_expression "rl_point + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" else (compound_statement "{\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" { (expression_statement "rl_point = _rl_forward_char_internal(1);" (assignment_expression "rl_point = _rl_forward_char_internal(1)" identifier = (call_expression "_rl_forward_char_internal(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (if_statement "if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }" if (parenthesized_expression "((iVar3 == rl_point) || (rl_end < rl_point))" ( (binary_expression "(iVar3 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar3 == rl_point)" ( (binary_expression "iVar3 == rl_point" identifier == identifier) )) || (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) ))) )) (compound_statement "{\n                  rl_point = rl_end;\n                }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) }))) })) (goto_statement "goto LAB_001b1918;" goto statement_identifier ;) }))) }))) (if_statement "if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" if (parenthesized_expression "((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3))))" ( (binary_expression "(-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))" (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))" ( (parenthesized_expression "((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3))" ( (binary_expression "(iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)" (parenthesized_expression "(iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             )" ( (binary_expression "iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')" (binary_expression "iVar5 < iVar3 + -1" identifier < (binary_expression "iVar3 + -1" identifier + number_literal)) && (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t'" (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "' '" ' character ')) && (binary_expression "*(char *)(rl_line_buffer + iVar5) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" * (cast_expression "(char *)(rl_line_buffer + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar5)" ( (binary_expression "rl_line_buffer + iVar5" identifier + identifier) )))) != (char_literal "'\t'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(iVar5 < iVar3)" ( (binary_expression "iVar5 < iVar3" identifier < identifier) ))) )) ))) )) (compound_statement "{\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" { (expression_statement "sVar8 = __ctype_get_mb_cur_max();" (assignment_expression "sVar8 = __ctype_get_mb_cur_max()" identifier = (call_expression "__ctype_get_mb_cur_max()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" identifier = identifier) ;) (if_statement "if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" if (parenthesized_expression "((sVar8 == 1) || (rl_byte_oriented != 0))" ( (binary_expression "(sVar8 == 1) || (rl_byte_oriented != 0)" (parenthesized_expression "(sVar8 == 1)" ( (binary_expression "sVar8 == 1" identifier == number_literal) )) || (parenthesized_expression "(rl_byte_oriented != 0)" ( (binary_expression "rl_byte_oriented != 0" identifier != number_literal) ))) )) (compound_statement "{\n            rl_point = rl_point + 1;\n          }" { (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" identifier = (binary_expression "rl_point + 1" identifier + number_literal)) ;) }) (else_clause "else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" else (compound_statement "{\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" { (expression_statement "rl_point = _rl_forward_char_internal(1);" (assignment_expression "rl_point = _rl_forward_char_internal(1)" identifier = (call_expression "_rl_forward_char_internal(1)" identifier (argument_list "(1)" ( number_literal )))) ;) (if_statement "if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }" if (parenthesized_expression "((iVar3 == rl_point) || (rl_end < rl_point))" ( (binary_expression "(iVar3 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar3 == rl_point)" ( (binary_expression "iVar3 == rl_point" identifier == identifier) )) || (parenthesized_expression "(rl_end < rl_point)" ( (binary_expression "rl_end < rl_point" identifier < identifier) ))) )) (compound_statement "{\n              rl_point = rl_end;\n            }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) })) }))) })) })) }))) (labeled_statement "LAB_001b1918:\n    iVar11 = rl_mark;" statement_identifier : (expression_statement "iVar11 = rl_mark;" (assignment_expression "iVar11 = rl_mark" identifier = identifier) ;)) (if_statement "if (rl_point <= rl_mark) goto LAB_001b192c;" if (parenthesized_expression "(rl_point <= rl_mark)" ( (binary_expression "rl_point <= rl_mark" identifier <= identifier) )) (goto_statement "goto LAB_001b192c;" goto statement_identifier ;)) }))) (expression_statement "rl_mark = rl_point;" (assignment_expression "rl_mark = rl_point" identifier = identifier) ;) (expression_statement "rl_point = iVar11;" (assignment_expression "rl_point = iVar11" identifier = identifier) ;) (labeled_statement "LAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }" statement_identifier : (if_statement "if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }" if (parenthesized_expression "((rl_readline_state & 0x80000) != 0)" ( (binary_expression "(rl_readline_state & 0x80000) != 0" (parenthesized_expression "(rl_readline_state & 0x80000)" ( (binary_expression "rl_readline_state & 0x80000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (*(code *)rl_redisplay_function)();\n  }" { (expression_statement "(*(code *)rl_redisplay_function)();" (call_expression "(*(code *)rl_redisplay_function)()" (parenthesized_expression "(*(code *)rl_redisplay_function)" ( (pointer_expression "*(code *)rl_redisplay_function" * (cast_expression "(code *)rl_redisplay_function" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "uVar6 = FUN_001b12b4(param_2);" (assignment_expression "uVar6 = FUN_001b12b4(param_2)" identifier = (call_expression "FUN_001b12b4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression * IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ])) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) && (binary_expression IDENT < IDENT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression * IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ])) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_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 (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) (goto_statement goto statement_identifier ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT < (binary_expression IDENT + LIT)) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' character ')) && (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_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 (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined8 _rl_vi_domove_motion_cleanup(uint param_1,long param_2)\n\n{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}" (type_identifier "undefined8") (function_declarator "_rl_vi_domove_motion_cleanup(uint param_1,long param_2)" (identifier "_rl_vi_domove_motion_cleanup") (parameter_list "(uint param_1,long param_2)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  uint uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined8 uVar6;\n  long lVar7;\n  size_t sVar8;\n  ushort **ppuVar9;\n  __int32_t **pp_Var10;\n  int iVar11;\n  byte bVar12;\n  \n  rl_end = *(int *)(param_2 + 0x18);\n  *(undefined1 *)(rl_line_buffer + rl_end) = 0;\n  iVar4 = rl_mark;\n  iVar3 = rl_end;\n  if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }\n  iVar5 = rl_point;\n  if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }\n  bVar12 = (byte)param_1;\n  uVar2 = param_1;\n  if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }\n  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }\n  rl_mark = rl_point;\n  rl_point = iVar11;\nLAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }\n  uVar6 = FUN_001b12b4(param_2);\n  return uVar6;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (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 "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "ushort **ppuVar9;" (type_identifier "ushort") (pointer_declarator "**ppuVar9" (* "*") (pointer_declarator "*ppuVar9" (* "*") (identifier "ppuVar9"))) (; ";")) (declaration "__int32_t **pp_Var10;" (type_identifier "__int32_t") (pointer_declarator "**pp_Var10" (* "*") (pointer_declarator "*pp_Var10" (* "*") (identifier "pp_Var10"))) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (expression_statement "rl_end = *(int *)(param_2 + 0x18);" (assignment_expression "rl_end = *(int *)(param_2 + 0x18)" (identifier "rl_end") (= "=") (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(rl_line_buffer + rl_end) = 0;" (assignment_expression "*(undefined1 *)(rl_line_buffer + rl_end) = 0" (pointer_expression "*(undefined1 *)(rl_line_buffer + rl_end)" (* "*") (cast_expression "(undefined1 *)(rl_line_buffer + rl_end)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + rl_end)" (( "(") (binary_expression "rl_line_buffer + rl_end" (identifier "rl_line_buffer") (+ "+") (identifier "rl_end")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = rl_mark;" (assignment_expression "iVar4 = rl_mark" (identifier "iVar4") (= "=") (identifier "rl_mark")) (; ";")) (expression_statement "iVar3 = rl_end;" (assignment_expression "iVar3 = rl_end" (identifier "iVar3") (= "=") (identifier "rl_end")) (; ";")) (if_statement "if (rl_end < rl_point) {\n    rl_point = rl_end;\n  }" (if "if") (parenthesized_expression "(rl_end < rl_point)" (( "(") (binary_expression "rl_end < rl_point" (identifier "rl_end") (< "<") (identifier "rl_point")) () ")")) (compound_statement "{\n    rl_point = rl_end;\n  }" ({ "{") (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" (identifier "rl_point") (= "=") (identifier "rl_end")) (; ";")) (} "}"))) (expression_statement "iVar5 = rl_point;" (assignment_expression "iVar5 = rl_point" (identifier "iVar5") (= "=") (identifier "rl_point")) (; ";")) (if_statement "if (rl_mark == rl_point) {\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }" (if "if") (parenthesized_expression "(rl_mark == rl_point)" (( "(") (binary_expression "rl_mark == rl_point" (identifier "rl_mark") (== "==") (identifier "rl_point")) () ")")) (compound_statement "{\n    rl_readline_state = rl_readline_state & 0xffffffffffefffff;\n    return 0xffffffff;\n  }" ({ "{") (expression_statement "rl_readline_state = rl_readline_state & 0xffffffffffefffff;" (assignment_expression "rl_readline_state = rl_readline_state & 0xffffffffffefffff" (identifier "rl_readline_state") (= "=") (binary_expression "rl_readline_state & 0xffffffffffefffff" (identifier "rl_readline_state") (& "&") (number_literal "0xffffffffffefffff"))) (; ";")) (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "bVar12 = (byte)param_1;" (assignment_expression "bVar12 = (byte)param_1" (identifier "bVar12") (= "=") (cast_expression "(byte)param_1" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_1"))) (; ";")) (expression_statement "uVar2 = param_1;" (assignment_expression "uVar2 = param_1" (identifier "uVar2") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((param_1 & 0xff) == param_1) {\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }" (if "if") (parenthesized_expression "((param_1 & 0xff) == param_1)" (( "(") (binary_expression "(param_1 & 0xff) == param_1" (parenthesized_expression "(param_1 & 0xff)" (( "(") (binary_expression "param_1 & 0xff" (identifier "param_1") (& "&") (number_literal "0xff")) () ")")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n    ppuVar9 = __ctype_b_loc();\n    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }\n  }" ({ "{") (expression_statement "ppuVar9 = __ctype_b_loc();" (assignment_expression "ppuVar9 = __ctype_b_loc()" (identifier "ppuVar9") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }" (if "if") (parenthesized_expression "((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2)" (( "(") (binary_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" (* "*") (cast_expression "(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" (( "(") (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2 + 1" (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2" (cast_expression "(long)*ppuVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "*ppuVar9" (* "*") (identifier "ppuVar9"))) (+ "+") (binary_expression "(ulong)bVar12 * 2" (cast_expression "(ulong)bVar12" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar12")) (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pp_Var10 = __ctype_toupper_loc();\n      uVar2 = (*pp_Var10)[bVar12];\n    }" ({ "{") (expression_statement "pp_Var10 = __ctype_toupper_loc();" (assignment_expression "pp_Var10 = __ctype_toupper_loc()" (identifier "pp_Var10") (= "=") (call_expression "__ctype_toupper_loc()" (identifier "__ctype_toupper_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar2 = (*pp_Var10)[bVar12];" (assignment_expression "uVar2 = (*pp_Var10)[bVar12]" (identifier "uVar2") (= "=") (subscript_expression "(*pp_Var10)[bVar12]" (parenthesized_expression "(*pp_Var10)" (( "(") (pointer_expression "*pp_Var10" (* "*") (identifier "pp_Var10")) () ")")) ([ "[") (identifier "bVar12") (] "]"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }\n  else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" (if "if") (parenthesized_expression "((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57))" (( "(") (binary_expression "(iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)" (parenthesized_expression "(iVar5 < iVar3 && iVar4 < iVar5)" (( "(") (binary_expression "iVar5 < iVar3 && iVar4 < iVar5" (binary_expression "iVar5 < iVar3" (identifier "iVar5") (< "<") (identifier "iVar3")) (&& "&&") (binary_expression "iVar4 < iVar5" (identifier "iVar4") (< "<") (identifier "iVar5"))) () ")")) (&& "&&") (parenthesized_expression "(uVar2 == 0x57)" (( "(") (binary_expression "uVar2 == 0x57" (identifier "uVar2") (== "==") (number_literal "0x57")) () ")"))) () ")")) (compound_statement "{\n    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }\n    iVar11 = rl_mark;\n    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;\n  }" ({ "{") (if_statement "if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" (if "if") (parenthesized_expression "((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t'))" (( "(") (binary_expression "(*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != ' ')" (( "(") (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar5)" (( "(") (binary_expression "rl_line_buffer + iVar5" (identifier "rl_line_buffer") (+ "+") (identifier "iVar5")) () ")")))) (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != '\t')" (( "(") (binary_expression "*(char *)(rl_line_buffer + iVar5) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar5)" (( "(") (binary_expression "rl_line_buffer + iVar5" (identifier "rl_line_buffer") (+ "+") (identifier "iVar5")) () ")")))) (!= "!=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      rl_point = iVar5 + -1;\n      goto LAB_001b190c;\n    }" ({ "{") (expression_statement "rl_point = iVar5 + -1;" (assignment_expression "rl_point = iVar5 + -1" (identifier "rl_point") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (goto_statement "goto LAB_001b190c;" (goto "goto") (statement_identifier "LAB_001b190c") (; ";")) (} "}"))) (expression_statement "iVar11 = rl_mark;" (assignment_expression "iVar11 = rl_mark" (identifier "iVar11") (= "=") (identifier "rl_mark")) (; ";")) (if_statement "if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 99)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) == 99" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "99")) () ")")) (goto_statement "goto LAB_001b19d5;" (goto "goto") (statement_identifier "LAB_001b19d5") (; ";"))) (} "}")) (else_clause "else {\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" (else "else") (compound_statement "{\nLAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }\nLAB_001b1918:\n    iVar11 = rl_mark;\n    if (rl_point <= rl_mark) goto LAB_001b192c;\n  }" ({ "{") (labeled_statement "LAB_001b190c:\n    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" (statement_identifier "LAB_001b190c") (: ":") (if_statement "if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point))" (( "(") (binary_expression "(*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)" (parenthesized_expression "(*(int *)(param_2 + 0x1c) == 99)" (( "(") (binary_expression "*(int *)(param_2 + 0x1c) == 99" (pointer_expression "*(int *)(param_2 + 0x1c)" (* "*") (cast_expression "(int *)(param_2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1c)" (( "(") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "99")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = rl_point, iVar4 <= rl_point)" (( "(") (comma_expression "iVar5 = rl_point, iVar4 <= rl_point" (assignment_expression "iVar5 = rl_point" (identifier "iVar5") (= "=") (identifier "rl_point")) (, ",") (binary_expression "iVar4 <= rl_point" (identifier "iVar4") (<= "<=") (identifier "rl_point"))) () ")"))) () ")")) (compound_statement "{\nLAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }\n      if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }\n    }" ({ "{") (labeled_statement "LAB_001b19d5:\n      if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" (statement_identifier "LAB_001b19d5") (: ":") (if_statement "if ((param_1 & 0xff) == param_1) {\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" (if "if") (parenthesized_expression "((param_1 & 0xff) == param_1)" (( "(") (binary_expression "(param_1 & 0xff) == param_1" (parenthesized_expression "(param_1 & 0xff)" (( "(") (binary_expression "param_1 & 0xff" (identifier "param_1") (& "&") (number_literal "0xff")) () ")")) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n        ppuVar9 = __ctype_b_loc();\n        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }\n      }" ({ "{") (expression_statement "ppuVar9 = __ctype_b_loc();" (assignment_expression "ppuVar9 = __ctype_b_loc()" (identifier "ppuVar9") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }" (if "if") (parenthesized_expression "((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0" (parenthesized_expression "(*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2)" (( "(") (binary_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2" (pointer_expression "*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" (* "*") (cast_expression "(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)*ppuVar9 + (ulong)bVar12 * 2 + 1)" (( "(") (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2 + 1" (binary_expression "(long)*ppuVar9 + (ulong)bVar12 * 2" (cast_expression "(long)*ppuVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "*ppuVar9" (* "*") (identifier "ppuVar9"))) (+ "+") (binary_expression "(ulong)bVar12 * 2" (cast_expression "(ulong)bVar12" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar12")) (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pp_Var10 = __ctype_toupper_loc();\n          param_1 = (*pp_Var10)[bVar12];\n        }" ({ "{") (expression_statement "pp_Var10 = __ctype_toupper_loc();" (assignment_expression "pp_Var10 = __ctype_toupper_loc()" (identifier "pp_Var10") (= "=") (call_expression "__ctype_toupper_loc()" (identifier "__ctype_toupper_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_1 = (*pp_Var10)[bVar12];" (assignment_expression "param_1 = (*pp_Var10)[bVar12]" (identifier "param_1") (= "=") (subscript_expression "(*pp_Var10)[bVar12]" (parenthesized_expression "(*pp_Var10)" (( "(") (pointer_expression "*pp_Var10" (* "*") (identifier "pp_Var10")) () ")")) ([ "[") (identifier "bVar12") (] "]"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (param_1 == 0x57) {\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(param_1 == 0x57)" (( "(") (binary_expression "param_1 == 0x57" (identifier "param_1") (== "==") (number_literal "0x57")) () ")")) (compound_statement "{\n        if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }\n        if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (iVar4 < iVar5) {\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }\n        else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" (if "if") (parenthesized_expression "(iVar4 < iVar5)" (( "(") (binary_expression "iVar4 < iVar5" (identifier "iVar4") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }\n        }" ({ "{") (if_statement "if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')) {\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" (if "if") (parenthesized_expression "((*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t'))" (( "(") (binary_expression "(*(char *)(rl_line_buffer + iVar5) == ' ') ||\n             (*(char *)(rl_line_buffer + iVar5) == '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) == ' ')" (( "(") (binary_expression "*(char *)(rl_line_buffer + iVar5) == ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar5)" (( "(") (binary_expression "rl_line_buffer + iVar5" (identifier "rl_line_buffer") (+ "+") (identifier "iVar5")) () ")")))) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) == '\t')" (( "(") (binary_expression "*(char *)(rl_line_buffer + iVar5) == '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar5)" (( "(") (binary_expression "rl_line_buffer + iVar5" (identifier "rl_line_buffer") (+ "+") (identifier "iVar5")) () ")")))) (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            lVar7 = (long)(iVar5 + -1);\n            do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));\n          }" ({ "{") (expression_statement "lVar7 = (long)(iVar5 + -1);" (assignment_expression "lVar7 = (long)(iVar5 + -1)" (identifier "lVar7") (= "=") (cast_expression "(long)(iVar5 + -1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(iVar5 + -1)" (( "(") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (do_statement "do {\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));" (do "do") (compound_statement "{\n              iVar5 = (int)lVar7;\n              rl_point = iVar5;\n              if (iVar5 <= iVar4) goto LAB_001b1ac4;\n              pcVar1 = (char *)(rl_line_buffer + lVar7);\n              lVar7 = lVar7 + -1;\n            }" ({ "{") (expression_statement "iVar5 = (int)lVar7;" (assignment_expression "iVar5 = (int)lVar7" (identifier "iVar5") (= "=") (cast_expression "(int)lVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar7"))) (; ";")) (expression_statement "rl_point = iVar5;" (assignment_expression "rl_point = iVar5" (identifier "rl_point") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 <= iVar4) goto LAB_001b1ac4;" (if "if") (parenthesized_expression "(iVar5 <= iVar4)" (( "(") (binary_expression "iVar5 <= iVar4" (identifier "iVar5") (<= "<=") (identifier "iVar4")) () ")")) (goto_statement "goto LAB_001b1ac4;" (goto "goto") (statement_identifier "LAB_001b1ac4") (; ";"))) (expression_statement "pcVar1 = (char *)(rl_line_buffer + lVar7);" (assignment_expression "pcVar1 = (char *)(rl_line_buffer + lVar7)" (identifier "pcVar1") (= "=") (cast_expression "(char *)(rl_line_buffer + lVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + lVar7)" (( "(") (binary_expression "rl_line_buffer + lVar7" (identifier "rl_line_buffer") (+ "+") (identifier "lVar7")) () ")")))) (; ";")) (expression_statement "lVar7 = lVar7 + -1;" (assignment_expression "lVar7 = lVar7 + -1" (identifier "lVar7") (= "=") (binary_expression "lVar7 + -1" (identifier "lVar7") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*pcVar1 == ' ') || (*pcVar1 == '\t'))" (( "(") (binary_expression "(*pcVar1 == ' ') || (*pcVar1 == '\t')" (parenthesized_expression "(*pcVar1 == ' ')" (( "(") (binary_expression "*pcVar1 == ' '" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*pcVar1 == '\t')" (( "(") (binary_expression "*pcVar1 == '\t'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" (else "else") (compound_statement "{\nLAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }\n        }" ({ "{") (labeled_statement "LAB_001b1ac4:\n          if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" (statement_identifier "LAB_001b1ac4") (: ":") (if_statement "if (iVar4 == iVar5) {\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" (if "if") (parenthesized_expression "(iVar4 == iVar5)" (( "(") (binary_expression "iVar4 == iVar5" (identifier "iVar4") (== "==") (identifier "iVar5")) () ")")) (compound_statement "{\n            if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }\n            goto LAB_001b1918;\n          }" ({ "{") (if_statement "if (iVar5 < iVar3) {\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar5 < iVar3)" (( "(") (binary_expression "iVar5 < iVar3" (identifier "iVar5") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n              sVar8 = __ctype_get_mb_cur_max();\n              iVar3 = rl_point;\n              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }\n            }" ({ "{") (expression_statement "sVar8 = __ctype_get_mb_cur_max();" (assignment_expression "sVar8 = __ctype_get_mb_cur_max()" (identifier "sVar8") (= "=") (call_expression "__ctype_get_mb_cur_max()" (identifier "__ctype_get_mb_cur_max") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" (identifier "iVar3") (= "=") (identifier "rl_point")) (; ";")) (if_statement "if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n                rl_point = rl_point + 1;\n              }\n              else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" (if "if") (parenthesized_expression "((sVar8 == 1) || (rl_byte_oriented != 0))" (( "(") (binary_expression "(sVar8 == 1) || (rl_byte_oriented != 0)" (parenthesized_expression "(sVar8 == 1)" (( "(") (binary_expression "sVar8 == 1" (identifier "sVar8") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(rl_byte_oriented != 0)" (( "(") (binary_expression "rl_byte_oriented != 0" (identifier "rl_byte_oriented") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                rl_point = rl_point + 1;\n              }" ({ "{") (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" (identifier "rl_point") (= "=") (binary_expression "rl_point + 1" (identifier "rl_point") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" (else "else") (compound_statement "{\n                rl_point = _rl_forward_char_internal(1);\n                if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }\n              }" ({ "{") (expression_statement "rl_point = _rl_forward_char_internal(1);" (assignment_expression "rl_point = _rl_forward_char_internal(1)" (identifier "rl_point") (= "=") (call_expression "_rl_forward_char_internal(1)" (identifier "_rl_forward_char_internal") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n                  rl_point = rl_end;\n                }" (if "if") (parenthesized_expression "((iVar3 == rl_point) || (rl_end < rl_point))" (( "(") (binary_expression "(iVar3 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar3 == rl_point)" (( "(") (binary_expression "iVar3 == rl_point" (identifier "iVar3") (== "==") (identifier "rl_point")) () ")")) (|| "||") (parenthesized_expression "(rl_end < rl_point)" (( "(") (binary_expression "rl_end < rl_point" (identifier "rl_end") (< "<") (identifier "rl_point")) () ")"))) () ")")) (compound_statement "{\n                  rl_point = rl_end;\n                }" ({ "{") (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" (identifier "rl_point") (= "=") (identifier "rl_end")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (goto_statement "goto LAB_001b1918;" (goto "goto") (statement_identifier "LAB_001b1918") (; ";")) (} "}")))) (} "}")))) (if_statement "if ((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))) {\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3))))" (( "(") (binary_expression "(-1 < iVar5) &&\n           (((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))" (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (&& "&&") (parenthesized_expression "(((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)))" (( "(") (parenthesized_expression "((iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3))" (( "(") (binary_expression "(iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             ) && (iVar5 < iVar3)" (parenthesized_expression "(iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')\n             )" (( "(") (binary_expression "iVar5 < iVar3 + -1 &&\n             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')" (binary_expression "iVar5 < iVar3 + -1" (identifier "iVar5") (< "<") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (&& "&&") (parenthesized_expression "(*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')" (( "(") (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t'" (binary_expression "*(char *)(rl_line_buffer + iVar5) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar5)" (( "(") (binary_expression "rl_line_buffer + iVar5" (identifier "rl_line_buffer") (+ "+") (identifier "iVar5")) () ")")))) (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) (&& "&&") (binary_expression "*(char *)(rl_line_buffer + iVar5) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar5)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar5)" (( "(") (binary_expression "rl_line_buffer + iVar5" (identifier "rl_line_buffer") (+ "+") (identifier "iVar5")) () ")")))) (!= "!=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 < iVar3)" (( "(") (binary_expression "iVar5 < iVar3" (identifier "iVar5") (< "<") (identifier "iVar3")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          sVar8 = __ctype_get_mb_cur_max();\n          iVar3 = rl_point;\n          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }\n        }" ({ "{") (expression_statement "sVar8 = __ctype_get_mb_cur_max();" (assignment_expression "sVar8 = __ctype_get_mb_cur_max()" (identifier "sVar8") (= "=") (call_expression "__ctype_get_mb_cur_max()" (identifier "__ctype_get_mb_cur_max") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = rl_point;" (assignment_expression "iVar3 = rl_point" (identifier "iVar3") (= "=") (identifier "rl_point")) (; ";")) (if_statement "if ((sVar8 == 1) || (rl_byte_oriented != 0)) {\n            rl_point = rl_point + 1;\n          }\n          else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" (if "if") (parenthesized_expression "((sVar8 == 1) || (rl_byte_oriented != 0))" (( "(") (binary_expression "(sVar8 == 1) || (rl_byte_oriented != 0)" (parenthesized_expression "(sVar8 == 1)" (( "(") (binary_expression "sVar8 == 1" (identifier "sVar8") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(rl_byte_oriented != 0)" (( "(") (binary_expression "rl_byte_oriented != 0" (identifier "rl_byte_oriented") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            rl_point = rl_point + 1;\n          }" ({ "{") (expression_statement "rl_point = rl_point + 1;" (assignment_expression "rl_point = rl_point + 1" (identifier "rl_point") (= "=") (binary_expression "rl_point + 1" (identifier "rl_point") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" (else "else") (compound_statement "{\n            rl_point = _rl_forward_char_internal(1);\n            if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }\n          }" ({ "{") (expression_statement "rl_point = _rl_forward_char_internal(1);" (assignment_expression "rl_point = _rl_forward_char_internal(1)" (identifier "rl_point") (= "=") (call_expression "_rl_forward_char_internal(1)" (identifier "_rl_forward_char_internal") (argument_list "(1)" (( "(") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar3 == rl_point) || (rl_end < rl_point)) {\n              rl_point = rl_end;\n            }" (if "if") (parenthesized_expression "((iVar3 == rl_point) || (rl_end < rl_point))" (( "(") (binary_expression "(iVar3 == rl_point) || (rl_end < rl_point)" (parenthesized_expression "(iVar3 == rl_point)" (( "(") (binary_expression "iVar3 == rl_point" (identifier "iVar3") (== "==") (identifier "rl_point")) () ")")) (|| "||") (parenthesized_expression "(rl_end < rl_point)" (( "(") (binary_expression "rl_end < rl_point" (identifier "rl_end") (< "<") (identifier "rl_point")) () ")"))) () ")")) (compound_statement "{\n              rl_point = rl_end;\n            }" ({ "{") (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" (identifier "rl_point") (= "=") (identifier "rl_end")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_001b1918:\n    iVar11 = rl_mark;" (statement_identifier "LAB_001b1918") (: ":") (expression_statement "iVar11 = rl_mark;" (assignment_expression "iVar11 = rl_mark" (identifier "iVar11") (= "=") (identifier "rl_mark")) (; ";"))) (if_statement "if (rl_point <= rl_mark) goto LAB_001b192c;" (if "if") (parenthesized_expression "(rl_point <= rl_mark)" (( "(") (binary_expression "rl_point <= rl_mark" (identifier "rl_point") (<= "<=") (identifier "rl_mark")) () ")")) (goto_statement "goto LAB_001b192c;" (goto "goto") (statement_identifier "LAB_001b192c") (; ";"))) (} "}")))) (expression_statement "rl_mark = rl_point;" (assignment_expression "rl_mark = rl_point" (identifier "rl_mark") (= "=") (identifier "rl_point")) (; ";")) (expression_statement "rl_point = iVar11;" (assignment_expression "rl_point = iVar11" (identifier "rl_point") (= "=") (identifier "iVar11")) (; ";")) (labeled_statement "LAB_001b192c:\n  if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }" (statement_identifier "LAB_001b192c") (: ":") (if_statement "if ((rl_readline_state & 0x80000) != 0) {\n    (*(code *)rl_redisplay_function)();\n  }" (if "if") (parenthesized_expression "((rl_readline_state & 0x80000) != 0)" (( "(") (binary_expression "(rl_readline_state & 0x80000) != 0" (parenthesized_expression "(rl_readline_state & 0x80000)" (( "(") (binary_expression "rl_readline_state & 0x80000" (identifier "rl_readline_state") (& "&") (number_literal "0x80000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)rl_redisplay_function)();\n  }" ({ "{") (expression_statement "(*(code *)rl_redisplay_function)();" (call_expression "(*(code *)rl_redisplay_function)()" (parenthesized_expression "(*(code *)rl_redisplay_function)" (( "(") (pointer_expression "*(code *)rl_redisplay_function" (* "*") (cast_expression "(code *)rl_redisplay_function" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "rl_redisplay_function"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar6 = FUN_001b12b4(param_2);" (assignment_expression "uVar6 = FUN_001b12b4(param_2)" (identifier "uVar6") (= "=") (call_expression "FUN_001b12b4(param_2)" (identifier "FUN_001b12b4") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))

type_1 function_1(type_1 var_5,type_2 *m)

{
  char *pcVar1;
  int var_9;
  int var_10;
  type_1 wVar4;
  int var_8;
  long var_12;
  size_t var_14;
  type_3 **ppuVar8;
  type_4 **pp_Var9;
  int iVar10;
  type_5 bVar11;
  bool bVar12;
  
  var_1 = m->end;
  var_11[var_1] = '\0';
  var_10 = var_3;
  var_9 = var_1;
  if (var_1 < var_2) {
    var_2 = var_1;
  }
  var_8 = var_2;
  if (var_3 == var_2) {
    var_4 = var_4 & 0xffffffffffefffff;
    return L'\xffffffff';
  }
  bVar11 = (type_5)var_5;
  if ((var_5 & 0xffU) == var_5) {
    ppuVar8 = var_6();
    if ((*(type_5 *)((long)*ppuVar8 + (type_6)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b18ee;
    pp_Var9 = var_7();
    bVar12 = (*pp_Var9)[bVar11] == 0x57;
  }
  else {
LAB_001b18ee:
    bVar12 = var_5 == L'W';
  }
  if ((var_8 < var_9 && var_10 < var_8) && (bVar12)) {
    if ((var_11[var_8] != ' ') && (var_11[var_8] != '\t')) {
      var_2 = var_8 + -1;
      goto LAB_001b190c;
    }
    iVar10 = var_3;
    if (m->key == L'c') goto LAB_001b19d5;
  }
  else {
LAB_001b190c:
    if ((m->key == L'c') && (var_8 = var_2, var_10 <= var_2)) {
LAB_001b19d5:
      if ((var_5 & 0xffU) == var_5) {
        ppuVar8 = var_6();
        if ((*(type_5 *)((long)*ppuVar8 + (type_6)bVar11 * 2 + 1) & 2) == 0) goto LAB_001b19de;
        pp_Var9 = var_7();
        bVar12 = (*pp_Var9)[bVar11] == 0x57;
      }
      else {
LAB_001b19de:
        bVar12 = var_5 == L'W';
      }
      if (bVar12) {
        if (var_10 < var_8) {
          if ((var_11[var_8] == ' ') || (var_11[var_8] == '\t')) {
            var_12 = (long)(var_8 + -1);
            do {
              var_8 = (int)var_12;
              var_2 = var_8;
              if (var_8 <= var_10) goto LAB_001b1ac4;
              pcVar1 = var_11 + var_12;
              var_12 = var_12 + -1;
            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));
          }
        }
        else {
LAB_001b1ac4:
          if (var_10 == var_8) {
            if (var_8 < var_9) {
              var_14 = var_13();
              var_9 = var_2;
              if ((var_14 == 1) || (var_15 != L'\0')) {
                var_2 = var_2 + 1;
              }
              else {
                var_2 = var_16(L'\x01');
                if ((var_9 == var_2) || (var_1 < var_2)) {
                  var_2 = var_1;
                }
              }
            }
            goto LAB_001b1918;
          }
        }
        if ((-1 < var_8) &&
           (((var_8 < var_9 + -1 && (var_11[var_8] != ' ' && var_11[var_8] != '\t'))
            && (var_8 < var_9)))) {
          var_14 = var_13();
          var_9 = var_2;
          if ((var_14 == 1) || (var_15 != L'\0')) {
            var_2 = var_2 + 1;
          }
          else {
            var_2 = var_16(L'\x01');
            if ((var_9 == var_2) || (var_1 < var_2)) {
              var_2 = var_1;
            }
          }
        }
      }
    }
LAB_001b1918:
    iVar10 = var_3;
    if (var_2 <= var_3) goto LAB_001b192c;
  }
  var_3 = var_2;
  var_2 = iVar10;
LAB_001b192c:
  if ((var_4 & 0x80000) != 0) {
    (*rl_redisplay_function)();
  }
  wVar4 = var_17(m);
  return wVar4;
}


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

undefined8 MASKED(uint param_1,long param_2)

{
  char *pcVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined8 uVar6;
  long lVar7;
  size_t sVar8;
  ushort **ppuVar9;
  __int32_t **pp_Var10;
  int iVar11;
  byte bVar12;
  
  rl_end = *(int *)(param_2 + 0x18);
  *(undefined1 *)(rl_line_buffer + rl_end) = 0;
  iVar4 = rl_mark;
  iVar3 = rl_end;
  if (rl_end < rl_point) {
    rl_point = rl_end;
  }
  iVar5 = rl_point;
  if (rl_mark == rl_point) {
    rl_readline_state = rl_readline_state & 0xffffffffffefffff;
    return 0xffffffff;
  }
  bVar12 = (byte)param_1;
  uVar2 = param_1;
  if ((param_1 & 0xff) == param_1) {
    ppuVar9 = __ctype_b_loc();
    if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {
      pp_Var10 = __ctype_toupper_loc();
      uVar2 = (*pp_Var10)[bVar12];
    }
  }
  if ((iVar5 < iVar3 && iVar4 < iVar5) && (uVar2 == 0x57)) {
    if ((*(char *)(rl_line_buffer + iVar5) != ' ') && (*(char *)(rl_line_buffer + iVar5) != '\t')) {
      rl_point = iVar5 + -1;
      goto LAB_001b190c;
    }
    iVar11 = rl_mark;
    if (*(int *)(param_2 + 0x1c) == 99) goto LAB_001b19d5;
  }
  else {
LAB_001b190c:
    if ((*(int *)(param_2 + 0x1c) == 99) && (iVar5 = rl_point, iVar4 <= rl_point)) {
LAB_001b19d5:
      if ((param_1 & 0xff) == param_1) {
        ppuVar9 = __ctype_b_loc();
        if ((*(byte *)((long)*ppuVar9 + (ulong)bVar12 * 2 + 1) & 2) != 0) {
          pp_Var10 = __ctype_toupper_loc();
          param_1 = (*pp_Var10)[bVar12];
        }
      }
      if (param_1 == 0x57) {
        if (iVar4 < iVar5) {
          if ((*(char *)(rl_line_buffer + iVar5) == ' ') ||
             (*(char *)(rl_line_buffer + iVar5) == '\t')) {
            lVar7 = (long)(iVar5 + -1);
            do {
              iVar5 = (int)lVar7;
              rl_point = iVar5;
              if (iVar5 <= iVar4) goto LAB_001b1ac4;
              pcVar1 = (char *)(rl_line_buffer + lVar7);
              lVar7 = lVar7 + -1;
            } while ((*pcVar1 == ' ') || (*pcVar1 == '\t'));
          }
        }
        else {
LAB_001b1ac4:
          if (iVar4 == iVar5) {
            if (iVar5 < iVar3) {
              sVar8 = __ctype_get_mb_cur_max();
              iVar3 = rl_point;
              if ((sVar8 == 1) || (rl_byte_oriented != 0)) {
                rl_point = rl_point + 1;
              }
              else {
                rl_point = _rl_forward_char_internal(1);
                if ((iVar3 == rl_point) || (rl_end < rl_point)) {
                  rl_point = rl_end;
                }
              }
            }
            goto LAB_001b1918;
          }
        }
        if ((-1 < iVar5) &&
           (((iVar5 < iVar3 + -1 &&
             (*(char *)(rl_line_buffer + iVar5) != ' ' && *(char *)(rl_line_buffer + iVar5) != '\t')
             ) && (iVar5 < iVar3)))) {
          sVar8 = __ctype_get_mb_cur_max();
          iVar3 = rl_point;
          if ((sVar8 == 1) || (rl_byte_oriented != 0)) {
            rl_point = rl_point + 1;
          }
          else {
            rl_point = _rl_forward_char_internal(1);
            if ((iVar3 == rl_point) || (rl_end < rl_point)) {
              rl_point = rl_end;
            }
          }
        }
      }
    }
LAB_001b1918:
    iVar11 = rl_mark;
    if (rl_point <= rl_mark) goto LAB_001b192c;
  }
  rl_mark = rl_point;
  rl_point = iVar11;
LAB_001b192c:
  if ((rl_readline_state & 0x80000) != 0) {
    (*(code *)rl_redisplay_function)();
  }
  uVar6 = FUN_001b12b4(param_2);
  return uVar6;
}

