
int forw_loop(int until_hilite)

{
  uint uVar1;
  POSITION PVar2;
  int iVar3;
  
  uVar1 = ch_getflags();
  iVar3 = 0x65;
  if ((uVar1 & 8) == 0) {
    cmd_exec();
    jump_forw_buffered();
    PVar2 = ch_length();
    highest_hilite = -1;
    if (until_hilite != 0) {
      highest_hilite = PVar2;
    }
    ignore_eoi = 1;
    while (sigs == 0) {
      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {
        bell();
        break;
      }
      make_display();
      forward(1,0,0);
    }
    ignore_eoi = 0;
    ch_set_eof();
    iVar3 = 0x65;
    if ((sigs != 0) && ((sigs & 3U) == 0)) {
      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;
    }
  }
  return iVar3;
}



int FUN_0010a4ac(int param_1)

{
  ulong uVar1;
  long lVar2;
  int iVar3;
  
  uVar1 = FUN_00107017();
  iVar3 = 0x65;
  if ((uVar1 & 8) == 0) {
    FUN_0010a275();
    FUN_001105d1();
    lVar2 = FUN_00106340();
    DAT_0012d9f0 = -1;
    if (param_1 != 0) {
      DAT_0012d9f0 = lVar2;
    }
    DAT_0012d9cc = 1;
    while (DAT_0012dab8 == 0) {
      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {
        FUN_00105e46();
        break;
      }
      FUN_0010a1ca();
      FUN_0010f4c4(1,0,0);
    }
    DAT_0012d9cc = 0;
    FUN_00106e42();
    iVar3 = 0x65;
    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {
      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;
    }
  }
  return iVar3;
}


PUSH RBP
PUSH RBX
SUB RSP,0x8
MOV EBX,EDI
MOV EAX,0x0
CALL 0x00107017
MOV EDX,0x65
TEST AL,0x8
JNZ 0x0010a57f
MOV EAX,0x0
CALL 0x0010a275
MOV EAX,0x0
CALL 0x001105d1
MOV EAX,0x0
CALL 0x00106340
MOV RBP,RAX
TEST EBX,EBX
MOV RAX,-0x1
CMOVNZ RAX,RBP
MOV qword ptr [0x0012d9f0],RAX
MOV dword ptr [0x0012d9cc],0x1
CMP dword ptr [0x0012dab8],0x0
JZ 0x0010a541
JMP 0x0010a558
MOV EAX,0x0
CALL 0x0010a1ca
MOV EDX,0x0
MOV ESI,0x0
MOV EDI,0x1
MOV EAX,0x0
CALL 0x0010f4c4
CMP dword ptr [0x0012dab8],0x0
JNZ 0x0010a558
TEST EBX,EBX
JZ 0x0010a515
CMP qword ptr [0x0012d9f0],RBP
JLE 0x0010a515
MOV EAX,0x0
CALL 0x00105e46
MOV dword ptr [0x0012d9cc],0x0
MOV EAX,0x0
CALL 0x00106e42
MOV EAX,dword ptr [0x0012dab8]
MOV EDX,0x65
TEST EAX,EAX
JZ 0x0010a57f
TEST AL,0x3
JZ 0x0010a588
MOV EAX,EDX
ADD RSP,0x8
POP RBX
POP RBP
RET
CMP EBX,0x1
SBB EDX,EDX
AND EDX,0xfffffffa
ADD EDX,0x38
JMP 0x0010a57f
(translation_unit "int FUN_0010a4ac(int param_1)\n\n{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}\n\n" (function_definition "int FUN_0010a4ac(int param_1)\n\n{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" primitive_type (function_declarator "FUN_0010a4ac(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "uVar1 = FUN_00107017();" (assignment_expression "uVar1 = FUN_00107017()" identifier = (call_expression "FUN_00107017()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" identifier = number_literal) ;) (if_statement "if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }" { (expression_statement "FUN_0010a275();" (call_expression "FUN_0010a275()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001105d1();" (call_expression "FUN_001105d1()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar2 = FUN_00106340();" (assignment_expression "lVar2 = FUN_00106340()" identifier = (call_expression "FUN_00106340()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0012d9f0 = -1;" (assignment_expression "DAT_0012d9f0 = -1" identifier = number_literal) ;) (if_statement "if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_0012d9f0 = lVar2;\n    }" { (expression_statement "DAT_0012d9f0 = lVar2;" (assignment_expression "DAT_0012d9f0 = lVar2" identifier = identifier) ;) })) (expression_statement "DAT_0012d9cc = 1;" (assignment_expression "DAT_0012d9cc = 1" identifier = number_literal) ;) (while_statement "while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }" while (parenthesized_expression "(DAT_0012dab8 == 0)" ( (binary_expression "DAT_0012dab8 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }" { (if_statement "if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }" if (parenthesized_expression "((param_1 != 0) && (lVar2 < DAT_0012d9f0))" ( (binary_expression "(param_1 != 0) && (lVar2 < DAT_0012d9f0)" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar2 < DAT_0012d9f0)" ( (binary_expression "lVar2 < DAT_0012d9f0" identifier < identifier) ))) )) (compound_statement "{\n        FUN_00105e46();\n        break;\n      }" { (expression_statement "FUN_00105e46();" (call_expression "FUN_00105e46()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;) })) (expression_statement "FUN_0010a1ca();" (call_expression "FUN_0010a1ca()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0010f4c4(1,0,0);" (call_expression "FUN_0010f4c4(1,0,0)" identifier (argument_list "(1,0,0)" ( number_literal , number_literal , number_literal ))) ;) })) (expression_statement "DAT_0012d9cc = 0;" (assignment_expression "DAT_0012d9cc = 0" identifier = number_literal) ;) (expression_statement "FUN_00106e42();" (call_expression "FUN_00106e42()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" identifier = number_literal) ;) (if_statement "if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }" if (parenthesized_expression "((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0))" ( (binary_expression "(DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)" (parenthesized_expression "(DAT_0012dab8 != 0)" ( (binary_expression "DAT_0012dab8 != 0" identifier != number_literal) )) && (parenthesized_expression "((DAT_0012dab8 & 3) == 0)" ( (binary_expression "(DAT_0012dab8 & 3) == 0" (parenthesized_expression "(DAT_0012dab8 & 3)" ( (binary_expression "DAT_0012dab8 & 3" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }" { (expression_statement "iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;" (assignment_expression "iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38" identifier = (binary_expression "(-(uint)(param_1 == 0) & 0xfffffffa) + 0x38" (parenthesized_expression "(-(uint)(param_1 == 0) & 0xfffffffa)" ( (binary_expression "-(uint)(param_1 == 0) & 0xfffffffa" (unary_expression "-(uint)(param_1 == 0)" - (call_expression "(uint)(param_1 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) })) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "int forw_loop(int until_hilite)\n\n{\n  uint uVar1;\n  POSITION PVar2;\n  int iVar3;\n  \n  uVar1 = ch_getflags();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    cmd_exec();\n    jump_forw_buffered();\n    PVar2 = ch_length();\n    highest_hilite = -1;\n    if (until_hilite != 0) {\n      highest_hilite = PVar2;\n    }\n    ignore_eoi = 1;\n    while (sigs == 0) {\n      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }\n      make_display();\n      forward(1,0,0);\n    }\n    ignore_eoi = 0;\n    ch_set_eof();\n    iVar3 = 0x65;\n    if ((sigs != 0) && ((sigs & 3U) == 0)) {\n      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}\n\n" (function_definition "int forw_loop(int until_hilite)\n\n{\n  uint uVar1;\n  POSITION PVar2;\n  int iVar3;\n  \n  uVar1 = ch_getflags();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    cmd_exec();\n    jump_forw_buffered();\n    PVar2 = ch_length();\n    highest_hilite = -1;\n    if (until_hilite != 0) {\n      highest_hilite = PVar2;\n    }\n    ignore_eoi = 1;\n    while (sigs == 0) {\n      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }\n      make_display();\n      forward(1,0,0);\n    }\n    ignore_eoi = 0;\n    ch_set_eof();\n    iVar3 = 0x65;\n    if ((sigs != 0) && ((sigs & 3U) == 0)) {\n      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" primitive_type (function_declarator "forw_loop(int until_hilite)" identifier (parameter_list "(int until_hilite)" ( (parameter_declaration "int until_hilite" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  POSITION PVar2;\n  int iVar3;\n  \n  uVar1 = ch_getflags();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    cmd_exec();\n    jump_forw_buffered();\n    PVar2 = ch_length();\n    highest_hilite = -1;\n    if (until_hilite != 0) {\n      highest_hilite = PVar2;\n    }\n    ignore_eoi = 1;\n    while (sigs == 0) {\n      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }\n      make_display();\n      forward(1,0,0);\n    }\n    ignore_eoi = 0;\n    ch_set_eof();\n    iVar3 = 0x65;\n    if ((sigs != 0) && ((sigs & 3U) == 0)) {\n      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "POSITION PVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "uVar1 = ch_getflags();" (assignment_expression "uVar1 = ch_getflags()" identifier = (call_expression "ch_getflags()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" identifier = number_literal) ;) (if_statement "if ((uVar1 & 8) == 0) {\n    cmd_exec();\n    jump_forw_buffered();\n    PVar2 = ch_length();\n    highest_hilite = -1;\n    if (until_hilite != 0) {\n      highest_hilite = PVar2;\n    }\n    ignore_eoi = 1;\n    while (sigs == 0) {\n      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }\n      make_display();\n      forward(1,0,0);\n    }\n    ignore_eoi = 0;\n    ch_set_eof();\n    iVar3 = 0x65;\n    if ((sigs != 0) && ((sigs & 3U) == 0)) {\n      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;\n    }\n  }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    cmd_exec();\n    jump_forw_buffered();\n    PVar2 = ch_length();\n    highest_hilite = -1;\n    if (until_hilite != 0) {\n      highest_hilite = PVar2;\n    }\n    ignore_eoi = 1;\n    while (sigs == 0) {\n      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }\n      make_display();\n      forward(1,0,0);\n    }\n    ignore_eoi = 0;\n    ch_set_eof();\n    iVar3 = 0x65;\n    if ((sigs != 0) && ((sigs & 3U) == 0)) {\n      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;\n    }\n  }" { (expression_statement "cmd_exec();" (call_expression "cmd_exec()" identifier (argument_list "()" ( ))) ;) (expression_statement "jump_forw_buffered();" (call_expression "jump_forw_buffered()" identifier (argument_list "()" ( ))) ;) (expression_statement "PVar2 = ch_length();" (assignment_expression "PVar2 = ch_length()" identifier = (call_expression "ch_length()" identifier (argument_list "()" ( )))) ;) (expression_statement "highest_hilite = -1;" (assignment_expression "highest_hilite = -1" identifier = number_literal) ;) (if_statement "if (until_hilite != 0) {\n      highest_hilite = PVar2;\n    }" if (parenthesized_expression "(until_hilite != 0)" ( (binary_expression "until_hilite != 0" identifier != number_literal) )) (compound_statement "{\n      highest_hilite = PVar2;\n    }" { (expression_statement "highest_hilite = PVar2;" (assignment_expression "highest_hilite = PVar2" identifier = identifier) ;) })) (expression_statement "ignore_eoi = 1;" (assignment_expression "ignore_eoi = 1" identifier = number_literal) ;) (while_statement "while (sigs == 0) {\n      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }\n      make_display();\n      forward(1,0,0);\n    }" while (parenthesized_expression "(sigs == 0)" ( (binary_expression "sigs == 0" identifier == number_literal) )) (compound_statement "{\n      if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }\n      make_display();\n      forward(1,0,0);\n    }" { (if_statement "if ((until_hilite != 0) && (PVar2 < highest_hilite)) {\n        bell();\n        break;\n      }" if (parenthesized_expression "((until_hilite != 0) && (PVar2 < highest_hilite))" ( (binary_expression "(until_hilite != 0) && (PVar2 < highest_hilite)" (parenthesized_expression "(until_hilite != 0)" ( (binary_expression "until_hilite != 0" identifier != number_literal) )) && (parenthesized_expression "(PVar2 < highest_hilite)" ( (binary_expression "PVar2 < highest_hilite" identifier < identifier) ))) )) (compound_statement "{\n        bell();\n        break;\n      }" { (expression_statement "bell();" (call_expression "bell()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;) })) (expression_statement "make_display();" (call_expression "make_display()" identifier (argument_list "()" ( ))) ;) (expression_statement "forward(1,0,0);" (call_expression "forward(1,0,0)" identifier (argument_list "(1,0,0)" ( number_literal , number_literal , number_literal ))) ;) })) (expression_statement "ignore_eoi = 0;" (assignment_expression "ignore_eoi = 0" identifier = number_literal) ;) (expression_statement "ch_set_eof();" (call_expression "ch_set_eof()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" identifier = number_literal) ;) (if_statement "if ((sigs != 0) && ((sigs & 3U) == 0)) {\n      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;\n    }" if (parenthesized_expression "((sigs != 0) && ((sigs & 3U) == 0))" ( (binary_expression "(sigs != 0) && ((sigs & 3U) == 0)" (parenthesized_expression "(sigs != 0)" ( (binary_expression "sigs != 0" identifier != number_literal) )) && (parenthesized_expression "((sigs & 3U) == 0)" ( (binary_expression "(sigs & 3U) == 0" (parenthesized_expression "(sigs & 3U)" ( (binary_expression "sigs & 3U" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;\n    }" { (expression_statement "iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38;" (assignment_expression "iVar3 = (-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38" identifier = (binary_expression "(-(uint)(until_hilite == 0) & 0xfffffffa) + 0x38" (parenthesized_expression "(-(uint)(until_hilite == 0) & 0xfffffffa)" ( (binary_expression "-(uint)(until_hilite == 0) & 0xfffffffa" (unary_expression "-(uint)(until_hilite == 0)" - (call_expression "(uint)(until_hilite == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(until_hilite == 0)" ( (binary_expression "until_hilite == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) })) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit "int FUN_0010a4ac(int param_1)\n\n{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}\n\n" (function_definition "int FUN_0010a4ac(int param_1)\n\n{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" primitive_type (function_declarator "FUN_0010a4ac(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "uVar1 = FUN_00107017();" (assignment_expression "uVar1 = FUN_00107017()" identifier = (call_expression "FUN_00107017()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" identifier = number_literal) ;) (if_statement "if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }" if (parenthesized_expression "((uVar1 & 8) == 0)" ( (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }" { (expression_statement "FUN_0010a275();" (call_expression "FUN_0010a275()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_001105d1();" (call_expression "FUN_001105d1()" identifier (argument_list "()" ( ))) ;) (expression_statement "lVar2 = FUN_00106340();" (assignment_expression "lVar2 = FUN_00106340()" identifier = (call_expression "FUN_00106340()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0012d9f0 = -1;" (assignment_expression "DAT_0012d9f0 = -1" identifier = number_literal) ;) (if_statement "if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_0012d9f0 = lVar2;\n    }" { (expression_statement "DAT_0012d9f0 = lVar2;" (assignment_expression "DAT_0012d9f0 = lVar2" identifier = identifier) ;) })) (expression_statement "DAT_0012d9cc = 1;" (assignment_expression "DAT_0012d9cc = 1" identifier = number_literal) ;) (while_statement "while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }" while (parenthesized_expression "(DAT_0012dab8 == 0)" ( (binary_expression "DAT_0012dab8 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }" { (if_statement "if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }" if (parenthesized_expression "((param_1 != 0) && (lVar2 < DAT_0012d9f0))" ( (binary_expression "(param_1 != 0) && (lVar2 < DAT_0012d9f0)" (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) && (parenthesized_expression "(lVar2 < DAT_0012d9f0)" ( (binary_expression "lVar2 < DAT_0012d9f0" identifier < identifier) ))) )) (compound_statement "{\n        FUN_00105e46();\n        break;\n      }" { (expression_statement "FUN_00105e46();" (call_expression "FUN_00105e46()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;) })) (expression_statement "FUN_0010a1ca();" (call_expression "FUN_0010a1ca()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0010f4c4(1,0,0);" (call_expression "FUN_0010f4c4(1,0,0)" identifier (argument_list "(1,0,0)" ( number_literal , number_literal , number_literal ))) ;) })) (expression_statement "DAT_0012d9cc = 0;" (assignment_expression "DAT_0012d9cc = 0" identifier = number_literal) ;) (expression_statement "FUN_00106e42();" (call_expression "FUN_00106e42()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" identifier = number_literal) ;) (if_statement "if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }" if (parenthesized_expression "((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0))" ( (binary_expression "(DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)" (parenthesized_expression "(DAT_0012dab8 != 0)" ( (binary_expression "DAT_0012dab8 != 0" identifier != number_literal) )) && (parenthesized_expression "((DAT_0012dab8 & 3) == 0)" ( (binary_expression "(DAT_0012dab8 & 3) == 0" (parenthesized_expression "(DAT_0012dab8 & 3)" ( (binary_expression "DAT_0012dab8 & 3" identifier & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }" { (expression_statement "iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;" (assignment_expression "iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38" identifier = (binary_expression "(-(uint)(param_1 == 0) & 0xfffffffa) + 0x38" (parenthesized_expression "(-(uint)(param_1 == 0) & 0xfffffffa)" ( (binary_expression "-(uint)(param_1 == 0) & 0xfffffffa" (unary_expression "-(uint)(param_1 == 0)" - (call_expression "(uint)(param_1 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) })) })) (return_statement "return iVar3;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT)) ;) })) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_0010a4ac(int param_1)\n\n{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" (primitive_type "int") (function_declarator "FUN_0010a4ac(int param_1)" (identifier "FUN_0010a4ac") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  ulong uVar1;\n  long lVar2;\n  int iVar3;\n  \n  uVar1 = FUN_00107017();\n  iVar3 = 0x65;\n  if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }\n  return iVar3;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "uVar1 = FUN_00107017();" (assignment_expression "uVar1 = FUN_00107017()" (identifier "uVar1") (= "=") (call_expression "FUN_00107017()" (identifier "FUN_00107017") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" (identifier "iVar3") (= "=") (number_literal "0x65")) (; ";")) (if_statement "if ((uVar1 & 8) == 0) {\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }" (if "if") (parenthesized_expression "((uVar1 & 8) == 0)" (( "(") (binary_expression "(uVar1 & 8) == 0" (parenthesized_expression "(uVar1 & 8)" (( "(") (binary_expression "uVar1 & 8" (identifier "uVar1") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0010a275();\n    FUN_001105d1();\n    lVar2 = FUN_00106340();\n    DAT_0012d9f0 = -1;\n    if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }\n    DAT_0012d9cc = 1;\n    while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }\n    DAT_0012d9cc = 0;\n    FUN_00106e42();\n    iVar3 = 0x65;\n    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }\n  }" ({ "{") (expression_statement "FUN_0010a275();" (call_expression "FUN_0010a275()" (identifier "FUN_0010a275") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_001105d1();" (call_expression "FUN_001105d1()" (identifier "FUN_001105d1") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "lVar2 = FUN_00106340();" (assignment_expression "lVar2 = FUN_00106340()" (identifier "lVar2") (= "=") (call_expression "FUN_00106340()" (identifier "FUN_00106340") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_0012d9f0 = -1;" (assignment_expression "DAT_0012d9f0 = -1" (identifier "DAT_0012d9f0") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (param_1 != 0) {\n      DAT_0012d9f0 = lVar2;\n    }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_0012d9f0 = lVar2;\n    }" ({ "{") (expression_statement "DAT_0012d9f0 = lVar2;" (assignment_expression "DAT_0012d9f0 = lVar2" (identifier "DAT_0012d9f0") (= "=") (identifier "lVar2")) (; ";")) (} "}"))) (expression_statement "DAT_0012d9cc = 1;" (assignment_expression "DAT_0012d9cc = 1" (identifier "DAT_0012d9cc") (= "=") (number_literal "1")) (; ";")) (while_statement "while (DAT_0012dab8 == 0) {\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }" (while "while") (parenthesized_expression "(DAT_0012dab8 == 0)" (( "(") (binary_expression "DAT_0012dab8 == 0" (identifier "DAT_0012dab8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }\n      FUN_0010a1ca();\n      FUN_0010f4c4(1,0,0);\n    }" ({ "{") (if_statement "if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {\n        FUN_00105e46();\n        break;\n      }" (if "if") (parenthesized_expression "((param_1 != 0) && (lVar2 < DAT_0012d9f0))" (( "(") (binary_expression "(param_1 != 0) && (lVar2 < DAT_0012d9f0)" (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar2 < DAT_0012d9f0)" (( "(") (binary_expression "lVar2 < DAT_0012d9f0" (identifier "lVar2") (< "<") (identifier "DAT_0012d9f0")) () ")"))) () ")")) (compound_statement "{\n        FUN_00105e46();\n        break;\n      }" ({ "{") (expression_statement "FUN_00105e46();" (call_expression "FUN_00105e46()" (identifier "FUN_00105e46") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "FUN_0010a1ca();" (call_expression "FUN_0010a1ca()" (identifier "FUN_0010a1ca") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0010f4c4(1,0,0);" (call_expression "FUN_0010f4c4(1,0,0)" (identifier "FUN_0010f4c4") (argument_list "(1,0,0)" (( "(") (number_literal "1") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0012d9cc = 0;" (assignment_expression "DAT_0012d9cc = 0" (identifier "DAT_0012d9cc") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00106e42();" (call_expression "FUN_00106e42()" (identifier "FUN_00106e42") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = 0x65;" (assignment_expression "iVar3 = 0x65" (identifier "iVar3") (= "=") (number_literal "0x65")) (; ";")) (if_statement "if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }" (if "if") (parenthesized_expression "((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0))" (( "(") (binary_expression "(DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)" (parenthesized_expression "(DAT_0012dab8 != 0)" (( "(") (binary_expression "DAT_0012dab8 != 0" (identifier "DAT_0012dab8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_0012dab8 & 3) == 0)" (( "(") (binary_expression "(DAT_0012dab8 & 3) == 0" (parenthesized_expression "(DAT_0012dab8 & 3)" (( "(") (binary_expression "DAT_0012dab8 & 3" (identifier "DAT_0012dab8") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;\n    }" ({ "{") (expression_statement "iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;" (assignment_expression "iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38" (identifier "iVar3") (= "=") (binary_expression "(-(uint)(param_1 == 0) & 0xfffffffa) + 0x38" (parenthesized_expression "(-(uint)(param_1 == 0) & 0xfffffffa)" (( "(") (binary_expression "-(uint)(param_1 == 0) & 0xfffffffa" (unary_expression "-(uint)(param_1 == 0)" (- "-") (call_expression "(uint)(param_1 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffffa")) () ")")) (+ "+") (number_literal "0x38"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return iVar3;" (return "return") (identifier "iVar3") (; ";")) (} "}")))

int function_1(int var_6)

{
  type_1 var_2;
  type_2 var_8;
  int iVar3;
  
  var_2 = var_1();
  iVar3 = 0x65;
  if ((var_2 & 8) == 0) {
    var_3();
    var_4();
    var_8 = var_5();
    var_9 = -1;
    if (var_6 != 0) {
      var_9 = var_8;
    }
    ignore_eoi = 1;
    while (var_7 == 0) {
      if ((var_6 != 0) && (var_8 < var_9)) {
        var_10();
        break;
      }
      var_11();
      var_12(1,0,0);
    }
    ignore_eoi = 0;
    var_13();
    iVar3 = 0x65;
    if ((var_7 != 0) && ((var_7 & 3U) == 0)) {
      iVar3 = (-(type_1)(var_6 == 0) & 0xfffffffa) + 0x38;
    }
  }
  return iVar3;
}


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

int MASKED(int param_1)

{
  ulong uVar1;
  long lVar2;
  int iVar3;
  
  uVar1 = FUN_00107017();
  iVar3 = 0x65;
  if ((uVar1 & 8) == 0) {
    FUN_0010a275();
    FUN_001105d1();
    lVar2 = FUN_00106340();
    DAT_0012d9f0 = -1;
    if (param_1 != 0) {
      DAT_0012d9f0 = lVar2;
    }
    DAT_0012d9cc = 1;
    while (DAT_0012dab8 == 0) {
      if ((param_1 != 0) && (lVar2 < DAT_0012d9f0)) {
        FUN_00105e46();
        break;
      }
      FUN_0010a1ca();
      FUN_0010f4c4(1,0,0);
    }
    DAT_0012d9cc = 0;
    FUN_00106e42();
    iVar3 = 0x65;
    if ((DAT_0012dab8 != 0) && ((DAT_0012dab8 & 3) == 0)) {
      iVar3 = (-(uint)(param_1 == 0) & 0xfffffffa) + 0x38;
    }
  }
  return iVar3;
}

