void IntegerUnpacker_32(void *stream, void *dst, int nbits_in, int nbitt, int n,
                        int offset) {
  unsigned int *packed = (unsigned int *)stream;
  int *unpacked = (int *)dst;
  unsigned long long temp;
  unsigned int token, token1, token2, token3;
  int bleft, mbleft;
  int signed_offset = 0;
  int nbits;
  nbits = (nbits_in < 0) ? -nbits_in : nbits_in;
  if (nbits > 32 || nbitt > nbits)
    return;
  packed += offset / 32;
  bleft = 32 - (offset % 32);
  token = *packed++;
  if (nbits_in < 0)
    signed_offset = -(1 << (nbitt - 1));
  if (bleft == 32) {
    if (nbits == 32) {
      if (signed_offset == 0) {
        packed = (unsigned int *)memcpy(dst, stream, n * sizeof(unsigned int));
        n = 0;
      }
      while (n > 1) {
        *unpacked++ = token;
        token = *packed++;
        *unpacked++ = token;
        token = *packed++;
        n -= 2;
      }
      while (n-- > 0) {
        *unpacked++ = token;
        token = *packed++;
      }
      return;
    }
    if (nbits == 24) {
      while (n > 3) {
        token1 = *packed++;
        token2 = *packed++;
        token3 = *packed++;
        *unpacked++ = (token >> 8);
        *unpacked++ = (((token & 0xFF) << 16) | (token1 >> 16));
        *unpacked++ = (((token1 & 0xFFFF) << 8) | (token2 >> 24));
        *unpacked++ = (token2 & 0xFFFFFF);
        token = token3;
        n -= 4;
      }
    }
    if (nbits == 16) {
      while (n > 3) {
        *unpacked++ = (token >> 16);
        *unpacked++ = (token & 0xFFFF);
        token = *packed++;
        *unpacked++ = (token >> 16);
        *unpacked++ = (token & 0xFFFF);
        token = *packed++;
        n -= 4;
      }
    }
    if (nbits == 12) {
      while (n > 7) {
        token2 = *packed++;
        token3 = *packed++;
        token1 = *packed++;
        *unpacked++ = ((token >> 20));
        *unpacked++ = ((token >> 8) & 0xFFF);
        *unpacked++ = (((token & 0xFF) << 4) | (token2 >> 28));
        *unpacked++ = ((token2 >> 16) & 0xFFF);
        *unpacked++ = ((token2 >> 4) & 0xFFF);
        *unpacked++ = (((token2 & 0xF) << 8) | (token3 >> 24));
        *unpacked++ = ((token3 >> 12) & 0xFFF);
        *unpacked++ = (token3 & 0xFFF);
        token = token1;
        n -= 8;
      }
    }
    if (nbits == 8) {
      while (n > 7) {
        *unpacked++ = ((token >> 24));
        *unpacked++ = ((token >> 16) & 0xFF);
        *unpacked++ = ((token >> 8) & 0xFF);
        *unpacked++ = (token & 0xFF);
        token = *packed++;
        *unpacked++ = ((token >> 24));
        *unpacked++ = ((token >> 16) & 0xFF);
        *unpacked++ = ((token >> 8) & 0xFF);
        *unpacked++ = (token & 0xFF);
        token = *packed++;
        n -= 8;
      }
    }
    if (nbits == 6) {
      while (n > 15) {
        token2 = *packed++;
        token3 = *packed++;
        token1 = *packed++;
        *unpacked++ = ((token >> 26));
        *unpacked++ = ((token >> 20) & 0x3F);
        *unpacked++ = ((token >> 14) & 0x3F);
        *unpacked++ = ((token >> 8) & 0x3F);
        *unpacked++ = ((token >> 2) & 0x3F);
        *unpacked++ = (((token & 0x3) << 4) | (token2 >> 28));
        *unpacked++ = ((token2 >> 22) & 0x3F);
        *unpacked++ = ((token2 >> 16) & 0x3F);
        *unpacked++ = ((token2 >> 10) & 0x3F);
        *unpacked++ = ((token2 >> 4) & 0x3F);
        *unpacked++ = (((token2 & 0xF) << 2) | (token3 >> 30));
        *unpacked++ = ((token3 >> 24) & 0x3F);
        *unpacked++ = ((token3 >> 18) & 0x3F);
        *unpacked++ = ((token3 >> 12) & 0x3F);
        *unpacked++ = ((token3 >> 6) & 0x3F);
        *unpacked++ = (token3 & 0x3F);
        token = token1;
        n -= 16;
      }
    }
    if (nbits == 4) {
      while (n > 7) {
        *unpacked++ = ((token >> 28));
        *unpacked++ = ((token >> 24) & 0xF);
        *unpacked++ = ((token >> 20) & 0xF);
        *unpacked++ = ((token >> 16) & 0xF);
        *unpacked++ = ((token >> 12) & 0xF);
        *unpacked++ = ((token >> 8) & 0xF);
        *unpacked++ = ((token >> 4) & 0xF);
        *unpacked++ = (token & 0xF);
        token = *packed++;
        n -= 8;
      }
    }
    if (nbits == 2) {
      while (n > 15) {
        *unpacked++ = ((token >> 30));
        *unpacked++ = ((token >> 28) & 0x3);
        *unpacked++ = ((token >> 26) & 0x3);
        *unpacked++ = ((token >> 24) & 0x3);
        *unpacked++ = ((token >> 22) & 0x3);
        *unpacked++ = ((token >> 20) & 0x3);
        *unpacked++ = ((token >> 18) & 0x3);
        *unpacked++ = ((token >> 16) & 0x3);
        *unpacked++ = ((token >> 14) & 0x3);
        *unpacked++ = ((token >> 12) & 0x3);
        *unpacked++ = ((token >> 10) & 0x3);
        *unpacked++ = ((token >> 8) & 0x3);
        *unpacked++ = ((token >> 6) & 0x3);
        *unpacked++ = ((token >> 4) & 0x3);
        *unpacked++ = ((token >> 2) & 0x3);
        *unpacked++ = (token & 0x3);
        token = *packed++;
        n -= 16;
      }
    }
    if (nbits == 1) {
      while (n > 31) {
        *unpacked++ = ((token >> 31) & 1);
        *unpacked++ = ((token >> 30) & 1);
        *unpacked++ = ((token >> 29) & 1);
        *unpacked++ = ((token >> 28) & 1);
        *unpacked++ = ((token >> 27) & 1);
        *unpacked++ = ((token >> 26) & 1);
        *unpacked++ = ((token >> 25) & 1);
        *unpacked++ = ((token >> 24) & 1);
        *unpacked++ = ((token >> 23) & 1);
        *unpacked++ = ((token >> 22) & 1);
        *unpacked++ = ((token >> 21) & 1);
        *unpacked++ = ((token >> 20) & 1);
        *unpacked++ = ((token >> 19) & 1);
        *unpacked++ = ((token >> 18) & 1);
        *unpacked++ = ((token >> 17) & 1);
        *unpacked++ = ((token >> 16) & 1);
        *unpacked++ = ((token >> 15) & 1);
        *unpacked++ = ((token >> 14) & 1);
        *unpacked++ = ((token >> 13) & 1);
        *unpacked++ = ((token >> 12) & 1);
        *unpacked++ = ((token >> 11) & 1);
        *unpacked++ = ((token >> 10) & 1);
        *unpacked++ = ((token >> 9) & 1);
        *unpacked++ = ((token >> 8) & 1);
        *unpacked++ = ((token >> 7) & 1);
        *unpacked++ = ((token >> 6) & 1);
        *unpacked++ = ((token >> 5) & 1);
        *unpacked++ = ((token >> 4) & 1);
        *unpacked++ = ((token >> 3) & 1);
        *unpacked++ = ((token >> 2) & 1);
        *unpacked++ = ((token >> 1) & 1);
        *unpacked++ = (token & 1);
        token = *packed++;
        n -= 32;
      }
    }
  }
  temp = token;
  temp <<= 32;
  temp |= *packed++;
  if (bleft < 32)
    temp <<= (32 - bleft);
  if (nbits > 16) {
    while (n > 1) {
      *unpacked++ = (temp >> (64 - nbits));
      temp <<= nbits;
      bleft -= nbits;
      if (bleft <= 0) {
        temp = temp >> (-bleft);
        temp |= *packed++;
        temp <<= (-bleft);
        bleft += 32;
      }
      *unpacked++ = (temp >> (64 - nbits));
      temp <<= nbits;
      bleft -= nbits;
      if (bleft <= 0) {
        temp = temp >> (-bleft);
        temp |= *packed++;
        temp <<= (-bleft);
        bleft += 32;
      }
      n -= 2;
    }
  } else {
    while (n > 1) {
      *unpacked++ = (temp >> (64 - nbits));
      temp <<= nbits;
      bleft -= nbits;
      *unpacked++ = (temp >> (64 - nbits));
      temp <<= nbits;
      bleft -= nbits;
      if (bleft <= 0) {
        temp = temp >> (-bleft);
        temp |= *packed++;
        temp <<= (-bleft);
        bleft += 32;
      }
      n -= 2;
    }
  }
  while (n-- > 0) {
    *unpacked++ = (temp >> (64 - nbits));
    temp <<= nbits;
    bleft -= nbits;
    if (bleft <= 0) {
      temp = temp >> (-bleft);
      temp |= *packed++;
      temp <<= (-bleft);
      bleft += 32;
    }
  }
}


x86 assembly (clang, -O0):
<IntegerUnpacker_32>:
push   %rbp
mov    %rsp,%rbp
sub    $0x70,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    %ecx,-0x18(%rbp)
mov    %r8d,-0x1c(%rbp)
mov    %r9d,-0x20(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x30(%rbp)
movl   $0x0,-0x54(%rbp)
cmpl   $0x0,-0x14(%rbp)
jge    115c <IntegerUnpacker_32+0x4c>
xor    %eax,%eax
sub    -0x14(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    1162 <IntegerUnpacker_32+0x52>
mov    -0x14(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
mov    %eax,-0x58(%rbp)
cmpl   $0x20,-0x58(%rbp)
jg     117e <IntegerUnpacker_32+0x6e>
mov    -0x18(%rbp),%eax
cmp    -0x58(%rbp),%eax
jle    1183 <IntegerUnpacker_32+0x73>
jmp    22bc <IntegerUnpacker_32+0x11ac>
mov    -0x20(%rbp),%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x28(%rbp),%rax
movslq %ecx,%rcx
shl    $0x2,%rcx
add    %rcx,%rax
mov    %rax,-0x28(%rbp)
mov    -0x20(%rbp),%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    $0x20,%eax
sub    %edx,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
cmpl   $0x0,-0x14(%rbp)
jge    11eb <IntegerUnpacker_32+0xdb>
mov    -0x18(%rbp),%ecx
sub    $0x1,%ecx
mov    $0x1,%eax
shl    %cl,%eax
mov    %eax,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,-0x54(%rbp)
cmpl   $0x20,-0x4c(%rbp)
jne    1f8a <IntegerUnpacker_32+0xe7a>
cmpl   $0x20,-0x58(%rbp)
jne    12e9 <IntegerUnpacker_32+0x1d9>
cmpl   $0x0,-0x54(%rbp)
jne    1231 <IntegerUnpacker_32+0x121>
mov    -0x10(%rbp),%rdi
mov    %rdi,-0x68(%rbp)
mov    -0x8(%rbp),%rsi
movslq -0x1c(%rbp),%rdx
shl    $0x2,%rdx
call   1030 <memcpy@plt>
mov    -0x68(%rbp),%rax
mov    %rax,-0x28(%rbp)
movl   $0x0,-0x1c(%rbp)
jmp    1236 <IntegerUnpacker_32+0x126>
cmpl   $0x1,-0x1c(%rbp)
jle    129e <IntegerUnpacker_32+0x18e>
mov    -0x3c(%rbp),%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x1c(%rbp)
jmp    1236 <IntegerUnpacker_32+0x126>
jmp    12a3 <IntegerUnpacker_32+0x193>
mov    -0x1c(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x1c(%rbp)
cmp    $0x0,%eax
jle    12e4 <IntegerUnpacker_32+0x1d4>
mov    -0x3c(%rbp),%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
jmp    12a3 <IntegerUnpacker_32+0x193>
jmp    22bc <IntegerUnpacker_32+0x11ac>
cmpl   $0x18,-0x58(%rbp)
jne    13d2 <IntegerUnpacker_32+0x2c2>
jmp    12f8 <IntegerUnpacker_32+0x1e8>
cmpl   $0x3,-0x1c(%rbp)
jle    13cd <IntegerUnpacker_32+0x2bd>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x40(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x44(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x48(%rbp)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0xff,%ecx
shl    $0x10,%ecx
mov    -0x40(%rbp),%eax
shr    $0x10,%eax
or     %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x40(%rbp),%ecx
and    $0xffff,%ecx
shl    $0x8,%ecx
mov    -0x44(%rbp),%eax
shr    $0x18,%eax
or     %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
and    $0xffffff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x4,%eax
mov    %eax,-0x1c(%rbp)
jmp    12f8 <IntegerUnpacker_32+0x1e8>
jmp    13d2 <IntegerUnpacker_32+0x2c2>
cmpl   $0x10,-0x58(%rbp)
jne    1488 <IntegerUnpacker_32+0x378>
jmp    13e1 <IntegerUnpacker_32+0x2d1>
cmpl   $0x3,-0x1c(%rbp)
jle    1483 <IntegerUnpacker_32+0x373>
mov    -0x3c(%rbp),%ecx
shr    $0x10,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0xffff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%ecx
shr    $0x10,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0xffff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x4,%eax
mov    %eax,-0x1c(%rbp)
jmp    13e1 <IntegerUnpacker_32+0x2d1>
jmp    1488 <IntegerUnpacker_32+0x378>
cmpl   $0xc,-0x58(%rbp)
jne    15e2 <IntegerUnpacker_32+0x4d2>
jmp    1497 <IntegerUnpacker_32+0x387>
cmpl   $0x7,-0x1c(%rbp)
jle    15dd <IntegerUnpacker_32+0x4cd>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x44(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x48(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x40(%rbp)
mov    -0x3c(%rbp),%ecx
shr    $0x14,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
and    $0xfff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0xff,%ecx
shl    $0x4,%ecx
mov    -0x44(%rbp),%eax
shr    $0x1c,%eax
or     %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
shr    $0x10,%ecx
and    $0xfff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
shr    $0x4,%ecx
and    $0xfff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
and    $0xf,%ecx
shl    $0x8,%ecx
mov    -0x48(%rbp),%eax
shr    $0x18,%eax
or     %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
shr    $0xc,%ecx
and    $0xfff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
and    $0xfff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x8,%eax
mov    %eax,-0x1c(%rbp)
jmp    1497 <IntegerUnpacker_32+0x387>
jmp    15e2 <IntegerUnpacker_32+0x4d2>
cmpl   $0x8,-0x58(%rbp)
jne    170c <IntegerUnpacker_32+0x5fc>
jmp    15f1 <IntegerUnpacker_32+0x4e1>
cmpl   $0x7,-0x1c(%rbp)
jle    1707 <IntegerUnpacker_32+0x5f7>
mov    -0x3c(%rbp),%ecx
shr    $0x18,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x10,%ecx
and    $0xff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
and    $0xff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0xff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x3c(%rbp),%ecx
shr    $0x18,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x10,%ecx
and    $0xff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
and    $0xff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0xff,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x8,%eax
mov    %eax,-0x1c(%rbp)
jmp    15f1 <IntegerUnpacker_32+0x4e1>
jmp    170c <IntegerUnpacker_32+0x5fc>
cmpl   $0x6,-0x58(%rbp)
jne    1924 <IntegerUnpacker_32+0x814>
jmp    171b <IntegerUnpacker_32+0x60b>
cmpl   $0xf,-0x1c(%rbp)
jle    191f <IntegerUnpacker_32+0x80f>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x44(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x48(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x40(%rbp)
mov    -0x3c(%rbp),%ecx
shr    $0x1a,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x14,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xe,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x2,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0x3,%ecx
shl    $0x4,%ecx
mov    -0x44(%rbp),%eax
shr    $0x1c,%eax
or     %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
shr    $0x16,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
shr    $0x10,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
shr    $0xa,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
shr    $0x4,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x44(%rbp),%ecx
and    $0xf,%ecx
shl    $0x2,%ecx
mov    -0x48(%rbp),%eax
shr    $0x1e,%eax
or     %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
shr    $0x18,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
shr    $0x12,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
shr    $0xc,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
shr    $0x6,%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x48(%rbp),%ecx
and    $0x3f,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x40(%rbp),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x10,%eax
mov    %eax,-0x1c(%rbp)
jmp    171b <IntegerUnpacker_32+0x60b>
jmp    1924 <IntegerUnpacker_32+0x814>
cmpl   $0x4,-0x58(%rbp)
jne    1a2e <IntegerUnpacker_32+0x91e>
jmp    1933 <IntegerUnpacker_32+0x823>
cmpl   $0x7,-0x1c(%rbp)
jle    1a29 <IntegerUnpacker_32+0x919>
mov    -0x3c(%rbp),%ecx
shr    $0x1c,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x18,%ecx
and    $0xf,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x14,%ecx
and    $0xf,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x10,%ecx
and    $0xf,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xc,%ecx
and    $0xf,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
and    $0xf,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x4,%ecx
and    $0xf,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0xf,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x8,%eax
mov    %eax,-0x1c(%rbp)
jmp    1933 <IntegerUnpacker_32+0x823>
jmp    1a2e <IntegerUnpacker_32+0x91e>
cmpl   $0x2,-0x58(%rbp)
jne    1c08 <IntegerUnpacker_32+0xaf8>
jmp    1a3d <IntegerUnpacker_32+0x92d>
cmpl   $0xf,-0x1c(%rbp)
jle    1c03 <IntegerUnpacker_32+0xaf3>
mov    -0x3c(%rbp),%ecx
shr    $0x1e,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1c,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1a,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x18,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x16,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x14,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x12,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x10,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xe,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xc,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xa,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x6,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x4,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x2,%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0x3,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x10,%eax
mov    %eax,-0x1c(%rbp)
jmp    1a3d <IntegerUnpacker_32+0x92d>
jmp    1c08 <IntegerUnpacker_32+0xaf8>
cmpl   $0x1,-0x58(%rbp)
jne    1f85 <IntegerUnpacker_32+0xe75>
jmp    1c17 <IntegerUnpacker_32+0xb07>
cmpl   $0x1f,-0x1c(%rbp)
jle    1f80 <IntegerUnpacker_32+0xe70>
mov    -0x3c(%rbp),%ecx
shr    $0x1f,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1e,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1d,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1c,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1b,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1a,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x19,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x18,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x17,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x16,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x15,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x14,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x13,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x12,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x11,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x10,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xf,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xe,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xd,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xc,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xb,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0xa,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x9,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x8,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x7,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x6,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x5,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x4,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x3,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x2,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
shr    $0x1,%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x3c(%rbp),%ecx
and    $0x1,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x20,%eax
mov    %eax,-0x1c(%rbp)
jmp    1c17 <IntegerUnpacker_32+0xb07>
jmp    1f85 <IntegerUnpacker_32+0xe75>
jmp    1f8a <IntegerUnpacker_32+0xe7a>
mov    -0x3c(%rbp),%eax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
shl    $0x20,%rax
mov    %rax,-0x38(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
or     -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
cmpl   $0x20,-0x4c(%rbp)
jge    1fd5 <IntegerUnpacker_32+0xec5>
mov    $0x20,%ecx
sub    -0x4c(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
cmpl   $0x10,-0x58(%rbp)
jle    211f <IntegerUnpacker_32+0x100f>
jmp    1fe4 <IntegerUnpacker_32+0xed4>
cmpl   $0x1,-0x1c(%rbp)
jle    211a <IntegerUnpacker_32+0x100a>
mov    -0x38(%rbp),%rax
mov    $0x40,%ecx
sub    -0x58(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x58(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x58(%rbp),%ecx
mov    -0x4c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
cmpl   $0x0,-0x4c(%rbp)
jg     207d <IntegerUnpacker_32+0xf6d>
mov    -0x38(%rbp),%rax
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
or     -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x38(%rbp),%rax
mov    $0x40,%ecx
sub    -0x58(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x58(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x58(%rbp),%ecx
mov    -0x4c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
cmpl   $0x0,-0x4c(%rbp)
jg     210c <IntegerUnpacker_32+0xffc>
mov    -0x38(%rbp),%rax
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
or     -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x1c(%rbp)
jmp    1fe4 <IntegerUnpacker_32+0xed4>
jmp    220f <IntegerUnpacker_32+0x10ff>
jmp    2124 <IntegerUnpacker_32+0x1014>
cmpl   $0x1,-0x1c(%rbp)
jle    220a <IntegerUnpacker_32+0x10fa>
mov    -0x38(%rbp),%rax
mov    $0x40,%ecx
sub    -0x58(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x58(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x58(%rbp),%ecx
mov    -0x4c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x38(%rbp),%rax
mov    $0x40,%ecx
sub    -0x58(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x58(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x58(%rbp),%ecx
mov    -0x4c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
cmpl   $0x0,-0x4c(%rbp)
jg     21fc <IntegerUnpacker_32+0x10ec>
mov    -0x38(%rbp),%rax
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
or     -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x1c(%rbp),%eax
sub    $0x2,%eax
mov    %eax,-0x1c(%rbp)
jmp    2124 <IntegerUnpacker_32+0x1014>
jmp    220f <IntegerUnpacker_32+0x10ff>
jmp    2214 <IntegerUnpacker_32+0x1104>
mov    -0x1c(%rbp),%eax
mov    %eax,%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x1c(%rbp)
cmp    $0x0,%eax
jle    22bc <IntegerUnpacker_32+0x11ac>
mov    -0x38(%rbp),%rax
mov    $0x40,%ecx
sub    -0x58(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %eax,%ecx
mov    -0x30(%rbp),%rax
mov    %rax,%rdx
add    $0x4,%rdx
mov    %rdx,-0x30(%rbp)
mov    %ecx,(%rax)
mov    -0x58(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x58(%rbp),%ecx
mov    -0x4c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x4c(%rbp)
cmpl   $0x0,-0x4c(%rbp)
jg     22b7 <IntegerUnpacker_32+0x11a7>
mov    -0x38(%rbp),%rax
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    %ecx,%ecx
shr    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x4,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%eax
or     -0x38(%rbp),%rax
mov    %rax,-0x38(%rbp)
xor    %ecx,%ecx
sub    -0x4c(%rbp),%ecx
mov    -0x38(%rbp),%rax
mov    %ecx,%ecx
shl    %cl,%rax
mov    %rax,-0x38(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x20,%eax
mov    %eax,-0x4c(%rbp)
jmp    2214 <IntegerUnpacker_32+0x1104>
add    $0x70,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<IntegerUnpacker_32>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %edx,%r11d
neg    %r11d
cmovs  %edx,%r11d
cmp    $0x20,%r11d
jg     1302 <IntegerUnpacker_32+0x1f2>
cmp    %ecx,%r11d
jl     1302 <IntegerUnpacker_32+0x1f2>
mov    %rdi,%r10
lea    0x1f(%r9),%edi
test   %r9d,%r9d
cmovns %r9d,%edi
mov    %edi,%eax
sar    $0x5,%eax
movslq %eax,%r12
and    $0xffffffe0,%edi
lea    (%r10,%r12,4),%r14
add    $0x4,%r14
mov    (%r10,%r12,4),%ecx
sub    %edi,%r9d
je     12b5 <IntegerUnpacker_32+0x1a5>
mov    $0x20,%ebx
sub    %r9d,%ebx
shl    $0x20,%rcx
mov    (%r14),%eax
add    $0x4,%r14
or     %rcx,%rax
xor    %ecx,%ecx
test   %r9d,%r9d
cmovg  %r9d,%ecx
shl    %cl,%rax
cmp    $0x10,%r11d
jle    1229 <IntegerUnpacker_32+0x119>
cmp    $0x2,%r8d
jl     12ac <IntegerUnpacker_32+0x19c>
mov    $0x40,%edx
sub    %r11d,%edx
mov    %r11d,%r9d
jmp    11c5 <IntegerUnpacker_32+0xb5>
nopl   0x0(%rax,%rax,1)
lea    -0x2(%r8),%ecx
lea    0x8(%rdi),%rsi
cmp    $0x3,%r8d
mov    %ecx,%r8d
jle    12df <IntegerUnpacker_32+0x1cf>
mov    %rsi,%rdi
mov    %rax,%rsi
mov    %edx,%ecx
shr    %cl,%rsi
mov    %esi,(%rdi)
mov    %r9d,%ecx
shl    %cl,%rax
sub    %r11d,%ebx
jg     11f7 <IntegerUnpacker_32+0xe7>
mov    %ebx,%ecx
neg    %cl
shr    %cl,%rax
mov    (%r14),%esi
add    $0x4,%r14
or     %rax,%rsi
shl    %cl,%rsi
add    $0x20,%ebx
mov    %rsi,%rax
mov    %rax,%rsi
mov    %edx,%ecx
shr    %cl,%rsi
mov    %esi,0x4(%rdi)
mov    %r9d,%ecx
shl    %cl,%rax
sub    %r11d,%ebx
jg     11b0 <IntegerUnpacker_32+0xa0>
mov    %ebx,%ecx
neg    %cl
shr    %cl,%rax
mov    (%r14),%esi
add    $0x4,%r14
or     %rax,%rsi
shl    %cl,%rsi
add    $0x20,%ebx
mov    %rsi,%rax
jmp    11b0 <IntegerUnpacker_32+0xa0>
cmp    $0x2,%r8d
jl     12ac <IntegerUnpacker_32+0x19c>
mov    $0x40,%r10d
sub    %r11d,%r10d
mov    %r11d,%edi
lea    (%r11,%r11,1),%r9d
neg    %r9d
jmp    1265 <IntegerUnpacker_32+0x155>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0x2(%r8),%ecx
lea    0x8(%rdx),%rsi
cmp    $0x3,%r8d
mov    %ecx,%r8d
jle    12ec <IntegerUnpacker_32+0x1dc>
mov    %rsi,%rdx
add    %r9d,%ebx
mov    %rax,%rsi
mov    %r10d,%ecx
shr    %cl,%rsi
mov    %esi,(%rdx)
mov    %edi,%ecx
shl    %cl,%rax
mov    %rax,%rsi
mov    %r10d,%ecx
shr    %cl,%rsi
mov    %esi,0x4(%rdx)
mov    %edi,%ecx
shl    %cl,%rax
test   %ebx,%ebx
jg     1250 <IntegerUnpacker_32+0x140>
mov    %ebx,%ecx
neg    %cl
shr    %cl,%rax
mov    (%r14),%esi
add    $0x4,%r14
or     %rax,%rsi
shl    %cl,%rsi
add    $0x20,%ebx
mov    %rsi,%rax
jmp    1250 <IntegerUnpacker_32+0x140>
mov    %r8d,%ecx
test   %ecx,%ecx
jg     12f7 <IntegerUnpacker_32+0x1e7>
jmp    1302 <IntegerUnpacker_32+0x1f2>
cmp    $0x20,%r11d
jne    130d <IntegerUnpacker_32+0x1fd>
test   %edx,%edx
js     13ba <IntegerUnpacker_32+0x2aa>
movslq %r8d,%rdx
shl    $0x2,%rdx
mov    %rsi,%rdi
mov    %r10,%rsi
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <memcpy@plt>
add    $0x8,%rdi
mov    %rdi,%rsi
test   %ecx,%ecx
jg     12f7 <IntegerUnpacker_32+0x1e7>
jmp    1302 <IntegerUnpacker_32+0x1f2>
add    $0x8,%rdx
mov    %rdx,%rsi
test   %ecx,%ecx
jle    1302 <IntegerUnpacker_32+0x1f2>
neg    %r11b
mov    %r11d,%ecx
shr    %cl,%rax
mov    %eax,(%rsi)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
cmp    $0x18,%r11d
jne    1371 <IntegerUnpacker_32+0x261>
cmp    $0x4,%r8d
jl     1371 <IntegerUnpacker_32+0x261>
nopl   0x0(%rax)
mov    %r8d,%eax
mov    %ecx,%edx
mov    (%r14),%edi
mov    0x4(%r14),%ebx
mov    0x8(%r14),%ebp
add    $0xc,%r14
shr    $0x8,%ecx
shld   $0x10,%edi,%edx
mov    %ecx,(%rsi)
mov    %rbp,%rcx
and    $0xffffff,%edx
shld   $0x8,%ebx,%edi
mov    %edx,0x4(%rsi)
and    $0xffffff,%edi
mov    %edi,0x8(%rsi)
and    $0xffffff,%ebx
mov    %ebx,0xc(%rsi)
add    $0x10,%rsi
lea    -0x4(%rax),%r8d
cmp    $0x7,%eax
ja     1320 <IntegerUnpacker_32+0x210>
jmp    1165 <IntegerUnpacker_32+0x55>
cmp    $0x10,%r11d
jne    13f0 <IntegerUnpacker_32+0x2e0>
cmp    $0x4,%r8d
jl     13f0 <IntegerUnpacker_32+0x2e0>
nopl   (%rax)
mov    %r8d,%eax
mov    %rcx,%rdx
movzwl %dx,%ecx
shr    $0x10,%edx
mov    %edx,(%rsi)
mov    %ecx,0x4(%rsi)
mov    (%r14),%ecx
movzwl %cx,%edx
shr    $0x10,%ecx
mov    %ecx,0x8(%rsi)
mov    %edx,0xc(%rsi)
add    $0x10,%rsi
mov    0x4(%r14),%ecx
add    $0x8,%r14
lea    -0x4(%rax),%r8d
cmp    $0x7,%eax
ja     1380 <IntegerUnpacker_32+0x270>
jmp    1165 <IntegerUnpacker_32+0x55>
cmp    $0x2,%r8d
jl     13e0 <IntegerUnpacker_32+0x2d0>
mov    %r8d,%eax
mov    %ecx,(%rsi)
mov    (%r14),%ecx
mov    %ecx,0x4(%rsi)
add    $0x8,%rsi
mov    0x4(%r14),%ecx
lea    -0x2(%rax),%r8d
add    $0x8,%r14
cmp    $0x3,%eax
ja     13c0 <IntegerUnpacker_32+0x2b0>
test   %r8d,%r8d
jle    1302 <IntegerUnpacker_32+0x1f2>
mov    %ecx,(%rsi)
jmp    1302 <IntegerUnpacker_32+0x1f2>
cmp    $0xc,%r11d
jne    149f <IntegerUnpacker_32+0x38f>
cmp    $0x8,%r8d
jl     149f <IntegerUnpacker_32+0x38f>
mov    %ecx,%edi
mov    %r8d,%eax
nopl   0x0(%rax)
mov    (%r14),%ebx
mov    0x4(%r14),%edx
mov    0x8(%r14),%ebp
add    $0xc,%r14
mov    %edi,%ecx
shr    $0x14,%ecx
mov    %ecx,(%rsi)
mov    %edi,%ecx
shr    $0x8,%ecx
and    $0xfff,%ecx
mov    %ecx,0x4(%rsi)
shld   $0x4,%ebx,%edi
and    $0xfff,%edi
mov    %edi,0x8(%rsi)
mov    %ebx,%ecx
shr    $0x10,%ecx
and    $0xfff,%ecx
mov    %ecx,0xc(%rsi)
mov    %ebx,%ecx
shr    $0x4,%ecx
and    $0xfff,%ecx
mov    %ecx,0x10(%rsi)
shld   $0x8,%edx,%ebx
and    $0xfff,%ebx
mov    %ebx,0x14(%rsi)
mov    %edx,%ecx
shr    $0xc,%ecx
and    $0xfff,%ecx
mov    %ecx,0x18(%rsi)
mov    %rbp,%rcx
and    $0xfff,%edx
mov    %edx,0x1c(%rsi)
add    $0x20,%rsi
lea    -0x8(%rax),%r8d
mov    %ecx,%edi
cmp    $0xf,%eax
mov    %r8d,%eax
ja     1410 <IntegerUnpacker_32+0x300>
jmp    1165 <IntegerUnpacker_32+0x55>
cmp    $0x8,%r11d
jne    1543 <IntegerUnpacker_32+0x433>
cmp    $0x8,%r8d
jl     1543 <IntegerUnpacker_32+0x433>
lea    (%r10,%r12,4),%r14
add    $0x4,%r14
lea    0x8(%r8),%edi
xor    %edx,%edx
mov    %rsi,%r15
mov    %rcx,%rax
movzbl %ah,%ebx
movzbl %al,%ebp
shr    $0x18,%eax
mov    %eax,(%rsi,%rdx,4)
shr    $0x10,%ecx
movzbl %cl,%eax
mov    %eax,0x4(%rsi,%rdx,4)
mov    %ebx,0x8(%rsi,%rdx,4)
mov    %ebp,0xc(%rsi,%rdx,4)
mov    (%r14,%rdx,1),%ecx
mov    %ecx,%eax
movzbl %ch,%ebp
movzbl %cl,%r13d
shr    $0x18,%ecx
mov    %ecx,0x10(%rsi,%rdx,4)
shr    $0x10,%eax
movzbl %al,%eax
mov    %eax,0x14(%rsi,%rdx,4)
mov    %r15,%rbx
mov    %ebp,0x18(%rsi,%rdx,4)
mov    %r13d,0x1c(%rsi,%rdx,4)
mov    0x4(%r14,%rdx,1),%ecx
lea    (%rsi,%rdx,4),%r15
add    $0x20,%r15
add    $0x8,%rdx
add    $0xfffffff8,%edi
cmp    $0xf,%edi
ja     14c4 <IntegerUnpacker_32+0x3b4>
add    $0x20,%rbx
lea    (%r10,%r12,4),%rax
lea    (%rdx,%rax,1),%r14
add    $0x4,%r14
sub    %edx,%r8d
mov    %rbx,%rsi
jmp    1165 <IntegerUnpacker_32+0x55>
cmp    $0x6,%r11d
jne    1622 <IntegerUnpacker_32+0x512>
cmp    $0x10,%r8d
jl     1622 <IntegerUnpacker_32+0x512>
mov    %r8d,%eax
mov    %ecx,%ebx
mov    (%r14),%edi
mov    0x4(%r14),%edx
mov    0x8(%r14),%ebp
add    $0xc,%r14
shr    $0x1a,%ecx
mov    %ecx,(%rsi)
mov    %ebx,%ecx
shr    $0x14,%ecx
and    $0x3f,%ecx
mov    %ecx,0x4(%rsi)
mov    %ebx,%ecx
shr    $0xe,%ecx
and    $0x3f,%ecx
mov    %ecx,0x8(%rsi)
mov    %ebx,%ecx
shr    $0x8,%ecx
and    $0x3f,%ecx
mov    %ecx,0xc(%rsi)
mov    %ebx,%ecx
shr    $0x2,%ecx
and    $0x3f,%ecx
shld   $0x4,%edi,%ebx
mov    %ecx,0x10(%rsi)
and    $0x3f,%ebx
mov    %ebx,0x14(%rsi)
mov    %edi,%ecx
shr    $0x16,%ecx
and    $0x3f,%ecx
mov    %ecx,0x18(%rsi)
mov    %edi,%ecx
shr    $0x10,%ecx
and    $0x3f,%ecx
mov    %ecx,0x1c(%rsi)
mov    %edi,%ecx
shr    $0xa,%ecx
and    $0x3f,%ecx
mov    %ecx,0x20(%rsi)
mov    %edi,%ecx
shr    $0x4,%ecx
and    $0x3f,%ecx
shld   $0x2,%edx,%edi
mov    %ecx,0x24(%rsi)
and    $0x3f,%edi
mov    %edi,0x28(%rsi)
mov    %edx,%ecx
shr    $0x18,%ecx
and    $0x3f,%ecx
mov    %ecx,0x2c(%rsi)
mov    %edx,%ecx
shr    $0x12,%ecx
and    $0x3f,%ecx
mov    %ecx,0x30(%rsi)
mov    %edx,%ecx
shr    $0xc,%ecx
and    $0x3f,%ecx
mov    %ecx,0x34(%rsi)
mov    %edx,%ecx
shr    $0x6,%ecx
and    $0x3f,%ecx
mov    %ecx,0x38(%rsi)
mov    %rbp,%rcx
and    $0x3f,%edx
mov    %edx,0x3c(%rsi)
add    $0x40,%rsi
lea    -0x10(%rax),%r8d
cmp    $0x1f,%eax
ja     1557 <IntegerUnpacker_32+0x447>
cmp    $0x4,%r11d
jne    169d <IntegerUnpacker_32+0x58d>
cmp    $0x8,%r8d
jl     169d <IntegerUnpacker_32+0x58d>
mov    %r8d,%eax
mov    %rcx,%rdx
shr    $0x1c,%ecx
mov    %ecx,(%rsi)
mov    %edx,%ecx
shr    $0x18,%ecx
and    $0xf,%ecx
mov    %ecx,0x4(%rsi)
mov    %edx,%ecx
shr    $0x14,%ecx
and    $0xf,%ecx
mov    %ecx,0x8(%rsi)
mov    %edx,%ecx
shr    $0x10,%ecx
and    $0xf,%ecx
mov    %ecx,0xc(%rsi)
mov    %edx,%ecx
shr    $0xc,%ecx
and    $0xf,%ecx
mov    %ecx,0x10(%rsi)
mov    %edx,%ecx
shr    $0x8,%ecx
and    $0xf,%ecx
mov    %ecx,0x14(%rsi)
mov    %edx,%ecx
shr    $0x4,%ecx
and    $0xf,%ecx
mov    %ecx,0x18(%rsi)
and    $0xf,%edx
mov    %edx,0x1c(%rsi)
add    $0x20,%rsi
mov    (%r14),%ecx
add    $0x4,%r14
lea    -0x8(%rax),%r8d
cmp    $0xf,%eax
mov    %r8d,%eax
ja     1631 <IntegerUnpacker_32+0x521>
jmp    1165 <IntegerUnpacker_32+0x55>
cmp    $0x2,%r11d
jne    177c <IntegerUnpacker_32+0x66c>
cmp    $0x10,%r8d
jl     177c <IntegerUnpacker_32+0x66c>
mov    %r8d,%eax
mov    %rcx,%rdx
shr    $0x1e,%ecx
mov    %ecx,(%rsi)
mov    %edx,%ecx
shr    $0x1c,%ecx
and    $0x3,%ecx
mov    %ecx,0x4(%rsi)
mov    %edx,%ecx
shr    $0x1a,%ecx
and    $0x3,%ecx
mov    %ecx,0x8(%rsi)
mov    %edx,%ecx
shr    $0x18,%ecx
and    $0x3,%ecx
mov    %ecx,0xc(%rsi)
mov    %edx,%ecx
shr    $0x16,%ecx
and    $0x3,%ecx
mov    %ecx,0x10(%rsi)
mov    %edx,%ecx
shr    $0x14,%ecx
and    $0x3,%ecx
mov    %ecx,0x14(%rsi)
mov    %edx,%ecx
shr    $0x12,%ecx
and    $0x3,%ecx
mov    %ecx,0x18(%rsi)
mov    %edx,%ecx
shr    $0x10,%ecx
and    $0x3,%ecx
mov    %ecx,0x1c(%rsi)
mov    %edx,%ecx
shr    $0xe,%ecx
and    $0x3,%ecx
mov    %ecx,0x20(%rsi)
mov    %edx,%ecx
shr    $0xc,%ecx
and    $0x3,%ecx
mov    %ecx,0x24(%rsi)
mov    %edx,%ecx
shr    $0xa,%ecx
and    $0x3,%ecx
mov    %ecx,0x28(%rsi)
mov    %edx,%ecx
shr    $0x8,%ecx
and    $0x3,%ecx
mov    %ecx,0x2c(%rsi)
mov    %edx,%ecx
shr    $0x6,%ecx
and    $0x3,%ecx
mov    %ecx,0x30(%rsi)
mov    %edx,%ecx
shr    $0x4,%ecx
and    $0x3,%ecx
mov    %ecx,0x34(%rsi)
mov    %edx,%ecx
shr    $0x2,%ecx
and    $0x3,%ecx
mov    %ecx,0x38(%rsi)
and    $0x3,%edx
mov    %edx,0x3c(%rsi)
add    $0x40,%rsi
mov    (%r14),%ecx
add    $0x4,%r14
lea    -0x10(%rax),%r8d
cmp    $0x1f,%eax
mov    %r8d,%eax
ja     16b4 <IntegerUnpacker_32+0x5a4>
jmp    1165 <IntegerUnpacker_32+0x55>
cmp    $0x1,%r11d
jne    1165 <IntegerUnpacker_32+0x55>
cmp    $0x20,%r8d
jl     1165 <IntegerUnpacker_32+0x55>
mov    %r8d,%eax
mov    %rcx,%rdx
shr    $0x1f,%ecx
mov    %ecx,(%rsi)
mov    %edx,%ecx
shr    $0x1e,%ecx
and    $0x1,%ecx
mov    %ecx,0x4(%rsi)
mov    %edx,%ecx
shr    $0x1d,%ecx
and    $0x1,%ecx
mov    %ecx,0x8(%rsi)
mov    %edx,%ecx
shr    $0x1c,%ecx
and    $0x1,%ecx
mov    %ecx,0xc(%rsi)
mov    %edx,%ecx
shr    $0x1b,%ecx
and    $0x1,%ecx
mov    %ecx,0x10(%rsi)
mov    %edx,%ecx
shr    $0x1a,%ecx
and    $0x1,%ecx
mov    %ecx,0x14(%rsi)
mov    %edx,%ecx
shr    $0x19,%ecx
and    $0x1,%ecx
mov    %ecx,0x18(%rsi)
mov    %edx,%ecx
shr    $0x18,%ecx
and    $0x1,%ecx
mov    %ecx,0x1c(%rsi)
mov    %edx,%ecx
shr    $0x17,%ecx
and    $0x1,%ecx
mov    %ecx,0x20(%rsi)
mov    %edx,%ecx
shr    $0x16,%ecx
and    $0x1,%ecx
mov    %ecx,0x24(%rsi)
mov    %edx,%ecx
shr    $0x15,%ecx
and    $0x1,%ecx
mov    %ecx,0x28(%rsi)
mov    %edx,%ecx
shr    $0x14,%ecx
and    $0x1,%ecx
mov    %ecx,0x2c(%rsi)
mov    %edx,%ecx
shr    $0x13,%ecx
and    $0x1,%ecx
mov    %ecx,0x30(%rsi)
mov    %edx,%ecx
shr    $0x12,%ecx
and    $0x1,%ecx
mov    %ecx,0x34(%rsi)
mov    %edx,%ecx
shr    $0x11,%ecx
and    $0x1,%ecx
mov    %ecx,0x38(%rsi)
mov    %edx,%ecx
shr    $0x10,%ecx
and    $0x1,%ecx
mov    %ecx,0x3c(%rsi)
mov    %edx,%ecx
shr    $0xf,%ecx
and    $0x1,%ecx
mov    %ecx,0x40(%rsi)
mov    %edx,%ecx
shr    $0xe,%ecx
and    $0x1,%ecx
mov    %ecx,0x44(%rsi)
mov    %edx,%ecx
shr    $0xd,%ecx
and    $0x1,%ecx
mov    %ecx,0x48(%rsi)
mov    %edx,%ecx
shr    $0xc,%ecx
and    $0x1,%ecx
mov    %ecx,0x4c(%rsi)
mov    %edx,%ecx
shr    $0xb,%ecx
and    $0x1,%ecx
mov    %ecx,0x50(%rsi)
mov    %edx,%ecx
shr    $0xa,%ecx
and    $0x1,%ecx
mov    %ecx,0x54(%rsi)
mov    %edx,%ecx
shr    $0x9,%ecx
and    $0x1,%ecx
mov    %ecx,0x58(%rsi)
mov    %edx,%ecx
shr    $0x8,%ecx
and    $0x1,%ecx
mov    %ecx,0x5c(%rsi)
mov    %edx,%ecx
shr    $0x7,%ecx
and    $0x1,%ecx
mov    %ecx,0x60(%rsi)
mov    %edx,%ecx
shr    $0x6,%ecx
and    $0x1,%ecx
mov    %ecx,0x64(%rsi)
mov    %edx,%ecx
shr    $0x5,%ecx
and    $0x1,%ecx
mov    %ecx,0x68(%rsi)
mov    %edx,%ecx
shr    $0x4,%ecx
and    $0x1,%ecx
mov    %ecx,0x6c(%rsi)
mov    %edx,%ecx
shr    $0x3,%ecx
and    $0x1,%ecx
mov    %ecx,0x70(%rsi)
mov    %edx,%ecx
shr    $0x2,%ecx
and    $0x1,%ecx
mov    %ecx,0x74(%rsi)
mov    %edx,%ecx
shr    %ecx
and    $0x1,%ecx
mov    %ecx,0x78(%rsi)
and    $0x1,%edx
mov    %edx,0x7c(%rsi)
sub    $0xffffffffffffff80,%rsi
mov    (%r14),%ecx
add    $0x4,%r14
lea    -0x20(%rax),%r8d
cmp    $0x3f,%eax
mov    %r8d,%eax
ja     1793 <IntegerUnpacker_32+0x683>
jmp    1165 <IntegerUnpacker_32+0x55>

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

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