
void set_up_new_line(char *new_line)

{
  int iVar1;
  int iVar2;
  
  iVar2 = rl_point;
  iVar1 = rl_end;
  maybe_make_readline_line(new_line);
  free(new_line);
  if (iVar1 == iVar2) {
    rl_point = rl_end;
  }
  else if (iVar2 < rl_end) {
    rl_point = iVar2;
    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {
      rl_forward_word(L'\x01',L'\0');
    }
  }
  return;
}



void FUN_0017cf98(void *param_1)

{
  int iVar1;
  int iVar2;
  
  iVar2 = rl_point;
  iVar1 = rl_end;
  FUN_0017cf02();
  free(param_1);
  if (iVar1 == iVar2) {
    rl_point = rl_end;
  }
  else if (iVar2 < rl_end) {
    rl_point = iVar2;
    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {
      rl_forward_word(1,0);
    }
  }
  return;
}


PUSH R12
PUSH RBP
PUSH RBX
MOV RBP,RDI
MOV EBX,dword ptr [0x0021c7b8]
MOV R12D,dword ptr [0x0021c6d8]
CALL 0x0017cf02
MOV RDI,RBP
CALL 0x0012d080
CMP R12D,EBX
JZ 0x0017cff3
CMP dword ptr [0x0021c6d8],EBX
JLE 0x0017cfff
MOV dword ptr [0x0021c7b8],EBX
MOVSXD RBX,EBX
MOV RAX,qword ptr [0x002164f0]
MOVZX EAX,byte ptr [RAX + RBX*0x1]
CMP AL,0x20
JZ 0x0017cfff
CMP AL,0x9
JZ 0x0017cfff
MOV ESI,0x0
MOV EDI,0x1
CALL 0x001c8294
JMP 0x0017cfff
MOV EAX,dword ptr [0x0021c6d8]
MOV dword ptr [0x0021c7b8],EAX
POP RBX
POP RBP
POP R12
RET
(translation_unit "void FUN_0017cf98(void *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0017cf98(void *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0017cf98(void *param_1)" identifier (parameter_list "(void *param_1)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" identifier = identifier) ;) (expression_statement "iVar1 = rl_end;" (assignment_expression "iVar1 = rl_end" identifier = identifier) ;) (expression_statement "FUN_0017cf02();" (call_expression "FUN_0017cf02()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(param_1);" (call_expression "free(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" if (parenthesized_expression "(iVar1 == iVar2)" ( (binary_expression "iVar1 == iVar2" identifier == identifier) )) (compound_statement "{\n    rl_point = rl_end;\n  }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) }) (else_clause "else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" else (if_statement "if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" if (parenthesized_expression "(iVar2 < rl_end)" ( (binary_expression "iVar2 < rl_end" identifier < identifier) )) (compound_statement "{\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" { (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" identifier = identifier) ;) (if_statement "if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }" if (parenthesized_expression "((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t'))" ( (binary_expression "(*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar2) != ' ')" ( (binary_expression "*(char *)(rl_line_buffer + iVar2) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar2)" * (cast_expression "(char *)(rl_line_buffer + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar2)" ( (binary_expression "rl_line_buffer + iVar2" identifier + identifier) )))) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(*(char *)(rl_line_buffer + iVar2) != '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar2) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar2)" * (cast_expression "(char *)(rl_line_buffer + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar2)" ( (binary_expression "rl_line_buffer + iVar2" identifier + identifier) )))) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      rl_forward_word(1,0);\n    }" { (expression_statement "rl_forward_word(1,0);" (call_expression "rl_forward_word(1,0)" identifier (argument_list "(1,0)" ( number_literal , number_literal ))) ;) })) })))) (return_statement "return;" return ;) })))
(translation_unit "void set_up_new_line(char *new_line)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  maybe_make_readline_line(new_line);\n  free(new_line);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }\n  }\n  return;\n}\n\n" (function_definition "void set_up_new_line(char *new_line)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  maybe_make_readline_line(new_line);\n  free(new_line);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }\n  }\n  return;\n}" primitive_type (function_declarator "set_up_new_line(char *new_line)" identifier (parameter_list "(char *new_line)" ( (parameter_declaration "char *new_line" primitive_type (pointer_declarator "*new_line" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  maybe_make_readline_line(new_line);\n  free(new_line);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" identifier = identifier) ;) (expression_statement "iVar1 = rl_end;" (assignment_expression "iVar1 = rl_end" identifier = identifier) ;) (expression_statement "maybe_make_readline_line(new_line);" (call_expression "maybe_make_readline_line(new_line)" identifier (argument_list "(new_line)" ( identifier ))) ;) (expression_statement "free(new_line);" (call_expression "free(new_line)" identifier (argument_list "(new_line)" ( identifier ))) ;) (if_statement "if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }\n  }" if (parenthesized_expression "(iVar1 == iVar2)" ( (binary_expression "iVar1 == iVar2" identifier == identifier) )) (compound_statement "{\n    rl_point = rl_end;\n  }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) }) (else_clause "else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }\n  }" else (if_statement "if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }\n  }" if (parenthesized_expression "(iVar2 < rl_end)" ( (binary_expression "iVar2 < rl_end" identifier < identifier) )) (compound_statement "{\n    rl_point = iVar2;\n    if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }\n  }" { (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" identifier = identifier) ;) (if_statement "if ((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')) {\n      rl_forward_word(L'\x01',L'\0');\n    }" if (parenthesized_expression "((rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t'))" ( (binary_expression "(rl_line_buffer[iVar2] != ' ') && (rl_line_buffer[iVar2] != '\t')" (parenthesized_expression "(rl_line_buffer[iVar2] != ' ')" ( (binary_expression "rl_line_buffer[iVar2] != ' '" (subscript_expression "rl_line_buffer[iVar2]" identifier [ identifier ]) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(rl_line_buffer[iVar2] != '\t')" ( (binary_expression "rl_line_buffer[iVar2] != '\t'" (subscript_expression "rl_line_buffer[iVar2]" identifier [ identifier ]) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      rl_forward_word(L'\x01',L'\0');\n    }" { (expression_statement "rl_forward_word(L'\x01',L'\0');" (call_expression "rl_forward_word(L'\x01',L'\0')" identifier (argument_list "(L'\x01',L'\0')" ( (char_literal "L'\x01'" L' escape_sequence ') , (char_literal "L'\0'" L' escape_sequence ') ))) ;) })) })))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0017cf98(void *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0017cf98(void *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0017cf98(void *param_1)" identifier (parameter_list "(void *param_1)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" identifier = identifier) ;) (expression_statement "iVar1 = rl_end;" (assignment_expression "iVar1 = rl_end" identifier = identifier) ;) (expression_statement "FUN_0017cf02();" (call_expression "FUN_0017cf02()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(param_1);" (call_expression "free(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" if (parenthesized_expression "(iVar1 == iVar2)" ( (binary_expression "iVar1 == iVar2" identifier == identifier) )) (compound_statement "{\n    rl_point = rl_end;\n  }" { (expression_statement "rl_point = rl_end;" (assignment_expression "rl_point = rl_end" identifier = identifier) ;) }) (else_clause "else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" else (if_statement "if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" if (parenthesized_expression "(iVar2 < rl_end)" ( (binary_expression "iVar2 < rl_end" identifier < identifier) )) (compound_statement "{\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" { (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" identifier = identifier) ;) (if_statement "if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }" if (parenthesized_expression "((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t'))" ( (binary_expression "(*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar2) != ' ')" ( (binary_expression "*(char *)(rl_line_buffer + iVar2) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar2)" * (cast_expression "(char *)(rl_line_buffer + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar2)" ( (binary_expression "rl_line_buffer + iVar2" identifier + identifier) )))) != (char_literal "' '" ' character ')) )) && (parenthesized_expression "(*(char *)(rl_line_buffer + iVar2) != '\t')" ( (binary_expression "*(char *)(rl_line_buffer + iVar2) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar2)" * (cast_expression "(char *)(rl_line_buffer + iVar2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(rl_line_buffer + iVar2)" ( (binary_expression "rl_line_buffer + iVar2" identifier + identifier) )))) != (char_literal "'\t'" ' escape_sequence ')) ))) )) (compound_statement "{\n      rl_forward_word(1,0);\n    }" { (expression_statement "rl_forward_word(1,0);" (call_expression "rl_forward_word(1,0)" identifier (argument_list "(1,0)" ( number_literal , number_literal ))) ;) })) })))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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 (call_expression IDENT (argument_list ( LIT , LIT ))) ;) })) })))) (return_statement return ;) })))
(function_definition "void FUN_0017cf98(void *param_1)\n\n{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0017cf98(void *param_1)" (identifier "FUN_0017cf98") (parameter_list "(void *param_1)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  \n  iVar2 = rl_point;\n  iVar1 = rl_end;\n  FUN_0017cf02();\n  free(param_1);\n  if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (expression_statement "iVar2 = rl_point;" (assignment_expression "iVar2 = rl_point" (identifier "iVar2") (= "=") (identifier "rl_point")) (; ";")) (expression_statement "iVar1 = rl_end;" (assignment_expression "iVar1 = rl_end" (identifier "iVar1") (= "=") (identifier "rl_end")) (; ";")) (expression_statement "FUN_0017cf02();" (call_expression "FUN_0017cf02()" (identifier "FUN_0017cf02") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(param_1);" (call_expression "free(param_1)" (identifier "free") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (iVar1 == iVar2) {\n    rl_point = rl_end;\n  }\n  else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == iVar2)" (( "(") (binary_expression "iVar1 == iVar2" (identifier "iVar1") (== "==") (identifier "iVar2")) () ")")) (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")) (; ";")) (} "}")) (else_clause "else if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" (else "else") (if_statement "if (iVar2 < rl_end) {\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 < rl_end)" (( "(") (binary_expression "iVar2 < rl_end" (identifier "iVar2") (< "<") (identifier "rl_end")) () ")")) (compound_statement "{\n    rl_point = iVar2;\n    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }\n  }" ({ "{") (expression_statement "rl_point = iVar2;" (assignment_expression "rl_point = iVar2" (identifier "rl_point") (= "=") (identifier "iVar2")) (; ";")) (if_statement "if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {\n      rl_forward_word(1,0);\n    }" (if "if") (parenthesized_expression "((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t'))" (( "(") (binary_expression "(*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')" (parenthesized_expression "(*(char *)(rl_line_buffer + iVar2) != ' ')" (( "(") (binary_expression "*(char *)(rl_line_buffer + iVar2) != ' '" (pointer_expression "*(char *)(rl_line_buffer + iVar2)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar2)" (( "(") (binary_expression "rl_line_buffer + iVar2" (identifier "rl_line_buffer") (+ "+") (identifier "iVar2")) () ")")))) (!= "!=") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(rl_line_buffer + iVar2) != '\t')" (( "(") (binary_expression "*(char *)(rl_line_buffer + iVar2) != '\t'" (pointer_expression "*(char *)(rl_line_buffer + iVar2)" (* "*") (cast_expression "(char *)(rl_line_buffer + iVar2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(rl_line_buffer + iVar2)" (( "(") (binary_expression "rl_line_buffer + iVar2" (identifier "rl_line_buffer") (+ "+") (identifier "iVar2")) () ")")))) (!= "!=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      rl_forward_word(1,0);\n    }" ({ "{") (expression_statement "rl_forward_word(1,0);" (call_expression "rl_forward_word(1,0)" (identifier "rl_forward_word") (argument_list "(1,0)" (( "(") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(char *new_line)

{
  int var_3;
  int var_4;
  
  var_4 = rl_point;
  var_3 = var_5;
  var_1(new_line);
  var_2(new_line);
  if (var_3 == var_4) {
    rl_point = var_5;
  }
  else if (var_4 < var_5) {
    rl_point = var_4;
    if ((rl_line_buffer[var_4] != ' ') && (rl_line_buffer[var_4] != '\t')) {
      var_6(L'\x01',L'\0');
    }
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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 (call_expression function: (identifier) arguments: (argument_list (number_literal) (number_literal)))))))))) (return_statement))))

void MASKED(void *param_1)

{
  int iVar1;
  int iVar2;
  
  iVar2 = rl_point;
  iVar1 = rl_end;
  FUN_0017cf02();
  free(param_1);
  if (iVar1 == iVar2) {
    rl_point = rl_end;
  }
  else if (iVar2 < rl_end) {
    rl_point = iVar2;
    if ((*(char *)(rl_line_buffer + iVar2) != ' ') && (*(char *)(rl_line_buffer + iVar2) != '\t')) {
      rl_forward_word(1,0);
    }
  }
  return;
}

