// File: /workspace/github_cpp_makefile_star2_O2/t0mm4rx[P]piscine_cpp/day05/ex03/main.cpp
// Function: main
int main(void)
{
	Form		*form;
	Bureaucrat	john("John", 23);
	Intern		intern;

	form = intern.makeForm("robotomy", "John");
	john.signForm(*form);
	john.executeForm(*form);
	delete form;
	form = intern.makeForm("shr", "John");
	form = intern.makeForm("shrubbery", "house");
	john.signForm(*form);
	john.executeForm(*form);
	delete form;
	form = intern.makeForm("presidential", "Micheal");
	john.signForm(*form);
	john.executeForm(*form);
	delete form;
	return (0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
leaq 0xb49(%rip), %rsi       # 0x4448
leaq -0x158(%rbp), %rdi
leaq -0x1d0(%rbp), %rdx
callq 0x3132
leaq -0x38(%rbp), %rdi
leaq -0x158(%rbp), %rsi
pushq $0x17
popq %rdx
callq 0x246c
leaq -0x158(%rbp), %rdi
callq 0x21d8
leaq -0x1d0(%rbp), %rdi
callq 0x2c60
leaq 0x819(%rip), %rsi       # 0x415d
leaq -0x138(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x3132
leaq 0xaed(%rip), %rsi       # 0x4448
leaq -0x118(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3132
leaq -0x1d0(%rbp), %rdi
leaq -0x138(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0x2d68
movq %rax, %rbx
leaq -0x118(%rbp), %rdi
callq 0x21d8
leaq -0x138(%rbp), %rdi
callq 0x21d8
leaq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x2572
leaq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x2664
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
leaq 0xa85(%rip), %rsi       # 0x444d
leaq -0xf8(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x3132
leaq 0xa69(%rip), %rsi       # 0x4448
leaq -0xd8(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3132
leaq -0x1d0(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
leaq -0xd8(%rbp), %rdx
callq 0x2d68
leaq -0xd8(%rbp), %rdi
callq 0x21d8
leaq -0xf8(%rbp), %rdi
callq 0x21d8
leaq 0x9c6(%rip), %rsi       # 0x43ee
leaq -0xb8(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x3132
leaq 0xa12(%rip), %rsi       # 0x4451
leaq -0x98(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3132
leaq -0x1d0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x2d68
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x21d8
leaq -0xb8(%rbp), %rdi
callq 0x21d8
leaq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x2572
leaq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x2664
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
leaq 0x6ba(%rip), %rsi       # 0x4166
leaq -0x78(%rbp), %rdi
leaq -0xa(%rbp), %rdx
callq 0x3132
leaq 0x997(%rip), %rsi       # 0x4457
leaq -0x58(%rbp), %rdi
leaq -0x9(%rbp), %rdx
callq 0x3132
leaq -0x1d0(%rbp), %rdi
leaq -0x78(%rbp), %rsi
leaq -0x58(%rbp), %rdx
callq 0x2d68
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x21d8
leaq -0x78(%rbp), %rdi
callq 0x21d8
leaq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x2572
leaq -0x38(%rbp), %rdi
movq %rbx, %rsi
callq 0x2664
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
leaq -0x1d0(%rbp), %rdi
callq 0x2d42
leaq -0x38(%rbp), %rdi
callq 0x2530
xorl %eax, %eax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %rbp
retq
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x21d8
jmp 0x3b49
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
jmp 0x3baa
jmp 0x3bce
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x21d8
jmp 0x3b65
movq %rax, %rbx
leaq -0xb8(%rbp), %rdi
jmp 0x3baa
jmp 0x3bce
movq %rax, %rbx
leaq -0xd8(%rbp), %rdi
callq 0x21d8
jmp 0x3b84
movq %rax, %rbx
leaq -0xf8(%rbp), %rdi
jmp 0x3baa
jmp 0x3bce
movq %rax, %rbx
leaq -0x118(%rbp), %rdi
callq 0x21d8
jmp 0x3ba3
movq %rax, %rbx
leaq -0x138(%rbp), %rdi
callq 0x21d8
jmp 0x3bd1
jmp 0x3bce
movq %rax, %rbx
jmp 0x3bdd
movq %rax, %rbx
leaq -0x158(%rbp), %rdi
callq 0x21d8
jmp 0x3be6
movq %rax, %rbx
jmp 0x3be6
movq %rax, %rbx
leaq -0x1d0(%rbp), %rdi
callq 0x2d42
leaq -0x38(%rbp), %rdi
callq 0x2530
movq %rbx, %rdi
callq 0x2180