// File: t0mm4rx[P]piscine_cpp/day02/ex01/main.cpp
// Function: main
int main(void) {
	Fixed a;
	Fixed const b(10);
	Fixed const c(42.42f);
	Fixed const d(b);

	a = Fixed(1234.4321f);
	std::cout << "a is " << a << std::endl;
	std::cout << "b is " << b << std::endl;
	std::cout << "c is " << c << std::endl;
	std::cout << "d is " << d << std::endl;
	std::cout << "a is " << a.toInt() << " as integer" << std::endl;
	std::cout << "b is " << b.toInt() << " as integer" << std::endl;
	std::cout << "c is " << c.toInt() << " as integer" << std::endl;
	std::cout << "d is " << d.toInt() << " as integer" << std::endl;
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movl $0x0, -0x4(%rbp)
leaq -0x8(%rbp), %rdi
callq 0x1230
leaq -0xc(%rbp), %rdi
movl $0xa, %esi
callq 0x1250
jmp 0x140b
leaq -0x20(%rbp), %rdi
movss 0xbf1(%rip), %xmm0      # 0x2008
callq 0x1270
jmp 0x141e
leaq -0x24(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq 0x12c0
jmp 0x142d
leaq -0x28(%rbp), %rdi
movss 0xbd3(%rip), %xmm0      # 0x200c
callq 0x1270
jmp 0x1440
leaq -0x8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x12f0
jmp 0x144f
leaq -0x28(%rbp), %rdi
callq 0x12b0
movq 0x2b79(%rip), %rdi      # 0x3fd8
leaq 0xbaa(%rip), %rsi       # 0x2010
callq 0x1050
movq %rax, -0x30(%rbp)
jmp 0x1471
movq -0x30(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq 0x13a0
movq %rax, -0x38(%rbp)
jmp 0x1484
movq -0x38(%rbp), %rdi
movq 0x2b39(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x1496
movq 0x2b3b(%rip), %rdi      # 0x3fd8
leaq 0xb72(%rip), %rsi       # 0x2016
callq 0x1050
movq %rax, -0x40(%rbp)
jmp 0x14af
movq -0x40(%rbp), %rdi
leaq -0xc(%rbp), %rsi
callq 0x13a0
movq %rax, -0x48(%rbp)
jmp 0x14c2
movq -0x48(%rbp), %rdi
movq 0x2afb(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x14d4
movq 0x2afd(%rip), %rdi      # 0x3fd8
leaq 0xb3a(%rip), %rsi       # 0x201c
callq 0x1050
movq %rax, -0x50(%rbp)
jmp 0x14ed
movq -0x50(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x13a0
movq %rax, -0x58(%rbp)
jmp 0x1500
movq -0x58(%rbp), %rdi
movq 0x2abd(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x1512
movq 0x2abf(%rip), %rdi      # 0x3fd8
leaq 0xb02(%rip), %rsi       # 0x2022
callq 0x1050
movq %rax, -0x60(%rbp)
jmp 0x152b
movq -0x60(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x13a0
movq %rax, -0x68(%rbp)
jmp 0x153e
movq -0x68(%rbp), %rdi
movq 0x2a7f(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x1550
movq 0x2a81(%rip), %rdi      # 0x3fd8
leaq 0xab2(%rip), %rsi       # 0x2010
callq 0x1050
movq %rax, -0x70(%rbp)
jmp 0x1569
leaq -0x8(%rbp), %rdi
callq 0x1380
movl %eax, -0x74(%rbp)
jmp 0x1577
movl -0x74(%rbp), %esi
movq -0x70(%rbp), %rdi
callq 0x1090
movq %rax, -0x80(%rbp)
jmp 0x1589
movq -0x80(%rbp), %rdi
leaq 0xa94(%rip), %rsi       # 0x2028
callq 0x1050
movq %rax, -0x88(%rbp)
jmp 0x15a2
movq -0x88(%rbp), %rdi
movq 0x2a18(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x15b7
movq 0x2a1a(%rip), %rdi      # 0x3fd8
leaq 0xa51(%rip), %rsi       # 0x2016
callq 0x1050
movq %rax, -0x90(%rbp)
jmp 0x15d3
leaq -0xc(%rbp), %rdi
callq 0x1380
movl %eax, -0x94(%rbp)
jmp 0x15e4
movl -0x94(%rbp), %esi
movq -0x90(%rbp), %rdi
callq 0x1090
movq %rax, -0xa0(%rbp)
jmp 0x15ff
movq -0xa0(%rbp), %rdi
leaq 0xa1b(%rip), %rsi       # 0x2028
callq 0x1050
movq %rax, -0xa8(%rbp)
jmp 0x161b
movq -0xa8(%rbp), %rdi
movq 0x299f(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x1630
movq 0x29a1(%rip), %rdi      # 0x3fd8
leaq 0x9de(%rip), %rsi       # 0x201c
callq 0x1050
movq %rax, -0xb0(%rbp)
jmp 0x164c
leaq -0x20(%rbp), %rdi
callq 0x1380
movl %eax, -0xb4(%rbp)
jmp 0x165d
movl -0xb4(%rbp), %esi
movq -0xb0(%rbp), %rdi
callq 0x1090
movq %rax, -0xc0(%rbp)
jmp 0x1678
movq -0xc0(%rbp), %rdi
leaq 0x9a2(%rip), %rsi       # 0x2028
callq 0x1050
movq %rax, -0xc8(%rbp)
jmp 0x1694
movq -0xc8(%rbp), %rdi
movq 0x2926(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x16a9
movq 0x2928(%rip), %rdi      # 0x3fd8
leaq 0x96b(%rip), %rsi       # 0x2022
callq 0x1050
movq %rax, -0xd0(%rbp)
jmp 0x16c5
leaq -0x24(%rbp), %rdi
callq 0x1380
movl %eax, -0xd4(%rbp)
jmp 0x16d6
movl -0xd4(%rbp), %esi
movq -0xd0(%rbp), %rdi
callq 0x1090
movq %rax, -0xe0(%rbp)
jmp 0x16f1
movq -0xe0(%rbp), %rdi
leaq 0x929(%rip), %rsi       # 0x2028
callq 0x1050
movq %rax, -0xe8(%rbp)
jmp 0x170d
movq -0xe8(%rbp), %rdi
movq 0x28ad(%rip), %rsi      # 0x3fc8
callq 0x1070
jmp 0x1722
movl $0x0, -0x4(%rbp)
leaq -0x24(%rbp), %rdi
callq 0x12b0
leaq -0x20(%rbp), %rdi
callq 0x12b0
leaq -0xc(%rbp), %rdi
callq 0x12b0
leaq -0x8(%rbp), %rdi
callq 0x12b0
movl -0x4(%rbp), %eax
addq $0xf0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x17c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x17b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x17af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x17a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x12b0
leaq -0x24(%rbp), %rdi
callq 0x12b0
leaq -0x20(%rbp), %rdi
callq 0x12b0
leaq -0xc(%rbp), %rdi
callq 0x12b0
leaq -0x8(%rbp), %rdi
callq 0x12b0
movq -0x18(%rbp), %rdi
callq 0x10a0