// File: /workspace/github_cpp_makefile_star2_O2/sonnyit[P]profiler/example.cpp
// Function: main
int main() {
  srand(time(NULL));
  func1();
  func2();

  cout << "\n";
  cout << "- func1: \n\tnum_calls: " << PROFILER_GET(func1).count << "\n\ttotal_time_passed: " << PROFILER_GET(func1).time_pass << " microsecond" << "\n\tlast_execution_time: " << PROFILER_GET(func1).last_time_pass << " microsecond\n";
  cout << "- func2: \n\tnum_calls: " << PROFILER_GET(func2).count << "\n\ttotal_time_passed: " << PROFILER_GET(func2).time_pass << " microsecond" << "\n\tlast_execution_time: " << PROFILER_GET(func2).last_time_pass << " microsecond\n";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0xb0, %rsp
xorl %edi, %edi
callq 0x2180
movl %eax, %edi
callq 0x21b0
callq 0x2c40
callq 0x2d26
movq 0x3192(%rip), %rbx      # 0x5fd0
leaq 0x1266(%rip), %rsi      # 0x40ab
movq %rbx, %rdi
callq 0x21c0
leaq 0x11f9(%rip), %rsi      # 0x404d
movq %rbx, %rdi
callq 0x21c0
movq %rax, %rbx
callq 0x242a
movq %rax, %r14
leaq 0x11b7(%rip), %rsi      # 0x4025
leaq -0x78(%rbp), %rdi
leaq -0x13(%rbp), %rdx
callq 0x20a0
leaq -0xc0(%rbp), %rdi
leaq -0x78(%rbp), %rdx
movq %r14, %rsi
callq 0x2662
movq -0xb8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2080
leaq 0x11c0(%rip), %rsi      # 0x4064
movq %rax, %rdi
callq 0x21c0
movq %rax, %rbx
callq 0x242a
movq %rax, %r14
leaq 0x1167(%rip), %rsi      # 0x4025
leaq -0x58(%rbp), %rdi
leaq -0x12(%rbp), %rdx
callq 0x20a0
leaq -0xa8(%rbp), %rdi
leaq -0x58(%rbp), %rdx
movq %r14, %rsi
callq 0x2662
movq -0xa8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2080
leaq 0x1186(%rip), %rsi      # 0x407a
movq %rax, %rdi
callq 0x21c0
leaq 0x1184(%rip), %rsi      # 0x4087
movq %rax, %rdi
callq 0x21c0
movq %rax, %rbx
callq 0x242a
movq %rax, %r14
leaq 0x1108(%rip), %rsi      # 0x4025
leaq -0x38(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x20a0
leaq -0x90(%rbp), %rdi
leaq -0x38(%rbp), %rdx
movq %r14, %rsi
callq 0x2662
movq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x21a0
leaq 0x114f(%rip), %rsi      # 0x409f
movq %rax, %rdi
callq 0x21c0
leaq -0x38(%rbp), %rdi
callq 0x20c0
leaq -0x58(%rbp), %rdi
callq 0x20c0
leaq -0x78(%rbp), %rdi
callq 0x20c0
movq 0x3056(%rip), %rdi      # 0x5fd0
leaq 0x112c(%rip), %rsi      # 0x40ad
callq 0x21c0
movq %rax, %rbx
callq 0x242a
movq %rax, %r14
leaq 0x10a1(%rip), %rsi      # 0x4039
leaq -0x78(%rbp), %rdi
leaq -0x13(%rbp), %rdx
callq 0x20a0
leaq -0xc0(%rbp), %rdi
leaq -0x78(%rbp), %rdx
movq %r14, %rsi
callq 0x2662
movq -0xb8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2080
leaq 0x1096(%rip), %rsi      # 0x4064
movq %rax, %rdi
callq 0x21c0
movq %rax, %rbx
callq 0x242a
movq %rax, %r14
leaq 0x1051(%rip), %rsi      # 0x4039
leaq -0x58(%rbp), %rdi
leaq -0x12(%rbp), %rdx
callq 0x20a0
leaq -0xa8(%rbp), %rdi
leaq -0x58(%rbp), %rdx
movq %r14, %rsi
callq 0x2662
movq -0xa8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2080
leaq 0x105c(%rip), %rsi      # 0x407a
movq %rax, %rdi
callq 0x21c0
leaq 0x105a(%rip), %rsi      # 0x4087
movq %rax, %rdi
callq 0x21c0
movq %rax, %rbx
callq 0x242a
movq %rax, %r14
leaq 0xff2(%rip), %rsi       # 0x4039
leaq -0x38(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0x20a0
leaq -0x90(%rbp), %rdi
leaq -0x38(%rbp), %rdx
movq %r14, %rsi
callq 0x2662
movq -0x80(%rbp), %rsi
movq %rbx, %rdi
callq 0x21a0
leaq 0x1025(%rip), %rsi      # 0x409f
movq %rax, %rdi
callq 0x21c0
leaq -0x38(%rbp), %rdi
callq 0x20c0
leaq -0x58(%rbp), %rdi
callq 0x20c0
leaq -0x78(%rbp), %rdi
callq 0x20c0
xorl %eax, %eax
addq $0xb0, %rsp
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x30db
jmp 0x30db
jmp 0x30d4
jmp 0x30d4
jmp 0x30bd
jmp 0x30db
jmp 0x30db
jmp 0x30d4
jmp 0x30d4
movq %rax, %rbx
jmp 0x30f0
jmp 0x30c6
jmp 0x30d4
movq %rax, %rbx
leaq -0x38(%rbp), %rdi
callq 0x20c0
jmp 0x30de
movq %rax, %rbx
jmp 0x30e7
jmp 0x30db
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x20c0
leaq -0x78(%rbp), %rdi
callq 0x20c0
movq %rbx, %rdi
callq 0x2260