#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int int64_t;

/* Variables and functions */
int load_3(unsigned char *);
int load_4(unsigned char *);
void sc_reduce(unsigned char *s) {
  int64_t s0 = 2097151 & load_3(s);
  int64_t s1 = 2097151 & (load_4(s + 2) >> 5);
  int64_t s2 = 2097151 & (load_3(s + 5) >> 2);
  int64_t s3 = 2097151 & (load_4(s + 7) >> 7);
  int64_t s4 = 2097151 & (load_4(s + 10) >> 4);
  int64_t s5 = 2097151 & (load_3(s + 13) >> 1);
  int64_t s6 = 2097151 & (load_4(s + 15) >> 6);
  int64_t s7 = 2097151 & (load_3(s + 18) >> 3);
  int64_t s8 = 2097151 & load_3(s + 21);
  int64_t s9 = 2097151 & (load_4(s + 23) >> 5);
  int64_t s10 = 2097151 & (load_3(s + 26) >> 2);
  int64_t s11 = 2097151 & (load_4(s + 28) >> 7);
  int64_t s12 = 2097151 & (load_4(s + 31) >> 4);
  int64_t s13 = 2097151 & (load_3(s + 34) >> 1);
  int64_t s14 = 2097151 & (load_4(s + 36) >> 6);
  int64_t s15 = 2097151 & (load_3(s + 39) >> 3);
  int64_t s16 = 2097151 & load_3(s + 42);
  int64_t s17 = 2097151 & (load_4(s + 44) >> 5);
  int64_t s18 = 2097151 & (load_3(s + 47) >> 2);
  int64_t s19 = 2097151 & (load_4(s + 49) >> 7);
  int64_t s20 = 2097151 & (load_4(s + 52) >> 4);
  int64_t s21 = 2097151 & (load_3(s + 55) >> 1);
  int64_t s22 = 2097151 & (load_4(s + 57) >> 6);
  int64_t s23 = (load_4(s + 60) >> 3);
  int64_t carry0;
  int64_t carry1;
  int64_t carry2;
  int64_t carry3;
  int64_t carry4;
  int64_t carry5;
  int64_t carry6;
  int64_t carry7;
  int64_t carry8;
  int64_t carry9;
  int64_t carry10;
  int64_t carry11;
  int64_t carry12;
  int64_t carry13;
  int64_t carry14;
  int64_t carry15;
  int64_t carry16;
  s11 += s23 * 666643;
  s12 += s23 * 470296;
  s13 += s23 * 654183;
  s14 -= s23 * 997805;
  s15 += s23 * 136657;
  s16 -= s23 * 683901;
  s10 += s22 * 666643;
  s11 += s22 * 470296;
  s12 += s22 * 654183;
  s13 -= s22 * 997805;
  s14 += s22 * 136657;
  s15 -= s22 * 683901;
  s9 += s21 * 666643;
  s10 += s21 * 470296;
  s11 += s21 * 654183;
  s12 -= s21 * 997805;
  s13 += s21 * 136657;
  s14 -= s21 * 683901;
  s8 += s20 * 666643;
  s9 += s20 * 470296;
  s10 += s20 * 654183;
  s11 -= s20 * 997805;
  s12 += s20 * 136657;
  s13 -= s20 * 683901;
  s7 += s19 * 666643;
  s8 += s19 * 470296;
  s9 += s19 * 654183;
  s10 -= s19 * 997805;
  s11 += s19 * 136657;
  s12 -= s19 * 683901;
  s6 += s18 * 666643;
  s7 += s18 * 470296;
  s8 += s18 * 654183;
  s9 -= s18 * 997805;
  s10 += s18 * 136657;
  s11 -= s18 * 683901;
  carry6 = (s6 + (1 << 20)) >> 21;
  s7 += carry6;
  s6 -= carry6 << 21;
  carry8 = (s8 + (1 << 20)) >> 21;
  s9 += carry8;
  s8 -= carry8 << 21;
  carry10 = (s10 + (1 << 20)) >> 21;
  s11 += carry10;
  s10 -= carry10 << 21;
  carry12 = (s12 + (1 << 20)) >> 21;
  s13 += carry12;
  s12 -= carry12 << 21;
  carry14 = (s14 + (1 << 20)) >> 21;
  s15 += carry14;
  s14 -= carry14 << 21;
  carry16 = (s16 + (1 << 20)) >> 21;
  s17 += carry16;
  s16 -= carry16 << 21;
  carry7 = (s7 + (1 << 20)) >> 21;
  s8 += carry7;
  s7 -= carry7 << 21;
  carry9 = (s9 + (1 << 20)) >> 21;
  s10 += carry9;
  s9 -= carry9 << 21;
  carry11 = (s11 + (1 << 20)) >> 21;
  s12 += carry11;
  s11 -= carry11 << 21;
  carry13 = (s13 + (1 << 20)) >> 21;
  s14 += carry13;
  s13 -= carry13 << 21;
  carry15 = (s15 + (1 << 20)) >> 21;
  s16 += carry15;
  s15 -= carry15 << 21;
  s5 += s17 * 666643;
  s6 += s17 * 470296;
  s7 += s17 * 654183;
  s8 -= s17 * 997805;
  s9 += s17 * 136657;
  s10 -= s17 * 683901;
  s4 += s16 * 666643;
  s5 += s16 * 470296;
  s6 += s16 * 654183;
  s7 -= s16 * 997805;
  s8 += s16 * 136657;
  s9 -= s16 * 683901;
  s3 += s15 * 666643;
  s4 += s15 * 470296;
  s5 += s15 * 654183;
  s6 -= s15 * 997805;
  s7 += s15 * 136657;
  s8 -= s15 * 683901;
  s2 += s14 * 666643;
  s3 += s14 * 470296;
  s4 += s14 * 654183;
  s5 -= s14 * 997805;
  s6 += s14 * 136657;
  s7 -= s14 * 683901;
  s1 += s13 * 666643;
  s2 += s13 * 470296;
  s3 += s13 * 654183;
  s4 -= s13 * 997805;
  s5 += s13 * 136657;
  s6 -= s13 * 683901;
  s0 += s12 * 666643;
  s1 += s12 * 470296;
  s2 += s12 * 654183;
  s3 -= s12 * 997805;
  s4 += s12 * 136657;
  s5 -= s12 * 683901;
  s12 = 0;
  carry0 = (s0 + (1 << 20)) >> 21;
  s1 += carry0;
  s0 -= carry0 << 21;
  carry2 = (s2 + (1 << 20)) >> 21;
  s3 += carry2;
  s2 -= carry2 << 21;
  carry4 = (s4 + (1 << 20)) >> 21;
  s5 += carry4;
  s4 -= carry4 << 21;
  carry6 = (s6 + (1 << 20)) >> 21;
  s7 += carry6;
  s6 -= carry6 << 21;
  carry8 = (s8 + (1 << 20)) >> 21;
  s9 += carry8;
  s8 -= carry8 << 21;
  carry10 = (s10 + (1 << 20)) >> 21;
  s11 += carry10;
  s10 -= carry10 << 21;
  carry1 = (s1 + (1 << 20)) >> 21;
  s2 += carry1;
  s1 -= carry1 << 21;
  carry3 = (s3 + (1 << 20)) >> 21;
  s4 += carry3;
  s3 -= carry3 << 21;
  carry5 = (s5 + (1 << 20)) >> 21;
  s6 += carry5;
  s5 -= carry5 << 21;
  carry7 = (s7 + (1 << 20)) >> 21;
  s8 += carry7;
  s7 -= carry7 << 21;
  carry9 = (s9 + (1 << 20)) >> 21;
  s10 += carry9;
  s9 -= carry9 << 21;
  carry11 = (s11 + (1 << 20)) >> 21;
  s12 += carry11;
  s11 -= carry11 << 21;
  s0 += s12 * 666643;
  s1 += s12 * 470296;
  s2 += s12 * 654183;
  s3 -= s12 * 997805;
  s4 += s12 * 136657;
  s5 -= s12 * 683901;
  s12 = 0;
  carry0 = s0 >> 21;
  s1 += carry0;
  s0 -= carry0 << 21;
  carry1 = s1 >> 21;
  s2 += carry1;
  s1 -= carry1 << 21;
  carry2 = s2 >> 21;
  s3 += carry2;
  s2 -= carry2 << 21;
  carry3 = s3 >> 21;
  s4 += carry3;
  s3 -= carry3 << 21;
  carry4 = s4 >> 21;
  s5 += carry4;
  s4 -= carry4 << 21;
  carry5 = s5 >> 21;
  s6 += carry5;
  s5 -= carry5 << 21;
  carry6 = s6 >> 21;
  s7 += carry6;
  s6 -= carry6 << 21;
  carry7 = s7 >> 21;
  s8 += carry7;
  s7 -= carry7 << 21;
  carry8 = s8 >> 21;
  s9 += carry8;
  s8 -= carry8 << 21;
  carry9 = s9 >> 21;
  s10 += carry9;
  s9 -= carry9 << 21;
  carry10 = s10 >> 21;
  s11 += carry10;
  s10 -= carry10 << 21;
  carry11 = s11 >> 21;
  s12 += carry11;
  s11 -= carry11 << 21;
  s0 += s12 * 666643;
  s1 += s12 * 470296;
  s2 += s12 * 654183;
  s3 -= s12 * 997805;
  s4 += s12 * 136657;
  s5 -= s12 * 683901;
  carry0 = s0 >> 21;
  s1 += carry0;
  s0 -= carry0 << 21;
  carry1 = s1 >> 21;
  s2 += carry1;
  s1 -= carry1 << 21;
  carry2 = s2 >> 21;
  s3 += carry2;
  s2 -= carry2 << 21;
  carry3 = s3 >> 21;
  s4 += carry3;
  s3 -= carry3 << 21;
  carry4 = s4 >> 21;
  s5 += carry4;
  s4 -= carry4 << 21;
  carry5 = s5 >> 21;
  s6 += carry5;
  s5 -= carry5 << 21;
  carry6 = s6 >> 21;
  s7 += carry6;
  s6 -= carry6 << 21;
  carry7 = s7 >> 21;
  s8 += carry7;
  s7 -= carry7 << 21;
  carry8 = s8 >> 21;
  s9 += carry8;
  s8 -= carry8 << 21;
  carry9 = s9 >> 21;
  s10 += carry9;
  s9 -= carry9 << 21;
  carry10 = s10 >> 21;
  s11 += carry10;
  s10 -= carry10 << 21;
  s[0] = (unsigned char)(s0 >> 0);
  s[1] = (unsigned char)(s0 >> 8);
  s[2] = (unsigned char)((s0 >> 16) | (s1 << 5));
  s[3] = (unsigned char)(s1 >> 3);
  s[4] = (unsigned char)(s1 >> 11);
  s[5] = (unsigned char)((s1 >> 19) | (s2 << 2));
  s[6] = (unsigned char)(s2 >> 6);
  s[7] = (unsigned char)((s2 >> 14) | (s3 << 7));
  s[8] = (unsigned char)(s3 >> 1);
  s[9] = (unsigned char)(s3 >> 9);
  s[10] = (unsigned char)((s3 >> 17) | (s4 << 4));
  s[11] = (unsigned char)(s4 >> 4);
  s[12] = (unsigned char)(s4 >> 12);
  s[13] = (unsigned char)((s4 >> 20) | (s5 << 1));
  s[14] = (unsigned char)(s5 >> 7);
  s[15] = (unsigned char)((s5 >> 15) | (s6 << 6));
  s[16] = (unsigned char)(s6 >> 2);
  s[17] = (unsigned char)(s6 >> 10);
  s[18] = (unsigned char)((s6 >> 18) | (s7 << 3));
  s[19] = (unsigned char)(s7 >> 5);
  s[20] = (unsigned char)(s7 >> 13);
  s[21] = (unsigned char)(s8 >> 0);
  s[22] = (unsigned char)(s8 >> 8);
  s[23] = (unsigned char)((s8 >> 16) | (s9 << 5));
  s[24] = (unsigned char)(s9 >> 3);
  s[25] = (unsigned char)(s9 >> 11);
  s[26] = (unsigned char)((s9 >> 19) | (s10 << 2));
  s[27] = (unsigned char)(s10 >> 6);
  s[28] = (unsigned char)((s10 >> 14) | (s11 << 7));
  s[29] = (unsigned char)(s11 >> 1);
  s[30] = (unsigned char)(s11 >> 9);
  s[31] = (unsigned char)(s11 >> 17);
}


x86 assembly (clang, -O0):
<sc_reduce>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb0,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
call   1030 <load_3@plt>
and    $0x1fffff,%eax
mov    %eax,-0xc(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x2,%rdi
call   1040 <load_4@plt>
sar    $0x5,%eax
and    $0x1fffff,%eax
mov    %eax,-0x10(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x5,%rdi
call   1030 <load_3@plt>
sar    $0x2,%eax
and    $0x1fffff,%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x7,%rdi
call   1040 <load_4@plt>
sar    $0x7,%eax
and    $0x1fffff,%eax
mov    %eax,-0x18(%rbp)
mov    -0x8(%rbp),%rdi
add    $0xa,%rdi
call   1040 <load_4@plt>
sar    $0x4,%eax
and    $0x1fffff,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%rdi
add    $0xd,%rdi
call   1030 <load_3@plt>
sar    $0x1,%eax
and    $0x1fffff,%eax
mov    %eax,-0x20(%rbp)
mov    -0x8(%rbp),%rdi
add    $0xf,%rdi
call   1040 <load_4@plt>
sar    $0x6,%eax
and    $0x1fffff,%eax
mov    %eax,-0x24(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x12,%rdi
call   1030 <load_3@plt>
sar    $0x3,%eax
and    $0x1fffff,%eax
mov    %eax,-0x28(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x15,%rdi
call   1030 <load_3@plt>
and    $0x1fffff,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x17,%rdi
call   1040 <load_4@plt>
sar    $0x5,%eax
and    $0x1fffff,%eax
mov    %eax,-0x30(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x1a,%rdi
call   1030 <load_3@plt>
sar    $0x2,%eax
and    $0x1fffff,%eax
mov    %eax,-0x34(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x1c,%rdi
call   1040 <load_4@plt>
sar    $0x7,%eax
and    $0x1fffff,%eax
mov    %eax,-0x38(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x1f,%rdi
call   1040 <load_4@plt>
sar    $0x4,%eax
and    $0x1fffff,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x22,%rdi
call   1030 <load_3@plt>
sar    $0x1,%eax
and    $0x1fffff,%eax
mov    %eax,-0x40(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x24,%rdi
call   1040 <load_4@plt>
sar    $0x6,%eax
and    $0x1fffff,%eax
mov    %eax,-0x44(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x27,%rdi
call   1030 <load_3@plt>
sar    $0x3,%eax
and    $0x1fffff,%eax
mov    %eax,-0x48(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x2a,%rdi
call   1030 <load_3@plt>
and    $0x1fffff,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x2c,%rdi
call   1040 <load_4@plt>
sar    $0x5,%eax
and    $0x1fffff,%eax
mov    %eax,-0x50(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x2f,%rdi
call   1030 <load_3@plt>
sar    $0x2,%eax
and    $0x1fffff,%eax
mov    %eax,-0x54(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x31,%rdi
call   1040 <load_4@plt>
sar    $0x7,%eax
and    $0x1fffff,%eax
mov    %eax,-0x58(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x34,%rdi
call   1040 <load_4@plt>
sar    $0x4,%eax
and    $0x1fffff,%eax
mov    %eax,-0x5c(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x37,%rdi
call   1030 <load_3@plt>
sar    $0x1,%eax
and    $0x1fffff,%eax
mov    %eax,-0x60(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x39,%rdi
call   1040 <load_4@plt>
sar    $0x6,%eax
and    $0x1fffff,%eax
mov    %eax,-0x64(%rbp)
mov    -0x8(%rbp),%rdi
add    $0x3c,%rdi
call   1040 <load_4@plt>
sar    $0x3,%eax
mov    %eax,-0x68(%rbp)
imul   $0xa2c13,-0x68(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
imul   $0x72d18,-0x68(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
imul   $0x9fb67,-0x68(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x40(%rbp)
imul   $0xf39ad,-0x68(%rbp),%ecx
mov    -0x44(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x44(%rbp)
imul   $0x215d1,-0x68(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x48(%rbp)
imul   $0xa6f7d,-0x68(%rbp),%ecx
mov    -0x4c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
imul   $0xa2c13,-0x64(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
imul   $0x72d18,-0x64(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
imul   $0x9fb67,-0x64(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
imul   $0xf39ad,-0x64(%rbp),%ecx
mov    -0x40(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x40(%rbp)
imul   $0x215d1,-0x64(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x44(%rbp)
imul   $0xa6f7d,-0x64(%rbp),%ecx
mov    -0x48(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x48(%rbp)
imul   $0xa2c13,-0x60(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
imul   $0x72d18,-0x60(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
imul   $0x9fb67,-0x60(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
imul   $0xf39ad,-0x60(%rbp),%ecx
mov    -0x3c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x3c(%rbp)
imul   $0x215d1,-0x60(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x40(%rbp)
imul   $0xa6f7d,-0x60(%rbp),%ecx
mov    -0x44(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x44(%rbp)
imul   $0xa2c13,-0x5c(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
imul   $0x72d18,-0x5c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
imul   $0x9fb67,-0x5c(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
imul   $0xf39ad,-0x5c(%rbp),%ecx
mov    -0x38(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x38(%rbp)
imul   $0x215d1,-0x5c(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
imul   $0xa6f7d,-0x5c(%rbp),%ecx
mov    -0x40(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x40(%rbp)
imul   $0xa2c13,-0x58(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
imul   $0x72d18,-0x58(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
imul   $0x9fb67,-0x58(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
imul   $0xf39ad,-0x58(%rbp),%ecx
mov    -0x34(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x34(%rbp)
imul   $0x215d1,-0x58(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
imul   $0xa6f7d,-0x58(%rbp),%ecx
mov    -0x3c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x3c(%rbp)
imul   $0xa2c13,-0x54(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
imul   $0x72d18,-0x54(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
imul   $0x9fb67,-0x54(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
imul   $0xf39ad,-0x54(%rbp),%ecx
mov    -0x30(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x30(%rbp)
imul   $0x215d1,-0x54(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
imul   $0xa6f7d,-0x54(%rbp),%ecx
mov    -0x38(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x38(%rbp)
mov    -0x24(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x84(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x24(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x8c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x2c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x34(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x94(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x34(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x34(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x9c(%rbp)
mov    -0x9c(%rbp),%eax
add    -0x40(%rbp),%eax
mov    %eax,-0x40(%rbp)
mov    -0x9c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x3c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x44(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0xa4(%rbp)
mov    -0xa4(%rbp),%eax
add    -0x48(%rbp),%eax
mov    %eax,-0x48(%rbp)
mov    -0xa4(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x44(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x44(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0xac(%rbp)
mov    -0xac(%rbp),%eax
add    -0x50(%rbp),%eax
mov    %eax,-0x50(%rbp)
mov    -0xac(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x4c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x28(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x88(%rbp)
mov    -0x88(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x88(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x30(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x90(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x30(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x98(%rbp)
mov    -0x98(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x98(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x38(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x38(%rbp)
mov    -0x40(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0xa0(%rbp)
mov    -0xa0(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0xa0(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x40(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x40(%rbp)
mov    -0x48(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0xa8(%rbp)
mov    -0xa8(%rbp),%eax
add    -0x4c(%rbp),%eax
mov    %eax,-0x4c(%rbp)
mov    -0xa8(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x48(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x48(%rbp)
imul   $0xa2c13,-0x50(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
imul   $0x72d18,-0x50(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
imul   $0x9fb67,-0x50(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
imul   $0xf39ad,-0x50(%rbp),%ecx
mov    -0x2c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x2c(%rbp)
imul   $0x215d1,-0x50(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
imul   $0xa6f7d,-0x50(%rbp),%ecx
mov    -0x34(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x34(%rbp)
imul   $0xa2c13,-0x4c(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
imul   $0x72d18,-0x4c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
imul   $0x9fb67,-0x4c(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
imul   $0xf39ad,-0x4c(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
imul   $0x215d1,-0x4c(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
imul   $0xa6f7d,-0x4c(%rbp),%ecx
mov    -0x30(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x30(%rbp)
imul   $0xa2c13,-0x48(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
imul   $0x72d18,-0x48(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
imul   $0x9fb67,-0x48(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
imul   $0xf39ad,-0x48(%rbp),%ecx
mov    -0x24(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x24(%rbp)
imul   $0x215d1,-0x48(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
imul   $0xa6f7d,-0x48(%rbp),%ecx
mov    -0x2c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x2c(%rbp)
imul   $0xa2c13,-0x44(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
imul   $0x72d18,-0x44(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
imul   $0x9fb67,-0x44(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
imul   $0xf39ad,-0x44(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
imul   $0x215d1,-0x44(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
imul   $0xa6f7d,-0x44(%rbp),%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
imul   $0xa2c13,-0x40(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
imul   $0x72d18,-0x40(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
imul   $0x9fb67,-0x40(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
imul   $0xf39ad,-0x40(%rbp),%ecx
mov    -0x1c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x1c(%rbp)
imul   $0x215d1,-0x40(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
imul   $0xa6f7d,-0x40(%rbp),%ecx
mov    -0x24(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x24(%rbp)
imul   $0xa2c13,-0x3c(%rbp),%eax
add    -0xc(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0x72d18,-0x3c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
imul   $0x9fb67,-0x3c(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
imul   $0xf39ad,-0x3c(%rbp),%ecx
mov    -0x18(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x18(%rbp)
imul   $0x215d1,-0x3c(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
imul   $0xa6f7d,-0x3c(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
movl   $0x0,-0x3c(%rbp)
mov    -0xc(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x6c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0xc(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0xc(%rbp)
mov    -0x14(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x74(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x14(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x1c(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x7c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x1c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x84(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x24(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x8c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x2c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x34(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x94(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x34(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x34(%rbp)
mov    -0x10(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x70(%rbp)
mov    -0x70(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x70(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x10(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x10(%rbp)
mov    -0x18(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x78(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x18(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x20(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x80(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x28(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x88(%rbp)
mov    -0x88(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x88(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x30(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x90(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x30(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x100000,%eax
sar    $0x15,%eax
mov    %eax,-0x98(%rbp)
mov    -0x98(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x98(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x38(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x38(%rbp)
imul   $0xa2c13,-0x3c(%rbp),%eax
add    -0xc(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0x72d18,-0x3c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
imul   $0x9fb67,-0x3c(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
imul   $0xf39ad,-0x3c(%rbp),%ecx
mov    -0x18(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x18(%rbp)
imul   $0x215d1,-0x3c(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
imul   $0xa6f7d,-0x3c(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
movl   $0x0,-0x3c(%rbp)
mov    -0xc(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x6c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0xc(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0xc(%rbp)
mov    -0x10(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x70(%rbp)
mov    -0x70(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x70(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x10(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x10(%rbp)
mov    -0x14(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x74(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x14(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x78(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x18(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x7c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x1c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x80(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x24(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x84(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x24(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x88(%rbp)
mov    -0x88(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x88(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x8c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x2c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x90(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x30(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x30(%rbp)
mov    -0x34(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x94(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x34(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x34(%rbp)
mov    -0x38(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x98(%rbp)
mov    -0x98(%rbp),%eax
add    -0x3c(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x98(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x38(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x38(%rbp)
imul   $0xa2c13,-0x3c(%rbp),%eax
add    -0xc(%rbp),%eax
mov    %eax,-0xc(%rbp)
imul   $0x72d18,-0x3c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
imul   $0x9fb67,-0x3c(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
imul   $0xf39ad,-0x3c(%rbp),%ecx
mov    -0x18(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x18(%rbp)
imul   $0x215d1,-0x3c(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
imul   $0xa6f7d,-0x3c(%rbp),%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0xc(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
add    -0x10(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    -0x6c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0xc(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0xc(%rbp)
mov    -0x10(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x70(%rbp)
mov    -0x70(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x70(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x10(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x10(%rbp)
mov    -0x14(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x74(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x14(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x78(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x18(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x7c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x1c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x80(%rbp)
mov    -0x80(%rbp),%eax
add    -0x24(%rbp),%eax
mov    %eax,-0x24(%rbp)
mov    -0x80(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x20(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x24(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x84(%rbp)
mov    -0x84(%rbp),%eax
add    -0x28(%rbp),%eax
mov    %eax,-0x28(%rbp)
mov    -0x84(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x24(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x24(%rbp)
mov    -0x28(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x88(%rbp)
mov    -0x88(%rbp),%eax
add    -0x2c(%rbp),%eax
mov    %eax,-0x2c(%rbp)
mov    -0x88(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x28(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x28(%rbp)
mov    -0x2c(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
add    -0x30(%rbp),%eax
mov    %eax,-0x30(%rbp)
mov    -0x8c(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x2c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x2c(%rbp)
mov    -0x30(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x90(%rbp)
mov    -0x90(%rbp),%eax
add    -0x34(%rbp),%eax
mov    %eax,-0x34(%rbp)
mov    -0x90(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x30(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x30(%rbp)
mov    -0x34(%rbp),%eax
sar    $0x15,%eax
mov    %eax,-0x94(%rbp)
mov    -0x94(%rbp),%eax
add    -0x38(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x94(%rbp),%ecx
shl    $0x15,%ecx
mov    -0x34(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x34(%rbp)
mov    -0xc(%rbp),%eax
sar    $0x0,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,(%rax)
mov    -0xc(%rbp),%eax
sar    $0x8,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1(%rax)
mov    -0xc(%rbp),%eax
sar    $0x10,%eax
mov    -0x10(%rbp),%ecx
shl    $0x5,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x10(%rbp),%eax
sar    $0x3,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x3(%rax)
mov    -0x10(%rbp),%eax
sar    $0xb,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x4(%rax)
mov    -0x10(%rbp),%eax
sar    $0x13,%eax
mov    -0x14(%rbp),%ecx
shl    $0x2,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x5(%rax)
mov    -0x14(%rbp),%eax
sar    $0x6,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x6(%rax)
mov    -0x14(%rbp),%eax
sar    $0xe,%eax
mov    -0x18(%rbp),%ecx
shl    $0x7,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x7(%rax)
mov    -0x18(%rbp),%eax
sar    $0x1,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x8(%rax)
mov    -0x18(%rbp),%eax
sar    $0x9,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x9(%rax)
mov    -0x18(%rbp),%eax
sar    $0x11,%eax
mov    -0x1c(%rbp),%ecx
shl    $0x4,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0xa(%rax)
mov    -0x1c(%rbp),%eax
sar    $0x4,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0xb(%rax)
mov    -0x1c(%rbp),%eax
sar    $0xc,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0xc(%rax)
mov    -0x1c(%rbp),%eax
sar    $0x14,%eax
mov    -0x20(%rbp),%ecx
shl    $0x1,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0xd(%rax)
mov    -0x20(%rbp),%eax
sar    $0x7,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0xe(%rax)
mov    -0x20(%rbp),%eax
sar    $0xf,%eax
mov    -0x24(%rbp),%ecx
shl    $0x6,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0xf(%rax)
mov    -0x24(%rbp),%eax
sar    $0x2,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x10(%rax)
mov    -0x24(%rbp),%eax
sar    $0xa,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x11(%rax)
mov    -0x24(%rbp),%eax
sar    $0x12,%eax
mov    -0x28(%rbp),%ecx
shl    $0x3,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x12(%rax)
mov    -0x28(%rbp),%eax
sar    $0x5,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x13(%rax)
mov    -0x28(%rbp),%eax
sar    $0xd,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x14(%rax)
mov    -0x2c(%rbp),%eax
sar    $0x0,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x15(%rax)
mov    -0x2c(%rbp),%eax
sar    $0x8,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x16(%rax)
mov    -0x2c(%rbp),%eax
sar    $0x10,%eax
mov    -0x30(%rbp),%ecx
shl    $0x5,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x17(%rax)
mov    -0x30(%rbp),%eax
sar    $0x3,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x18(%rax)
mov    -0x30(%rbp),%eax
sar    $0xb,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x19(%rax)
mov    -0x30(%rbp),%eax
sar    $0x13,%eax
mov    -0x34(%rbp),%ecx
shl    $0x2,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1a(%rax)
mov    -0x34(%rbp),%eax
sar    $0x6,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1b(%rax)
mov    -0x34(%rbp),%eax
sar    $0xe,%eax
mov    -0x38(%rbp),%ecx
shl    $0x7,%ecx
or     %ecx,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1c(%rax)
mov    -0x38(%rbp),%eax
sar    $0x1,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1d(%rax)
mov    -0x38(%rbp),%eax
sar    $0x9,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1e(%rax)
mov    -0x38(%rbp),%eax
sar    $0x11,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1f(%rax)
add    $0xb0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<sc_reduce>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x78,%rsp
mov    %rdi,%rbx
call   1030 <load_3@plt>
and    $0x1fffff,%eax
mov    %rax,0x50(%rsp)
lea    0x2(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x5,%eax
and    $0x1fffff,%eax
mov    %eax,0x14(%rsp)
lea    0x5(%rbx),%rdi
call   1030 <load_3@plt>
shr    $0x2,%eax
and    $0x1fffff,%eax
mov    %eax,0x28(%rsp)
lea    0x7(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x7,%eax
and    $0x1fffff,%eax
mov    %eax,0x10(%rsp)
lea    0xa(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x4,%eax
and    $0x1fffff,%eax
mov    %eax,0x48(%rsp)
lea    0xd(%rbx),%rdi
call   1030 <load_3@plt>
shr    %eax
and    $0x1fffff,%eax
mov    %eax,0x20(%rsp)
lea    0xf(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x6,%eax
and    $0x1fffff,%eax
mov    %rax,0x40(%rsp)
lea    0x12(%rbx),%rdi
call   1030 <load_3@plt>
shr    $0x3,%eax
and    $0x1fffff,%eax
mov    %eax,0x8(%rsp)
lea    0x15(%rbx),%rdi
call   1030 <load_3@plt>
and    $0x1fffff,%eax
mov    %eax,0x4(%rsp)
lea    0x17(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x5,%eax
and    $0x1fffff,%eax
mov    %eax,0x68(%rsp)
lea    0x1a(%rbx),%rdi
call   1030 <load_3@plt>
shr    $0x2,%eax
and    $0x1fffff,%eax
mov    %eax,0x64(%rsp)
lea    0x1c(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x7,%eax
and    $0x1fffff,%eax
mov    %eax,0x6c(%rsp)
lea    0x1f(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x4,%eax
and    $0x1fffff,%eax
mov    %eax,0x30(%rsp)
lea    0x22(%rbx),%rdi
call   1030 <load_3@plt>
shr    %eax
and    $0x1fffff,%eax
mov    %eax,0x60(%rsp)
lea    0x24(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x6,%eax
and    $0x1fffff,%eax
mov    %eax,0x5c(%rsp)
lea    0x27(%rbx),%rdi
call   1030 <load_3@plt>
shr    $0x3,%eax
and    $0x1fffff,%eax
mov    %eax,0x38(%rsp)
lea    0x2a(%rbx),%rdi
call   1030 <load_3@plt>
and    $0x1fffff,%eax
mov    %rax,0x18(%rsp)
lea    0x2c(%rbx),%rdi
call   1040 <load_4@plt>
shr    $0x5,%eax
and    $0x1fffff,%eax
mov    %eax,0xc(%rsp)
lea    0x2f(%rbx),%rdi
call   1030 <load_3@plt>
mov    %eax,%ebp
shr    $0x2,%ebp
and    $0x1fffff,%ebp
lea    0x31(%rbx),%rdi
call   1040 <load_4@plt>
mov    %eax,%r15d
shr    $0x7,%r15d
and    $0x1fffff,%r15d
lea    0x34(%rbx),%rdi
call   1040 <load_4@plt>
mov    %eax,%r12d
shr    $0x4,%r12d
and    $0x1fffff,%r12d
lea    0x37(%rbx),%rdi
call   1030 <load_3@plt>
mov    %eax,%r14d
shr    %r14d
and    $0x1fffff,%r14d
lea    0x39(%rbx),%rdi
mov    %rbx,0x70(%rsp)
call   1040 <load_4@plt>
mov    %eax,%r13d
shr    $0x6,%r13d
and    $0x1fffff,%r13d
lea    0x3c(%rbx),%rdi
call   1040 <load_4@plt>
sar    $0x3,%eax
imul   $0x215d1,%eax,%ecx
add    0x38(%rsp),%ecx
imul   $0xfff59083,%r13d,%edx
add    %ecx,%edx
mov    %rdx,0x38(%rsp)
imul   $0xfff59083,%r14d,%r10d
add    0x5c(%rsp),%r10d
imul   $0xfff0c653,%eax,%ecx
add    %ecx,%r10d
imul   $0xfff59083,%r12d,%r11d
add    0x60(%rsp),%r11d
imul   $0x215d1,%r14d,%ecx
add    %ecx,%r11d
imul   $0x9fb67,%eax,%ecx
add    %ecx,%r11d
imul   $0xfff0c653,%r13d,%ecx
add    %ecx,%r11d
imul   $0xfff59083,%r15d,%ebx
add    0x30(%rsp),%ebx
imul   $0x215d1,%r12d,%ecx
add    %ecx,%ebx
imul   $0xfff0c653,%r14d,%ecx
add    %ecx,%ebx
imul   $0x72d18,%eax,%ecx
add    %ecx,%ebx
imul   $0x72d18,%ebp,%edx
add    0x8(%rsp),%edx
imul   $0xa2c13,%r15d,%ecx
add    %ecx,%edx
mov    %rdx,0x30(%rsp)
imul   $0x9fb67,%ebp,%edx
add    0x4(%rsp),%edx
imul   $0x72d18,%r15d,%ecx
add    %ecx,%edx
imul   $0xfff0c653,%ebp,%ecx
add    0x68(%rsp),%ecx
imul   $0x9fb67,%r15d,%esi
add    %esi,%ecx
imul   $0x72d18,%r12d,%esi
add    %esi,%ecx
imul   $0xa2c13,%r14d,%esi
add    %esi,%ecx
imul   $0x215d1,%ebp,%esi
add    0x64(%rsp),%esi
imul   $0xfff0c653,%r15d,%edi
add    %edi,%esi
imul   $0x9fb67,%r12d,%edi
add    %edi,%esi
imul   $0x72d18,%r14d,%edi
add    %edi,%esi
imul   $0xfff59083,%ebp,%r9d
add    0x6c(%rsp),%r9d
imul   $0x215d1,%r15d,%edi
add    %edi,%r9d
imul   $0xfff0c653,%r12d,%edi
add    %edi,%r9d
imul   $0x9fb67,%r14d,%edi
add    %edi,%r9d
imul   $0xa2c13,%eax,%edi
add    %edi,%r9d
imul   $0x72d18,%r13d,%edi
add    %edi,%r9d
imul   $0xa2c13,%ebp,%r8d
mov    0x40(%rsp),%rdi
lea    (%r8,%rdi,1),%ebp
add    %r8d,%edi
add    $0x100000,%edi
mov    %edi,%r8d
and    $0x7fe00000,%edi
sub    %edi,%ebp
mov    %ebp,0x4(%rsp)
imul   $0xa2c13,%r12d,%edi
lea    (%rdx,%rdi,1),%r12d
add    %edi,%edx
add    $0x100000,%edx
imul   $0xa2c13,%r13d,%edi
lea    (%rsi,%rdi,1),%ebp
mov    %ebp,0x8(%rsp)
lea    (%rdi,%rsi,1),%r15d
add    $0x100000,%r15d
imul   $0x9fb67,%r13d,%esi
lea    (%rbx,%rsi,1),%r14d
add    %ebx,%esi
add    $0x100000,%esi
mov    %esi,%ebx
and    $0xffe00000,%esi
sub    %esi,%r14d
imul   $0x215d1,%r13d,%esi
lea    (%r10,%rsi,1),%edi
add    %esi,%r10d
add    $0x100000,%r10d
mov    %r10d,%esi
and    $0xffe00000,%r10d
sub    %r10d,%edi
imul   $0xfff59083,%eax,%r13d
mov    0x18(%rsp),%rax
lea    (%rax,%r13,1),%r10d
add    %eax,%r13d
add    $0x100000,%r13d
mov    %r13d,%eax
sar    $0x15,%eax
add    0xc(%rsp),%eax
and    $0xffe00000,%r13d
sub    %r13d,%r10d
shr    $0x15,%r8d
mov    0x30(%rsp),%rbp
lea    (%r8,%rbp,1),%r13d
add    %r8d,%ebp
add    $0x100000,%ebp
mov    %ebp,%r8d
shr    $0x15,%r8d
add    %r12d,%r8d
mov    %edx,%r12d
and    $0xffe00000,%edx
sub    %edx,%r8d
and    $0xffe00000,%ebp
sub    %ebp,%r13d
shr    $0x15,%r12d
lea    (%rcx,%r12,1),%edx
mov    %edx,0x18(%rsp)
add    %r12d,%ecx
add    $0x100000,%ecx
mov    %r15d,%edx
sar    $0x15,%edx
lea    (%r9,%rdx,1),%ebp
add    %r9d,%edx
add    $0x100000,%edx
mov    %edx,%r12d
sar    $0x15,%r12d
add    %r14d,%r12d
and    $0xffe00000,%edx
sub    %edx,%ebp
mov    %rbp,0x40(%rsp)
sar    $0x15,%ebx
lea    (%r11,%rbx,1),%r9d
lea    (%rbx,%r11,1),%edx
add    $0x100000,%edx
mov    %edx,%ebp
sar    $0x15,%ebp
add    %edi,%ebp
and    $0xffe00000,%edx
sub    %edx,%r9d
sar    $0x15,%esi
mov    0x38(%rsp),%rdx
lea    (%rdx,%rsi,1),%edi
add    %esi,%edx
add    $0x100000,%edx
mov    %edx,%esi
sar    $0x15,%esi
add    %r10d,%esi
and    $0xffe00000,%edx
sub    %edx,%edi
imul   $0xa2c13,%eax,%r14d
add    0x20(%rsp),%r14d
imul   $0x72d18,%eax,%ebx
add    0x4(%rsp),%ebx
imul   $0x9fb67,%eax,%r10d
add    %r13d,%r10d
imul   $0xfff0c653,%eax,%r11d
add    %r8d,%r11d
imul   $0x215d1,%eax,%r13d
add    0x18(%rsp),%r13d
mov    %ecx,%edx
and    $0xffe00000,%ecx
sub    %ecx,%r13d
imul   $0xfff59083,%eax,%r8d
add    0x8(%rsp),%r8d
sar    $0x15,%edx
add    %edx,%r8d
and    $0xffe00000,%r15d
sub    %r15d,%r8d
imul   $0xa2c13,%esi,%eax
add    0x48(%rsp),%eax
imul   $0x72d18,%esi,%edx
add    %r14d,%edx
imul   $0x9fb67,%esi,%r14d
add    %ebx,%r14d
imul   $0xfff0c653,%esi,%ebx
add    %r10d,%ebx
imul   $0x215d1,%esi,%ecx
add    %r11d,%ecx
mov    %rcx,0x20(%rsp)
imul   $0xfff59083,%esi,%ecx
add    %r13d,%ecx
mov    %rcx,0x48(%rsp)
imul   $0xa2c13,%edi,%esi
add    0x10(%rsp),%esi
imul   $0x72d18,%edi,%r10d
add    %eax,%r10d
imul   $0x9fb67,%edi,%eax
add    %edx,%eax
imul   $0xfff0c653,%edi,%r15d
add    %r14d,%r15d
imul   $0x215d1,%edi,%r11d
add    %ebx,%r11d
imul   $0xa2c13,%ebp,%ebx
add    0x28(%rsp),%ebx
imul   $0x72d18,%ebp,%edx
add    %esi,%edx
imul   $0x9fb67,%ebp,%r13d
add    %r10d,%r13d
imul   $0xfff0c653,%ebp,%r10d
add    %eax,%r10d
imul   $0x215d1,%ebp,%ecx
add    %r15d,%ecx
imul   $0xfff59083,%ebp,%eax
add    %r11d,%eax
mov    %rax,0x28(%rsp)
imul   $0xa2c13,%r9d,%esi
add    0x14(%rsp),%esi
imul   $0x72d18,%r9d,%ebp
add    %ebx,%ebp
imul   $0x9fb67,%r9d,%ebx
add    %edx,%ebx
imul   $0xfff0c653,%r9d,%edx
add    %r13d,%edx
imul   $0x215d1,%r9d,%r15d
add    %r10d,%r15d
imul   $0x72d18,%r12d,%r11d
add    %esi,%r11d
imul   $0xfff0c653,%r12d,%r14d
add    %ebx,%r14d
imul   $0xfff59083,%r12d,%r10d
add    %r15d,%r10d
imul   $0xa2c13,%r12d,%r15d
mov    0x50(%rsp),%rbx
lea    (%r15,%rbx,1),%eax
add    $0x100000,%eax
mov    %r15d,%r13d
add    %ebx,%r13d
mov    %eax,%r15d
and    $0xffe00000,%eax
sub    %eax,%r13d
imul   $0x9fb67,%r12d,%eax
lea    (%rax,%rbp,1),%ebx
mov    %ebx,0x14(%rsp)
add    %ebp,%eax
add    $0x100000,%eax
mov    %eax,0x4(%rsp)
imul   $0x215d1,%r12d,%eax
lea    (%rdx,%rax,1),%ebx
mov    %ebx,0x50(%rsp)
lea    (%rax,%rdx,1),%r12d
add    $0x100000,%r12d
imul   $0xfff59083,%r9d,%eax
lea    (%rcx,%rax,1),%ebp
add    %ecx,%eax
add    $0x100000,%eax
mov    %eax,%edx
and    $0xffe00000,%eax
sub    %eax,%ebp
imul   $0xfff59083,%edi,%eax
mov    0x20(%rsp),%rcx
lea    (%rcx,%rax,1),%edi
add    %eax,%ecx
add    $0x100000,%ecx
mov    %ecx,%eax
and    $0xffe00000,%ecx
sub    %ecx,%edi
lea    0x100000(%r8),%ebx
mov    %ebx,%ecx
and    $0xffe00000,%ebx
sub    %ebx,%r8d
sar    $0x15,%r15d
lea    (%r11,%r15,1),%esi
mov    %esi,0x8(%rsp)
add    %r11d,%r15d
add    $0x100000,%r15d
mov    0x4(%rsp),%r9d
mov    %r9d,%ebx
sar    $0x15,%ebx
lea    (%r14,%rbx,1),%esi
mov    %esi,0xc(%rsp)
lea    (%rbx,%r14,1),%r11d
add    $0x100000,%r11d
mov    %r12d,%ebx
sar    $0x15,%ebx
lea    (%r10,%rbx,1),%esi
mov    %esi,0x18(%rsp)
add    %ebx,%r10d
add    $0x100000,%r10d
mov    %r10d,%ebx
sar    $0x15,%ebx
add    %ebp,%ebx
sar    $0x15,%edx
mov    0x28(%rsp),%rbp
lea    (%rdx,%rbp,1),%esi
add    %ebp,%edx
add    $0x100000,%edx
mov    %edx,%r14d
sar    $0x15,%r14d
add    %edi,%r14d
and    $0xffe00000,%edx
sub    %edx,%esi
mov    %esi,0x20(%rsp)
sar    $0x15,%eax
mov    0x48(%rsp),%rdx
lea    (%rdx,%rax,1),%esi
add    %eax,%edx
add    $0x100000,%edx
mov    %edx,%eax
sar    $0x15,%eax
add    %r8d,%eax
and    $0xffe00000,%edx
sub    %edx,%esi
mov    %esi,0x10(%rsp)
sar    $0x15,%ecx
mov    0x40(%rsp),%rdx
lea    (%rcx,%rdx,1),%esi
add    %ecx,%edx
add    $0x100000,%edx
mov    %edx,%ecx
and    $0xffe00000,%edx
sub    %edx,%esi
mov    %esi,0x28(%rsp)
sar    $0x15,%ecx
imul   $0xa2c13,%ecx,%ebp
add    %r13d,%ebp
imul   $0x72d18,%ecx,%r13d
add    0x8(%rsp),%r13d
mov    %r15d,%esi
and    $0xffe00000,%r15d
sub    %r15d,%r13d
imul   $0x9fb67,%ecx,%edx
add    0x14(%rsp),%edx
and    $0xffe00000,%r9d
sub    %r9d,%edx
sar    $0x15,%esi
add    %esi,%edx
imul   $0xfff0c653,%ecx,%r8d
add    0xc(%rsp),%r8d
mov    %r11d,%edi
and    $0xffe00000,%r11d
sub    %r11d,%r8d
imul   $0x215d1,%ecx,%esi
add    0x50(%rsp),%esi
and    $0xffe00000,%r12d
sub    %r12d,%esi
sar    $0x15,%edi
add    %edi,%esi
and    $0xffe00000,%r10d
imul   $0xfff59083,%ecx,%ecx
add    0x18(%rsp),%ecx
sub    %r10d,%ecx
mov    %ebp,%r15d
sar    $0x15,%r15d
add    %r13d,%r15d
and    $0x1fffff,%ebp
mov    %r15d,%r11d
sar    $0x15,%r11d
add    %edx,%r11d
and    $0x1fffff,%r15d
mov    %r11d,%r10d
sar    $0x15,%r10d
add    %r8d,%r10d
and    $0x1fffff,%r11d
mov    %r10d,%edi
sar    $0x15,%edi
add    %esi,%edi
and    $0x1fffff,%r10d
mov    %edi,%edx
sar    $0x15,%edx
add    %ecx,%edx
and    $0x1fffff,%edi
mov    %edx,%r9d
sar    $0x15,%r9d
add    %ebx,%r9d
and    $0x1fffff,%edx
mov    %r9d,%ebx
sar    $0x15,%ebx
add    0x20(%rsp),%ebx
and    $0x1fffff,%r9d
mov    %ebx,%r8d
sar    $0x15,%r8d
add    %r14d,%r8d
and    $0x1fffff,%ebx
mov    %r8d,%r12d
sar    $0x15,%r12d
add    0x10(%rsp),%r12d
and    $0x1fffff,%r8d
mov    %r12d,%esi
sar    $0x15,%esi
add    %eax,%esi
and    $0x1fffff,%r12d
mov    %esi,%r13d
sar    $0x15,%r13d
add    0x28(%rsp),%r13d
and    $0x1fffff,%esi
mov    %r13d,%ecx
sar    $0x15,%ecx
and    $0x1fffff,%r13d
imul   $0xa2c13,%ecx,%eax
add    %ebp,%eax
imul   $0x72d18,%ecx,%ebp
add    %r15d,%ebp
imul   $0x9fb67,%ecx,%r14d
add    %r11d,%r14d
imul   $0xfff0c653,%ecx,%r11d
add    %r10d,%r11d
imul   $0x215d1,%ecx,%r10d
add    %edi,%r10d
imul   $0xfff59083,%ecx,%r15d
add    %edx,%r15d
mov    %eax,%edi
sar    $0x15,%edi
add    %ebp,%edi
mov    %edi,%edx
sar    $0x15,%edx
add    %r14d,%edx
mov    %edi,%r14d
and    $0x1fffff,%r14d
mov    %edx,%ebp
sar    $0x15,%ebp
add    %r11d,%ebp
mov    %ebp,%ecx
sar    $0x15,%ecx
add    %r10d,%ecx
mov    %ecx,%r10d
sar    $0x15,%r10d
add    %r15d,%r10d
mov    %r10d,%r11d
sar    $0x15,%r11d
add    %r9d,%r11d
mov    %r11d,%r15d
sar    $0x15,%r15d
add    %ebx,%r15d
mov    %r15d,%ebx
sar    $0x15,%ebx
add    %r8d,%ebx
mov    %ebx,%r8d
sar    $0x15,%r8d
add    %r12d,%r8d
mov    %r8d,%r12d
sar    $0x15,%r12d
add    %esi,%r12d
mov    %r12d,%r9d
sar    $0x15,%r9d
add    %r13d,%r9d
mov    0x70(%rsp),%rsi
mov    %al,(%rsi)
mov    %ah,0x1(%rsi)
mov    %rsi,%r13
shr    $0x10,%eax
and    $0x1f,%eax
mov    %r14d,%esi
shl    $0x5,%esi
or     %eax,%esi
mov    %sil,0x2(%r13)
mov    %edi,%eax
shr    $0x3,%eax
mov    %al,0x3(%r13)
shr    $0xb,%edi
mov    %dil,0x4(%r13)
mov    %edx,%eax
and    $0x1fffff,%eax
shr    $0x13,%r14d
lea    (%r14,%rax,4),%esi
mov    %sil,0x5(%r13)
mov    %ebp,%esi
and    $0x1fffff,%esi
shr    $0x6,%edx
mov    %dl,0x6(%r13)
shr    $0xe,%eax
mov    %esi,%edx
shl    $0x7,%edx
or     %eax,%edx
mov    %dl,0x7(%r13)
mov    %ebp,%eax
shr    %eax
mov    %al,0x8(%r13)
mov    %ecx,%eax
and    $0x1fffff,%eax
shr    $0x9,%ebp
mov    %bpl,0x9(%r13)
shr    $0x11,%esi
mov    %eax,%edx
shl    $0x4,%edx
or     %esi,%edx
mov    %r13,%rsi
mov    %dl,0xa(%r13)
mov    %ecx,%edx
shr    $0x4,%edx
mov    %dl,0xb(%r13)
shr    $0xc,%ecx
mov    %cl,0xc(%r13)
mov    %r10d,%ecx
and    $0x1fffff,%ecx
shr    $0x14,%eax
lea    (%rax,%rcx,2),%eax
mov    %al,0xd(%r13)
mov    %r11d,%eax
and    $0x1fffff,%eax
shr    $0x7,%r10d
mov    %r10b,0xe(%r13)
shr    $0xf,%ecx
mov    %eax,%edx
shl    $0x6,%edx
or     %ecx,%edx
mov    %dl,0xf(%r13)
mov    %r11d,%ecx
shr    $0x2,%ecx
mov    %cl,0x10(%r13)
shr    $0xa,%r11d
mov    %r11b,0x11(%r13)
shr    $0x12,%eax
lea    (%rax,%r15,8),%eax
mov    %al,0x12(%r13)
mov    %r15d,%eax
shr    $0x5,%eax
mov    %al,0x13(%r13)
mov    %r8d,%eax
and    $0x1fffff,%eax
shr    $0xd,%r15d
mov    %r15b,0x14(%r13)
mov    %bl,0x15(%r13)
mov    %bh,0x16(%rsi)
shr    $0x10,%ebx
and    $0x1f,%ebx
mov    %eax,%ecx
shl    $0x5,%ecx
or     %ebx,%ecx
mov    %cl,0x17(%r13)
mov    %r8d,%ecx
shr    $0x3,%ecx
mov    %cl,0x18(%r13)
shr    $0xb,%r8d
mov    %r8b,0x19(%r13)
mov    %r12d,%ecx
and    $0x1fffff,%ecx
shr    $0x13,%eax
lea    (%rax,%rcx,4),%eax
mov    %al,0x1a(%r13)
shr    $0x6,%r12d
mov    %r12b,0x1b(%r13)
shr    $0xe,%ecx
mov    %r9d,%eax
shl    $0x7,%eax
or     %ecx,%eax
mov    %al,0x1c(%r13)
mov    %r9d,%eax
shr    %eax
mov    %al,0x1d(%r13)
mov    %r9d,%eax
shr    $0x9,%eax
mov    %al,0x1e(%r13)
shr    $0x11,%r9d
mov    %r9b,0x1f(%r13)
add    $0x78,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @sc_reduce(i8* %0) {
%2 = alloca i8*
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca i32
%42 = alloca i32
%43 = alloca i32
store i8* %0, i8** %2
%44 = load i8*, i8** %2
%45 = call i32 @load_3(i8* %44)
%46 = and i32 2097151, %45
store i32 %46, i32* %3
%47 = load i8*, i8** %2
%48 = getelementptr inbounds i8, i8* %47, i64 2
%49 = call i32 @load_4(i8* %48)
%50 = ashr i32 %49, 5
%51 = and i32 2097151, %50
store i32 %51, i32* %4
%52 = load i8*, i8** %2
%53 = getelementptr inbounds i8, i8* %52, i64 5
%54 = call i32 @load_3(i8* %53)
%55 = ashr i32 %54, 2
%56 = and i32 2097151, %55
store i32 %56, i32* %5
%57 = load i8*, i8** %2
%58 = getelementptr inbounds i8, i8* %57, i64 7
%59 = call i32 @load_4(i8* %58)
%60 = ashr i32 %59, 7
%61 = and i32 2097151, %60
store i32 %61, i32* %6
%62 = load i8*, i8** %2
%63 = getelementptr inbounds i8, i8* %62, i64 10
%64 = call i32 @load_4(i8* %63)
%65 = ashr i32 %64, 4
%66 = and i32 2097151, %65
store i32 %66, i32* %7
%67 = load i8*, i8** %2
%68 = getelementptr inbounds i8, i8* %67, i64 13
%69 = call i32 @load_3(i8* %68)
%70 = ashr i32 %69, 1
%71 = and i32 2097151, %70
store i32 %71, i32* %8
%72 = load i8*, i8** %2
%73 = getelementptr inbounds i8, i8* %72, i64 15
%74 = call i32 @load_4(i8* %73)
%75 = ashr i32 %74, 6
%76 = and i32 2097151, %75
store i32 %76, i32* %9
%77 = load i8*, i8** %2
%78 = getelementptr inbounds i8, i8* %77, i64 18
%79 = call i32 @load_3(i8* %78)
%80 = ashr i32 %79, 3
%81 = and i32 2097151, %80
store i32 %81, i32* %10
%82 = load i8*, i8** %2
%83 = getelementptr inbounds i8, i8* %82, i64 21
%84 = call i32 @load_3(i8* %83)
%85 = and i32 2097151, %84
store i32 %85, i32* %11
%86 = load i8*, i8** %2
%87 = getelementptr inbounds i8, i8* %86, i64 23
%88 = call i32 @load_4(i8* %87)
%89 = ashr i32 %88, 5
%90 = and i32 2097151, %89
store i32 %90, i32* %12
%91 = load i8*, i8** %2
%92 = getelementptr inbounds i8, i8* %91, i64 26
%93 = call i32 @load_3(i8* %92)
%94 = ashr i32 %93, 2
%95 = and i32 2097151, %94
store i32 %95, i32* %13
%96 = load i8*, i8** %2
%97 = getelementptr inbounds i8, i8* %96, i64 28
%98 = call i32 @load_4(i8* %97)
%99 = ashr i32 %98, 7
%100 = and i32 2097151, %99
store i32 %100, i32* %14
%101 = load i8*, i8** %2
%102 = getelementptr inbounds i8, i8* %101, i64 31
%103 = call i32 @load_4(i8* %102)
%104 = ashr i32 %103, 4
%105 = and i32 2097151, %104
store i32 %105, i32* %15
%106 = load i8*, i8** %2
%107 = getelementptr inbounds i8, i8* %106, i64 34
%108 = call i32 @load_3(i8* %107)
%109 = ashr i32 %108, 1
%110 = and i32 2097151, %109
store i32 %110, i32* %16
%111 = load i8*, i8** %2
%112 = getelementptr inbounds i8, i8* %111, i64 36
%113 = call i32 @load_4(i8* %112)
%114 = ashr i32 %113, 6
%115 = and i32 2097151, %114
store i32 %115, i32* %17
%116 = load i8*, i8** %2
%117 = getelementptr inbounds i8, i8* %116, i64 39
%118 = call i32 @load_3(i8* %117)
%119 = ashr i32 %118, 3
%120 = and i32 2097151, %119
store i32 %120, i32* %18
%121 = load i8*, i8** %2
%122 = getelementptr inbounds i8, i8* %121, i64 42
%123 = call i32 @load_3(i8* %122)
%124 = and i32 2097151, %123
store i32 %124, i32* %19
%125 = load i8*, i8** %2
%126 = getelementptr inbounds i8, i8* %125, i64 44
%127 = call i32 @load_4(i8* %126)
%128 = ashr i32 %127, 5
%129 = and i32 2097151, %128
store i32 %129, i32* %20
%130 = load i8*, i8** %2
%131 = getelementptr inbounds i8, i8* %130, i64 47
%132 = call i32 @load_3(i8* %131)
%133 = ashr i32 %132, 2
%134 = and i32 2097151, %133
store i32 %134, i32* %21
%135 = load i8*, i8** %2
%136 = getelementptr inbounds i8, i8* %135, i64 49
%137 = call i32 @load_4(i8* %136)
%138 = ashr i32 %137, 7
%139 = and i32 2097151, %138
store i32 %139, i32* %22
%140 = load i8*, i8** %2
%141 = getelementptr inbounds i8, i8* %140, i64 52
%142 = call i32 @load_4(i8* %141)
%143 = ashr i32 %142, 4
%144 = and i32 2097151, %143
store i32 %144, i32* %23
%145 = load i8*, i8** %2
%146 = getelementptr inbounds i8, i8* %145, i64 55
%147 = call i32 @load_3(i8* %146)
%148 = ashr i32 %147, 1
%149 = and i32 2097151, %148
store i32 %149, i32* %24
%150 = load i8*, i8** %2
%151 = getelementptr inbounds i8, i8* %150, i64 57
%152 = call i32 @load_4(i8* %151)
%153 = ashr i32 %152, 6
%154 = and i32 2097151, %153
store i32 %154, i32* %25
%155 = load i8*, i8** %2
%156 = getelementptr inbounds i8, i8* %155, i64 60
%157 = call i32 @load_4(i8* %156)
%158 = ashr i32 %157, 3
store i32 %158, i32* %26
%159 = load i32, i32* %26
%160 = mul nsw i32 %159, 666643
%161 = load i32, i32* %14
%162 = add nsw i32 %161, %160
store i32 %162, i32* %14
%163 = load i32, i32* %26
%164 = mul nsw i32 %163, 470296
%165 = load i32, i32* %15
%166 = add nsw i32 %165, %164
store i32 %166, i32* %15
%167 = load i32, i32* %26
%168 = mul nsw i32 %167, 654183
%169 = load i32, i32* %16
%170 = add nsw i32 %169, %168
store i32 %170, i32* %16
%171 = load i32, i32* %26
%172 = mul nsw i32 %171, 997805
%173 = load i32, i32* %17
%174 = sub nsw i32 %173, %172
store i32 %174, i32* %17
%175 = load i32, i32* %26
%176 = mul nsw i32 %175, 136657
%177 = load i32, i32* %18
%178 = add nsw i32 %177, %176
store i32 %178, i32* %18
%179 = load i32, i32* %26
%180 = mul nsw i32 %179, 683901
%181 = load i32, i32* %19
%182 = sub nsw i32 %181, %180
store i32 %182, i32* %19
%183 = load i32, i32* %25
%184 = mul nsw i32 %183, 666643
%185 = load i32, i32* %13
%186 = add nsw i32 %185, %184
store i32 %186, i32* %13
%187 = load i32, i32* %25
%188 = mul nsw i32 %187, 470296
%189 = load i32, i32* %14
%190 = add nsw i32 %189, %188
store i32 %190, i32* %14
%191 = load i32, i32* %25
%192 = mul nsw i32 %191, 654183
%193 = load i32, i32* %15
%194 = add nsw i32 %193, %192
store i32 %194, i32* %15
%195 = load i32, i32* %25
%196 = mul nsw i32 %195, 997805
%197 = load i32, i32* %16
%198 = sub nsw i32 %197, %196
store i32 %198, i32* %16
%199 = load i32, i32* %25
%200 = mul nsw i32 %199, 136657
%201 = load i32, i32* %17
%202 = add nsw i32 %201, %200
store i32 %202, i32* %17
%203 = load i32, i32* %25
%204 = mul nsw i32 %203, 683901
%205 = load i32, i32* %18
%206 = sub nsw i32 %205, %204
store i32 %206, i32* %18
%207 = load i32, i32* %24
%208 = mul nsw i32 %207, 666643
%209 = load i32, i32* %12
%210 = add nsw i32 %209, %208
store i32 %210, i32* %12
%211 = load i32, i32* %24
%212 = mul nsw i32 %211, 470296
%213 = load i32, i32* %13
%214 = add nsw i32 %213, %212
store i32 %214, i32* %13
%215 = load i32, i32* %24
%216 = mul nsw i32 %215, 654183
%217 = load i32, i32* %14
%218 = add nsw i32 %217, %216
store i32 %218, i32* %14
%219 = load i32, i32* %24
%220 = mul nsw i32 %219, 997805
%221 = load i32, i32* %15
%222 = sub nsw i32 %221, %220
store i32 %222, i32* %15
%223 = load i32, i32* %24
%224 = mul nsw i32 %223, 136657
%225 = load i32, i32* %16
%226 = add nsw i32 %225, %224
store i32 %226, i32* %16
%227 = load i32, i32* %24
%228 = mul nsw i32 %227, 683901
%229 = load i32, i32* %17
%230 = sub nsw i32 %229, %228
store i32 %230, i32* %17
%231 = load i32, i32* %23
%232 = mul nsw i32 %231, 666643
%233 = load i32, i32* %11
%234 = add nsw i32 %233, %232
store i32 %234, i32* %11
%235 = load i32, i32* %23
%236 = mul nsw i32 %235, 470296
%237 = load i32, i32* %12
%238 = add nsw i32 %237, %236
store i32 %238, i32* %12
%239 = load i32, i32* %23
%240 = mul nsw i32 %239, 654183
%241 = load i32, i32* %13
%242 = add nsw i32 %241, %240
store i32 %242, i32* %13
%243 = load i32, i32* %23
%244 = mul nsw i32 %243, 997805
%245 = load i32, i32* %14
%246 = sub nsw i32 %245, %244
store i32 %246, i32* %14
%247 = load i32, i32* %23
%248 = mul nsw i32 %247, 136657
%249 = load i32, i32* %15
%250 = add nsw i32 %249, %248
store i32 %250, i32* %15
%251 = load i32, i32* %23
%252 = mul nsw i32 %251, 683901
%253 = load i32, i32* %16
%254 = sub nsw i32 %253, %252
store i32 %254, i32* %16
%255 = load i32, i32* %22
%256 = mul nsw i32 %255, 666643
%257 = load i32, i32* %10
%258 = add nsw i32 %257, %256
store i32 %258, i32* %10
%259 = load i32, i32* %22
%260 = mul nsw i32 %259, 470296
%261 = load i32, i32* %11
%262 = add nsw i32 %261, %260
store i32 %262, i32* %11
%263 = load i32, i32* %22
%264 = mul nsw i32 %263, 654183
%265 = load i32, i32* %12
%266 = add nsw i32 %265, %264
store i32 %266, i32* %12
%267 = load i32, i32* %22
%268 = mul nsw i32 %267, 997805
%269 = load i32, i32* %13
%270 = sub nsw i32 %269, %268
store i32 %270, i32* %13
%271 = load i32, i32* %22
%272 = mul nsw i32 %271, 136657
%273 = load i32, i32* %14
%274 = add nsw i32 %273, %272
store i32 %274, i32* %14
%275 = load i32, i32* %22
%276 = mul nsw i32 %275, 683901
%277 = load i32, i32* %15
%278 = sub nsw i32 %277, %276
store i32 %278, i32* %15
%279 = load i32, i32* %21
%280 = mul nsw i32 %279, 666643
%281 = load i32, i32* %9
%282 = add nsw i32 %281, %280
store i32 %282, i32* %9
%283 = load i32, i32* %21
%284 = mul nsw i32 %283, 470296
%285 = load i32, i32* %10
%286 = add nsw i32 %285, %284
store i32 %286, i32* %10
%287 = load i32, i32* %21
%288 = mul nsw i32 %287, 654183
%289 = load i32, i32* %11
%290 = add nsw i32 %289, %288
store i32 %290, i32* %11
%291 = load i32, i32* %21
%292 = mul nsw i32 %291, 997805
%293 = load i32, i32* %12
%294 = sub nsw i32 %293, %292
store i32 %294, i32* %12
%295 = load i32, i32* %21
%296 = mul nsw i32 %295, 136657
%297 = load i32, i32* %13
%298 = add nsw i32 %297, %296
store i32 %298, i32* %13
%299 = load i32, i32* %21
%300 = mul nsw i32 %299, 683901
%301 = load i32, i32* %14
%302 = sub nsw i32 %301, %300
store i32 %302, i32* %14
%303 = load i32, i32* %9
%304 = add nsw i32 %303, 1048576
%305 = ashr i32 %304, 21
store i32 %305, i32* %33
%306 = load i32, i32* %33
%307 = load i32, i32* %10
%308 = add nsw i32 %307, %306
store i32 %308, i32* %10
%309 = load i32, i32* %33
%310 = shl i32 %309, 21
%311 = load i32, i32* %9
%312 = sub nsw i32 %311, %310
store i32 %312, i32* %9
%313 = load i32, i32* %11
%314 = add nsw i32 %313, 1048576
%315 = ashr i32 %314, 21
store i32 %315, i32* %35
%316 = load i32, i32* %35
%317 = load i32, i32* %12
%318 = add nsw i32 %317, %316
store i32 %318, i32* %12
%319 = load i32, i32* %35
%320 = shl i32 %319, 21
%321 = load i32, i32* %11
%322 = sub nsw i32 %321, %320
store i32 %322, i32* %11
%323 = load i32, i32* %13
%324 = add nsw i32 %323, 1048576
%325 = ashr i32 %324, 21
store i32 %325, i32* %37
%326 = load i32, i32* %37
%327 = load i32, i32* %14
%328 = add nsw i32 %327, %326
store i32 %328, i32* %14
%329 = load i32, i32* %37
%330 = shl i32 %329, 21
%331 = load i32, i32* %13
%332 = sub nsw i32 %331, %330
store i32 %332, i32* %13
%333 = load i32, i32* %15
%334 = add nsw i32 %333, 1048576
%335 = ashr i32 %334, 21
store i32 %335, i32* %39
%336 = load i32, i32* %39
%337 = load i32, i32* %16
%338 = add nsw i32 %337, %336
store i32 %338, i32* %16
%339 = load i32, i32* %39
%340 = shl i32 %339, 21
%341 = load i32, i32* %15
%342 = sub nsw i32 %341, %340
store i32 %342, i32* %15
%343 = load i32, i32* %17
%344 = add nsw i32 %343, 1048576
%345 = ashr i32 %344, 21
store i32 %345, i32* %41
%346 = load i32, i32* %41
%347 = load i32, i32* %18
%348 = add nsw i32 %347, %346
store i32 %348, i32* %18
%349 = load i32, i32* %41
%350 = shl i32 %349, 21
%351 = load i32, i32* %17
%352 = sub nsw i32 %351, %350
store i32 %352, i32* %17
%353 = load i32, i32* %19
%354 = add nsw i32 %353, 1048576
%355 = ashr i32 %354, 21
store i32 %355, i32* %43
%356 = load i32, i32* %43
%357 = load i32, i32* %20
%358 = add nsw i32 %357, %356
store i32 %358, i32* %20
%359 = load i32, i32* %43
%360 = shl i32 %359, 21
%361 = load i32, i32* %19
%362 = sub nsw i32 %361, %360
store i32 %362, i32* %19
%363 = load i32, i32* %10
%364 = add nsw i32 %363, 1048576
%365 = ashr i32 %364, 21
store i32 %365, i32* %34
%366 = load i32, i32* %34
%367 = load i32, i32* %11
%368 = add nsw i32 %367, %366
store i32 %368, i32* %11
%369 = load i32, i32* %34
%370 = shl i32 %369, 21
%371 = load i32, i32* %10
%372 = sub nsw i32 %371, %370
store i32 %372, i32* %10
%373 = load i32, i32* %12
%374 = add nsw i32 %373, 1048576
%375 = ashr i32 %374, 21
store i32 %375, i32* %36
%376 = load i32, i32* %36
%377 = load i32, i32* %13
%378 = add nsw i32 %377, %376
store i32 %378, i32* %13
%379 = load i32, i32* %36
%380 = shl i32 %379, 21
%381 = load i32, i32* %12
%382 = sub nsw i32 %381, %380
store i32 %382, i32* %12
%383 = load i32, i32* %14
%384 = add nsw i32 %383, 1048576
%385 = ashr i32 %384, 21
store i32 %385, i32* %38
%386 = load i32, i32* %38
%387 = load i32, i32* %15
%388 = add nsw i32 %387, %386
store i32 %388, i32* %15
%389 = load i32, i32* %38
%390 = shl i32 %389, 21
%391 = load i32, i32* %14
%392 = sub nsw i32 %391, %390
store i32 %392, i32* %14
%393 = load i32, i32* %16
%394 = add nsw i32 %393, 1048576
%395 = ashr i32 %394, 21
store i32 %395, i32* %40
%396 = load i32, i32* %40
%397 = load i32, i32* %17
%398 = add nsw i32 %397, %396
store i32 %398, i32* %17
%399 = load i32, i32* %40
%400 = shl i32 %399, 21
%401 = load i32, i32* %16
%402 = sub nsw i32 %401, %400
store i32 %402, i32* %16
%403 = load i32, i32* %18
%404 = add nsw i32 %403, 1048576
%405 = ashr i32 %404, 21
store i32 %405, i32* %42
%406 = load i32, i32* %42
%407 = load i32, i32* %19
%408 = add nsw i32 %407, %406
store i32 %408, i32* %19
%409 = load i32, i32* %42
%410 = shl i32 %409, 21
%411 = load i32, i32* %18
%412 = sub nsw i32 %411, %410
store i32 %412, i32* %18
%413 = load i32, i32* %20
%414 = mul nsw i32 %413, 666643
%415 = load i32, i32* %8
%416 = add nsw i32 %415, %414
store i32 %416, i32* %8
%417 = load i32, i32* %20
%418 = mul nsw i32 %417, 470296
%419 = load i32, i32* %9
%420 = add nsw i32 %419, %418
store i32 %420, i32* %9
%421 = load i32, i32* %20
%422 = mul nsw i32 %421, 654183
%423 = load i32, i32* %10
%424 = add nsw i32 %423, %422
store i32 %424, i32* %10
%425 = load i32, i32* %20
%426 = mul nsw i32 %425, 997805
%427 = load i32, i32* %11
%428 = sub nsw i32 %427, %426
store i32 %428, i32* %11
%429 = load i32, i32* %20
%430 = mul nsw i32 %429, 136657
%431 = load i32, i32* %12
%432 = add nsw i32 %431, %430
store i32 %432, i32* %12
%433 = load i32, i32* %20
%434 = mul nsw i32 %433, 683901
%435 = load i32, i32* %13
%436 = sub nsw i32 %435, %434
store i32 %436, i32* %13
%437 = load i32, i32* %19
%438 = mul nsw i32 %437, 666643
%439 = load i32, i32* %7
%440 = add nsw i32 %439, %438
store i32 %440, i32* %7
%441 = load i32, i32* %19
%442 = mul nsw i32 %441, 470296
%443 = load i32, i32* %8
%444 = add nsw i32 %443, %442
store i32 %444, i32* %8
%445 = load i32, i32* %19
%446 = mul nsw i32 %445, 654183
%447 = load i32, i32* %9
%448 = add nsw i32 %447, %446
store i32 %448, i32* %9
%449 = load i32, i32* %19
%450 = mul nsw i32 %449, 997805
%451 = load i32, i32* %10
%452 = sub nsw i32 %451, %450
store i32 %452, i32* %10
%453 = load i32, i32* %19
%454 = mul nsw i32 %453, 136657
%455 = load i32, i32* %11
%456 = add nsw i32 %455, %454
store i32 %456, i32* %11
%457 = load i32, i32* %19
%458 = mul nsw i32 %457, 683901
%459 = load i32, i32* %12
%460 = sub nsw i32 %459, %458
store i32 %460, i32* %12
%461 = load i32, i32* %18
%462 = mul nsw i32 %461, 666643
%463 = load i32, i32* %6
%464 = add nsw i32 %463, %462
store i32 %464, i32* %6
%465 = load i32, i32* %18
%466 = mul nsw i32 %465, 470296
%467 = load i32, i32* %7
%468 = add nsw i32 %467, %466
store i32 %468, i32* %7
%469 = load i32, i32* %18
%470 = mul nsw i32 %469, 654183
%471 = load i32, i32* %8
%472 = add nsw i32 %471, %470
store i32 %472, i32* %8
%473 = load i32, i32* %18
%474 = mul nsw i32 %473, 997805
%475 = load i32, i32* %9
%476 = sub nsw i32 %475, %474
store i32 %476, i32* %9
%477 = load i32, i32* %18
%478 = mul nsw i32 %477, 136657
%479 = load i32, i32* %10
%480 = add nsw i32 %479, %478
store i32 %480, i32* %10
%481 = load i32, i32* %18
%482 = mul nsw i32 %481, 683901
%483 = load i32, i32* %11
%484 = sub nsw i32 %483, %482
store i32 %484, i32* %11
%485 = load i32, i32* %17
%486 = mul nsw i32 %485, 666643
%487 = load i32, i32* %5
%488 = add nsw i32 %487, %486
store i32 %488, i32* %5
%489 = load i32, i32* %17
%490 = mul nsw i32 %489, 470296
%491 = load i32, i32* %6
%492 = add nsw i32 %491, %490
store i32 %492, i32* %6
%493 = load i32, i32* %17
%494 = mul nsw i32 %493, 654183
%495 = load i32, i32* %7
%496 = add nsw i32 %495, %494
store i32 %496, i32* %7
%497 = load i32, i32* %17
%498 = mul nsw i32 %497, 997805
%499 = load i32, i32* %8
%500 = sub nsw i32 %499, %498
store i32 %500, i32* %8
%501 = load i32, i32* %17
%502 = mul nsw i32 %501, 136657
%503 = load i32, i32* %9
%504 = add nsw i32 %503, %502
store i32 %504, i32* %9
%505 = load i32, i32* %17
%506 = mul nsw i32 %505, 683901
%507 = load i32, i32* %10
%508 = sub nsw i32 %507, %506
store i32 %508, i32* %10
%509 = load i32, i32* %16
%510 = mul nsw i32 %509, 666643
%511 = load i32, i32* %4
%512 = add nsw i32 %511, %510
store i32 %512, i32* %4
%513 = load i32, i32* %16
%514 = mul nsw i32 %513, 470296
%515 = load i32, i32* %5
%516 = add nsw i32 %515, %514
store i32 %516, i32* %5
%517 = load i32, i32* %16
%518 = mul nsw i32 %517, 654183
%519 = load i32, i32* %6
%520 = add nsw i32 %519, %518
store i32 %520, i32* %6
%521 = load i32, i32* %16
%522 = mul nsw i32 %521, 997805
%523 = load i32, i32* %7
%524 = sub nsw i32 %523, %522
store i32 %524, i32* %7
%525 = load i32, i32* %16
%526 = mul nsw i32 %525, 136657
%527 = load i32, i32* %8
%528 = add nsw i32 %527, %526
store i32 %528, i32* %8
%529 = load i32, i32* %16
%530 = mul nsw i32 %529, 683901
%531 = load i32, i32* %9
%532 = sub nsw i32 %531, %530
store i32 %532, i32* %9
%533 = load i32, i32* %15
%534 = mul nsw i32 %533, 666643
%535 = load i32, i32* %3
%536 = add nsw i32 %535, %534
store i32 %536, i32* %3
%537 = load i32, i32* %15
%538 = mul nsw i32 %537, 470296
%539 = load i32, i32* %4
%540 = add nsw i32 %539, %538
store i32 %540, i32* %4
%541 = load i32, i32* %15
%542 = mul nsw i32 %541, 654183
%543 = load i32, i32* %5
%544 = add nsw i32 %543, %542
store i32 %544, i32* %5
%545 = load i32, i32* %15
%546 = mul nsw i32 %545, 997805
%547 = load i32, i32* %6
%548 = sub nsw i32 %547, %546
store i32 %548, i32* %6
%549 = load i32, i32* %15
%550 = mul nsw i32 %549, 136657
%551 = load i32, i32* %7
%552 = add nsw i32 %551, %550
store i32 %552, i32* %7
%553 = load i32, i32* %15
%554 = mul nsw i32 %553, 683901
%555 = load i32, i32* %8
%556 = sub nsw i32 %555, %554
store i32 %556, i32* %8
store i32 0, i32* %15
%557 = load i32, i32* %3
%558 = add nsw i32 %557, 1048576
%559 = ashr i32 %558, 21
store i32 %559, i32* %27
%560 = load i32, i32* %27
%561 = load i32, i32* %4
%562 = add nsw i32 %561, %560
store i32 %562, i32* %4
%563 = load i32, i32* %27
%564 = shl i32 %563, 21
%565 = load i32, i32* %3
%566 = sub nsw i32 %565, %564
store i32 %566, i32* %3
%567 = load i32, i32* %5
%568 = add nsw i32 %567, 1048576
%569 = ashr i32 %568, 21
store i32 %569, i32* %29
%570 = load i32, i32* %29
%571 = load i32, i32* %6
%572 = add nsw i32 %571, %570
store i32 %572, i32* %6
%573 = load i32, i32* %29
%574 = shl i32 %573, 21
%575 = load i32, i32* %5
%576 = sub nsw i32 %575, %574
store i32 %576, i32* %5
%577 = load i32, i32* %7
%578 = add nsw i32 %577, 1048576
%579 = ashr i32 %578, 21
store i32 %579, i32* %31
%580 = load i32, i32* %31
%581 = load i32, i32* %8
%582 = add nsw i32 %581, %580
store i32 %582, i32* %8
%583 = load i32, i32* %31
%584 = shl i32 %583, 21
%585 = load i32, i32* %7
%586 = sub nsw i32 %585, %584
store i32 %586, i32* %7
%587 = load i32, i32* %9
%588 = add nsw i32 %587, 1048576
%589 = ashr i32 %588, 21
store i32 %589, i32* %33
%590 = load i32, i32* %33
%591 = load i32, i32* %10
%592 = add nsw i32 %591, %590
store i32 %592, i32* %10
%593 = load i32, i32* %33
%594 = shl i32 %593, 21
%595 = load i32, i32* %9
%596 = sub nsw i32 %595, %594
store i32 %596, i32* %9
%597 = load i32, i32* %11
%598 = add nsw i32 %597, 1048576
%599 = ashr i32 %598, 21
store i32 %599, i32* %35
%600 = load i32, i32* %35
%601 = load i32, i32* %12
%602 = add nsw i32 %601, %600
store i32 %602, i32* %12
%603 = load i32, i32* %35
%604 = shl i32 %603, 21
%605 = load i32, i32* %11
%606 = sub nsw i32 %605, %604
store i32 %606, i32* %11
%607 = load i32, i32* %13
%608 = add nsw i32 %607, 1048576
%609 = ashr i32 %608, 21
store i32 %609, i32* %37
%610 = load i32, i32* %37
%611 = load i32, i32* %14
%612 = add nsw i32 %611, %610
store i32 %612, i32* %14
%613 = load i32, i32* %37
%614 = shl i32 %613, 21
%615 = load i32, i32* %13
%616 = sub nsw i32 %615, %614
store i32 %616, i32* %13
%617 = load i32, i32* %4
%618 = add nsw i32 %617, 1048576
%619 = ashr i32 %618, 21
store i32 %619, i32* %28
%620 = load i32, i32* %28
%621 = load i32, i32* %5
%622 = add nsw i32 %621, %620
store i32 %622, i32* %5
%623 = load i32, i32* %28
%624 = shl i32 %623, 21
%625 = load i32, i32* %4
%626 = sub nsw i32 %625, %624
store i32 %626, i32* %4
%627 = load i32, i32* %6
%628 = add nsw i32 %627, 1048576
%629 = ashr i32 %628, 21
store i32 %629, i32* %30
%630 = load i32, i32* %30
%631 = load i32, i32* %7
%632 = add nsw i32 %631, %630
store i32 %632, i32* %7
%633 = load i32, i32* %30
%634 = shl i32 %633, 21
%635 = load i32, i32* %6
%636 = sub nsw i32 %635, %634
store i32 %636, i32* %6
%637 = load i32, i32* %8
%638 = add nsw i32 %637, 1048576
%639 = ashr i32 %638, 21
store i32 %639, i32* %32
%640 = load i32, i32* %32
%641 = load i32, i32* %9
%642 = add nsw i32 %641, %640
store i32 %642, i32* %9
%643 = load i32, i32* %32
%644 = shl i32 %643, 21
%645 = load i32, i32* %8
%646 = sub nsw i32 %645, %644
store i32 %646, i32* %8
%647 = load i32, i32* %10
%648 = add nsw i32 %647, 1048576
%649 = ashr i32 %648, 21
store i32 %649, i32* %34
%650 = load i32, i32* %34
%651 = load i32, i32* %11
%652 = add nsw i32 %651, %650
store i32 %652, i32* %11
%653 = load i32, i32* %34
%654 = shl i32 %653, 21
%655 = load i32, i32* %10
%656 = sub nsw i32 %655, %654
store i32 %656, i32* %10
%657 = load i32, i32* %12
%658 = add nsw i32 %657, 1048576
%659 = ashr i32 %658, 21
store i32 %659, i32* %36
%660 = load i32, i32* %36
%661 = load i32, i32* %13
%662 = add nsw i32 %661, %660
store i32 %662, i32* %13
%663 = load i32, i32* %36
%664 = shl i32 %663, 21
%665 = load i32, i32* %12
%666 = sub nsw i32 %665, %664
store i32 %666, i32* %12
%667 = load i32, i32* %14
%668 = add nsw i32 %667, 1048576
%669 = ashr i32 %668, 21
store i32 %669, i32* %38
%670 = load i32, i32* %38
%671 = load i32, i32* %15
%672 = add nsw i32 %671, %670
store i32 %672, i32* %15
%673 = load i32, i32* %38
%674 = shl i32 %673, 21
%675 = load i32, i32* %14
%676 = sub nsw i32 %675, %674
store i32 %676, i32* %14
%677 = load i32, i32* %15
%678 = mul nsw i32 %677, 666643
%679 = load i32, i32* %3
%680 = add nsw i32 %679, %678
store i32 %680, i32* %3
%681 = load i32, i32* %15
%682 = mul nsw i32 %681, 470296
%683 = load i32, i32* %4
%684 = add nsw i32 %683, %682
store i32 %684, i32* %4
%685 = load i32, i32* %15
%686 = mul nsw i32 %685, 654183
%687 = load i32, i32* %5
%688 = add nsw i32 %687, %686
store i32 %688, i32* %5
%689 = load i32, i32* %15
%690 = mul nsw i32 %689, 997805
%691 = load i32, i32* %6
%692 = sub nsw i32 %691, %690
store i32 %692, i32* %6
%693 = load i32, i32* %15
%694 = mul nsw i32 %693, 136657
%695 = load i32, i32* %7
%696 = add nsw i32 %695, %694
store i32 %696, i32* %7
%697 = load i32, i32* %15
%698 = mul nsw i32 %697, 683901
%699 = load i32, i32* %8
%700 = sub nsw i32 %699, %698
store i32 %700, i32* %8
store i32 0, i32* %15
%701 = load i32, i32* %3
%702 = ashr i32 %701, 21
store i32 %702, i32* %27
%703 = load i32, i32* %27
%704 = load i32, i32* %4
%705 = add nsw i32 %704, %703
store i32 %705, i32* %4
%706 = load i32, i32* %27
%707 = shl i32 %706, 21
%708 = load i32, i32* %3
%709 = sub nsw i32 %708, %707
store i32 %709, i32* %3
%710 = load i32, i32* %4
%711 = ashr i32 %710, 21
store i32 %711, i32* %28
%712 = load i32, i32* %28
%713 = load i32, i32* %5
%714 = add nsw i32 %713, %712
store i32 %714, i32* %5
%715 = load i32, i32* %28
%716 = shl i32 %715, 21
%717 = load i32, i32* %4
%718 = sub nsw i32 %717, %716
store i32 %718, i32* %4
%719 = load i32, i32* %5
%720 = ashr i32 %719, 21
store i32 %720, i32* %29
%721 = load i32, i32* %29
%722 = load i32, i32* %6
%723 = add nsw i32 %722, %721
store i32 %723, i32* %6
%724 = load i32, i32* %29
%725 = shl i32 %724, 21
%726 = load i32, i32* %5
%727 = sub nsw i32 %726, %725
store i32 %727, i32* %5
%728 = load i32, i32* %6
%729 = ashr i32 %728, 21
store i32 %729, i32* %30
%730 = load i32, i32* %30
%731 = load i32, i32* %7
%732 = add nsw i32 %731, %730
store i32 %732, i32* %7
%733 = load i32, i32* %30
%734 = shl i32 %733, 21
%735 = load i32, i32* %6
%736 = sub nsw i32 %735, %734
store i32 %736, i32* %6
%737 = load i32, i32* %7
%738 = ashr i32 %737, 21
store i32 %738, i32* %31
%739 = load i32, i32* %31
%740 = load i32, i32* %8
%741 = add nsw i32 %740, %739
store i32 %741, i32* %8
%742 = load i32, i32* %31
%743 = shl i32 %742, 21
%744 = load i32, i32* %7
%745 = sub nsw i32 %744, %743
store i32 %745, i32* %7
%746 = load i32, i32* %8
%747 = ashr i32 %746, 21
store i32 %747, i32* %32
%748 = load i32, i32* %32
%749 = load i32, i32* %9
%750 = add nsw i32 %749, %748
store i32 %750, i32* %9
%751 = load i32, i32* %32
%752 = shl i32 %751, 21
%753 = load i32, i32* %8
%754 = sub nsw i32 %753, %752
store i32 %754, i32* %8
%755 = load i32, i32* %9
%756 = ashr i32 %755, 21
store i32 %756, i32* %33
%757 = load i32, i32* %33
%758 = load i32, i32* %10
%759 = add nsw i32 %758, %757
store i32 %759, i32* %10
%760 = load i32, i32* %33
%761 = shl i32 %760, 21
%762 = load i32, i32* %9
%763 = sub nsw i32 %762, %761
store i32 %763, i32* %9
%764 = load i32, i32* %10
%765 = ashr i32 %764, 21
store i32 %765, i32* %34
%766 = load i32, i32* %34
%767 = load i32, i32* %11
%768 = add nsw i32 %767, %766
store i32 %768, i32* %11
%769 = load i32, i32* %34
%770 = shl i32 %769, 21
%771 = load i32, i32* %10
%772 = sub nsw i32 %771, %770
store i32 %772, i32* %10
%773 = load i32, i32* %11
%774 = ashr i32 %773, 21
store i32 %774, i32* %35
%775 = load i32, i32* %35
%776 = load i32, i32* %12
%777 = add nsw i32 %776, %775
store i32 %777, i32* %12
%778 = load i32, i32* %35
%779 = shl i32 %778, 21
%780 = load i32, i32* %11
%781 = sub nsw i32 %780, %779
store i32 %781, i32* %11
%782 = load i32, i32* %12
%783 = ashr i32 %782, 21
store i32 %783, i32* %36
%784 = load i32, i32* %36
%785 = load i32, i32* %13
%786 = add nsw i32 %785, %784
store i32 %786, i32* %13
%787 = load i32, i32* %36
%788 = shl i32 %787, 21
%789 = load i32, i32* %12
%790 = sub nsw i32 %789, %788
store i32 %790, i32* %12
%791 = load i32, i32* %13
%792 = ashr i32 %791, 21
store i32 %792, i32* %37
%793 = load i32, i32* %37
%794 = load i32, i32* %14
%795 = add nsw i32 %794, %793
store i32 %795, i32* %14
%796 = load i32, i32* %37
%797 = shl i32 %796, 21
%798 = load i32, i32* %13
%799 = sub nsw i32 %798, %797
store i32 %799, i32* %13
%800 = load i32, i32* %14
%801 = ashr i32 %800, 21
store i32 %801, i32* %38
%802 = load i32, i32* %38
%803 = load i32, i32* %15
%804 = add nsw i32 %803, %802
store i32 %804, i32* %15
%805 = load i32, i32* %38
%806 = shl i32 %805, 21
%807 = load i32, i32* %14
%808 = sub nsw i32 %807, %806
store i32 %808, i32* %14
%809 = load i32, i32* %15
%810 = mul nsw i32 %809, 666643
%811 = load i32, i32* %3
%812 = add nsw i32 %811, %810
store i32 %812, i32* %3
%813 = load i32, i32* %15
%814 = mul nsw i32 %813, 470296
%815 = load i32, i32* %4
%816 = add nsw i32 %815, %814
store i32 %816, i32* %4
%817 = load i32, i32* %15
%818 = mul nsw i32 %817, 654183
%819 = load i32, i32* %5
%820 = add nsw i32 %819, %818
store i32 %820, i32* %5
%821 = load i32, i32* %15
%822 = mul nsw i32 %821, 997805
%823 = load i32, i32* %6
%824 = sub nsw i32 %823, %822
store i32 %824, i32* %6
%825 = load i32, i32* %15
%826 = mul nsw i32 %825, 136657
%827 = load i32, i32* %7
%828 = add nsw i32 %827, %826
store i32 %828, i32* %7
%829 = load i32, i32* %15
%830 = mul nsw i32 %829, 683901
%831 = load i32, i32* %8
%832 = sub nsw i32 %831, %830
store i32 %832, i32* %8
%833 = load i32, i32* %3
%834 = ashr i32 %833, 21
store i32 %834, i32* %27
%835 = load i32, i32* %27
%836 = load i32, i32* %4
%837 = add nsw i32 %836, %835
store i32 %837, i32* %4
%838 = load i32, i32* %27
%839 = shl i32 %838, 21
%840 = load i32, i32* %3
%841 = sub nsw i32 %840, %839
store i32 %841, i32* %3
%842 = load i32, i32* %4
%843 = ashr i32 %842, 21
store i32 %843, i32* %28
%844 = load i32, i32* %28
%845 = load i32, i32* %5
%846 = add nsw i32 %845, %844
store i32 %846, i32* %5
%847 = load i32, i32* %28
%848 = shl i32 %847, 21
%849 = load i32, i32* %4
%850 = sub nsw i32 %849, %848
store i32 %850, i32* %4
%851 = load i32, i32* %5
%852 = ashr i32 %851, 21
store i32 %852, i32* %29
%853 = load i32, i32* %29
%854 = load i32, i32* %6
%855 = add nsw i32 %854, %853
store i32 %855, i32* %6
%856 = load i32, i32* %29
%857 = shl i32 %856, 21
%858 = load i32, i32* %5
%859 = sub nsw i32 %858, %857
store i32 %859, i32* %5
%860 = load i32, i32* %6
%861 = ashr i32 %860, 21
store i32 %861, i32* %30
%862 = load i32, i32* %30
%863 = load i32, i32* %7
%864 = add nsw i32 %863, %862
store i32 %864, i32* %7
%865 = load i32, i32* %30
%866 = shl i32 %865, 21
%867 = load i32, i32* %6
%868 = sub nsw i32 %867, %866
store i32 %868, i32* %6
%869 = load i32, i32* %7
%870 = ashr i32 %869, 21
store i32 %870, i32* %31
%871 = load i32, i32* %31
%872 = load i32, i32* %8
%873 = add nsw i32 %872, %871
store i32 %873, i32* %8
%874 = load i32, i32* %31
%875 = shl i32 %874, 21
%876 = load i32, i32* %7
%877 = sub nsw i32 %876, %875
store i32 %877, i32* %7
%878 = load i32, i32* %8
%879 = ashr i32 %878, 21
store i32 %879, i32* %32
%880 = load i32, i32* %32
%881 = load i32, i32* %9
%882 = add nsw i32 %881, %880
store i32 %882, i32* %9
%883 = load i32, i32* %32
%884 = shl i32 %883, 21
%885 = load i32, i32* %8
%886 = sub nsw i32 %885, %884
store i32 %886, i32* %8
%887 = load i32, i32* %9
%888 = ashr i32 %887, 21
store i32 %888, i32* %33
%889 = load i32, i32* %33
%890 = load i32, i32* %10
%891 = add nsw i32 %890, %889
store i32 %891, i32* %10
%892 = load i32, i32* %33
%893 = shl i32 %892, 21
%894 = load i32, i32* %9
%895 = sub nsw i32 %894, %893
store i32 %895, i32* %9
%896 = load i32, i32* %10
%897 = ashr i32 %896, 21
store i32 %897, i32* %34
%898 = load i32, i32* %34
%899 = load i32, i32* %11
%900 = add nsw i32 %899, %898
store i32 %900, i32* %11
%901 = load i32, i32* %34
%902 = shl i32 %901, 21
%903 = load i32, i32* %10
%904 = sub nsw i32 %903, %902
store i32 %904, i32* %10
%905 = load i32, i32* %11
%906 = ashr i32 %905, 21
store i32 %906, i32* %35
%907 = load i32, i32* %35
%908 = load i32, i32* %12
%909 = add nsw i32 %908, %907
store i32 %909, i32* %12
%910 = load i32, i32* %35
%911 = shl i32 %910, 21
%912 = load i32, i32* %11
%913 = sub nsw i32 %912, %911
store i32 %913, i32* %11
%914 = load i32, i32* %12
%915 = ashr i32 %914, 21
store i32 %915, i32* %36
%916 = load i32, i32* %36
%917 = load i32, i32* %13
%918 = add nsw i32 %917, %916
store i32 %918, i32* %13
%919 = load i32, i32* %36
%920 = shl i32 %919, 21
%921 = load i32, i32* %12
%922 = sub nsw i32 %921, %920
store i32 %922, i32* %12
%923 = load i32, i32* %13
%924 = ashr i32 %923, 21
store i32 %924, i32* %37
%925 = load i32, i32* %37
%926 = load i32, i32* %14
%927 = add nsw i32 %926, %925
store i32 %927, i32* %14
%928 = load i32, i32* %37
%929 = shl i32 %928, 21
%930 = load i32, i32* %13
%931 = sub nsw i32 %930, %929
store i32 %931, i32* %13
%932 = load i32, i32* %3
%933 = ashr i32 %932, 0
%934 = trunc i32 %933 to i8
%935 = load i8*, i8** %2
%936 = getelementptr inbounds i8, i8* %935, i64 0
store i8 %934, i8* %936
%937 = load i32, i32* %3
%938 = ashr i32 %937, 8
%939 = trunc i32 %938 to i8
%940 = load i8*, i8** %2
%941 = getelementptr inbounds i8, i8* %940, i64 1
store i8 %939, i8* %941
%942 = load i32, i32* %3
%943 = ashr i32 %942, 16
%944 = load i32, i32* %4
%945 = shl i32 %944, 5
%946 = or i32 %943, %945
%947 = trunc i32 %946 to i8
%948 = load i8*, i8** %2
%949 = getelementptr inbounds i8, i8* %948, i64 2
store i8 %947, i8* %949
%950 = load i32, i32* %4
%951 = ashr i32 %950, 3
%952 = trunc i32 %951 to i8
%953 = load i8*, i8** %2
%954 = getelementptr inbounds i8, i8* %953, i64 3
store i8 %952, i8* %954
%955 = load i32, i32* %4
%956 = ashr i32 %955, 11
%957 = trunc i32 %956 to i8
%958 = load i8*, i8** %2
%959 = getelementptr inbounds i8, i8* %958, i64 4
store i8 %957, i8* %959
%960 = load i32, i32* %4
%961 = ashr i32 %960, 19
%962 = load i32, i32* %5
%963 = shl i32 %962, 2
%964 = or i32 %961, %963
%965 = trunc i32 %964 to i8
%966 = load i8*, i8** %2
%967 = getelementptr inbounds i8, i8* %966, i64 5
store i8 %965, i8* %967
%968 = load i32, i32* %5
%969 = ashr i32 %968, 6
%970 = trunc i32 %969 to i8
%971 = load i8*, i8** %2
%972 = getelementptr inbounds i8, i8* %971, i64 6
store i8 %970, i8* %972
%973 = load i32, i32* %5
%974 = ashr i32 %973, 14
%975 = load i32, i32* %6
%976 = shl i32 %975, 7
%977 = or i32 %974, %976
%978 = trunc i32 %977 to i8
%979 = load i8*, i8** %2
%980 = getelementptr inbounds i8, i8* %979, i64 7
store i8 %978, i8* %980
%981 = load i32, i32* %6
%982 = ashr i32 %981, 1
%983 = trunc i32 %982 to i8
%984 = load i8*, i8** %2
%985 = getelementptr inbounds i8, i8* %984, i64 8
store i8 %983, i8* %985
%986 = load i32, i32* %6
%987 = ashr i32 %986, 9
%988 = trunc i32 %987 to i8
%989 = load i8*, i8** %2
%990 = getelementptr inbounds i8, i8* %989, i64 9
store i8 %988, i8* %990
%991 = load i32, i32* %6
%992 = ashr i32 %991, 17
%993 = load i32, i32* %7
%994 = shl i32 %993, 4
%995 = or i32 %992, %994
%996 = trunc i32 %995 to i8
%997 = load i8*, i8** %2
%998 = getelementptr inbounds i8, i8* %997, i64 10
store i8 %996, i8* %998
%999 = load i32, i32* %7
%1000 = ashr i32 %999, 4
%1001 = trunc i32 %1000 to i8
%1002 = load i8*, i8** %2
%1003 = getelementptr inbounds i8, i8* %1002, i64 11
store i8 %1001, i8* %1003
%1004 = load i32, i32* %7
%1005 = ashr i32 %1004, 12
%1006 = trunc i32 %1005 to i8
%1007 = load i8*, i8** %2
%1008 = getelementptr inbounds i8, i8* %1007, i64 12
store i8 %1006, i8* %1008
%1009 = load i32, i32* %7
%1010 = ashr i32 %1009, 20
%1011 = load i32, i32* %8
%1012 = shl i32 %1011, 1
%1013 = or i32 %1010, %1012
%1014 = trunc i32 %1013 to i8
%1015 = load i8*, i8** %2
%1016 = getelementptr inbounds i8, i8* %1015, i64 13
store i8 %1014, i8* %1016
%1017 = load i32, i32* %8
%1018 = ashr i32 %1017, 7
%1019 = trunc i32 %1018 to i8
%1020 = load i8*, i8** %2
%1021 = getelementptr inbounds i8, i8* %1020, i64 14
store i8 %1019, i8* %1021
%1022 = load i32, i32* %8
%1023 = ashr i32 %1022, 15
%1024 = load i32, i32* %9
%1025 = shl i32 %1024, 6
%1026 = or i32 %1023, %1025
%1027 = trunc i32 %1026 to i8
%1028 = load i8*, i8** %2
%1029 = getelementptr inbounds i8, i8* %1028, i64 15
store i8 %1027, i8* %1029
%1030 = load i32, i32* %9
%1031 = ashr i32 %1030, 2
%1032 = trunc i32 %1031 to i8
%1033 = load i8*, i8** %2
%1034 = getelementptr inbounds i8, i8* %1033, i64 16
store i8 %1032, i8* %1034
%1035 = load i32, i32* %9
%1036 = ashr i32 %1035, 10
%1037 = trunc i32 %1036 to i8
%1038 = load i8*, i8** %2
%1039 = getelementptr inbounds i8, i8* %1038, i64 17
store i8 %1037, i8* %1039
%1040 = load i32, i32* %9
%1041 = ashr i32 %1040, 18
%1042 = load i32, i32* %10
%1043 = shl i32 %1042, 3
%1044 = or i32 %1041, %1043
%1045 = trunc i32 %1044 to i8
%1046 = load i8*, i8** %2
%1047 = getelementptr inbounds i8, i8* %1046, i64 18
store i8 %1045, i8* %1047
%1048 = load i32, i32* %10
%1049 = ashr i32 %1048, 5
%1050 = trunc i32 %1049 to i8
%1051 = load i8*, i8** %2
%1052 = getelementptr inbounds i8, i8* %1051, i64 19
store i8 %1050, i8* %1052
%1053 = load i32, i32* %10
%1054 = ashr i32 %1053, 13
%1055 = trunc i32 %1054 to i8
%1056 = load i8*, i8** %2
%1057 = getelementptr inbounds i8, i8* %1056, i64 20
store i8 %1055, i8* %1057
%1058 = load i32, i32* %11
%1059 = ashr i32 %1058, 0
%1060 = trunc i32 %1059 to i8
%1061 = load i8*, i8** %2
%1062 = getelementptr inbounds i8, i8* %1061, i64 21
store i8 %1060, i8* %1062
%1063 = load i32, i32* %11
%1064 = ashr i32 %1063, 8
%1065 = trunc i32 %1064 to i8
%1066 = load i8*, i8** %2
%1067 = getelementptr inbounds i8, i8* %1066, i64 22
store i8 %1065, i8* %1067
%1068 = load i32, i32* %11
%1069 = ashr i32 %1068, 16
%1070 = load i32, i32* %12
%1071 = shl i32 %1070, 5
%1072 = or i32 %1069, %1071
%1073 = trunc i32 %1072 to i8
%1074 = load i8*, i8** %2
%1075 = getelementptr inbounds i8, i8* %1074, i64 23
store i8 %1073, i8* %1075
%1076 = load i32, i32* %12
%1077 = ashr i32 %1076, 3
%1078 = trunc i32 %1077 to i8
%1079 = load i8*, i8** %2
%1080 = getelementptr inbounds i8, i8* %1079, i64 24
store i8 %1078, i8* %1080
%1081 = load i32, i32* %12
%1082 = ashr i32 %1081, 11
%1083 = trunc i32 %1082 to i8
%1084 = load i8*, i8** %2
%1085 = getelementptr inbounds i8, i8* %1084, i64 25
store i8 %1083, i8* %1085
%1086 = load i32, i32* %12
%1087 = ashr i32 %1086, 19
%1088 = load i32, i32* %13
%1089 = shl i32 %1088, 2
%1090 = or i32 %1087, %1089
%1091 = trunc i32 %1090 to i8
%1092 = load i8*, i8** %2
%1093 = getelementptr inbounds i8, i8* %1092, i64 26
store i8 %1091, i8* %1093
%1094 = load i32, i32* %13
%1095 = ashr i32 %1094, 6
%1096 = trunc i32 %1095 to i8
%1097 = load i8*, i8** %2
%1098 = getelementptr inbounds i8, i8* %1097, i64 27
store i8 %1096, i8* %1098
%1099 = load i32, i32* %13
%1100 = ashr i32 %1099, 14
%1101 = load i32, i32* %14
%1102 = shl i32 %1101, 7
%1103 = or i32 %1100, %1102
%1104 = trunc i32 %1103 to i8
%1105 = load i8*, i8** %2
%1106 = getelementptr inbounds i8, i8* %1105, i64 28
store i8 %1104, i8* %1106
%1107 = load i32, i32* %14
%1108 = ashr i32 %1107, 1
%1109 = trunc i32 %1108 to i8
%1110 = load i8*, i8** %2
%1111 = getelementptr inbounds i8, i8* %1110, i64 29
store i8 %1109, i8* %1111
%1112 = load i32, i32* %14
%1113 = ashr i32 %1112, 9
%1114 = trunc i32 %1113 to i8
%1115 = load i8*, i8** %2
%1116 = getelementptr inbounds i8, i8* %1115, i64 30
store i8 %1114, i8* %1116
%1117 = load i32, i32* %14
%1118 = ashr i32 %1117, 17
%1119 = trunc i32 %1118 to i8
%1120 = load i8*, i8** %2
%1121 = getelementptr inbounds i8, i8* %1120, i64 31
store i8 %1119, i8* %1121
ret void
}

LLVM IR (-O2):
define void @sc_reduce(i8* %0) {
%2 = tail call i32 @load_3(i8* %0)
%3 = and i32 %2, 2097151
%4 = getelementptr inbounds i8, i8* %0, i64 2
%5 = tail call i32 @load_4(i8* %4)
%6 = lshr i32 %5, 5
%7 = and i32 %6, 2097151
%8 = getelementptr inbounds i8, i8* %0, i64 5
%9 = tail call i32 @load_3(i8* %8)
%10 = lshr i32 %9, 2
%11 = and i32 %10, 2097151
%12 = getelementptr inbounds i8, i8* %0, i64 7
%13 = tail call i32 @load_4(i8* %12)
%14 = lshr i32 %13, 7
%15 = and i32 %14, 2097151
%16 = getelementptr inbounds i8, i8* %0, i64 10
%17 = tail call i32 @load_4(i8* %16)
%18 = lshr i32 %17, 4
%19 = and i32 %18, 2097151
%20 = getelementptr inbounds i8, i8* %0, i64 13
%21 = tail call i32 @load_3(i8* %20)
%22 = lshr i32 %21, 1
%23 = and i32 %22, 2097151
%24 = getelementptr inbounds i8, i8* %0, i64 15
%25 = tail call i32 @load_4(i8* %24)
%26 = lshr i32 %25, 6
%27 = and i32 %26, 2097151
%28 = getelementptr inbounds i8, i8* %0, i64 18
%29 = tail call i32 @load_3(i8* %28)
%30 = lshr i32 %29, 3
%31 = and i32 %30, 2097151
%32 = getelementptr inbounds i8, i8* %0, i64 21
%33 = tail call i32 @load_3(i8* %32)
%34 = and i32 %33, 2097151
%35 = getelementptr inbounds i8, i8* %0, i64 23
%36 = tail call i32 @load_4(i8* %35)
%37 = lshr i32 %36, 5
%38 = and i32 %37, 2097151
%39 = getelementptr inbounds i8, i8* %0, i64 26
%40 = tail call i32 @load_3(i8* %39)
%41 = lshr i32 %40, 2
%42 = and i32 %41, 2097151
%43 = getelementptr inbounds i8, i8* %0, i64 28
%44 = tail call i32 @load_4(i8* %43)
%45 = lshr i32 %44, 7
%46 = and i32 %45, 2097151
%47 = getelementptr inbounds i8, i8* %0, i64 31
%48 = tail call i32 @load_4(i8* %47)
%49 = lshr i32 %48, 4
%50 = and i32 %49, 2097151
%51 = getelementptr inbounds i8, i8* %0, i64 34
%52 = tail call i32 @load_3(i8* %51)
%53 = lshr i32 %52, 1
%54 = and i32 %53, 2097151
%55 = getelementptr inbounds i8, i8* %0, i64 36
%56 = tail call i32 @load_4(i8* %55)
%57 = lshr i32 %56, 6
%58 = and i32 %57, 2097151
%59 = getelementptr inbounds i8, i8* %0, i64 39
%60 = tail call i32 @load_3(i8* %59)
%61 = lshr i32 %60, 3
%62 = and i32 %61, 2097151
%63 = getelementptr inbounds i8, i8* %0, i64 42
%64 = tail call i32 @load_3(i8* %63)
%65 = and i32 %64, 2097151
%66 = getelementptr inbounds i8, i8* %0, i64 44
%67 = tail call i32 @load_4(i8* %66)
%68 = lshr i32 %67, 5
%69 = and i32 %68, 2097151
%70 = getelementptr inbounds i8, i8* %0, i64 47
%71 = tail call i32 @load_3(i8* %70)
%72 = lshr i32 %71, 2
%73 = and i32 %72, 2097151
%74 = getelementptr inbounds i8, i8* %0, i64 49
%75 = tail call i32 @load_4(i8* %74)
%76 = lshr i32 %75, 7
%77 = and i32 %76, 2097151
%78 = getelementptr inbounds i8, i8* %0, i64 52
%79 = tail call i32 @load_4(i8* %78)
%80 = lshr i32 %79, 4
%81 = and i32 %80, 2097151
%82 = getelementptr inbounds i8, i8* %0, i64 55
%83 = tail call i32 @load_3(i8* %82)
%84 = lshr i32 %83, 1
%85 = and i32 %84, 2097151
%86 = getelementptr inbounds i8, i8* %0, i64 57
%87 = tail call i32 @load_4(i8* %86)
%88 = lshr i32 %87, 6
%89 = and i32 %88, 2097151
%90 = getelementptr inbounds i8, i8* %0, i64 60
%91 = tail call i32 @load_4(i8* %90)
%92 = ashr i32 %91, 3
%93 = mul nsw i32 %92, 666643
%94 = mul nsw i32 %92, 470296
%95 = mul nsw i32 %92, 654183
%96 = mul i32 %92, -997805
%97 = mul nsw i32 %92, 136657
%98 = add nsw i32 %97, %62
%99 = mul i32 %92, -683901
%100 = add i32 %99, %65
%101 = mul nsw i32 %89, 666643
%102 = mul nsw i32 %89, 470296
%103 = mul nsw i32 %89, 654183
%104 = mul i32 %89, -997805
%105 = mul nsw i32 %89, 136657
%106 = mul i32 %89, -683901
%107 = add i32 %98, %106
%108 = mul nsw i32 %85, 666643
%109 = mul nsw i32 %85, 470296
%110 = mul nsw i32 %85, 654183
%111 = mul i32 %85, -997805
%112 = mul nsw i32 %85, 136657
%113 = mul i32 %85, -683901
%114 = add i32 %113, %58
%115 = add i32 %114, %96
%116 = add i32 %115, %105
%117 = mul nsw i32 %81, 666643
%118 = mul nsw i32 %81, 470296
%119 = mul nsw i32 %81, 654183
%120 = mul i32 %81, -997805
%121 = mul nsw i32 %81, 136657
%122 = mul i32 %81, -683901
%123 = mul nsw i32 %77, 666643
%124 = mul nsw i32 %77, 470296
%125 = mul nsw i32 %77, 654183
%126 = mul i32 %77, -997805
%127 = mul nsw i32 %77, 136657
%128 = mul i32 %77, -683901
%129 = add i32 %128, %50
%130 = add i32 %129, %121
%131 = add i32 %130, %111
%132 = add i32 %131, %94
%133 = add i32 %132, %103
%134 = mul nsw i32 %73, 666643
%135 = add nuw nsw i32 %134, %27
%136 = mul nsw i32 %73, 470296
%137 = mul nsw i32 %73, 654183
%138 = add nuw i32 %137, %34
%139 = add i32 %138, %124
%140 = add i32 %139, %117
%141 = mul i32 %73, -997805
%142 = mul nsw i32 %73, 136657
%143 = add nuw i32 %142, %42
%144 = add i32 %143, %126
%145 = add i32 %144, %119
%146 = add i32 %145, %109
%147 = add i32 %146, %101
%148 = mul i32 %73, -683901
%149 = add nuw nsw i32 %135, 1048576
%150 = lshr i32 %149, 21
%151 = add nuw i32 %136, %31
%152 = add i32 %151, %123
%153 = add i32 %152, %150
%154 = and i32 %149, 2145386496
%155 = sub nsw i32 %135, %154
%156 = add nuw nsw i32 %140, 1048576
%157 = lshr i32 %156, 21
%158 = add i32 %141, %38
%159 = add i32 %158, %125
%160 = add i32 %159, %118
%161 = add i32 %160, %108
%162 = add i32 %161, %157
%163 = and i32 %156, -2097152
%164 = add nsw i32 %147, 1048576
%165 = ashr i32 %164, 21
%166 = add i32 %148, %46
%167 = add i32 %166, %127
%168 = add i32 %167, %120
%169 = add i32 %168, %110
%170 = add i32 %169, %93
%171 = add i32 %170, %102
%172 = add i32 %171, %165
%173 = and i32 %164, -2097152
%174 = add nsw i32 %133, 1048576
%175 = ashr i32 %174, 21
%176 = add i32 %122, %54
%177 = add i32 %176, %112
%178 = add i32 %177, %95
%179 = add i32 %178, %104
%180 = add i32 %179, %175
%181 = and i32 %174, -2097152
%182 = sub nsw i32 %133, %181
%183 = add nsw i32 %116, 1048576
%184 = ashr i32 %183, 21
%185 = add nsw i32 %107, %184
%186 = and i32 %183, -2097152
%187 = sub nsw i32 %116, %186
%188 = add nsw i32 %100, 1048576
%189 = ashr i32 %188, 21
%190 = add nsw i32 %189, %69
%191 = and i32 %188, -2097152
%192 = sub nsw i32 %100, %191
%193 = add nuw nsw i32 %153, 1048576
%194 = lshr i32 %193, 21
%195 = and i32 %193, -2097152
%196 = sub i32 %153, %195
%197 = add nsw i32 %162, 1048576
%198 = ashr i32 %197, 21
%199 = and i32 %197, -2097152
%200 = add nsw i32 %172, 1048576
%201 = ashr i32 %200, 21
%202 = add nsw i32 %201, %182
%203 = and i32 %200, -2097152
%204 = sub nsw i32 %172, %203
%205 = add nsw i32 %180, 1048576
%206 = ashr i32 %205, 21
%207 = add nsw i32 %206, %187
%208 = and i32 %205, -2097152
%209 = sub nsw i32 %180, %208
%210 = add nsw i32 %185, 1048576
%211 = ashr i32 %210, 21
%212 = add nsw i32 %211, %192
%213 = and i32 %210, -2097152
%214 = sub nsw i32 %185, %213
%215 = mul nsw i32 %190, 666643
%216 = add nsw i32 %215, %23
%217 = mul nsw i32 %190, 470296
%218 = add nsw i32 %155, %217
%219 = mul nsw i32 %190, 654183
%220 = add nsw i32 %196, %219
%221 = mul i32 %190, -997805
%222 = mul nsw i32 %190, 136657
%223 = mul i32 %190, -683901
%224 = add i32 %223, %147
%225 = add i32 %224, %198
%226 = sub i32 %225, %173
%227 = mul nsw i32 %212, 666643
%228 = add nsw i32 %227, %19
%229 = mul nsw i32 %212, 470296
%230 = add nsw i32 %216, %229
%231 = mul nsw i32 %212, 654183
%232 = add nsw i32 %218, %231
%233 = mul i32 %212, -997805
%234 = add i32 %220, %233
%235 = mul nsw i32 %212, 136657
%236 = mul i32 %212, -683901
%237 = mul nsw i32 %214, 666643
%238 = add nsw i32 %237, %15
%239 = mul nsw i32 %214, 470296
%240 = add nsw i32 %228, %239
%241 = mul nsw i32 %214, 654183
%242 = add nsw i32 %230, %241
%243 = mul i32 %214, -997805
%244 = add i32 %232, %243
%245 = mul nsw i32 %214, 136657
%246 = add nsw i32 %234, %245
%247 = mul i32 %214, -683901
%248 = add i32 %194, %140
%249 = sub i32 %248, %163
%250 = add i32 %249, %221
%251 = add i32 %250, %235
%252 = add i32 %251, %247
%253 = mul nsw i32 %207, 666643
%254 = add nsw i32 %253, %11
%255 = mul nsw i32 %207, 470296
%256 = add nsw i32 %238, %255
%257 = mul nsw i32 %207, 654183
%258 = add nsw i32 %240, %257
%259 = mul i32 %207, -997805
%260 = add i32 %242, %259
%261 = mul nsw i32 %207, 136657
%262 = add nsw i32 %244, %261
%263 = mul i32 %207, -683901
%264 = add i32 %246, %263
%265 = mul nsw i32 %209, 666643
%266 = add nsw i32 %265, %7
%267 = mul nsw i32 %209, 470296
%268 = add nsw i32 %254, %267
%269 = mul nsw i32 %209, 654183
%270 = add nsw i32 %256, %269
%271 = mul i32 %209, -997805
%272 = add i32 %258, %271
%273 = mul nsw i32 %209, 136657
%274 = add nsw i32 %260, %273
%275 = mul i32 %209, -683901
%276 = add i32 %262, %275
%277 = mul nsw i32 %202, 666643
%278 = add nsw i32 %277, %3
%279 = mul nsw i32 %202, 470296
%280 = add nsw i32 %266, %279
%281 = mul nsw i32 %202, 654183
%282 = add nsw i32 %268, %281
%283 = mul i32 %202, -997805
%284 = add i32 %270, %283
%285 = mul nsw i32 %202, 136657
%286 = add nsw i32 %272, %285
%287 = mul i32 %202, -683901
%288 = add i32 %274, %287
%289 = add nsw i32 %278, 1048576
%290 = ashr i32 %289, 21
%291 = add nsw i32 %280, %290
%292 = and i32 %289, -2097152
%293 = sub nsw i32 %278, %292
%294 = add nsw i32 %282, 1048576
%295 = ashr i32 %294, 21
%296 = add nsw i32 %284, %295
%297 = and i32 %294, -2097152
%298 = add nsw i32 %286, 1048576
%299 = ashr i32 %298, 21
%300 = add nsw i32 %288, %299
%301 = and i32 %298, -2097152
%302 = add nsw i32 %276, 1048576
%303 = ashr i32 %302, 21
%304 = add nsw i32 %264, %303
%305 = and i32 %302, -2097152
%306 = sub i32 %276, %305
%307 = add nsw i32 %252, 1048576
%308 = ashr i32 %307, 21
%309 = add i32 %222, %162
%310 = sub i32 %309, %199
%311 = add i32 %310, %236
%312 = add i32 %311, %308
%313 = and i32 %307, -2097152
%314 = sub i32 %252, %313
%315 = add nsw i32 %226, 1048576
%316 = ashr i32 %315, 21
%317 = add nsw i32 %316, %204
%318 = and i32 %315, -2097152
%319 = sub i32 %226, %318
%320 = add nsw i32 %291, 1048576
%321 = ashr i32 %320, 21
%322 = and i32 %320, -2097152
%323 = add nsw i32 %296, 1048576
%324 = ashr i32 %323, 21
%325 = and i32 %323, -2097152
%326 = add nsw i32 %300, 1048576
%327 = ashr i32 %326, 21
%328 = add nsw i32 %306, %327
%329 = and i32 %326, -2097152
%330 = add nsw i32 %304, 1048576
%331 = ashr i32 %330, 21
%332 = add nsw i32 %314, %331
%333 = and i32 %330, -2097152
%334 = sub nsw i32 %304, %333
%335 = add nsw i32 %312, 1048576
%336 = ashr i32 %335, 21
%337 = add nsw i32 %319, %336
%338 = and i32 %335, -2097152
%339 = sub nsw i32 %312, %338
%340 = add nsw i32 %317, 1048576
%341 = ashr i32 %340, 21
%342 = and i32 %340, -2097152
%343 = sub nsw i32 %317, %342
%344 = mul nsw i32 %341, 666643
%345 = add nsw i32 %293, %344
%346 = mul nsw i32 %341, 470296
%347 = mul nsw i32 %341, 654183
%348 = mul nsw i32 %341, -997805
%349 = mul nsw i32 %341, 136657
%350 = mul nsw i32 %341, -683901
%351 = ashr i32 %345, 21
%352 = add i32 %346, %291
%353 = sub i32 %352, %322
%354 = add i32 %353, %351
%355 = and i32 %345, 2097151
%356 = ashr i32 %354, 21
%357 = add i32 %347, %282
%358 = sub i32 %357, %297
%359 = add i32 %358, %321
%360 = add i32 %359, %356
%361 = and i32 %354, 2097151
%362 = ashr i32 %360, 21
%363 = add i32 %296, %348
%364 = sub i32 %363, %325
%365 = add i32 %364, %362
%366 = and i32 %360, 2097151
%367 = ashr i32 %365, 21
%368 = add i32 %349, %286
%369 = sub i32 %368, %301
%370 = add i32 %369, %324
%371 = add i32 %370, %367
%372 = and i32 %365, 2097151
%373 = ashr i32 %371, 21
%374 = add i32 %300, %350
%375 = sub i32 %374, %329
%376 = add i32 %375, %373
%377 = and i32 %371, 2097151
%378 = ashr i32 %376, 21
%379 = add nsw i32 %328, %378
%380 = and i32 %376, 2097151
%381 = ashr i32 %379, 21
%382 = add nsw i32 %381, %334
%383 = and i32 %379, 2097151
%384 = ashr i32 %382, 21
%385 = add nsw i32 %332, %384
%386 = and i32 %382, 2097151
%387 = ashr i32 %385, 21
%388 = add nsw i32 %387, %339
%389 = and i32 %385, 2097151
%390 = ashr i32 %388, 21
%391 = add nsw i32 %337, %390
%392 = and i32 %388, 2097151
%393 = ashr i32 %391, 21
%394 = add nsw i32 %393, %343
%395 = and i32 %391, 2097151
%396 = ashr i32 %394, 21
%397 = and i32 %394, 2097151
%398 = mul nsw i32 %396, 666643
%399 = add nsw i32 %398, %355
%400 = mul nsw i32 %396, 470296
%401 = add nsw i32 %400, %361
%402 = mul nsw i32 %396, 654183
%403 = add nsw i32 %402, %366
%404 = mul nsw i32 %396, -997805
%405 = add nsw i32 %404, %372
%406 = mul nsw i32 %396, 136657
%407 = add nsw i32 %406, %377
%408 = mul nsw i32 %396, -683901
%409 = add nsw i32 %408, %380
%410 = ashr i32 %399, 21
%411 = add nsw i32 %401, %410
%412 = ashr i32 %411, 21
%413 = add nsw i32 %403, %412
%414 = and i32 %411, 2097151
%415 = ashr i32 %413, 21
%416 = add nsw i32 %405, %415
%417 = and i32 %413, 2097151
%418 = ashr i32 %416, 21
%419 = add nsw i32 %407, %418
%420 = and i32 %416, 2097151
%421 = ashr i32 %419, 21
%422 = add nsw i32 %409, %421
%423 = and i32 %419, 2097151
%424 = ashr i32 %422, 21
%425 = add nsw i32 %424, %383
%426 = and i32 %422, 2097151
%427 = ashr i32 %425, 21
%428 = add nsw i32 %427, %386
%429 = and i32 %425, 2097151
%430 = ashr i32 %428, 21
%431 = add nsw i32 %430, %389
%432 = ashr i32 %431, 21
%433 = add nsw i32 %432, %392
%434 = ashr i32 %433, 21
%435 = add nsw i32 %434, %395
%436 = and i32 %433, 2097151
%437 = ashr i32 %435, 21
%438 = add nsw i32 %437, %397
%439 = and i32 %435, 2097151
%440 = trunc i32 %399 to i8
store i8 %440, i8* %0
%441 = lshr i32 %399, 8
%442 = trunc i32 %441 to i8
%443 = getelementptr inbounds i8, i8* %0, i64 1
store i8 %442, i8* %443
%444 = lshr i32 %399, 16
%445 = and i32 %444, 31
%446 = shl nuw nsw i32 %414, 5
%447 = or i32 %446, %445
%448 = trunc i32 %447 to i8
store i8 %448, i8* %4
%449 = lshr i32 %411, 3
%450 = trunc i32 %449 to i8
%451 = getelementptr inbounds i8, i8* %0, i64 3
store i8 %450, i8* %451
%452 = lshr i32 %411, 11
%453 = trunc i32 %452 to i8
%454 = getelementptr inbounds i8, i8* %0, i64 4
store i8 %453, i8* %454
%455 = lshr i32 %414, 19
%456 = shl nuw nsw i32 %417, 2
%457 = or i32 %456, %455
%458 = trunc i32 %457 to i8
store i8 %458, i8* %8
%459 = lshr i32 %413, 6
%460 = trunc i32 %459 to i8
%461 = getelementptr inbounds i8, i8* %0, i64 6
store i8 %460, i8* %461
%462 = lshr i32 %417, 14
%463 = shl nuw nsw i32 %420, 7
%464 = or i32 %463, %462
%465 = trunc i32 %464 to i8
store i8 %465, i8* %12
%466 = lshr i32 %416, 1
%467 = trunc i32 %466 to i8
%468 = getelementptr inbounds i8, i8* %0, i64 8
store i8 %467, i8* %468
%469 = lshr i32 %416, 9
%470 = trunc i32 %469 to i8
%471 = getelementptr inbounds i8, i8* %0, i64 9
store i8 %470, i8* %471
%472 = lshr i32 %420, 17
%473 = shl nuw nsw i32 %423, 4
%474 = or i32 %473, %472
%475 = trunc i32 %474 to i8
store i8 %475, i8* %16
%476 = lshr i32 %419, 4
%477 = trunc i32 %476 to i8
%478 = getelementptr inbounds i8, i8* %0, i64 11
store i8 %477, i8* %478
%479 = lshr i32 %419, 12
%480 = trunc i32 %479 to i8
%481 = getelementptr inbounds i8, i8* %0, i64 12
store i8 %480, i8* %481
%482 = lshr i32 %423, 20
%483 = shl nuw nsw i32 %426, 1
%484 = or i32 %483, %482
%485 = trunc i32 %484 to i8
store i8 %485, i8* %20
%486 = lshr i32 %422, 7
%487 = trunc i32 %486 to i8
%488 = getelementptr inbounds i8, i8* %0, i64 14
store i8 %487, i8* %488
%489 = lshr i32 %426, 15
%490 = shl nuw nsw i32 %429, 6
%491 = or i32 %490, %489
%492 = trunc i32 %491 to i8
store i8 %492, i8* %24
%493 = lshr i32 %425, 2
%494 = trunc i32 %493 to i8
%495 = getelementptr inbounds i8, i8* %0, i64 16
store i8 %494, i8* %495
%496 = lshr i32 %425, 10
%497 = trunc i32 %496 to i8
%498 = getelementptr inbounds i8, i8* %0, i64 17
store i8 %497, i8* %498
%499 = lshr i32 %429, 18
%500 = shl nsw i32 %428, 3
%501 = or i32 %500, %499
%502 = trunc i32 %501 to i8
store i8 %502, i8* %28
%503 = lshr i32 %428, 5
%504 = trunc i32 %503 to i8
%505 = getelementptr inbounds i8, i8* %0, i64 19
store i8 %504, i8* %505
%506 = lshr i32 %428, 13
%507 = trunc i32 %506 to i8
%508 = getelementptr inbounds i8, i8* %0, i64 20
store i8 %507, i8* %508
%509 = trunc i32 %431 to i8
store i8 %509, i8* %32
%510 = lshr i32 %431, 8
%511 = trunc i32 %510 to i8
%512 = getelementptr inbounds i8, i8* %0, i64 22
store i8 %511, i8* %512
%513 = lshr i32 %431, 16
%514 = and i32 %513, 31
%515 = shl nuw nsw i32 %436, 5
%516 = or i32 %515, %514
%517 = trunc i32 %516 to i8
store i8 %517, i8* %35
%518 = lshr i32 %433, 3
%519 = trunc i32 %518 to i8
%520 = getelementptr inbounds i8, i8* %0, i64 24
store i8 %519, i8* %520
%521 = lshr i32 %433, 11
%522 = trunc i32 %521 to i8
%523 = getelementptr inbounds i8, i8* %0, i64 25
store i8 %522, i8* %523
%524 = lshr i32 %436, 19
%525 = shl nuw nsw i32 %439, 2
%526 = or i32 %525, %524
%527 = trunc i32 %526 to i8
store i8 %527, i8* %39
%528 = lshr i32 %435, 6
%529 = trunc i32 %528 to i8
%530 = getelementptr inbounds i8, i8* %0, i64 27
store i8 %529, i8* %530
%531 = lshr i32 %439, 14
%532 = shl nsw i32 %438, 7
%533 = or i32 %532, %531
%534 = trunc i32 %533 to i8
store i8 %534, i8* %43
%535 = lshr i32 %438, 1
%536 = trunc i32 %535 to i8
%537 = getelementptr inbounds i8, i8* %0, i64 29
store i8 %536, i8* %537
%538 = lshr i32 %438, 9
%539 = trunc i32 %538 to i8
%540 = getelementptr inbounds i8, i8* %0, i64 30
store i8 %539, i8* %540
%541 = ashr i32 %438, 17
%542 = trunc i32 %541 to i8
store i8 %542, i8* %47
ret void
}