void lcd_device_init(void) {
  lcd_write((sizeof((int[]){0x01}) / sizeof(int)), 0x01);
  mtick_sleep(5);
  lcd_write((sizeof((int[]){0x28}) / sizeof(int)), 0x28);
  lcd_write((sizeof((int[]){0xCB, 0x39, 0X2C, 0x00, 0x34, 0x02}) / sizeof(int)),
            0xCB, 0x39, 0X2C, 0x00, 0x34, 0x02);
  lcd_write((sizeof((int[]){0xCF, 0x00, 0x83, 0x30}) / sizeof(int)), 0xCF, 0x00,
            0x83, 0x30);
  lcd_write((sizeof((int[]){0xED, 0x64, 0x03, 0x12, 0x81}) / sizeof(int)), 0xED,
            0x64, 0x03, 0x12, 0x81);
  lcd_write((sizeof((int[]){0xE8, 0x85, 0x01, 0x79}) / sizeof(int)), 0xE8, 0x85,
            0x01, 0x79);
  lcd_write((sizeof((int[]){0xEA, 0x00, 0x00}) / sizeof(int)), 0xEA, 0x00,
            0x00);
  lcd_write((sizeof((int[]){0xF7, 0x20}) / sizeof(int)), 0xF7, 0x20);
  lcd_write((sizeof((int[]){0xC0, 0x26}) / sizeof(int)), 0xC0, 0x26);
  lcd_write((sizeof((int[]){0xC1, 0x11}) / sizeof(int)), 0xC1, 0x11);
  lcd_write((sizeof((int[]){0xC5, 0x35, 0x3E}) / sizeof(int)), 0xC5, 0x35,
            0x3E);
  lcd_write((sizeof((int[]){0xC7, 0xBE}) / sizeof(int)), 0xC7, 0xBE);
  lcd_write((sizeof((int[]){0x3A, 0x55}) / sizeof(int)), 0x3A, 0x55);
  lcd_write((sizeof((int[]){0x36U, 0x48}) / sizeof(int)), 0x36U, 0x48);
  lcd_write((sizeof((int[]){0xB1, 0x00, 0x1B}) / sizeof(int)), 0xB1, 0x00,
            0x1B);
  lcd_write((sizeof((int[]){0x26, 0x01}) / sizeof(int)), 0x26, 0x01);
  lcd_write((sizeof((int[]){0xB7, 0x07}) / sizeof(int)), 0xB7, 0x07);
  lcd_write((sizeof((int[]){0xB6, 0x0A, 0x82, 0x27, 0x00}) / sizeof(int)), 0xB6,
            0x0A, 0x82, 0x27, 0x00);
  lcd_write((sizeof((int[]){0x11}) / sizeof(int)), 0x11);
  mtick_sleep(100);
  lcd_write((sizeof((int[]){0x29}) / sizeof(int)), 0x29);
  mtick_sleep(20);
  console_set_color(UINT16_C(0xFFFF));
  console_set_bg_color(UINT16_C(0x0000));
  console_clear_screen();
}


x86 assembly (clang, -O0):
<lcd_device_init>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x5,%edi
mov    $0x0,%al
call   1030 <mtick_sleep@plt>
mov    $0x1,%edi
mov    $0x28,%esi
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x6,%edi
mov    $0xcb,%esi
mov    $0x39,%edx
mov    $0x2c,%ecx
xor    %r8d,%r8d
mov    $0x34,%r9d
movl   $0x2,(%rsp)
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x4,%edi
mov    $0xcf,%esi
xor    %edx,%edx
mov    $0x83,%ecx
mov    $0x30,%r8d
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x5,%edi
mov    $0xed,%esi
mov    $0x64,%edx
mov    $0x3,%ecx
mov    $0x12,%r8d
mov    $0x81,%r9d
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x4,%edi
mov    $0xe8,%esi
mov    $0x85,%edx
mov    $0x1,%ecx
mov    $0x79,%r8d
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x3,%edi
mov    $0xea,%esi
xor    %ecx,%ecx
mov    %ecx,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xf7,%esi
mov    $0x20,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xc0,%esi
mov    $0x26,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xc1,%esi
mov    $0x11,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x3,%edi
mov    $0xc5,%esi
mov    $0x35,%edx
mov    $0x3e,%ecx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xc7,%esi
mov    $0xbe,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0x3a,%esi
mov    $0x55,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0x36,%esi
mov    $0x48,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x3,%edi
mov    $0xb1,%esi
xor    %edx,%edx
mov    $0x1b,%ecx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0x26,%esi
mov    $0x1,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xb7,%esi
mov    $0x7,%edx
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x5,%edi
mov    $0xb6,%esi
mov    $0xa,%edx
mov    $0x82,%ecx
mov    $0x27,%r8d
xor    %r9d,%r9d
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x1,%edi
mov    $0x11,%esi
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x64,%edi
mov    $0x0,%al
call   1030 <mtick_sleep@plt>
mov    $0x1,%edi
mov    $0x29,%esi
mov    $0x0,%al
call   1040 <lcd_write@plt>
mov    $0x14,%edi
mov    $0x0,%al
call   1030 <mtick_sleep@plt>
mov    $0xffff,%edi
mov    $0x0,%al
call   1070 <UINT16_C@plt>
mov    %eax,%edi
mov    $0x0,%al
call   1060 <console_set_color@plt>
xor    %edi,%edi
mov    $0x0,%al
call   1070 <UINT16_C@plt>
mov    %eax,%edi
mov    $0x0,%al
call   1050 <console_set_bg_color@plt>
mov    $0x0,%al
call   1080 <console_clear_screen@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<lcd_device_init>:
push   %rax
mov    $0x1,%edi
mov    $0x1,%esi
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x5,%edi
xor    %eax,%eax
call   1030 <mtick_sleep@plt>
mov    $0x1,%edi
mov    $0x28,%esi
xor    %eax,%eax
call   1040 <lcd_write@plt>
movl   $0x2,(%rsp)
mov    $0x6,%edi
mov    $0xcb,%esi
mov    $0x39,%edx
mov    $0x2c,%ecx
xor    %r8d,%r8d
mov    $0x34,%r9d
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x4,%edi
mov    $0xcf,%esi
xor    %edx,%edx
mov    $0x83,%ecx
mov    $0x30,%r8d
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x5,%edi
mov    $0xed,%esi
mov    $0x64,%edx
mov    $0x3,%ecx
mov    $0x12,%r8d
mov    $0x81,%r9d
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x4,%edi
mov    $0xe8,%esi
mov    $0x85,%edx
mov    $0x1,%ecx
mov    $0x79,%r8d
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x3,%edi
mov    $0xea,%esi
xor    %edx,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xf7,%esi
mov    $0x20,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xc0,%esi
mov    $0x26,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xc1,%esi
mov    $0x11,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x3,%edi
mov    $0xc5,%esi
mov    $0x35,%edx
mov    $0x3e,%ecx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xc7,%esi
mov    $0xbe,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0x3a,%esi
mov    $0x55,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0x36,%esi
mov    $0x48,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x3,%edi
mov    $0xb1,%esi
xor    %edx,%edx
mov    $0x1b,%ecx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0x26,%esi
mov    $0x1,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x2,%edi
mov    $0xb7,%esi
mov    $0x7,%edx
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x5,%edi
mov    $0xb6,%esi
mov    $0xa,%edx
mov    $0x82,%ecx
mov    $0x27,%r8d
xor    %r9d,%r9d
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x1,%edi
mov    $0x11,%esi
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x64,%edi
xor    %eax,%eax
call   1030 <mtick_sleep@plt>
mov    $0x1,%edi
mov    $0x29,%esi
xor    %eax,%eax
call   1040 <lcd_write@plt>
mov    $0x14,%edi
xor    %eax,%eax
call   1030 <mtick_sleep@plt>
mov    $0xffff,%edi
xor    %eax,%eax
call   1070 <UINT16_C@plt>
mov    %eax,%edi
xor    %eax,%eax
call   1060 <console_set_color@plt>
xor    %edi,%edi
xor    %eax,%eax
call   1070 <UINT16_C@plt>
mov    %eax,%edi
xor    %eax,%eax
call   1050 <console_set_bg_color@plt>
xor    %eax,%eax
pop    %rcx
jmp    1080 <console_clear_screen@plt>

LLVM IR (-O0):
define void @lcd_device_init() {
%1 = call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 1)
%2 = call i32 (i32, ...) bitcast (i32 (...)* @mtick_sleep to i32 (i32, ...)*)(i32 5)
%3 = call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 40)
%4 = call i32 (i64, i32, i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, i32, i32, ...)*)(i64 6, i32 203, i32 57, i32 44, i32 0, i32 52, i32 2)
%5 = call i32 (i64, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, ...)*)(i64 4, i32 207, i32 0, i32 131, i32 48)
%6 = call i32 (i64, i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, i32, ...)*)(i64 5, i32 237, i32 100, i32 3, i32 18, i32 129)
%7 = call i32 (i64, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, ...)*)(i64 4, i32 232, i32 133, i32 1, i32 121)
%8 = call i32 (i64, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, ...)*)(i64 3, i32 234, i32 0, i32 0)
%9 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 247, i32 32)
%10 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 192, i32 38)
%11 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 193, i32 17)
%12 = call i32 (i64, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, ...)*)(i64 3, i32 197, i32 53, i32 62)
%13 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 199, i32 190)
%14 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 58, i32 85)
%15 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 54, i32 72)
%16 = call i32 (i64, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, ...)*)(i64 3, i32 177, i32 0, i32 27)
%17 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 38, i32 1)
%18 = call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 183, i32 7)
%19 = call i32 (i64, i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, i32, ...)*)(i64 5, i32 182, i32 10, i32 130, i32 39, i32 0)
%20 = call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 17)
%21 = call i32 (i32, ...) bitcast (i32 (...)* @mtick_sleep to i32 (i32, ...)*)(i32 100)
%22 = call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 41)
%23 = call i32 (i32, ...) bitcast (i32 (...)* @mtick_sleep to i32 (i32, ...)*)(i32 20)
%24 = call i32 (i32, ...) bitcast (i32 (...)* @UINT16_C to i32 (i32, ...)*)(i32 65535)
%25 = call i32 (i32, ...) bitcast (i32 (...)* @console_set_color to i32 (i32, ...)*)(i32 %24)
%26 = call i32 (i32, ...) bitcast (i32 (...)* @UINT16_C to i32 (i32, ...)*)(i32 0)
%27 = call i32 (i32, ...) bitcast (i32 (...)* @console_set_bg_color to i32 (i32, ...)*)(i32 %26)
%28 = call i32 (...) @console_clear_screen()
ret void
}

LLVM IR (-O2):
define void @lcd_device_init() {
%1 = tail call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 1)
%2 = tail call i32 (i32, ...) bitcast (i32 (...)* @mtick_sleep to i32 (i32, ...)*)(i32 5)
%3 = tail call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 40)
%4 = tail call i32 (i64, i32, i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, i32, i32, ...)*)(i64 6, i32 203, i32 57, i32 44, i32 0, i32 52, i32 2)
%5 = tail call i32 (i64, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, ...)*)(i64 4, i32 207, i32 0, i32 131, i32 48)
%6 = tail call i32 (i64, i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, i32, ...)*)(i64 5, i32 237, i32 100, i32 3, i32 18, i32 129)
%7 = tail call i32 (i64, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, ...)*)(i64 4, i32 232, i32 133, i32 1, i32 121)
%8 = tail call i32 (i64, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, ...)*)(i64 3, i32 234, i32 0, i32 0)
%9 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 247, i32 32)
%10 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 192, i32 38)
%11 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 193, i32 17)
%12 = tail call i32 (i64, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, ...)*)(i64 3, i32 197, i32 53, i32 62)
%13 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 199, i32 190)
%14 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 58, i32 85)
%15 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 54, i32 72)
%16 = tail call i32 (i64, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, ...)*)(i64 3, i32 177, i32 0, i32 27)
%17 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 38, i32 1)
%18 = tail call i32 (i64, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, ...)*)(i64 2, i32 183, i32 7)
%19 = tail call i32 (i64, i32, i32, i32, i32, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, i32, i32, i32, i32, ...)*)(i64 5, i32 182, i32 10, i32 130, i32 39, i32 0)
%20 = tail call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 17)
%21 = tail call i32 (i32, ...) bitcast (i32 (...)* @mtick_sleep to i32 (i32, ...)*)(i32 100)
%22 = tail call i32 (i64, i32, ...) bitcast (i32 (...)* @lcd_write to i32 (i64, i32, ...)*)(i64 1, i32 41)
%23 = tail call i32 (i32, ...) bitcast (i32 (...)* @mtick_sleep to i32 (i32, ...)*)(i32 20)
%24 = tail call i32 (i32, ...) bitcast (i32 (...)* @UINT16_C to i32 (i32, ...)*)(i32 65535)
%25 = tail call i32 (i32, ...) bitcast (i32 (...)* @console_set_color to i32 (i32, ...)*)(i32 %24)
%26 = tail call i32 (i32, ...) bitcast (i32 (...)* @UINT16_C to i32 (i32, ...)*)(i32 0)
%27 = tail call i32 (i32, ...) bitcast (i32 (...)* @console_set_bg_color to i32 (i32, ...)*)(i32 %26)
%28 = tail call i32 (...) @console_clear_screen()
ret void
}