Xcvt(buf, statbuf) char *buf, *statbuf;
{
  register char *s, *t;
  register int i;
  s = buf;
  t = statbuf;
  for (i = 14; i; i--)
    *t++ = *s++;
  *t++ = 0;
  *t++ = 0;
  for (i = 16; i; i--)
    *t++ = *s++;
}


x86 assembly (clang, -O0):
<Xcvt>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0x28(%rbp)
movl   $0xe,-0x2c(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     115d <Xcvt+0x5d>
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%cl
mov    -0x28(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x28(%rbp)
mov    %cl,(%rax)
mov    -0x2c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x2c(%rbp)
jmp    1123 <Xcvt+0x23>
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x28(%rbp)
movb   $0x0,(%rax)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x28(%rbp)
movb   $0x0,(%rax)
movl   $0x10,-0x2c(%rbp)
cmpl   $0x0,-0x2c(%rbp)
je     11c2 <Xcvt+0xc2>
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%cl
mov    -0x28(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x28(%rbp)
mov    %cl,(%rax)
mov    -0x2c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x2c(%rbp)
jmp    1188 <Xcvt+0x88>
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<Xcvt>:
mov    (%rdi),%al
mov    %al,(%rsi)
mov    0x1(%rdi),%al
mov    %al,0x1(%rsi)
mov    0x2(%rdi),%al
mov    %al,0x2(%rsi)
mov    0x3(%rdi),%al
mov    %al,0x3(%rsi)
mov    0x4(%rdi),%al
mov    %al,0x4(%rsi)
mov    0x5(%rdi),%al
mov    %al,0x5(%rsi)
mov    0x6(%rdi),%al
mov    %al,0x6(%rsi)
mov    0x7(%rdi),%al
mov    %al,0x7(%rsi)
mov    0x8(%rdi),%al
mov    %al,0x8(%rsi)
mov    0x9(%rdi),%al
mov    %al,0x9(%rsi)
mov    0xa(%rdi),%al
mov    %al,0xa(%rsi)
mov    0xb(%rdi),%al
mov    %al,0xb(%rsi)
mov    0xc(%rdi),%al
mov    %al,0xc(%rsi)
mov    0xd(%rdi),%al
mov    %al,0xd(%rsi)
movw   $0x0,0xe(%rsi)
mov    0xe(%rdi),%al
mov    %al,0x10(%rsi)
mov    0xf(%rdi),%al
mov    %al,0x11(%rsi)
mov    0x10(%rdi),%al
mov    %al,0x12(%rsi)
mov    0x11(%rdi),%al
mov    %al,0x13(%rsi)
mov    0x12(%rdi),%al
mov    %al,0x14(%rsi)
mov    0x13(%rdi),%al
mov    %al,0x15(%rsi)
mov    0x14(%rdi),%al
mov    %al,0x16(%rsi)
mov    0x15(%rdi),%al
mov    %al,0x17(%rsi)
mov    0x16(%rdi),%al
mov    %al,0x18(%rsi)
mov    0x17(%rdi),%al
mov    %al,0x19(%rsi)
mov    0x18(%rdi),%al
mov    %al,0x1a(%rsi)
mov    0x19(%rdi),%al
mov    %al,0x1b(%rsi)
mov    0x1a(%rdi),%al
mov    %al,0x1c(%rsi)
mov    0x1b(%rdi),%al
mov    %al,0x1d(%rsi)
mov    0x1c(%rdi),%al
mov    %al,0x1e(%rsi)
mov    0x1d(%rdi),%al
mov    %al,0x1f(%rsi)
ret

LLVM IR (-O0):
define i32 @Xcvt(i8* %0, i8* %1) {
%3 = alloca i32
%4 = alloca i8*
%5 = alloca i8*
%6 = alloca i8*
%7 = alloca i8*
%8 = alloca i32
store i8* %0, i8** %4
store i8* %1, i8** %5
%9 = load i8*, i8** %4
store i8* %9, i8** %6
%10 = load i8*, i8** %5
store i8* %10, i8** %7
store i32 14, i32* %8
br label %11
11: ; preds = %20, %2
%12 = load i32, i32* %8
%13 = icmp ne i32 %12, 0
br i1 %13, label %14, label %23
14: ; preds = %11
%15 = load i8*, i8** %6
%16 = getelementptr inbounds i8, i8* %15, i32 1
store i8* %16, i8** %6
%17 = load i8, i8* %15
%18 = load i8*, i8** %7
%19 = getelementptr inbounds i8, i8* %18, i32 1
store i8* %19, i8** %7
store i8 %17, i8* %18
br label %20
20: ; preds = %14
%21 = load i32, i32* %8
%22 = add nsw i32 %21, -1
store i32 %22, i32* %8
br label %11
23: ; preds = %11
%24 = load i8*, i8** %7
%25 = getelementptr inbounds i8, i8* %24, i32 1
store i8* %25, i8** %7
store i8 0, i8* %24
%26 = load i8*, i8** %7
%27 = getelementptr inbounds i8, i8* %26, i32 1
store i8* %27, i8** %7
store i8 0, i8* %26
store i32 16, i32* %8
br label %28
28: ; preds = %37, %23
%29 = load i32, i32* %8
%30 = icmp ne i32 %29, 0
br i1 %30, label %31, label %40
31: ; preds = %28
%32 = load i8*, i8** %6
%33 = getelementptr inbounds i8, i8* %32, i32 1
store i8* %33, i8** %6
%34 = load i8, i8* %32
%35 = load i8*, i8** %7
%36 = getelementptr inbounds i8, i8* %35, i32 1
store i8* %36, i8** %7
store i8 %34, i8* %35
br label %37
37: ; preds = %31
%38 = load i32, i32* %8
%39 = add nsw i32 %38, -1
store i32 %39, i32* %8
br label %28
40: ; preds = %28
%41 = load i32, i32* %3
ret i32 %41
}

LLVM IR (-O2):
define i32 @Xcvt(i8* nocapture %0, i8* nocapture writeonly %1) {
%3 = getelementptr inbounds i8, i8* %0, i64 1
%4 = load i8, i8* %0
%5 = getelementptr inbounds i8, i8* %1, i64 1
store i8 %4, i8* %1
%6 = getelementptr inbounds i8, i8* %0, i64 2
%7 = load i8, i8* %3
%8 = getelementptr inbounds i8, i8* %1, i64 2
store i8 %7, i8* %5
%9 = getelementptr inbounds i8, i8* %0, i64 3
%10 = load i8, i8* %6
%11 = getelementptr inbounds i8, i8* %1, i64 3
store i8 %10, i8* %8
%12 = getelementptr inbounds i8, i8* %0, i64 4
%13 = load i8, i8* %9
%14 = getelementptr inbounds i8, i8* %1, i64 4
store i8 %13, i8* %11
%15 = getelementptr inbounds i8, i8* %0, i64 5
%16 = load i8, i8* %12
%17 = getelementptr inbounds i8, i8* %1, i64 5
store i8 %16, i8* %14
%18 = getelementptr inbounds i8, i8* %0, i64 6
%19 = load i8, i8* %15
%20 = getelementptr inbounds i8, i8* %1, i64 6
store i8 %19, i8* %17
%21 = getelementptr inbounds i8, i8* %0, i64 7
%22 = load i8, i8* %18
%23 = getelementptr inbounds i8, i8* %1, i64 7
store i8 %22, i8* %20
%24 = getelementptr inbounds i8, i8* %0, i64 8
%25 = load i8, i8* %21
%26 = getelementptr inbounds i8, i8* %1, i64 8
store i8 %25, i8* %23
%27 = getelementptr inbounds i8, i8* %0, i64 9
%28 = load i8, i8* %24
%29 = getelementptr inbounds i8, i8* %1, i64 9
store i8 %28, i8* %26
%30 = getelementptr inbounds i8, i8* %0, i64 10
%31 = load i8, i8* %27
%32 = getelementptr inbounds i8, i8* %1, i64 10
store i8 %31, i8* %29
%33 = getelementptr inbounds i8, i8* %0, i64 11
%34 = load i8, i8* %30
%35 = getelementptr inbounds i8, i8* %1, i64 11
store i8 %34, i8* %32
%36 = getelementptr inbounds i8, i8* %0, i64 12
%37 = load i8, i8* %33
%38 = getelementptr inbounds i8, i8* %1, i64 12
store i8 %37, i8* %35
%39 = getelementptr inbounds i8, i8* %0, i64 13
%40 = load i8, i8* %36
%41 = getelementptr inbounds i8, i8* %1, i64 13
store i8 %40, i8* %38
%42 = getelementptr i8, i8* %0, i64 14
%43 = load i8, i8* %39
%44 = getelementptr inbounds i8, i8* %1, i64 14
store i8 %43, i8* %41
%45 = getelementptr inbounds i8, i8* %1, i64 15
store i8 0, i8* %44
%46 = getelementptr i8, i8* %1, i64 16
store i8 0, i8* %45
%47 = getelementptr i8, i8* %0, i64 15
%48 = load i8, i8* %42
%49 = getelementptr i8, i8* %1, i64 17
store i8 %48, i8* %46
%50 = getelementptr i8, i8* %0, i64 16
%51 = load i8, i8* %47
%52 = getelementptr i8, i8* %1, i64 18
store i8 %51, i8* %49
%53 = getelementptr i8, i8* %0, i64 17
%54 = load i8, i8* %50
%55 = getelementptr i8, i8* %1, i64 19
store i8 %54, i8* %52
%56 = getelementptr i8, i8* %0, i64 18
%57 = load i8, i8* %53
%58 = getelementptr i8, i8* %1, i64 20
store i8 %57, i8* %55
%59 = getelementptr i8, i8* %0, i64 19
%60 = load i8, i8* %56
%61 = getelementptr i8, i8* %1, i64 21
store i8 %60, i8* %58
%62 = getelementptr i8, i8* %0, i64 20
%63 = load i8, i8* %59
%64 = getelementptr i8, i8* %1, i64 22
store i8 %63, i8* %61
%65 = getelementptr i8, i8* %0, i64 21
%66 = load i8, i8* %62
%67 = getelementptr i8, i8* %1, i64 23
store i8 %66, i8* %64
%68 = getelementptr i8, i8* %0, i64 22
%69 = load i8, i8* %65
%70 = getelementptr i8, i8* %1, i64 24
store i8 %69, i8* %67
%71 = getelementptr i8, i8* %0, i64 23
%72 = load i8, i8* %68
%73 = getelementptr i8, i8* %1, i64 25
store i8 %72, i8* %70
%74 = getelementptr i8, i8* %0, i64 24
%75 = load i8, i8* %71
%76 = getelementptr i8, i8* %1, i64 26
store i8 %75, i8* %73
%77 = getelementptr i8, i8* %0, i64 25
%78 = load i8, i8* %74
%79 = getelementptr i8, i8* %1, i64 27
store i8 %78, i8* %76
%80 = getelementptr i8, i8* %0, i64 26
%81 = load i8, i8* %77
%82 = getelementptr i8, i8* %1, i64 28
store i8 %81, i8* %79
%83 = getelementptr i8, i8* %0, i64 27
%84 = load i8, i8* %80
%85 = getelementptr i8, i8* %1, i64 29
store i8 %84, i8* %82
%86 = getelementptr i8, i8* %0, i64 28
%87 = load i8, i8* %83
%88 = getelementptr i8, i8* %1, i64 30
store i8 %87, i8* %85
%89 = getelementptr i8, i8* %0, i64 29
%90 = load i8, i8* %86
%91 = getelementptr i8, i8* %1, i64 31
store i8 %90, i8* %88
%92 = load i8, i8* %89
store i8 %92, i8* %91
ret i32 undef
}