// This file is part of the SV-Benchmarks collection of verification tasks:
// https://gitlab.com/sosy-lab/benchmarking/sv-benchmarks
//
// SPDX-FileCopyrightText: 2019 Makai Mann
// SPDX-FileCopyrightText: 2022 The SV-Benchmarks Community
//
// SPDX-License-Identifier: BSD-3-Clause

// This C program is converted from Btor2 by Btor2C version bfcfb8b
//   with arguments: { architecture=64, lazy_modulo=true, use_memmove=false, unroll_inner_loops=false, shortest_type=true, diff_type=true, decimal_constant=true, zero_init=false, sra_extend_sign=true }
// Comments from the original Btor2 file:
// ; source: https://github.com/makaimann/btor-benchmarks/tree/d9a2792dcee39f17607c889500ac76ad3df35a50
// ; BTOR description generated by Yosys 0.8+458 (git sha1 9b2b0d91, clang 6.0.0-1ubuntu2 -fPIC -Os) for module intersymbol_wrapper.

#include <stdint.h>


int main() {
  // Defining sorts ...
  typedef unsigned char SORT_1;  // BV with 1 bits
  const SORT_1 mask_SORT_1 = (SORT_1)-1 >> (sizeof(SORT_1) * 8 - 1);
  const SORT_1 msb_SORT_1 = (SORT_1)1 << (1 - 1);
  typedef unsigned int SORT_9;  // BV with 31 bits
  const SORT_9 mask_SORT_9 = (SORT_9)-1 >> (sizeof(SORT_9) * 8 - 31);
  const SORT_9 msb_SORT_9 = (SORT_9)1 << (31 - 1);
  typedef unsigned int SORT_11;  // BV with 32 bits
  const SORT_11 mask_SORT_11 = (SORT_11)-1 >> (sizeof(SORT_11) * 8 - 32);
  const SORT_11 msb_SORT_11 = (SORT_11)1 << (32 - 1);
  typedef unsigned char SORT_12;  // BV with 3 bits
  const SORT_12 mask_SORT_12 = (SORT_12)-1 >> (sizeof(SORT_12) * 8 - 3);
  const SORT_12 msb_SORT_12 = (SORT_12)1 << (3 - 1);
  typedef unsigned char SORT_15;  // BV with 4 bits
  const SORT_15 mask_SORT_15 = (SORT_15)-1 >> (sizeof(SORT_15) * 8 - 4);
  const SORT_15 msb_SORT_15 = (SORT_15)1 << (4 - 1);
  typedef unsigned char SORT_17;  // BV with 5 bits
  const SORT_17 mask_SORT_17 = (SORT_17)-1 >> (sizeof(SORT_17) * 8 - 5);
  const SORT_17 msb_SORT_17 = (SORT_17)1 << (5 - 1);
  typedef unsigned char SORT_19;  // BV with 6 bits
  const SORT_19 mask_SORT_19 = (SORT_19)-1 >> (sizeof(SORT_19) * 8 - 6);
  const SORT_19 msb_SORT_19 = (SORT_19)1 << (6 - 1);
  typedef unsigned char SORT_21;  // BV with 7 bits
  const SORT_21 mask_SORT_21 = (SORT_21)-1 >> (sizeof(SORT_21) * 8 - 7);
  const SORT_21 msb_SORT_21 = (SORT_21)1 << (7 - 1);
  typedef unsigned char SORT_23;  // BV with 8 bits
  const SORT_23 mask_SORT_23 = (SORT_23)-1 >> (sizeof(SORT_23) * 8 - 8);
  const SORT_23 msb_SORT_23 = (SORT_23)1 << (8 - 1);
  typedef unsigned short SORT_25;  // BV with 9 bits
  const SORT_25 mask_SORT_25 = (SORT_25)-1 >> (sizeof(SORT_25) * 8 - 9);
  const SORT_25 msb_SORT_25 = (SORT_25)1 << (9 - 1);
  typedef unsigned short SORT_27;  // BV with 10 bits
  const SORT_27 mask_SORT_27 = (SORT_27)-1 >> (sizeof(SORT_27) * 8 - 10);
  const SORT_27 msb_SORT_27 = (SORT_27)1 << (10 - 1);
  typedef unsigned short SORT_29;  // BV with 11 bits
  const SORT_29 mask_SORT_29 = (SORT_29)-1 >> (sizeof(SORT_29) * 8 - 11);
  const SORT_29 msb_SORT_29 = (SORT_29)1 << (11 - 1);
  typedef unsigned short SORT_31;  // BV with 12 bits
  const SORT_31 mask_SORT_31 = (SORT_31)-1 >> (sizeof(SORT_31) * 8 - 12);
  const SORT_31 msb_SORT_31 = (SORT_31)1 << (12 - 1);
  typedef unsigned short SORT_33;  // BV with 13 bits
  const SORT_33 mask_SORT_33 = (SORT_33)-1 >> (sizeof(SORT_33) * 8 - 13);
  const SORT_33 msb_SORT_33 = (SORT_33)1 << (13 - 1);
  typedef unsigned short SORT_35;  // BV with 14 bits
  const SORT_35 mask_SORT_35 = (SORT_35)-1 >> (sizeof(SORT_35) * 8 - 14);
  const SORT_35 msb_SORT_35 = (SORT_35)1 << (14 - 1);
  typedef unsigned short SORT_37;  // BV with 15 bits
  const SORT_37 mask_SORT_37 = (SORT_37)-1 >> (sizeof(SORT_37) * 8 - 15);
  const SORT_37 msb_SORT_37 = (SORT_37)1 << (15 - 1);
  typedef unsigned short SORT_39;  // BV with 16 bits
  const SORT_39 mask_SORT_39 = (SORT_39)-1 >> (sizeof(SORT_39) * 8 - 16);
  const SORT_39 msb_SORT_39 = (SORT_39)1 << (16 - 1);
  typedef unsigned int SORT_41;  // BV with 17 bits
  const SORT_41 mask_SORT_41 = (SORT_41)-1 >> (sizeof(SORT_41) * 8 - 17);
  const SORT_41 msb_SORT_41 = (SORT_41)1 << (17 - 1);
  typedef unsigned int SORT_43;  // BV with 18 bits
  const SORT_43 mask_SORT_43 = (SORT_43)-1 >> (sizeof(SORT_43) * 8 - 18);
  const SORT_43 msb_SORT_43 = (SORT_43)1 << (18 - 1);
  typedef unsigned int SORT_45;  // BV with 19 bits
  const SORT_45 mask_SORT_45 = (SORT_45)-1 >> (sizeof(SORT_45) * 8 - 19);
  const SORT_45 msb_SORT_45 = (SORT_45)1 << (19 - 1);
  typedef unsigned int SORT_47;  // BV with 20 bits
  const SORT_47 mask_SORT_47 = (SORT_47)-1 >> (sizeof(SORT_47) * 8 - 20);
  const SORT_47 msb_SORT_47 = (SORT_47)1 << (20 - 1);
  typedef unsigned int SORT_49;  // BV with 21 bits
  const SORT_49 mask_SORT_49 = (SORT_49)-1 >> (sizeof(SORT_49) * 8 - 21);
  const SORT_49 msb_SORT_49 = (SORT_49)1 << (21 - 1);
  typedef unsigned int SORT_51;  // BV with 22 bits
  const SORT_51 mask_SORT_51 = (SORT_51)-1 >> (sizeof(SORT_51) * 8 - 22);
  const SORT_51 msb_SORT_51 = (SORT_51)1 << (22 - 1);
  typedef unsigned int SORT_53;  // BV with 23 bits
  const SORT_53 mask_SORT_53 = (SORT_53)-1 >> (sizeof(SORT_53) * 8 - 23);
  const SORT_53 msb_SORT_53 = (SORT_53)1 << (23 - 1);
  typedef unsigned int SORT_55;  // BV with 24 bits
  const SORT_55 mask_SORT_55 = (SORT_55)-1 >> (sizeof(SORT_55) * 8 - 24);
  const SORT_55 msb_SORT_55 = (SORT_55)1 << (24 - 1);
  typedef unsigned int SORT_57;  // BV with 25 bits
  const SORT_57 mask_SORT_57 = (SORT_57)-1 >> (sizeof(SORT_57) * 8 - 25);
  const SORT_57 msb_SORT_57 = (SORT_57)1 << (25 - 1);
  typedef unsigned int SORT_59;  // BV with 26 bits
  const SORT_59 mask_SORT_59 = (SORT_59)-1 >> (sizeof(SORT_59) * 8 - 26);
  const SORT_59 msb_SORT_59 = (SORT_59)1 << (26 - 1);
  typedef unsigned int SORT_61;  // BV with 27 bits
  const SORT_61 mask_SORT_61 = (SORT_61)-1 >> (sizeof(SORT_61) * 8 - 27);
  const SORT_61 msb_SORT_61 = (SORT_61)1 << (27 - 1);
  typedef unsigned int SORT_63;  // BV with 28 bits
  const SORT_63 mask_SORT_63 = (SORT_63)-1 >> (sizeof(SORT_63) * 8 - 28);
  const SORT_63 msb_SORT_63 = (SORT_63)1 << (28 - 1);
  typedef unsigned int SORT_65;  // BV with 29 bits
  const SORT_65 mask_SORT_65 = (SORT_65)-1 >> (sizeof(SORT_65) * 8 - 29);
  typedef unsigned int SORT_67;  // BV with 30 bits
 /**/
  const SORT_67 mask_SORT_67 = (SORT_67)-1 >> (sizeof(SORT_67) * 8 - 30);
  const SORT_67 msb_SORT_67 = (SORT_67)1 << (30 - 1);
  typedef uint64_t SORT_156;  // BV with 64 bits
  const SORT_156 mask_SORT_156 = (SORT_156)-1 >> (sizeof(SORT_156) * 8 - 64);
  const SORT_156 msb_SORT_156 = (SORT_156)1 << (64 - 1);
  typedef uint64_t SORT_157;  // BV with 34 bits
  const SORT_157 mask_SORT_157 = (SORT_157)-1 >> (sizeof(SORT_157) * 8 - 34);
  const SORT_157 msb_SORT_157 = (SORT_157)1 << (34 - 1);
  typedef unsigned char SORT_158;  // BV with 2 bits
  const SORT_158 mask_SORT_158 = (SORT_158)-1 >> (sizeof(SORT_158) * 8 - 2);
  const SORT_158 msb_SORT_158 = (SORT_158)1 << (2 - 1);
  /**/
  typedef uint64_t SORT_166;  // BV with 35 bits
  
  typedef uint64_t SORT_175;  // BV with 38 bits
  const SORT_175 mask_SORT_175 = (SORT_175)-1 >> (sizeof(SORT_175) * 8 - 38);
  typedef uint64_t SORT_178;  // BV with 39 bits
  const SORT_178 mask_SORT_178 = (SORT_178)-1 >> (sizeof(SORT_178) * 8 - 39);
  

  // Initializing constants ...
  const SORT_1 var_7 = 0;
  const SORT_1 var_8 = 1;
  const SORT_9 var_10 = 0;
  const SORT_12 var_13 = 4;
  const SORT_15 var_71 = 8;
  const SORT_12 var_117 = 5;
  const SORT_158 var_159 = 1;
  const SORT_23 var_255 = 127;
  const SORT_12 var_371 = 6;
  const SORT_15 var_375 = 9;
  
  // Collecting input declarations ...
  SORT_1 input_2;
  SORT_1 input_3;
  SORT_1 input_4;
  // Collecting state declarations ...
  SORT_1 state_5 = __VERIFIER_nondet_uchar() & mask_SORT_1;
  SORT_1 state_72 = __VERIFIER_nondet_uchar() & mask_SORT_1;
  SORT_11 state_103 = __VERIFIER_nondet_uint() & mask_SORT_11;
  SORT_1 state_105 = __VERIFIER_nondet_uchar() & mask_SORT_1;
  SORT_39 state_120 = __VERIFIER_nondet_ushort() & mask_SORT_39;
  SORT_15 state_140 = __VERIFIER_nondet_uchar() & mask_SORT_15;
  SORT_15 state_143 = __VERIFIER_nondet_uchar() & mask_SORT_15;
  SORT_11 state_147 = __VERIFIER_nondet_uint() & mask_SORT_11;
  
  for (;;) {
    
    // Asserting properties ...
    SORT_12 var_118_arg_0 = var_117;
    var_118_arg_0 = var_118_arg_0 & mask_SORT_12;
    SORT_39 var_118 = var_118_arg_0;
    SORT_39 var_122_arg_0 = var_118;
    SORT_39 var_122_arg_1 = state_120;
    SORT_1 var_122 = var_122_arg_0 < var_122_arg_1;
    SORT_1 var_14_arg_0 = input_3;
    SORT_1 var_14 = ~var_14_arg_0;
    SORT_1 var_16_arg_0 = var_14;
    SORT_12 var_16_arg_1 = var_13;
    SORT_15 var_16 = ((SORT_15)var_16_arg_0 << 3) | var_16_arg_1;
    var_16 = var_16 & mask_SORT_15;
    SORT_1 var_18_arg_0 = input_3;
    SORT_15 var_18_arg_1 = var_16;
    SORT_17 var_18 = ((SORT_17)var_18_arg_0 << 4) | var_18_arg_1;
    var_18 = var_18 & mask_SORT_17;
    SORT_1 var_20_arg_0 = input_3;
    SORT_17 var_20_arg_1 = var_18;
    SORT_19 var_20 = ((SORT_19)var_20_arg_0 << 5) | var_20_arg_1;
    var_20 = var_20 & mask_SORT_19;
    SORT_1 var_22_arg_0 = input_3;
    SORT_19 var_22_arg_1 = var_20;
    SORT_21 var_22 = ((SORT_21)var_22_arg_0 << 6) | var_22_arg_1;
    var_22 = var_22 & mask_SORT_21;
    SORT_1 var_24_arg_0 = input_3;
    SORT_21 var_24_arg_1 = var_22;
    SORT_23 var_24 = ((SORT_23)var_24_arg_0 << 7) | var_24_arg_1;
    var_24 = var_24 & mask_SORT_23;
    SORT_1 var_26_arg_0 = input_3;
    SORT_23 var_26_arg_1 = var_24;
    SORT_25 var_26 = ((SORT_25)var_26_arg_0 << 8) | var_26_arg_1;
    var_26 = var_26 & mask_SORT_25;
    SORT_1 var_28_arg_0 = var_14;
    SORT_25 var_28_arg_1 = var_26;
    SORT_27 var_28 = ((SORT_27)var_28_arg_0 << 9) | var_28_arg_1;
    var_28 = var_28 & mask_SORT_27;
    SORT_1 var_30_arg_0 = var_14;
    SORT_27 var_30_arg_1 = var_28;
    SORT_29 var_30 = ((SORT_29)var_30_arg_0 << 10) | var_30_arg_1;
    var_30 = var_30 & mask_SORT_29;
    SORT_1 var_32_arg_0 = var_14;
    SORT_29 var_32_arg_1 = var_30;
    SORT_31 var_32 = ((SORT_31)var_32_arg_0 << 11) | var_32_arg_1;
    var_32 = var_32 & mask_SORT_31;
    SORT_1 var_34_arg_0 = var_14;
    SORT_31 var_34_arg_1 = var_32;
    SORT_33 var_34 = ((SORT_33)var_34_arg_0 << 12) | var_34_arg_1;
    var_34 = var_34 & mask_SORT_33;
    SORT_1 var_36_arg_0 = var_14;
    SORT_33 var_36_arg_1 = var_34;
    SORT_35 var_36 = ((SORT_35)var_36_arg_0 << 13) | var_36_arg_1;
    var_36 = var_36 & mask_SORT_35;
    SORT_1 var_38_arg_0 = var_14;
    SORT_35 var_38_arg_1 = var_36;
    SORT_37 var_38 = ((SORT_37)var_38_arg_0 << 14) | var_38_arg_1;
    var_38 = var_38 & mask_SORT_37;
    SORT_1 var_40_arg_0 = var_14;
    SORT_37 var_40_arg_1 = var_38;
    SORT_39 var_40 = ((SORT_39)var_40_arg_0 << 15) | var_40_arg_1;
    var_40 = var_40 & mask_SORT_39;
    SORT_1 var_42_arg_0 = var_14;
    SORT_39 var_42_arg_1 = var_40;
    SORT_41 var_42 = ((SORT_41)var_42_arg_0 << 16) | var_42_arg_1;
    var_42 = var_42 & mask_SORT_41;
    SORT_1 var_44_arg_0 = var_14;
    SORT_41 var_44_arg_1 = var_42;
    SORT_43 var_44 = ((SORT_43)var_44_arg_0 << 17) | var_44_arg_1;
    var_44 = var_44 & mask_SORT_43;
    SORT_1 var_46_arg_0 = var_14;
    SORT_43 var_46_arg_1 = var_44;
    SORT_45 var_46 = ((SORT_45)var_46_arg_0 << 18) | var_46_arg_1;
    var_46 = var_46 & mask_SORT_45;
    SORT_1 var_48_arg_0 = var_14;
    SORT_45 var_48_arg_1 = var_46;
    SORT_47 var_48 = ((SORT_47)var_48_arg_0 << 19) | var_48_arg_1;
    var_48 = var_48 & mask_SORT_47;
    SORT_1 var_50_arg_0 = var_14;
    SORT_47 var_50_arg_1 = var_48;
    SORT_49 var_50 = ((SORT_49)var_50_arg_0 << 20) | var_50_arg_1;
    var_50 = var_50 & mask_SORT_49;
    SORT_1 var_52_arg_0 = var_14;
    SORT_49 var_52_arg_1 = var_50;
    SORT_51 var_52 = ((SORT_51)var_52_arg_0 << 21) | var_52_arg_1;
    var_52 = var_52 & mask_SORT_51;
    SORT_1 var_54_arg_0 = var_14;
    SORT_51 var_54_arg_1 = var_52;
    SORT_53 var_54 = ((SORT_53)var_54_arg_0 << 22) | var_54_arg_1;
    var_54 = var_54 & mask_SORT_53;
    SORT_1 var_56_arg_0 = var_14;
    SORT_53 var_56_arg_1 = var_54;
    SORT_55 var_56 = ((SORT_55)var_56_arg_0 << 23) | var_56_arg_1;
    var_56 = var_56 & mask_SORT_55;
    SORT_1 var_58_arg_0 = var_14;
    SORT_55 var_58_arg_1 = var_56;
    SORT_57 var_58 = ((SORT_57)var_58_arg_0 << 24) | var_58_arg_1;
    var_58 = var_58 & mask_SORT_57;
    SORT_1 var_60_arg_0 = var_14;
    SORT_57 var_60_arg_1 = var_58;
    SORT_59 var_60 = ((SORT_59)var_60_arg_0 << 25) | var_60_arg_1;
    var_60 = var_60 & mask_SORT_59;
    SORT_1 var_62_arg_0 = var_14;
    SORT_59 var_62_arg_1 = var_60;
    SORT_61 var_62 = ((SORT_61)var_62_arg_0 << 26) | var_62_arg_1;
    var_62 = var_62 & mask_SORT_61;
    SORT_1 var_64_arg_0 = var_14;
    SORT_61 var_64_arg_1 = var_62;
    SORT_63 var_64 = ((SORT_63)var_64_arg_0 << 27) | var_64_arg_1;
    var_64 = var_64 & mask_SORT_63;
    SORT_1 var_66_arg_0 = var_14;
    SORT_63 var_66_arg_1 = var_64;
    SORT_65 var_66 = ((SORT_65)var_66_arg_0 << 28) | var_66_arg_1;
    var_66 = var_66 & mask_SORT_65;
    SORT_1 var_68_arg_0 = var_14;
    SORT_65 var_68_arg_1 = var_66;
    SORT_67 var_68 = ((SORT_67)var_68_arg_0 << 29) | var_68_arg_1;
    var_68 = var_68 & mask_SORT_67;
    SORT_1 var_69_arg_0 = var_14;
    SORT_67 var_69_arg_1 = var_68;
    SORT_9 var_69 = ((SORT_9)var_69_arg_0 << 30) | var_69_arg_1;
    var_69 = var_69 & mask_SORT_9;
    SORT_1 var_70_arg_0 = var_14;
    SORT_9 var_70_arg_1 = var_69;
    SORT_11 var_70 = ((SORT_11)var_70_arg_0 << 31) | var_70_arg_1;
    SORT_1 var_73_arg_0 = state_72;
    SORT_1 var_73 = ~var_73_arg_0;
    SORT_1 var_74_arg_0 = var_73;
    SORT_15 var_74_arg_1 = var_71;
    SORT_17 var_74 = ((SORT_17)var_74_arg_0 << 4) | var_74_arg_1;
    var_74 = var_74 & mask_SORT_17;
    SORT_1 var_75_arg_0 = var_73;
    SORT_17 var_75_arg_1 = var_74;
    SORT_19 var_75 = ((SORT_19)var_75_arg_0 << 5) | var_75_arg_1;
    var_75 = var_75 & mask_SORT_19;
    SORT_1 var_76_arg_0 = state_72;
    SORT_19 var_76_arg_1 = var_75;
    SORT_21 var_76 = ((SORT_21)var_76_arg_0 << 6) | var_76_arg_1;
    var_76 = var_76 & mask_SORT_21;
    SORT_1 var_77_arg_0 = state_72;
    SORT_21 var_77_arg_1 = var_76;
    SORT_23 var_77 = ((SORT_23)var_77_arg_0 << 7) | var_77_arg_1;
    var_77 = var_77 & mask_SORT_23;
    SORT_1 var_78_arg_0 = var_73;
    SORT_23 var_78_arg_1 = var_77;
    SORT_25 var_78 = ((SORT_25)var_78_arg_0 << 8) | var_78_arg_1;
    var_78 = var_78 & mask_SORT_25;
    SORT_1 var_79_arg_0 = var_73;
    SORT_25 var_79_arg_1 = var_78;
    SORT_27 var_79 = ((SORT_27)var_79_arg_0 << 9) | var_79_arg_1;
    var_79 = var_79 & mask_SORT_27;
    SORT_1 var_80_arg_0 = var_73;
    SORT_27 var_80_arg_1 = var_79;
    SORT_29 var_80 = ((SORT_29)var_80_arg_0 << 10) | var_80_arg_1;
    var_80 = var_80 & mask_SORT_29;
    SORT_1 var_81_arg_0 = var_73;
    SORT_29 var_81_arg_1 = var_80;
    SORT_31 var_81 = ((SORT_31)var_81_arg_0 << 11) | var_81_arg_1;
    var_81 = var_81 & mask_SORT_31;
    SORT_1 var_82_arg_0 = var_73;
    SORT_31 var_82_arg_1 = var_81;
    SORT_33 var_82 = ((SORT_33)var_82_arg_0 << 12) | var_82_arg_1;
    var_82 = var_82 & mask_SORT_33;
    SORT_1 var_83_arg_0 = var_73;
    SORT_33 var_83_arg_1 = var_82;
    SORT_35 var_83 = ((SORT_35)var_83_arg_0 << 13) | var_83_arg_1;
    var_83 = var_83 & mask_SORT_35;
    SORT_1 var_84_arg_0 = var_73;
    SORT_35 var_84_arg_1 = var_83;
    SORT_37 var_84 = ((SORT_37)var_84_arg_0 << 14) | var_84_arg_1;
    var_84 = var_84 & mask_SORT_37;
    SORT_1 var_85_arg_0 = var_73;
    SORT_37 var_85_arg_1 = var_84;
    SORT_39 var_85 = ((SORT_39)var_85_arg_0 << 15) | var_85_arg_1;
    var_85 = var_85 & mask_SORT_39;
    SORT_1 var_86_arg_0 = var_73;
    SORT_39 var_86_arg_1 = var_85;
    SORT_41 var_86 = ((SORT_41)var_86_arg_0 << 16) | var_86_arg_1;
    var_86 = var_86 & mask_SORT_41;
    SORT_1 var_87_arg_0 = var_73;
    SORT_41 var_87_arg_1 = var_86;
    SORT_43 var_87 = ((SORT_43)var_87_arg_0 << 17) | var_87_arg_1;
    var_87 = var_87 & mask_SORT_43;
    SORT_1 var_88_arg_0 = var_73;
    SORT_43 var_88_arg_1 = var_87;
    SORT_45 var_88 = ((SORT_45)var_88_arg_0 << 18) | var_88_arg_1;
    var_88 = var_88 & mask_SORT_45;
    SORT_1 var_89_arg_0 = var_73;
    SORT_45 var_89_arg_1 = var_88;
    SORT_47 var_89 = ((SORT_47)var_89_arg_0 << 19) | var_89_arg_1;
    var_89 = var_89 & mask_SORT_47;
    SORT_1 var_90_arg_0 = var_73;
    SORT_47 var_90_arg_1 = var_89;
    SORT_49 var_90 = ((SORT_49)var_90_arg_0 << 20) | var_90_arg_1;
    var_90 = var_90 & mask_SORT_49;
    SORT_1 var_91_arg_0 = var_73;
    SORT_49 var_91_arg_1 = var_90;
    SORT_51 var_91 = ((SORT_51)var_91_arg_0 << 21) | var_91_arg_1;
    var_91 = var_91 & mask_SORT_51;
    SORT_1 var_92_arg_0 = var_73;
    SORT_51 var_92_arg_1 = var_91;
    SORT_53 var_92 = ((SORT_53)var_92_arg_0 << 22) | var_92_arg_1;
    var_92 = var_92 & mask_SORT_53;
    SORT_1 var_93_arg_0 = var_73;
    SORT_53 var_93_arg_1 = var_92;
    SORT_55 var_93 = ((SORT_55)var_93_arg_0 << 23) | var_93_arg_1;
    var_93 = var_93 & mask_SORT_55;
    SORT_1 var_94_arg_0 = var_73;
    SORT_55 var_94_arg_1 = var_93;
    SORT_57 var_94 = ((SORT_57)var_94_arg_0 << 24) | var_94_arg_1;
    var_94 = var_94 & mask_SORT_57;
    SORT_1 var_95_arg_0 = var_73;
    SORT_57 var_95_arg_1 = var_94;
    SORT_59 var_95 = ((SORT_59)var_95_arg_0 << 25) | var_95_arg_1;
    var_95 = var_95 & mask_SORT_59;
    SORT_1 var_96_arg_0 = var_73;
    SORT_59 var_96_arg_1 = var_95;
    SORT_61 var_96 = ((SORT_61)var_96_arg_0 << 26) | var_96_arg_1;
    var_96 = var_96 & mask_SORT_61;
    SORT_1 var_97_arg_0 = var_73;
    SORT_61 var_97_arg_1 = var_96;
    SORT_63 var_97 = ((SORT_63)var_97_arg_0 << 27) | var_97_arg_1;
    var_97 = var_97 & mask_SORT_63;
    SORT_1 var_98_arg_0 = var_73;
    SORT_63 var_98_arg_1 = var_97;
    SORT_65 var_98 = ((SORT_65)var_98_arg_0 << 28) | var_98_arg_1;
    var_98 = var_98 & mask_SORT_65;
    SORT_1 var_99_arg_0 = var_73;
    SORT_65 var_99_arg_1 = var_98;
    SORT_67 var_99 = ((SORT_67)var_99_arg_0 << 29) | var_99_arg_1;
    var_99 = var_99 & mask_SORT_67;
    SORT_1 var_100_arg_0 = var_73;
    SORT_67 var_100_arg_1 = var_99;
    SORT_9 var_100 = ((SORT_9)var_100_arg_0 << 30) | var_100_arg_1;
    var_100 = var_100 & mask_SORT_9;
    SORT_1 var_101_arg_0 = var_73;
    SORT_9 var_101_arg_1 = var_100;
    SORT_11 var_101 = ((SORT_11)var_101_arg_0 << 31) | var_101_arg_1;
    SORT_11 var_102_arg_0 = var_70;
    SORT_11 var_102_arg_1 = var_101;
    SORT_11 var_102 = var_102_arg_0 + var_102_arg_1;
    SORT_11 var_104_arg_0 = state_103;
    SORT_11 var_104 = -var_104_arg_0;
    SORT_1 var_106_arg_0 = state_105;
    SORT_11 var_106_arg_1 = var_104;
    SORT_11 var_106_arg_2 = state_103;
    SORT_11 var_106 = var_106_arg_0 ? var_106_arg_1 : var_106_arg_2;
    SORT_11 var_107_arg_0 = var_102;
    SORT_11 var_107_arg_1 = var_106;
    SORT_11 var_107 = var_107_arg_0 + var_107_arg_1;
    SORT_11 var_108_arg_0 = var_107;
    SORT_1 var_108 = var_108_arg_0 >> 31;
    SORT_1 var_109_arg_0 = var_108;
    SORT_9 var_109_arg_1 = var_10;
    SORT_11 var_109 = ((SORT_11)var_109_arg_0 << 31) | var_109_arg_1;
    var_109 = var_109 & mask_SORT_11;
    SORT_11 var_110_arg_0 = var_107;
    SORT_9 var_110 = var_110_arg_0 >> 0;
    SORT_9 var_111_arg_0 = var_110;
    var_111_arg_0 = var_111_arg_0 & mask_SORT_9;
    SORT_11 var_111 = var_111_arg_0;
    SORT_11 var_112_arg_0 = var_109;
    SORT_11 var_112_arg_1 = var_111;
    SORT_1 var_112 = var_112_arg_0 <= var_112_arg_1;
    SORT_1 var_113_arg_0 = var_112;
    SORT_1 var_113_arg_1 = var_8;
    SORT_1 var_113_arg_2 = var_7;
    SORT_1 var_113 = var_113_arg_0 ? var_113_arg_1 : var_113_arg_2;
    var_113 = var_113 & mask_SORT_1;
    SORT_1 var_114_arg_0 = input_3;
    SORT_1 var_114_arg_1 = var_113;
    SORT_1 var_114 = var_114_arg_0 ^ var_114_arg_1;
    SORT_1 var_115_arg_0 = var_114;
    SORT_1 var_115 = ~var_115_arg_0;
    SORT_1 var_123_arg_0 = var_122;
    SORT_1 var_123_arg_1 = var_115;
    SORT_1 var_123_arg_2 = var_8;
    SORT_1 var_123 = var_123_arg_0 ? var_123_arg_1 : var_123_arg_2;
    SORT_1 var_124_arg_0 = var_123;
    SORT_1 var_124 = ~var_124_arg_0;
    SORT_1 var_125_arg_0 = var_123;
    SORT_1 var_125 = ~var_125_arg_0;
    SORT_1 var_126_arg_0 = var_124;
    SORT_1 var_126_arg_1 = var_125;
    SORT_1 var_126 = var_126_arg_0 & var_126_arg_1;
    var_126 = var_126 & mask_SORT_1;
    SORT_1 bad_127_arg_0 = var_126;
    // Computing next states ...
    SORT_15 var_376_arg_0 = state_143;
    SORT_15 var_376_arg_1 = var_375;
    SORT_1 var_376 = var_376_arg_0 == var_376_arg_1;
    SORT_12 var_369_arg_0 = var_13;
    var_369_arg_0 = var_369_arg_0 & mask_SORT_12;
    SORT_15 var_369 = var_369_arg_0;
    SORT_15 var_370_arg_0 = var_369;
    SORT_15 var_370_arg_1 = state_140;
    SORT_1 var_370 = var_370_arg_0 <= var_370_arg_1;
    SORT_12 var_372_arg_0 = var_371;
    var_372_arg_0 = var_372_arg_0 & mask_SORT_12;
    SORT_15 var_372 = var_372_arg_0;
    SORT_15 var_373_arg_0 = state_140;
    SORT_15 var_373_arg_1 = var_372;
    SORT_1 var_373 = var_373_arg_0 <= var_373_arg_1;
    SORT_1 var_374_arg_0 = var_370;
    SORT_1 var_374_arg_1 = var_373;
    SORT_1 var_374 = var_374_arg_0 & var_374_arg_1;
    SORT_1 var_377_arg_0 = var_376;
    SORT_1 var_377_arg_1 = var_374;
    SORT_1 var_377_arg_2 = var_8;
    SORT_1 var_377 = var_377_arg_0 ? var_377_arg_1 : var_377_arg_2;
    SORT_1 var_378_arg_0 = input_4;
    SORT_1 var_378_arg_1 = var_8;
    SORT_1 var_378_arg_2 = var_377;
    SORT_1 var_378 = var_378_arg_0 ? var_378_arg_1 : var_378_arg_2;
    SORT_1 next_379_arg_1 = var_378;
    SORT_1 var_380_arg_0 = input_4;
    SORT_1 var_380_arg_1 = var_7;
    SORT_1 var_380_arg_2 = input_3;
    SORT_1 var_380 = var_380_arg_0 ? var_380_arg_1 : var_380_arg_2;
    SORT_1 next_381_arg_1 = var_380;
    SORT_23 var_256_arg_0 = var_255;
    var_256_arg_0 = (var_256_arg_0 & msb_SORT_23) ? (var_256_arg_0 | ~mask_SORT_23) : (var_256_arg_0 & mask_SORT_23);
    SORT_178 var_256 = (int64_t)((signed char)var_256_arg_0);
    SORT_11 var_257_arg_0 = state_103;
    var_257_arg_0 = (var_257_arg_0 & msb_SORT_11) ? (var_257_arg_0 | ~mask_SORT_11) : (var_257_arg_0 & mask_SORT_11);
    SORT_178 var_257 = (int64_t)((int)var_257_arg_0);
    SORT_178 var_258_arg_0 = var_256;
    SORT_178 var_258_arg_1 = var_257;
    SORT_178 var_258 = var_258_arg_0 * var_258_arg_1;
    var_258 = var_258 & mask_SORT_178;
    SORT_158 var_160_arg_0 = var_159;
    var_160_arg_0 = (var_160_arg_0 & msb_SORT_158) ? (var_160_arg_0 | ~mask_SORT_158) : (var_160_arg_0 & mask_SORT_158);
    SORT_157 var_160 = (int64_t)((signed char)var_160_arg_0);
    SORT_11 var_148_arg_0 = state_147;
    SORT_11 var_148 = -var_148_arg_0;
    SORT_1 var_149_arg_0 = var_113;
    SORT_11 var_149_arg_1 = var_148;
    SORT_11 var_149_arg_2 = state_147;
    SORT_11 var_149 = var_149_arg_0 ? var_149_arg_1 : var_149_arg_2;
    SORT_11 var_150_arg_0 = var_102;
    SORT_11 var_150_arg_1 = var_149;
    SORT_11 var_150 = var_150_arg_0 + var_150_arg_1;
    SORT_11 var_161_arg_0 = var_150;
    SORT_11 var_161 = -var_161_arg_0;
    SORT_1 var_162_arg_0 = state_105;
    SORT_11 var_162_arg_1 = var_150;
    SORT_11 var_162_arg_2 = var_161;
    SORT_11 var_162 = var_162_arg_0 ? var_162_arg_1 : var_162_arg_2;
    SORT_11 var_163_arg_0 = var_162;
    var_163_arg_0 = (var_163_arg_0 & msb_SORT_11) ? (var_163_arg_0 | ~mask_SORT_11) : (var_163_arg_0 & mask_SORT_11);
    SORT_157 var_163 = (int64_t)((int)var_163_arg_0);
    SORT_157 var_164_arg_0 = var_160;
    SORT_157 var_164_arg_1 = var_163;
    SORT_157 var_164 = var_164_arg_0 * var_164_arg_1;
    var_164 = var_164 & mask_SORT_157;
    SORT_157 var_390_arg_0 = var_164;
    SORT_1 var_390 = var_390_arg_0 >> 33;
    SORT_157 var_388_arg_0 = var_164;
    SORT_1 var_388 = var_388_arg_0 >> 33;
    SORT_157 var_386_arg_0 = var_164;
    SORT_1 var_386 = var_386_arg_0 >> 33;
    SORT_157 var_384_arg_0 = var_164;
    SORT_1 var_384 = var_384_arg_0 >> 33;
    SORT_157 var_382_arg_0 = var_164;
    SORT_1 var_382 = var_382_arg_0 >> 33;
    SORT_1 var_383_arg_0 = var_382;
    SORT_157 var_383_arg_1 = var_164;
    SORT_166 var_383 = ((SORT_166)var_383_arg_0 << 34) | var_383_arg_1;
    return 0;
  }
}
