LoadColumn(eptr, bytes, iter, convert, obuf) char *eptr;
int bytes, iter, convert;
char *obuf;
{
  char *optr = obuf;
  int i, j;
  for (i = 0; i < iter; i++) {
    optr = obuf + (i * bytes);
    if (convert) {
      for (j = 0; j < bytes; j++)
        optr[j] = *(eptr + bytes - 1 - j);
    } else {
      for (j = 0; j < bytes; j++)
        optr[j] = *(eptr + j);
    }
  }
}


x86 assembly (clang, -O0):
<LoadColumn>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    %edx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
mov    %r8,-0x28(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0x30(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x18(%rbp),%eax
jge    11e7 <LoadColumn+0xe7>
mov    -0x28(%rbp),%rax
mov    -0x34(%rbp),%ecx
imul   -0x14(%rbp),%ecx
movslq %ecx,%rcx
add    %rcx,%rax
mov    %rax,-0x30(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1198 <LoadColumn+0x98>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1193 <LoadColumn+0x93>
mov    -0x10(%rbp),%rax
movslq -0x14(%rbp),%rcx
add    %rcx,%rax
movslq -0x38(%rbp),%rdx
xor    %ecx,%ecx
sub    %rdx,%rcx
mov    -0x1(%rax,%rcx,1),%dl
mov    -0x30(%rbp),%rax
movslq -0x38(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1156 <LoadColumn+0x56>
jmp    11d4 <LoadColumn+0xd4>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    11cf <LoadColumn+0xcf>
mov    -0x10(%rbp),%rax
movslq -0x38(%rbp),%rcx
mov    (%rax,%rcx,1),%dl
mov    -0x30(%rbp),%rax
movslq -0x38(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    119f <LoadColumn+0x9f>
jmp    11d4 <LoadColumn+0xd4>
jmp    11d9 <LoadColumn+0xd9>
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1124 <LoadColumn+0x24>
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<LoadColumn>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %ecx,-0x6c(%rsp)
test   %edx,%edx
jle    1582 <LoadColumn+0x482>
movslq %esi,%rcx
lea    (%rdi,%rcx,1),%rax
mov    %rax,-0x8(%rsp)
mov    %edx,%r15d
mov    %ecx,%r11d
lea    (%rdi,%r11,1),%rax
mov    %rax,-0x18(%rsp)
mov    %rcx,%rax
sub    %r11,%rax
add    %rdi,%rax
mov    %rax,-0x10(%rsp)
mov    %r11d,%ebp
and    $0xffffffe0,%ebp
lea    -0x20(%rbp),%rax
mov    %rax,-0x30(%rsp)
shr    $0x5,%rax
add    $0x1,%rax
mov    %r11d,%r12d
and    $0xfffffff8,%r12d
mov    %r11d,%r13d
and    $0x3,%r13d
mov    %eax,%edx
and    $0x3,%edx
and    $0xfffffffffffffffc,%rax
mov    %rax,-0x50(%rsp)
lea    (%rdi,%rcx,1),%rax
add    $0xfffffffffffffff0,%rax
mov    %rax,-0x28(%rsp)
mov    %r13,-0x60(%rsp)
neg    %r13
mov    %rdx,-0x38(%rsp)
shl    $0x5,%rdx
mov    %rdx,-0x40(%rsp)
pxor   %xmm0,%xmm0
lea    0x10(%r8),%r9
lea    (%rdi,%rcx,1),%rax
add    $0xfffffffffffffff8,%rax
mov    %rax,-0x20(%rsp)
lea    -0x1(%rdi,%rcx,1),%rax
mov    %rax,-0x68(%rsp)
lea    0x10(%rdi),%rax
mov    %rax,-0x48(%rsp)
xor    %r14d,%r14d
mov    %r8,%r10
mov    %r15,-0x78(%rsp)
mov    %rbp,-0x58(%rsp)
jmp    11e3 <LoadColumn+0xe3>
nop
add    $0x1,%r14
add    %rcx,%r9
add    %rcx,%r10
cmp    %r15,%r14
je     1582 <LoadColumn+0x482>
mov    %r14,%rbx
imul   %rcx,%rbx
lea    (%r8,%rbx,1),%rax
add    %r11,%rbx
add    %r8,%rbx
cmpl   $0x0,-0x6c(%rsp)
je     12c0 <LoadColumn+0x1c0>
test   %esi,%esi
jle    11d0 <LoadColumn+0xd0>
cmp    $0x8,%esi
jb     121e <LoadColumn+0x11e>
cmp    -0x8(%rsp),%rax
jae    1364 <LoadColumn+0x264>
cmp    %rbx,-0x10(%rsp)
jae    1364 <LoadColumn+0x264>
xor    %ebx,%ebx
mov    %esi,%r15d
mov    %rbx,%rax
not    %rax
add    %r11,%rax
cmpq   $0x0,-0x60(%rsp)
je     1256 <LoadColumn+0x156>
mov    -0x68(%rsp),%rbp
sub    %rbx,%rbp
xor    %esi,%esi
xchg   %ax,%ax
movzbl 0x0(%rbp,%rsi,1),%edx
mov    %dl,(%r10,%rbx,1)
add    $0x1,%rbx
add    $0xffffffffffffffff,%rsi
cmp    %rsi,%r13
jne    1240 <LoadColumn+0x140>
cmp    $0x3,%rax
mov    %r15d,%esi
mov    -0x78(%rsp),%r15
mov    -0x58(%rsp),%rbp
jb     11d0 <LoadColumn+0xd0>
mov    -0x68(%rsp),%rax
sub    %rbx,%rax
cs nopw 0x0(%rax,%rax,1)
nop
movzbl (%rax),%edx
mov    %dl,(%r10,%rbx,1)
movzbl -0x1(%rax),%edx
mov    %dl,0x1(%r10,%rbx,1)
movzbl -0x2(%rax),%edx
mov    %dl,0x2(%r10,%rbx,1)
movzbl -0x3(%rax),%edx
mov    %dl,0x3(%r10,%rbx,1)
add    $0x4,%rbx
add    $0xfffffffffffffffc,%rax
cmp    %rbx,%r11
jne    1280 <LoadColumn+0x180>
jmp    11d0 <LoadColumn+0xd0>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
test   %esi,%esi
jle    11d0 <LoadColumn+0xd0>
cmp    $0x8,%esi
jb     12e1 <LoadColumn+0x1e1>
cmp    -0x18(%rsp),%rax
jae    1370 <LoadColumn+0x270>
cmp    %rdi,%rbx
jbe    1370 <LoadColumn+0x270>
xor    %ebx,%ebx
mov    %rbx,%rax
not    %rax
add    %r11,%rax
test   $0x3,%r11b
je     1312 <LoadColumn+0x212>
mov    -0x60(%rsp),%rbp
nopw   0x0(%rax,%rax,1)
movzbl (%rdi,%rbx,1),%edx
mov    %dl,(%r10,%rbx,1)
add    $0x1,%rbx
add    $0xffffffffffffffff,%rbp
jne    1300 <LoadColumn+0x200>
cmp    $0x3,%rax
mov    -0x58(%rsp),%rbp
jb     11d0 <LoadColumn+0xd0>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movzbl (%rdi,%rbx,1),%eax
mov    %al,(%r10,%rbx,1)
movzbl 0x1(%rdi,%rbx,1),%eax
mov    %al,0x1(%r10,%rbx,1)
movzbl 0x2(%rdi,%rbx,1),%eax
mov    %al,0x2(%r10,%rbx,1)
movzbl 0x3(%rdi,%rbx,1),%eax
mov    %al,0x3(%r10,%rbx,1)
add    $0x4,%rbx
cmp    %rbx,%r11
jne    1330 <LoadColumn+0x230>
jmp    11d0 <LoadColumn+0xd0>
cmp    $0x20,%esi
jae    1380 <LoadColumn+0x280>
xor    %eax,%eax
jmp    142d <LoadColumn+0x32d>
cmp    $0x20,%esi
jae    147f <LoadColumn+0x37f>
xor    %eax,%eax
jmp    1560 <LoadColumn+0x460>
mov    -0x28(%rsp),%rbx
xor    %r15d,%r15d
nopl   0x0(%rax,%rax,1)
movdqu -0x10(%rbx),%xmm1
movdqu (%rbx),%xmm2
movdqa %xmm2,%xmm3
punpcklbw %xmm0,%xmm3
pshufd $0x4e,%xmm3,%xmm3
pshuflw $0x1b,%xmm3,%xmm3
pshufhw $0x1b,%xmm3,%xmm3
punpckhbw %xmm0,%xmm2
pshufd $0x4e,%xmm2,%xmm2
pshuflw $0x1b,%xmm2,%xmm2
pshufhw $0x1b,%xmm2,%xmm2
packuswb %xmm3,%xmm2
movdqa %xmm1,%xmm3
punpcklbw %xmm0,%xmm3
pshufd $0x4e,%xmm3,%xmm3
pshuflw $0x1b,%xmm3,%xmm3
pshufhw $0x1b,%xmm3,%xmm3
punpckhbw %xmm0,%xmm1
pshufd $0x4e,%xmm1,%xmm1
pshuflw $0x1b,%xmm1,%xmm1
pshufhw $0x1b,%xmm1,%xmm1
packuswb %xmm3,%xmm1
movdqu %xmm2,-0x10(%r9,%r15,1)
movdqu %xmm1,(%r9,%r15,1)
add    $0x20,%r15
add    $0xffffffffffffffe0,%rbx
cmp    %r15,%rbp
jne    1390 <LoadColumn+0x290>
cmp    %r11,%rbp
mov    -0x78(%rsp),%r15
je     11d0 <LoadColumn+0xd0>
mov    %rbp,%rax
mov    %rbp,%rbx
test   $0x18,%r11b
je     1220 <LoadColumn+0x120>
mov    -0x20(%rsp),%rbx
sub    %rax,%rbx
cs nopw 0x0(%rax,%rax,1)
nop
movq   (%rbx),%xmm1
punpcklbw %xmm0,%xmm1
pshufd $0x4e,%xmm1,%xmm1
pshuflw $0x1b,%xmm1,%xmm1
pshufhw $0x1b,%xmm1,%xmm1
packuswb %xmm1,%xmm1
movq   %xmm1,(%r10,%rax,1)
add    $0x8,%rax
add    $0xfffffffffffffff8,%rbx
cmp    %rax,%r12
jne    1440 <LoadColumn+0x340>
mov    %r12,%rbx
cmp    %r11,%r12
je     11d0 <LoadColumn+0xd0>
jmp    1220 <LoadColumn+0x120>
cmpq   $0x60,-0x30(%rsp)
jae    148b <LoadColumn+0x38b>
xor    %ebx,%ebx
jmp    1504 <LoadColumn+0x404>
mov    -0x50(%rsp),%rax
xor    %ebx,%ebx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movups (%rdi,%rbx,1),%xmm1
movups 0x10(%rdi,%rbx,1),%xmm2
movups %xmm1,(%r10,%rbx,1)
movups %xmm2,0x10(%r10,%rbx,1)
movups 0x20(%rdi,%rbx,1),%xmm1
movups 0x30(%rdi,%rbx,1),%xmm2
movups %xmm1,0x20(%r10,%rbx,1)
movups %xmm2,0x30(%r10,%rbx,1)
movups 0x40(%rdi,%rbx,1),%xmm1
movups 0x50(%rdi,%rbx,1),%xmm2
movups %xmm1,0x40(%r10,%rbx,1)
movups %xmm2,0x50(%r10,%rbx,1)
movdqu 0x60(%rdi,%rbx,1),%xmm1
movdqu 0x70(%rdi,%rbx,1),%xmm2
movdqu %xmm1,0x60(%r10,%rbx,1)
movdqu %xmm2,0x70(%r10,%rbx,1)
sub    $0xffffffffffffff80,%rbx
add    $0xfffffffffffffffc,%rax
jne    14a0 <LoadColumn+0x3a0>
cmpq   $0x0,-0x38(%rsp)
mov    -0x40(%rsp),%r15
je     153f <LoadColumn+0x43f>
lea    (%r9,%rbx,1),%rax
add    -0x48(%rsp),%rbx
xor    %edx,%edx
nopl   0x0(%rax)
movdqu -0x10(%rbx,%rdx,1),%xmm1
movdqu (%rbx,%rdx,1),%xmm2
movdqu %xmm1,-0x10(%rax,%rdx,1)
movdqu %xmm2,(%rax,%rdx,1)
add    $0x20,%rdx
cmp    %rdx,%r15
jne    1520 <LoadColumn+0x420>
cmp    %r11,%rbp
mov    -0x78(%rsp),%r15
je     11d0 <LoadColumn+0xd0>
mov    %rbp,%rax
mov    %rbp,%rbx
test   $0x18,%r11b
je     12e3 <LoadColumn+0x1e3>
nopl   (%rax)
mov    (%rdi,%rax,1),%rdx
mov    %rdx,(%r10,%rax,1)
add    $0x8,%rax
cmp    %rax,%r12
jne    1560 <LoadColumn+0x460>
mov    %r12,%rbx
cmp    %r11,%r12
je     11d0 <LoadColumn+0xd0>
jmp    12e3 <LoadColumn+0x1e3>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define i32 @LoadColumn(i8* %0, i32 %1, i32 %2, i32 %3, i8* %4) {
%6 = alloca i32
%7 = alloca i8*
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i8*
%12 = alloca i8*
%13 = alloca i32
%14 = alloca i32
store i8* %0, i8** %7
store i32 %1, i32* %8
store i32 %2, i32* %9
store i32 %3, i32* %10
store i8* %4, i8** %11
%15 = load i8*, i8** %11
store i8* %15, i8** %12
store i32 0, i32* %13
br label %16
16: ; preds = %73, %5
%17 = load i32, i32* %13
%18 = load i32, i32* %9
%19 = icmp slt i32 %17, %18
br i1 %19, label %20, label %76
20: ; preds = %16
%21 = load i8*, i8** %11
%22 = load i32, i32* %13
%23 = load i32, i32* %8
%24 = mul nsw i32 %22, %23
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds i8, i8* %21, i64 %25
store i8* %26, i8** %12
%27 = load i32, i32* %10
%28 = icmp ne i32 %27, 0
br i1 %28, label %29, label %53
29: ; preds = %20
store i32 0, i32* %14
br label %30
30: ; preds = %49, %29
%31 = load i32, i32* %14
%32 = load i32, i32* %8
%33 = icmp slt i32 %31, %32
br i1 %33, label %34, label %52
34: ; preds = %30
%35 = load i8*, i8** %7
%36 = load i32, i32* %8
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds i8, i8* %35, i64 %37
%39 = getelementptr inbounds i8, i8* %38, i64 -1
%40 = load i32, i32* %14
%41 = sext i32 %40 to i64
%42 = sub i64 0, %41
%43 = getelementptr inbounds i8, i8* %39, i64 %42
%44 = load i8, i8* %43
%45 = load i8*, i8** %12
%46 = load i32, i32* %14
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds i8, i8* %45, i64 %47
store i8 %44, i8* %48
br label %49
49: ; preds = %34
%50 = load i32, i32* %14
%51 = add nsw i32 %50, 1
store i32 %51, i32* %14
br label %30
52: ; preds = %30
br label %72
53: ; preds = %20
store i32 0, i32* %14
br label %54
54: ; preds = %68, %53
%55 = load i32, i32* %14
%56 = load i32, i32* %8
%57 = icmp slt i32 %55, %56
br i1 %57, label %58, label %71
58: ; preds = %54
%59 = load i8*, i8** %7
%60 = load i32, i32* %14
%61 = sext i32 %60 to i64
%62 = getelementptr inbounds i8, i8* %59, i64 %61
%63 = load i8, i8* %62
%64 = load i8*, i8** %12
%65 = load i32, i32* %14
%66 = sext i32 %65 to i64
%67 = getelementptr inbounds i8, i8* %64, i64 %66
store i8 %63, i8* %67
br label %68
68: ; preds = %58
%69 = load i32, i32* %14
%70 = add nsw i32 %69, 1
store i32 %70, i32* %14
br label %54
71: ; preds = %54
br label %72
72: ; preds = %71, %52
br label %73
73: ; preds = %72
%74 = load i32, i32* %13
%75 = add nsw i32 %74, 1
store i32 %75, i32* %13
br label %16
76: ; preds = %16
%77 = load i32, i32* %6
ret i32 %77
}

LLVM IR (-O2):
define i32 @LoadColumn(i8* nocapture %0, i32 %1, i32 %2, i32 %3, i8* nocapture writeonly %4) {
%6 = icmp sgt i32 %2, 0
br i1 %6, label %7, label %269
7: ; preds = %5
%8 = icmp eq i32 %3, 0
%9 = icmp sgt i32 %1, 0
%10 = sext i32 %1 to i64
%11 = getelementptr i8, i8* %0, i64 %10
%12 = getelementptr inbounds i8, i8* %11, i64 -1
%13 = zext i32 %2 to i64
%14 = zext i32 %1 to i64
%15 = zext i32 %1 to i64
%16 = getelementptr i8, i8* %0, i64 %14
%17 = sub nsw i64 %10, %14
%18 = getelementptr i8, i8* %0, i64 %17
%19 = and i64 %14, 4294967264
%20 = add nsw i64 %19, -32
%21 = lshr exact i64 %20, 5
%22 = add nuw nsw i64 %21, 1
%23 = icmp ult i32 %1, 8
%24 = icmp ult i32 %1, 32
%25 = and i64 %14, 4294967264
%26 = icmp eq i64 %25, %14
%27 = and i64 %14, 24
%28 = icmp eq i64 %27, 0
%29 = and i64 %14, 4294967288
%30 = getelementptr inbounds i8, i8* %12, i64 -7
%31 = icmp eq i64 %29, %14
%32 = and i64 %14, 3
%33 = icmp eq i64 %32, 0
%34 = icmp ult i32 %1, 8
%35 = icmp ult i32 %1, 32
%36 = and i64 %14, 4294967264
%37 = and i64 %22, 3
%38 = icmp ult i64 %20, 96
%39 = and i64 %22, 1152921504606846972
%40 = icmp eq i64 %37, 0
%41 = icmp eq i64 %36, %14
%42 = and i64 %14, 24
%43 = icmp eq i64 %42, 0
%44 = and i64 %14, 4294967288
%45 = icmp eq i64 %44, %14
%46 = and i64 %14, 3
%47 = icmp eq i64 %46, 0
br label %48
48: ; preds = %7, %266
%49 = phi i64 [ 0, %7 ], [ %267, %266 ]
%50 = mul i64 %49, %10
%51 = getelementptr i8, i8* %4, i64 %50
%52 = add i64 %50, %14
%53 = getelementptr i8, i8* %4, i64 %52
%54 = mul i64 %49, %10
%55 = getelementptr i8, i8* %4, i64 %54
%56 = add i64 %54, %14
%57 = getelementptr i8, i8* %4, i64 %56
%58 = mul nsw i64 %49, %10
%59 = getelementptr inbounds i8, i8* %4, i64 %58
br i1 %8, label %119, label %60
60: ; preds = %48
br i1 %9, label %61, label %266
61: ; preds = %60
br i1 %23, label %102, label %62
62: ; preds = %61
%63 = icmp ult i8* %51, %11
%64 = icmp ult i8* %18, %53
%65 = and i1 %63, %64
br i1 %65, label %102, label %66
66: ; preds = %62
br i1 %24, label %88, label %67
67: ; preds = %66, %67
%68 = phi i64 [ %84, %67 ], [ 0, %66 ]
%69 = sub nsw i64 0, %68
%70 = getelementptr inbounds i8, i8* %12, i64 %69
%71 = getelementptr inbounds i8, i8* %70, i64 -15
%72 = bitcast i8* %71 to <16 x i8>*
%73 = load <16 x i8>, <16 x i8>* %72
%74 = shufflevector <16 x i8> %73, <16 x i8> poison, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
%75 = getelementptr inbounds i8, i8* %70, i64 -16
%76 = getelementptr inbounds i8, i8* %75, i64 -15
%77 = bitcast i8* %76 to <16 x i8>*
%78 = load <16 x i8>, <16 x i8>* %77
%79 = shufflevector <16 x i8> %78, <16 x i8> poison, <16 x i32> <i32 15, i32 14, i32 13, i32 12, i32 11, i32 10, i32 9, i32 8, i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
%80 = getelementptr inbounds i8, i8* %59, i64 %68
%81 = bitcast i8* %80 to <16 x i8>*
store <16 x i8> %74, <16 x i8>* %81
%82 = getelementptr inbounds i8, i8* %80, i64 16
%83 = bitcast i8* %82 to <16 x i8>*
store <16 x i8> %79, <16 x i8>* %83
%84 = add nuw i64 %68, 32
%85 = icmp eq i64 %84, %25
br i1 %85, label %86, label %67
86: ; preds = %67
br i1 %26, label %266, label %87
87: ; preds = %86
br i1 %28, label %102, label %88
88: ; preds = %66, %87
%89 = phi i64 [ %25, %87 ], [ 0, %66 ]
br label %90
90: ; preds = %90, %88
%91 = phi i64 [ %89, %88 ], [ %99, %90 ]
%92 = sub nsw i64 0, %91
%93 = getelementptr inbounds i8, i8* %30, i64 %92
%94 = bitcast i8* %93 to <8 x i8>*
%95 = load <8 x i8>, <8 x i8>* %94
%96 = shufflevector <8 x i8> %95, <8 x i8> poison, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0>
%97 = getelementptr inbounds i8, i8* %59, i64 %91
%98 = bitcast i8* %97 to <8 x i8>*
store <8 x i8> %96, <8 x i8>* %98
%99 = add nuw i64 %91, 8
%100 = icmp eq i64 %99, %29
br i1 %100, label %101, label %90
101: ; preds = %90
br i1 %31, label %266, label %102
102: ; preds = %62, %61, %87, %101
%103 = phi i64 [ 0, %61 ], [ 0, %62 ], [ %25, %87 ], [ %29, %101 ]
%104 = xor i64 %103, -1
%105 = add nsw i64 %104, %14
br i1 %33, label %116, label %106
106: ; preds = %102, %106
%107 = phi i64 [ %113, %106 ], [ %103, %102 ]
%108 = phi i64 [ %114, %106 ], [ 0, %102 ]
%109 = sub nsw i64 0, %107
%110 = getelementptr inbounds i8, i8* %12, i64 %109
%111 = load i8, i8* %110
%112 = getelementptr inbounds i8, i8* %59, i64 %107
store i8 %111, i8* %112
%113 = add nuw nsw i64 %107, 1
%114 = add i64 %108, 1
%115 = icmp eq i64 %114, %32
br i1 %115, label %116, label %106
116: ; preds = %106, %102
%117 = phi i64 [ %103, %102 ], [ %113, %106 ]
%118 = icmp ult i64 %105, 3
br i1 %118, label %266, label %224
119: ; preds = %48
br i1 %9, label %120, label %266
120: ; preds = %119
br i1 %34, label %208, label %121
121: ; preds = %120
%122 = icmp ult i8* %55, %16
%123 = icmp ugt i8* %57, %0
%124 = and i1 %122, %123
br i1 %124, label %208, label %125
125: ; preds = %121
br i1 %35, label %196, label %126
126: ; preds = %125
br i1 %38, label %176, label %127
127: ; preds = %126, %127
%128 = phi i64 [ %173, %127 ], [ 0, %126 ]
%129 = phi i64 [ %174, %127 ], [ 0, %126 ]
%130 = getelementptr inbounds i8, i8* %0, i64 %128
%131 = bitcast i8* %130 to <16 x i8>*
%132 = load <16 x i8>, <16 x i8>* %131
%133 = getelementptr inbounds i8, i8* %130, i64 16
%134 = bitcast i8* %133 to <16 x i8>*
%135 = load <16 x i8>, <16 x i8>* %134
%136 = getelementptr inbounds i8, i8* %59, i64 %128
%137 = bitcast i8* %136 to <16 x i8>*
store <16 x i8> %132, <16 x i8>* %137
%138 = getelementptr inbounds i8, i8* %136, i64 16
%139 = bitcast i8* %138 to <16 x i8>*
store <16 x i8> %135, <16 x i8>* %139
%140 = or i64 %128, 32
%141 = getelementptr inbounds i8, i8* %0, i64 %140
%142 = bitcast i8* %141 to <16 x i8>*
%143 = load <16 x i8>, <16 x i8>* %142
%144 = getelementptr inbounds i8, i8* %141, i64 16
%145 = bitcast i8* %144 to <16 x i8>*
%146 = load <16 x i8>, <16 x i8>* %145
%147 = getelementptr inbounds i8, i8* %59, i64 %140
%148 = bitcast i8* %147 to <16 x i8>*
store <16 x i8> %143, <16 x i8>* %148
%149 = getelementptr inbounds i8, i8* %147, i64 16
%150 = bitcast i8* %149 to <16 x i8>*
store <16 x i8> %146, <16 x i8>* %150
%151 = or i64 %128, 64
%152 = getelementptr inbounds i8, i8* %0, i64 %151
%153 = bitcast i8* %152 to <16 x i8>*
%154 = load <16 x i8>, <16 x i8>* %153
%155 = getelementptr inbounds i8, i8* %152, i64 16
%156 = bitcast i8* %155 to <16 x i8>*
%157 = load <16 x i8>, <16 x i8>* %156
%158 = getelementptr inbounds i8, i8* %59, i64 %151
%159 = bitcast i8* %158 to <16 x i8>*
store <16 x i8> %154, <16 x i8>* %159
%160 = getelementptr inbounds i8, i8* %158, i64 16
%161 = bitcast i8* %160 to <16 x i8>*
store <16 x i8> %157, <16 x i8>* %161
%162 = or i64 %128, 96
%163 = getelementptr inbounds i8, i8* %0, i64 %162
%164 = bitcast i8* %163 to <16 x i8>*
%165 = load <16 x i8>, <16 x i8>* %164
%166 = getelementptr inbounds i8, i8* %163, i64 16
%167 = bitcast i8* %166 to <16 x i8>*
%168 = load <16 x i8>, <16 x i8>* %167
%169 = getelementptr inbounds i8, i8* %59, i64 %162
%170 = bitcast i8* %169 to <16 x i8>*
store <16 x i8> %165, <16 x i8>* %170
%171 = getelementptr inbounds i8, i8* %169, i64 16
%172 = bitcast i8* %171 to <16 x i8>*
store <16 x i8> %168, <16 x i8>* %172
%173 = add nuw i64 %128, 128
%174 = add i64 %129, 4
%175 = icmp eq i64 %174, %39
br i1 %175, label %176, label %127
176: ; preds = %127, %126
%177 = phi i64 [ 0, %126 ], [ %173, %127 ]
br i1 %40, label %194, label %178
178: ; preds = %176, %178
%179 = phi i64 [ %191, %178 ], [ %177, %176 ]
%180 = phi i64 [ %192, %178 ], [ 0, %176 ]
%181 = getelementptr inbounds i8, i8* %0, i64 %179
%182 = bitcast i8* %181 to <16 x i8>*
%183 = load <16 x i8>, <16 x i8>* %182
%184 = getelementptr inbounds i8, i8* %181, i64 16
%185 = bitcast i8* %184 to <16 x i8>*
%186 = load <16 x i8>, <16 x i8>* %185
%187 = getelementptr inbounds i8, i8* %59, i64 %179
%188 = bitcast i8* %187 to <16 x i8>*
store <16 x i8> %183, <16 x i8>* %188
%189 = getelementptr inbounds i8, i8* %187, i64 16
%190 = bitcast i8* %189 to <16 x i8>*
store <16 x i8> %186, <16 x i8>* %190
%191 = add nuw i64 %179, 32
%192 = add i64 %180, 1
%193 = icmp eq i64 %192, %37
br i1 %193, label %194, label %178
194: ; preds = %178, %176
br i1 %41, label %266, label %195
195: ; preds = %194
br i1 %43, label %208, label %196
196: ; preds = %125, %195
%197 = phi i64 [ %36, %195 ], [ 0, %125 ]
br label %198
198: ; preds = %198, %196
%199 = phi i64 [ %197, %196 ], [ %205, %198 ]
%200 = getelementptr inbounds i8, i8* %0, i64 %199
%201 = bitcast i8* %200 to <8 x i8>*
%202 = load <8 x i8>, <8 x i8>* %201
%203 = getelementptr inbounds i8, i8* %59, i64 %199
%204 = bitcast i8* %203 to <8 x i8>*
store <8 x i8> %202, <8 x i8>* %204
%205 = add nuw i64 %199, 8
%206 = icmp eq i64 %205, %44
br i1 %206, label %207, label %198
207: ; preds = %198
br i1 %45, label %266, label %208
208: ; preds = %121, %120, %195, %207
%209 = phi i64 [ 0, %120 ], [ 0, %121 ], [ %36, %195 ], [ %44, %207 ]
%210 = xor i64 %209, -1
%211 = add nsw i64 %210, %14
br i1 %47, label %221, label %212
212: ; preds = %208, %212
%213 = phi i64 [ %218, %212 ], [ %209, %208 ]
%214 = phi i64 [ %219, %212 ], [ 0, %208 ]
%215 = getelementptr inbounds i8, i8* %0, i64 %213
%216 = load i8, i8* %215
%217 = getelementptr inbounds i8, i8* %59, i64 %213
store i8 %216, i8* %217
%218 = add nuw nsw i64 %213, 1
%219 = add i64 %214, 1
%220 = icmp eq i64 %219, %46
br i1 %220, label %221, label %212
221: ; preds = %212, %208
%222 = phi i64 [ %209, %208 ], [ %218, %212 ]
%223 = icmp ult i64 %211, 3
br i1 %223, label %266, label %247
224: ; preds = %116, %224
%225 = phi i64 [ %245, %224 ], [ %117, %116 ]
%226 = sub nsw i64 0, %225
%227 = getelementptr inbounds i8, i8* %12, i64 %226
%228 = load i8, i8* %227
%229 = getelementptr inbounds i8, i8* %59, i64 %225
store i8 %228, i8* %229
%230 = add nuw nsw i64 %225, 1
%231 = xor i64 %225, -1
%232 = getelementptr inbounds i8, i8* %12, i64 %231
%233 = load i8, i8* %232
%234 = getelementptr inbounds i8, i8* %59, i64 %230
store i8 %233, i8* %234
%235 = add nuw nsw i64 %225, 2
%236 = sub i64 -2, %225
%237 = getelementptr inbounds i8, i8* %12, i64 %236
%238 = load i8, i8* %237
%239 = getelementptr inbounds i8, i8* %59, i64 %235
store i8 %238, i8* %239
%240 = add nuw nsw i64 %225, 3
%241 = sub i64 -3, %225
%242 = getelementptr inbounds i8, i8* %12, i64 %241
%243 = load i8, i8* %242
%244 = getelementptr inbounds i8, i8* %59, i64 %240
store i8 %243, i8* %244
%245 = add nuw nsw i64 %225, 4
%246 = icmp eq i64 %245, %14
br i1 %246, label %266, label %224
247: ; preds = %221, %247
%248 = phi i64 [ %264, %247 ], [ %222, %221 ]
%249 = getelementptr inbounds i8, i8* %0, i64 %248
%250 = load i8, i8* %249
%251 = getelementptr inbounds i8, i8* %59, i64 %248
store i8 %250, i8* %251
%252 = add nuw nsw i64 %248, 1
%253 = getelementptr inbounds i8, i8* %0, i64 %252
%254 = load i8, i8* %253
%255 = getelementptr inbounds i8, i8* %59, i64 %252
store i8 %254, i8* %255
%256 = add nuw nsw i64 %248, 2
%257 = getelementptr inbounds i8, i8* %0, i64 %256
%258 = load i8, i8* %257
%259 = getelementptr inbounds i8, i8* %59, i64 %256
store i8 %258, i8* %259
%260 = add nuw nsw i64 %248, 3
%261 = getelementptr inbounds i8, i8* %0, i64 %260
%262 = load i8, i8* %261
%263 = getelementptr inbounds i8, i8* %59, i64 %260
store i8 %262, i8* %263
%264 = add nuw nsw i64 %248, 4
%265 = icmp eq i64 %264, %15
br i1 %265, label %266, label %247
266: ; preds = %116, %224, %221, %247, %86, %101, %194, %207, %60, %119
%267 = add nuw nsw i64 %49, 1
%268 = icmp eq i64 %267, %13
br i1 %268, label %269, label %48
269: ; preds = %266, %5
ret i32 undef
}