void DateFromJulian(long long jsec, int *yyyymmdd, int *hhmmss) {
  int js;
  long long jr8;
  int h, m, s;
  int yr, mth, day;
  int temp1, temp2, jday;
  jr8 = jsec / (24 * 3600);
  jday = jr8;
  js = jsec - (jr8 * 24 * 3600);
  h = js / 3600;
  m = (js - h * 3600) / 60;
  s = js - (h * 3600) - (m * 60);
  *hhmmss = s + (m * 100) + (h * 10000);
  temp1 = jday + 68569;
  temp2 = 4 * temp1 / 146097;
  temp1 = temp1 - (146097 * temp2 + 3) / 4;
  yr = 4000 * (temp1 + 1) / 1461001;
  temp1 = temp1 - 1461 * yr / 4 + 31;
  mth = 80 * temp1 / 2447;
  day = temp1 - 2447 * mth / 80;
  temp1 = mth / 11;
  mth = mth + 2 - 12 * temp1;
  yr = 100 * (temp2 - 49) + yr + temp1;
  *yyyymmdd = day + (mth * 100) + (yr * 10000);
}


x86 assembly (clang, -O0):
<DateFromJulian>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    $0x15180,%ecx
cqto
idiv   %rcx
mov    %rax,-0x28(%rbp)
mov    -0x28(%rbp),%rax
mov    %eax,-0x4c(%rbp)
mov    -0x8(%rbp),%rax
imul   $0x18,-0x28(%rbp),%rcx
imul   $0xe10,%rcx,%rcx
sub    %rcx,%rax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    $0xe10,%ecx
cltd
idiv   %ecx
mov    %eax,-0x2c(%rbp)
mov    -0x1c(%rbp),%eax
imul   $0xe10,-0x2c(%rbp),%ecx
sub    %ecx,%eax
mov    $0x3c,%ecx
cltd
idiv   %ecx
mov    %eax,-0x30(%rbp)
mov    -0x1c(%rbp),%eax
imul   $0xe10,-0x2c(%rbp),%ecx
sub    %ecx,%eax
imul   $0x3c,-0x30(%rbp),%ecx
sub    %ecx,%eax
mov    %eax,-0x34(%rbp)
mov    -0x34(%rbp),%ecx
imul   $0x64,-0x30(%rbp),%eax
add    %eax,%ecx
imul   $0x2710,-0x2c(%rbp),%eax
add    %eax,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x4c(%rbp),%eax
add    $0x10bd9,%eax
mov    %eax,-0x44(%rbp)
mov    -0x44(%rbp),%eax
shl    $0x2,%eax
mov    $0x23ab1,%ecx
cltd
idiv   %ecx
mov    %eax,-0x48(%rbp)
mov    -0x44(%rbp),%eax
mov    %eax,-0x58(%rbp)
imul   $0x23ab1,-0x48(%rbp),%eax
add    $0x3,%eax
mov    $0x4,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x58(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x44(%rbp)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
imul   $0xfa0,%eax,%eax
mov    $0x164b09,%ecx
cltd
idiv   %ecx
mov    %eax,-0x38(%rbp)
mov    -0x44(%rbp),%eax
mov    %eax,-0x54(%rbp)
imul   $0x5b5,-0x38(%rbp),%eax
mov    $0x4,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x54(%rbp),%eax
sub    %ecx,%eax
add    $0x1f,%eax
mov    %eax,-0x44(%rbp)
imul   $0x50,-0x44(%rbp),%eax
mov    $0x98f,%ecx
cltd
idiv   %ecx
mov    %eax,-0x3c(%rbp)
mov    -0x44(%rbp),%eax
mov    %eax,-0x50(%rbp)
imul   $0x98f,-0x3c(%rbp),%eax
mov    $0x50,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x50(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x40(%rbp)
mov    -0x3c(%rbp),%eax
mov    $0xb,%ecx
cltd
idiv   %ecx
mov    %eax,-0x44(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x2,%eax
imul   $0xc,-0x44(%rbp),%ecx
sub    %ecx,%eax
mov    %eax,-0x3c(%rbp)
mov    -0x48(%rbp),%eax
sub    $0x31,%eax
imul   $0x64,%eax,%eax
add    -0x38(%rbp),%eax
add    -0x44(%rbp),%eax
mov    %eax,-0x38(%rbp)
mov    -0x40(%rbp),%ecx
imul   $0x64,-0x3c(%rbp),%eax
add    %eax,%ecx
imul   $0x2710,-0x38(%rbp),%eax
add    %eax,%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<DateFromJulian>:
mov    %rdx,%r8
movabs $0x1845c8a0ce512957,%rdx
c8 45 18
mov    %rdi,%rax
imul   %rdx
mov    %rdx,%rax
shr    $0x3f,%rax
sar    $0xd,%rdx
add    %rax,%rdx
imul   $0xfffffffffffeae80,%rdx,%rax
add    %rdi,%rax
cltq
imul   $0xffffffff91a2b3c5,%rax,%rdi
shr    $0x20,%rdi
add    %eax,%edi
mov    %edi,%ecx
shr    $0x1f,%ecx
sar    $0xb,%edi
add    %ecx,%edi
imul   $0xfffff1f0,%edi,%ecx
add    %eax,%ecx
movslq %ecx,%r9
imul   $0xffffffff88888889,%r9,%rcx
shr    $0x20,%rcx
add    %r9d,%ecx
mov    %ecx,%eax
shr    $0x1f,%eax
sar    $0x5,%ecx
add    %eax,%ecx
imul   $0x2710,%edi,%eax
lea    (%rcx,%rcx,4),%ecx
add    %r9d,%eax
lea    (%rax,%rcx,8),%eax
mov    %eax,(%r8)
lea    0x10bd9(%rdx),%edi
lea    0x42f64(,%rdx,4),%eax
cltq
imul   $0x396b06bd,%rax,%r8
mov    %r8,%rax
shr    $0x3f,%rax
shr    $0x20,%r8
sar    $0xf,%r8d
add    %eax,%r8d
imul   $0x23ab1,%r8d,%eax
lea    0x3(%rax),%ecx
add    $0x6,%eax
test   %ecx,%ecx
cmovns %ecx,%eax
sar    $0x2,%eax
sub    %eax,%edi
imul   $0xfa0,%edi,%eax
mov    %eax,%ecx
add    $0xfa0,%ecx
movslq %ecx,%rcx
imul   $0xffffffffb7bbe2dd,%rcx,%rcx
shr    $0x20,%rcx
lea    (%rcx,%rax,1),%r10d
add    $0xfa0,%r10d
mov    %r10d,%eax
shr    $0x1f,%eax
sar    $0x14,%r10d
add    %eax,%r10d
imul   $0x5b5,%r10d,%eax
lea    0x3(%rax),%edx
test   %eax,%eax
cmovns %eax,%edx
sar    $0x2,%edx
neg    %edx
lea    (%rdi,%rdx,1),%r9d
add    $0x1f,%r9d
mov    %r9d,%eax
shl    $0x4,%eax
lea    (%rax,%rax,4),%eax
movslq %eax,%rdx
imul   $0x1ac83d19,%rdx,%rdi
mov    %rdi,%rax
shr    $0x3f,%rax
shr    $0x20,%rdi
sar    $0x8,%edi
add    %eax,%edi
imul   $0x98f,%edi,%eax
cltq
imul   $0xffffffff99999999,%rax,%rax
mov    %rax,%rcx
shr    $0x3f,%rcx
shr    $0x20,%rax
sar    $0x5,%eax
add    %ecx,%eax
add    %r9d,%eax
imul   $0xffffffff9bd2d7d7,%rdx,%rcx
shr    $0x20,%rcx
add    %ecx,%edx
mov    %edx,%ecx
shr    $0x1f,%ecx
sar    $0xe,%edx
add    %ecx,%edx
lea    0x0(,%rdx,4),%ecx
lea    (%rcx,%rcx,2),%ecx
sub    %ecx,%edi
imul   $0x64,%edi,%ecx
imul   $0x64,%r8d,%edi
add    %r10d,%edi
add    %edx,%edi
imul   $0x2710,%edi,%edx
add    %eax,%edx
lea    (%rcx,%rdx,1),%eax
add    $0xfd145288,%eax
mov    %eax,(%rsi)
ret

LLVM IR (-O0):
define void @DateFromJulian(i64 %0, i32* %1, i32* %2) {
%4 = alloca i64
%5 = alloca i32*
%6 = alloca i32*
%7 = alloca i32
%8 = alloca i64
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
store i64 %0, i64* %4
store i32* %1, i32** %5
store i32* %2, i32** %6
%18 = load i64, i64* %4
%19 = sdiv i64 %18, 86400
store i64 %19, i64* %8
%20 = load i64, i64* %8
%21 = trunc i64 %20 to i32
store i32 %21, i32* %17
%22 = load i64, i64* %4
%23 = load i64, i64* %8
%24 = mul nsw i64 %23, 24
%25 = mul nsw i64 %24, 3600
%26 = sub nsw i64 %22, %25
%27 = trunc i64 %26 to i32
store i32 %27, i32* %7
%28 = load i32, i32* %7
%29 = sdiv i32 %28, 3600
store i32 %29, i32* %9
%30 = load i32, i32* %7
%31 = load i32, i32* %9
%32 = mul nsw i32 %31, 3600
%33 = sub nsw i32 %30, %32
%34 = sdiv i32 %33, 60
store i32 %34, i32* %10
%35 = load i32, i32* %7
%36 = load i32, i32* %9
%37 = mul nsw i32 %36, 3600
%38 = sub nsw i32 %35, %37
%39 = load i32, i32* %10
%40 = mul nsw i32 %39, 60
%41 = sub nsw i32 %38, %40
store i32 %41, i32* %11
%42 = load i32, i32* %11
%43 = load i32, i32* %10
%44 = mul nsw i32 %43, 100
%45 = add nsw i32 %42, %44
%46 = load i32, i32* %9
%47 = mul nsw i32 %46, 10000
%48 = add nsw i32 %45, %47
%49 = load i32*, i32** %6
store i32 %48, i32* %49
%50 = load i32, i32* %17
%51 = add nsw i32 %50, 68569
store i32 %51, i32* %15
%52 = load i32, i32* %15
%53 = mul nsw i32 4, %52
%54 = sdiv i32 %53, 146097
store i32 %54, i32* %16
%55 = load i32, i32* %15
%56 = load i32, i32* %16
%57 = mul nsw i32 146097, %56
%58 = add nsw i32 %57, 3
%59 = sdiv i32 %58, 4
%60 = sub nsw i32 %55, %59
store i32 %60, i32* %15
%61 = load i32, i32* %15
%62 = add nsw i32 %61, 1
%63 = mul nsw i32 4000, %62
%64 = sdiv i32 %63, 1461001
store i32 %64, i32* %12
%65 = load i32, i32* %15
%66 = load i32, i32* %12
%67 = mul nsw i32 1461, %66
%68 = sdiv i32 %67, 4
%69 = sub nsw i32 %65, %68
%70 = add nsw i32 %69, 31
store i32 %70, i32* %15
%71 = load i32, i32* %15
%72 = mul nsw i32 80, %71
%73 = sdiv i32 %72, 2447
store i32 %73, i32* %13
%74 = load i32, i32* %15
%75 = load i32, i32* %13
%76 = mul nsw i32 2447, %75
%77 = sdiv i32 %76, 80
%78 = sub nsw i32 %74, %77
store i32 %78, i32* %14
%79 = load i32, i32* %13
%80 = sdiv i32 %79, 11
store i32 %80, i32* %15
%81 = load i32, i32* %13
%82 = add nsw i32 %81, 2
%83 = load i32, i32* %15
%84 = mul nsw i32 12, %83
%85 = sub nsw i32 %82, %84
store i32 %85, i32* %13
%86 = load i32, i32* %16
%87 = sub nsw i32 %86, 49
%88 = mul nsw i32 100, %87
%89 = load i32, i32* %12
%90 = add nsw i32 %88, %89
%91 = load i32, i32* %15
%92 = add nsw i32 %90, %91
store i32 %92, i32* %12
%93 = load i32, i32* %14
%94 = load i32, i32* %13
%95 = mul nsw i32 %94, 100
%96 = add nsw i32 %93, %95
%97 = load i32, i32* %12
%98 = mul nsw i32 %97, 10000
%99 = add nsw i32 %96, %98
%100 = load i32*, i32** %5
store i32 %99, i32* %100
ret void
}

LLVM IR (-O2):
define void @DateFromJulian(i64 %0, i32* nocapture writeonly %1, i32* nocapture writeonly %2) {
%4 = sdiv i64 %0, 86400
%5 = trunc i64 %4 to i32
%6 = mul nsw i64 %4, -86400
%7 = add i64 %6, %0
%8 = trunc i64 %7 to i32
%9 = sdiv i32 %8, 3600
%10 = mul nsw i32 %9, -3600
%11 = add i32 %10, %8
%12 = sdiv i32 %11, 60
%13 = mul nsw i32 %9, 10000
%14 = mul nsw i32 %12, 40
%15 = add i32 %11, %13
%16 = add i32 %15, %14
store i32 %16, i32* %2
%17 = add nsw i32 %5, 68569
%18 = shl nsw i32 %17, 2
%19 = sdiv i32 %18, 146097
%20 = mul nsw i32 %19, 146097
%21 = add nsw i32 %20, 3
%22 = sdiv i32 %21, -4
%23 = add i32 %22, %17
%24 = mul i32 %23, 4000
%25 = add i32 %24, 4000
%26 = sdiv i32 %25, 1461001
%27 = mul nsw i32 %26, 1461
%28 = sdiv i32 %27, -4
%29 = add i32 %23, 31
%30 = add i32 %29, %28
%31 = mul nsw i32 %30, 80
%32 = sdiv i32 %31, 2447
%33 = mul nsw i32 %32, 2447
%34 = sdiv i32 %33, -80
%35 = add i32 %34, %30
%36 = sdiv i32 %31, 26917
%37 = add nsw i32 %32, 2
%38 = mul nsw i32 %36, -12
%39 = add nsw i32 %37, %38
%40 = mul nsw i32 %19, 100
%41 = add nsw i32 %40, -4900
%42 = add nsw i32 %41, %26
%43 = add nsw i32 %42, %36
%44 = mul nsw i32 %39, 100
%45 = mul nsw i32 %43, 10000
%46 = add i32 %35, %45
%47 = add i32 %46, %44
store i32 %47, i32* %1
ret void
}