
size_t next_prime(size_t candidate)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  
  uVar1 = 10;
  if (9 < candidate) {
    uVar1 = candidate;
  }
  uVar1 = uVar1 | 1;
  if (uVar1 != 0xffffffff) {
    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);
    do {
      uVar5 = uVar1 + (uVar5 >> 1) * -3;
      if (uVar1 < 10) {
LAB_00014c2c:
        if (uVar5 != 0) {
          return uVar1;
        }
      }
      else if (uVar5 != 0) {
        iVar4 = 0x10;
        uVar3 = 9;
        uVar2 = 3;
        do {
          uVar2 = uVar2 + 2;
          uVar3 = uVar3 + iVar4;
          if (uVar2 == 0) {
            trap(7);
          }
          uVar5 = uVar1 % uVar2;
          iVar4 = iVar4 + 8;
          if (uVar1 <= uVar3) goto LAB_00014c2c;
        } while (uVar5 != 0);
      }
      uVar1 = uVar1 + 2;
      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);
    } while (uVar1 != 0xffffffff);
  }
  return uVar1;
}



void FUN_00014ba0(uint param_1)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  
  uVar1 = 10;
  if (9 < param_1) {
    uVar1 = param_1;
  }
  uVar1 = uVar1 | 1;
  if (uVar1 != 0xffffffff) {
    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);
    do {
      uVar5 = uVar1 + (uVar5 >> 1) * -3;
      if (uVar1 < 10) {
LAB_00014c2c:
        if (uVar5 != 0) {
          return;
        }
      }
      else if (uVar5 != 0) {
        iVar4 = 0x10;
        uVar3 = 9;
        uVar2 = 3;
        do {
          uVar2 = uVar2 + 2;
          uVar3 = uVar3 + iVar4;
          if (uVar2 == 0) {
            trap(7);
          }
          uVar5 = uVar1 % uVar2;
          iVar4 = iVar4 + 8;
          if (uVar1 <= uVar3) goto LAB_00014c2c;
        } while (uVar5 != 0);
      }
      uVar1 = uVar1 + 2;
      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);
    } while (uVar1 != 0xffffffff);
  }
  return;
}


li v1,0xa
sltiu v0,a0,0xa
movz v1,a0,v0
or v0,v1,zero
li v1,-0x1
ori v0,v0,0x1
beq v0,v1,0x00014c40
_lui t1,0xaaaa
li t2,-0x1
ori t1,t1,0xaaab
multu v0,t1
sltiu v1,v0,0xa
mfhi a3
srl a3,a3,0x1
sll a0,a3,0x1
addu a3,a0,a3
bne v1,zero,0x00014c2c
_subu a3,v0,a3
beq a3,zero,0x00014c34
_nop
li a1,0x10
li a0,0x9
b 0x00014c08
_li v1,0x3
beq a2,zero,0x00014c34
_nop
addiu v1,v1,0x2
addu a0,a0,a1
teq v1,zero
divu v0,v1
sltu t0,a0,v0
addiu a1,a1,0x8
mfhi a2
bne t0,zero,0x00014c00
_or a3,a2,zero
bne a3,zero,0x00014c40
_nop
addiu v0,v0,0x2
bne v0,t2,0x00014bcc
_multu v0,t1
jr ra
_nop
(translation_unit "void FUN_00014ba0(uint param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00014ba0(uint param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00014ba0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" identifier = number_literal) ;) (if_statement "if (9 < param_1) {\n    uVar1 = param_1;\n  }" if (parenthesized_expression "(9 < param_1)" ( (binary_expression "9 < param_1" number_literal < identifier) )) (compound_statement "{\n    uVar1 = param_1;\n  }" { (expression_statement "uVar1 = param_1;" (assignment_expression "uVar1 = param_1" identifier = identifier) ;) })) (expression_statement "uVar1 = uVar1 | 1;" (assignment_expression "uVar1 = uVar1 | 1" identifier = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) (if_statement "if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" if (parenthesized_expression "(uVar1 != 0xffffffff)" ( (binary_expression "uVar1 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" { (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) )))) ;) (do_statement "do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);" do (compound_statement "{\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    }" { (expression_statement "uVar5 = uVar1 + (uVar5 >> 1) * -3;" (assignment_expression "uVar5 = uVar1 + (uVar5 >> 1) * -3" identifier = (binary_expression "uVar1 + (uVar5 >> 1) * -3" identifier + (binary_expression "(uVar5 >> 1) * -3" (parenthesized_expression "(uVar5 >> 1)" ( (binary_expression "uVar5 >> 1" identifier >> number_literal) )) * number_literal))) ;) (if_statement "if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar1 < 10)" ( (binary_expression "uVar1 < 10" identifier < number_literal) )) (compound_statement "{\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }" { (labeled_statement "LAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }" statement_identifier : (if_statement "if (uVar5 != 0) {\n          return;\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) }) (else_clause "else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" else (if_statement "if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" { (expression_statement "iVar4 = 0x10;" (assignment_expression "iVar4 = 0x10" identifier = number_literal) ;) (expression_statement "uVar3 = 9;" (assignment_expression "uVar3 = 9" identifier = number_literal) ;) (expression_statement "uVar2 = 3;" (assignment_expression "uVar2 = 3" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);" do (compound_statement "{\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        }" { (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" identifier = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar3 + iVar4;" (assignment_expression "uVar3 = uVar3 + iVar4" identifier = (binary_expression "uVar3 + iVar4" identifier + identifier)) ;) (if_statement "if (uVar2 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar5 = uVar1 % uVar2;" (assignment_expression "uVar5 = uVar1 % uVar2" identifier = (binary_expression "uVar1 % uVar2" identifier % identifier)) ;) (expression_statement "iVar4 = iVar4 + 8;" (assignment_expression "iVar4 = iVar4 + 8" identifier = (binary_expression "iVar4 + 8" identifier + number_literal)) ;) (if_statement "if (uVar1 <= uVar3) goto LAB_00014c2c;" if (parenthesized_expression "(uVar1 <= uVar3)" ( (binary_expression "uVar1 <= uVar3" identifier <= identifier) )) (goto_statement "goto LAB_00014c2c;" goto statement_identifier ;)) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })))) (expression_statement "uVar1 = uVar1 + 2;" (assignment_expression "uVar1 = uVar1 + 2" identifier = (binary_expression "uVar1 + 2" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) )))) ;) }) while (parenthesized_expression "(uVar1 != 0xffffffff)" ( (binary_expression "uVar1 != 0xffffffff" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "size_t next_prime(size_t candidate)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < candidate) {\n    uVar1 = candidate;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return uVar1;\n}\n\n" (function_definition "size_t next_prime(size_t candidate)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < candidate) {\n    uVar1 = candidate;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return uVar1;\n}" primitive_type (function_declarator "next_prime(size_t candidate)" identifier (parameter_list "(size_t candidate)" ( (parameter_declaration "size_t candidate" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < candidate) {\n    uVar1 = candidate;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return uVar1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" identifier = number_literal) ;) (if_statement "if (9 < candidate) {\n    uVar1 = candidate;\n  }" if (parenthesized_expression "(9 < candidate)" ( (binary_expression "9 < candidate" number_literal < identifier) )) (compound_statement "{\n    uVar1 = candidate;\n  }" { (expression_statement "uVar1 = candidate;" (assignment_expression "uVar1 = candidate" identifier = identifier) ;) })) (expression_statement "uVar1 = uVar1 | 1;" (assignment_expression "uVar1 = uVar1 | 1" identifier = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) (if_statement "if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" if (parenthesized_expression "(uVar1 != 0xffffffff)" ( (binary_expression "uVar1 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" { (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) )))) ;) (do_statement "do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);" do (compound_statement "{\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    }" { (expression_statement "uVar5 = uVar1 + (uVar5 >> 1) * -3;" (assignment_expression "uVar5 = uVar1 + (uVar5 >> 1) * -3" identifier = (binary_expression "uVar1 + (uVar5 >> 1) * -3" identifier + (binary_expression "(uVar5 >> 1) * -3" (parenthesized_expression "(uVar5 >> 1)" ( (binary_expression "uVar5 >> 1" identifier >> number_literal) )) * number_literal))) ;) (if_statement "if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar1 < 10)" ( (binary_expression "uVar1 < 10" identifier < number_literal) )) (compound_statement "{\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }\n      }" { (labeled_statement "LAB_00014c2c:\n        if (uVar5 != 0) {\n          return uVar1;\n        }" statement_identifier : (if_statement "if (uVar5 != 0) {\n          return uVar1;\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          return uVar1;\n        }" { (return_statement "return uVar1;" return identifier ;) }))) }) (else_clause "else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" else (if_statement "if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" { (expression_statement "iVar4 = 0x10;" (assignment_expression "iVar4 = 0x10" identifier = number_literal) ;) (expression_statement "uVar3 = 9;" (assignment_expression "uVar3 = 9" identifier = number_literal) ;) (expression_statement "uVar2 = 3;" (assignment_expression "uVar2 = 3" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);" do (compound_statement "{\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        }" { (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" identifier = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar3 + iVar4;" (assignment_expression "uVar3 = uVar3 + iVar4" identifier = (binary_expression "uVar3 + iVar4" identifier + identifier)) ;) (if_statement "if (uVar2 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar5 = uVar1 % uVar2;" (assignment_expression "uVar5 = uVar1 % uVar2" identifier = (binary_expression "uVar1 % uVar2" identifier % identifier)) ;) (expression_statement "iVar4 = iVar4 + 8;" (assignment_expression "iVar4 = iVar4 + 8" identifier = (binary_expression "iVar4 + 8" identifier + number_literal)) ;) (if_statement "if (uVar1 <= uVar3) goto LAB_00014c2c;" if (parenthesized_expression "(uVar1 <= uVar3)" ( (binary_expression "uVar1 <= uVar3" identifier <= identifier) )) (goto_statement "goto LAB_00014c2c;" goto statement_identifier ;)) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })))) (expression_statement "uVar1 = uVar1 + 2;" (assignment_expression "uVar1 = uVar1 + 2" identifier = (binary_expression "uVar1 + 2" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) )))) ;) }) while (parenthesized_expression "(uVar1 != 0xffffffff)" ( (binary_expression "uVar1 != 0xffffffff" identifier != number_literal) )) ;) })) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "void FUN_00014ba0(uint param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00014ba0(uint param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00014ba0(uint param_1)" identifier (parameter_list "(uint param_1)" ( (parameter_declaration "uint param_1" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" identifier = number_literal) ;) (if_statement "if (9 < param_1) {\n    uVar1 = param_1;\n  }" if (parenthesized_expression "(9 < param_1)" ( (binary_expression "9 < param_1" number_literal < identifier) )) (compound_statement "{\n    uVar1 = param_1;\n  }" { (expression_statement "uVar1 = param_1;" (assignment_expression "uVar1 = param_1" identifier = identifier) ;) })) (expression_statement "uVar1 = uVar1 | 1;" (assignment_expression "uVar1 = uVar1 | 1" identifier = (binary_expression "uVar1 | 1" identifier | number_literal)) ;) (if_statement "if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" if (parenthesized_expression "(uVar1 != 0xffffffff)" ( (binary_expression "uVar1 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" { (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) )))) ;) (do_statement "do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);" do (compound_statement "{\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    }" { (expression_statement "uVar5 = uVar1 + (uVar5 >> 1) * -3;" (assignment_expression "uVar5 = uVar1 + (uVar5 >> 1) * -3" identifier = (binary_expression "uVar1 + (uVar5 >> 1) * -3" identifier + (binary_expression "(uVar5 >> 1) * -3" (parenthesized_expression "(uVar5 >> 1)" ( (binary_expression "uVar5 >> 1" identifier >> number_literal) )) * number_literal))) ;) (if_statement "if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar1 < 10)" ( (binary_expression "uVar1 < 10" identifier < number_literal) )) (compound_statement "{\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }" { (labeled_statement "LAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }" statement_identifier : (if_statement "if (uVar5 != 0) {\n          return;\n        }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) }) (else_clause "else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" else (if_statement "if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" { (expression_statement "iVar4 = 0x10;" (assignment_expression "iVar4 = 0x10" identifier = number_literal) ;) (expression_statement "uVar3 = 9;" (assignment_expression "uVar3 = 9" identifier = number_literal) ;) (expression_statement "uVar2 = 3;" (assignment_expression "uVar2 = 3" identifier = number_literal) ;) (do_statement "do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);" do (compound_statement "{\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        }" { (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" identifier = (binary_expression "uVar2 + 2" identifier + number_literal)) ;) (expression_statement "uVar3 = uVar3 + iVar4;" (assignment_expression "uVar3 = uVar3 + iVar4" identifier = (binary_expression "uVar3 + iVar4" identifier + identifier)) ;) (if_statement "if (uVar2 == 0) {\n            trap(7);\n          }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            trap(7);\n          }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar5 = uVar1 % uVar2;" (assignment_expression "uVar5 = uVar1 % uVar2" identifier = (binary_expression "uVar1 % uVar2" identifier % identifier)) ;) (expression_statement "iVar4 = iVar4 + 8;" (assignment_expression "iVar4 = iVar4 + 8" identifier = (binary_expression "iVar4 + 8" identifier + number_literal)) ;) (if_statement "if (uVar1 <= uVar3) goto LAB_00014c2c;" if (parenthesized_expression "(uVar1 <= uVar3)" ( (binary_expression "uVar1 <= uVar3" identifier <= identifier) )) (goto_statement "goto LAB_00014c2c;" goto statement_identifier ;)) }) while (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) ;) })))) (expression_statement "uVar1 = uVar1 + 2;" (assignment_expression "uVar1 = uVar1 + 2" identifier = (binary_expression "uVar1 + 2" identifier + number_literal)) ;) (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" ( (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" ( (type_descriptor "ulonglong" type_identifier) ) identifier) * number_literal) >> number_literal) )))) ;) }) while (parenthesized_expression "(uVar1 != 0xffffffff)" ( (binary_expression "uVar1 != 0xffffffff" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) >> LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) >> LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00014ba0(uint param_1)\n\n{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00014ba0(uint param_1)" (identifier "FUN_00014ba0") (parameter_list "(uint param_1)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  uint uVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar1 = 10;\n  if (9 < param_1) {\n    uVar1 = param_1;\n  }\n  uVar1 = uVar1 | 1;\n  if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (expression_statement "uVar1 = 10;" (assignment_expression "uVar1 = 10" (identifier "uVar1") (= "=") (number_literal "10")) (; ";")) (if_statement "if (9 < param_1) {\n    uVar1 = param_1;\n  }" (if "if") (parenthesized_expression "(9 < param_1)" (( "(") (binary_expression "9 < param_1" (number_literal "9") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    uVar1 = param_1;\n  }" ({ "{") (expression_statement "uVar1 = param_1;" (assignment_expression "uVar1 = param_1" (identifier "uVar1") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "uVar1 = uVar1 | 1;" (assignment_expression "uVar1 = uVar1 | 1" (identifier "uVar1") (= "=") (binary_expression "uVar1 | 1" (identifier "uVar1") (| "|") (number_literal "1"))) (; ";")) (if_statement "if (uVar1 != 0xffffffff) {\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" (if "if") (parenthesized_expression "(uVar1 != 0xffffffff)" (( "(") (binary_expression "uVar1 != 0xffffffff" (identifier "uVar1") (!= "!=") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);\n  }" ({ "{") (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (identifier "uVar5") (= "=") (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar1")) (* "*") (number_literal "0xaaaaaaab")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (do_statement "do {\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    } while (uVar1 != 0xffffffff);" (do "do") (compound_statement "{\n      uVar5 = uVar1 + (uVar5 >> 1) * -3;\n      if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }\n      uVar1 = uVar1 + 2;\n      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);\n    }" ({ "{") (expression_statement "uVar5 = uVar1 + (uVar5 >> 1) * -3;" (assignment_expression "uVar5 = uVar1 + (uVar5 >> 1) * -3" (identifier "uVar5") (= "=") (binary_expression "uVar1 + (uVar5 >> 1) * -3" (identifier "uVar1") (+ "+") (binary_expression "(uVar5 >> 1) * -3" (parenthesized_expression "(uVar5 >> 1)" (( "(") (binary_expression "uVar5 >> 1" (identifier "uVar5") (>> ">>") (number_literal "1")) () ")")) (* "*") (number_literal "-3")))) (; ";")) (if_statement "if (uVar1 < 10) {\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }\n      else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" (if "if") (parenthesized_expression "(uVar1 < 10)" (( "(") (binary_expression "uVar1 < 10" (identifier "uVar1") (< "<") (number_literal "10")) () ")")) (compound_statement "{\nLAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }\n      }" ({ "{") (labeled_statement "LAB_00014c2c:\n        if (uVar5 != 0) {\n          return;\n        }" (statement_identifier "LAB_00014c2c") (: ":") (if_statement "if (uVar5 != 0) {\n          return;\n        }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}")) (else_clause "else if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" (else "else") (if_statement "if (uVar5 != 0) {\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = 0x10;\n        uVar3 = 9;\n        uVar2 = 3;\n        do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);\n      }" ({ "{") (expression_statement "iVar4 = 0x10;" (assignment_expression "iVar4 = 0x10" (identifier "iVar4") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "uVar3 = 9;" (assignment_expression "uVar3 = 9" (identifier "uVar3") (= "=") (number_literal "9")) (; ";")) (expression_statement "uVar2 = 3;" (assignment_expression "uVar2 = 3" (identifier "uVar2") (= "=") (number_literal "3")) (; ";")) (do_statement "do {\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        } while (uVar5 != 0);" (do "do") (compound_statement "{\n          uVar2 = uVar2 + 2;\n          uVar3 = uVar3 + iVar4;\n          if (uVar2 == 0) {\n            trap(7);\n          }\n          uVar5 = uVar1 % uVar2;\n          iVar4 = iVar4 + 8;\n          if (uVar1 <= uVar3) goto LAB_00014c2c;\n        }" ({ "{") (expression_statement "uVar2 = uVar2 + 2;" (assignment_expression "uVar2 = uVar2 + 2" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 2" (identifier "uVar2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar3 = uVar3 + iVar4;" (assignment_expression "uVar3 = uVar3 + iVar4" (identifier "uVar3") (= "=") (binary_expression "uVar3 + iVar4" (identifier "uVar3") (+ "+") (identifier "iVar4"))) (; ";")) (if_statement "if (uVar2 == 0) {\n            trap(7);\n          }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            trap(7);\n          }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = uVar1 % uVar2;" (assignment_expression "uVar5 = uVar1 % uVar2" (identifier "uVar5") (= "=") (binary_expression "uVar1 % uVar2" (identifier "uVar1") (% "%") (identifier "uVar2"))) (; ";")) (expression_statement "iVar4 = iVar4 + 8;" (assignment_expression "iVar4 = iVar4 + 8" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (uVar1 <= uVar3) goto LAB_00014c2c;" (if "if") (parenthesized_expression "(uVar1 <= uVar3)" (( "(") (binary_expression "uVar1 <= uVar3" (identifier "uVar1") (<= "<=") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_00014c2c;" (goto "goto") (statement_identifier "LAB_00014c2c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))))) (expression_statement "uVar1 = uVar1 + 2;" (assignment_expression "uVar1 = uVar1 + 2" (identifier "uVar1") (= "=") (binary_expression "uVar1 + 2" (identifier "uVar1") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);" (assignment_expression "uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (identifier "uVar5") (= "=") (call_expression "(uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar1 * 0xaaaaaaab >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab >> 0x20" (binary_expression "(ulonglong)uVar1 * 0xaaaaaaab" (cast_expression "(ulonglong)uVar1" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar1")) (* "*") (number_literal "0xaaaaaaab")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar1 != 0xffffffff)" (( "(") (binary_expression "uVar1 != 0xffffffff" (identifier "uVar1") (!= "!=") (number_literal "0xffffffff")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (return_statement))))

void MASKED(uint param_1)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  
  uVar1 = 10;
  if (9 < param_1) {
    uVar1 = param_1;
  }
  uVar1 = uVar1 | 1;
  if (uVar1 != 0xffffffff) {
    uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);
    do {
      uVar5 = uVar1 + (uVar5 >> 1) * -3;
      if (uVar1 < 10) {
LAB_00014c2c:
        if (uVar5 != 0) {
          return;
        }
      }
      else if (uVar5 != 0) {
        iVar4 = 0x10;
        uVar3 = 9;
        uVar2 = 3;
        do {
          uVar2 = uVar2 + 2;
          uVar3 = uVar3 + iVar4;
          if (uVar2 == 0) {
            trap(7);
          }
          uVar5 = uVar1 % uVar2;
          iVar4 = iVar4 + 8;
          if (uVar1 <= uVar3) goto LAB_00014c2c;
        } while (uVar5 != 0);
      }
      uVar1 = uVar1 + 2;
      uVar5 = (uint)((ulonglong)uVar1 * 0xaaaaaaab >> 0x20);
    } while (uVar1 != 0xffffffff);
  }
  return;
}

