void init_camera_interrupts() {
  (*(volatile unsigned long *)((0xE01FC148))) = 0x5;
  (*(volatile unsigned long *)((0xE01FC14C))) = 0x5;
  (*(volatile unsigned long *)((0xE002C000))) =
      ((*(volatile unsigned long *)((0xE002C000))) & ~0xc0000000) | 0x40000000;
  (*(volatile unsigned long *)((0xE002C004))) =
      ((*(volatile unsigned long *)((0xE002C004))) & ~0x00000003) | 0x00000001;
  (*(volatile unsigned long *)((0xE01FC140))) = 0x7;
  (*(volatile unsigned long *)((0xE002C004))) =
      ((*(volatile unsigned long *)((0xE002C004))) & ~0x0000000c) | 0x00000008;
  (*(volatile unsigned long *)((0xE0008028))) = 0x140;
  (*(volatile unsigned long *)((0xE0008004))) = 0x9;
  (*(volatile unsigned long *)((0xE0008000))) = 0xff;
  (*(volatile unsigned long *)(((0xFFFFF000) + 0x00C))) = 0x04000;
}


x86 assembly (clang, -O0):
<init_camera_interrupts>:
push   %rbp
mov    %rsp,%rbp
mov    $0xe01fc148,%eax
movq   $0x5,(%rax)
mov    $0xe01fc14c,%eax
movq   $0x5,(%rax)
mov    $0xe002c000,%eax
mov    (%rax),%rcx
and    $0x3fffffff,%rcx
or     $0x40000000,%rcx
mov    $0xe002c000,%eax
mov    %rcx,(%rax)
mov    $0xe002c004,%eax
mov    (%rax),%rcx
and    $0xfffffffffffffffc,%rcx
or     $0x1,%rcx
mov    $0xe002c004,%eax
mov    %rcx,(%rax)
mov    $0xe01fc140,%eax
movq   $0x7,(%rax)
mov    $0xe002c004,%eax
mov    (%rax),%rcx
and    $0xfffffffffffffff3,%rcx
or     $0x8,%rcx
mov    $0xe002c004,%eax
mov    %rcx,(%rax)
mov    $0xe0008028,%eax
movq   $0x140,(%rax)
mov    $0xe0008004,%eax
movq   $0x9,(%rax)
mov    $0xe0008000,%eax
movq   $0xff,(%rax)
mov    $0xfffff00c,%eax
movq   $0x4000,(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<init_camera_interrupts>:
mov    $0xe002c004,%eax
movq   $0x5,0x1d0144(%rax)
movq   $0x5,0x1d0148(%rax)
mov    -0x4(%rax),%rcx
and    $0x3fffffff,%ecx
or     $0x40000000,%rcx
mov    %rcx,-0x4(%rax)
mov    (%rax),%rcx
and    $0xfffffffffffffffc,%rcx
or     $0x1,%rcx
mov    %rcx,(%rax)
movq   $0x7,0x1d013c(%rax)
mov    (%rax),%rcx
and    $0xfffffffffffffff3,%rcx
or     $0x8,%rcx
mov    %rcx,(%rax)
movq   $0x140,-0x23fdc(%rax)
movq   $0x9,-0x24000(%rax)
movq   $0xff,-0x24004(%rax)
movq   $0x4000,0x1ffd3008(%rax)
ret

LLVM IR (-O0):
define void @init_camera_interrupts() {
store volatile i64 5, i64* inttoptr (i64 3760177480 to i64*)
store volatile i64 5, i64* inttoptr (i64 3760177484 to i64*)
%1 = load volatile i64, i64* inttoptr (i64 3758276608 to i64*)
%2 = and i64 %1, 1073741823
%3 = or i64 %2, 1073741824
store volatile i64 %3, i64* inttoptr (i64 3758276608 to i64*)
%4 = load volatile i64, i64* inttoptr (i64 3758276612 to i64*)
%5 = and i64 %4, -4
%6 = or i64 %5, 1
store volatile i64 %6, i64* inttoptr (i64 3758276612 to i64*)
store volatile i64 7, i64* inttoptr (i64 3760177472 to i64*)
%7 = load volatile i64, i64* inttoptr (i64 3758276612 to i64*)
%8 = and i64 %7, -13
%9 = or i64 %8, 8
store volatile i64 %9, i64* inttoptr (i64 3758276612 to i64*)
store volatile i64 320, i64* inttoptr (i64 3758129192 to i64*)
store volatile i64 9, i64* inttoptr (i64 3758129156 to i64*)
store volatile i64 255, i64* inttoptr (i64 3758129152 to i64*)
store volatile i64 16384, i64* inttoptr (i64 4294963212 to i64*)
ret void
}

LLVM IR (-O2):
define void @init_camera_interrupts() {
store volatile i64 5, i64* inttoptr (i64 3760177480 to i64*)
store volatile i64 5, i64* inttoptr (i64 3760177484 to i64*)
%1 = load volatile i64, i64* inttoptr (i64 3758276608 to i64*)
%2 = and i64 %1, 1073741823
%3 = or i64 %2, 1073741824
store volatile i64 %3, i64* inttoptr (i64 3758276608 to i64*)
%4 = load volatile i64, i64* inttoptr (i64 3758276612 to i64*)
%5 = and i64 %4, -4
%6 = or i64 %5, 1
store volatile i64 %6, i64* inttoptr (i64 3758276612 to i64*)
store volatile i64 7, i64* inttoptr (i64 3760177472 to i64*)
%7 = load volatile i64, i64* inttoptr (i64 3758276612 to i64*)
%8 = and i64 %7, -13
%9 = or i64 %8, 8
store volatile i64 %9, i64* inttoptr (i64 3758276612 to i64*)
store volatile i64 320, i64* inttoptr (i64 3758129192 to i64*)
store volatile i64 9, i64* inttoptr (i64 3758129156 to i64*)
store volatile i64 255, i64* inttoptr (i64 3758129152 to i64*)
store volatile i64 16384, i64* inttoptr (i64 4294963212 to i64*)
ret void
}