// File: /workspace/github_cpp_makefile_star2_O1/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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
xorl %edi, %edi
callq 0x2160
movl %eax, %edi
callq 0x2190
callq 0x2cdc
callq 0x2e0d
movq 0x305a(%rip), %rbx      # 0x5fd0
leaq 0x1158(%rip), %rsi      # 0x40d5
movl $0x1, %edx
movq %rbx, %rdi
callq 0x21d0
leaq 0x10e6(%rip), %rsi      # 0x4077
movl $0x16, %edx
movq %rbx, %rdi
callq 0x21d0
callq 0x24ca
movq %rax, %rbx
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x109a(%rip), %rsi      # 0x404f
leaq 0x1098(%rip), %rdx      # 0x4054
leaq -0x88(%rbp), %rdi
callq 0x32ec
leaq -0xd0(%rbp), %rdi
leaq -0x88(%rbp), %rdx
movq %rbx, %rsi
callq 0x26b0
movq -0xc8(%rbp), %rsi
movq 0x2fe4(%rip), %rdi      # 0x5fd0
callq 0x2080
movq %rax, %rbx
leaq 0x1093(%rip), %rsi      # 0x408e
movl $0x15, %edx
movq %rax, %rdi
callq 0x21d0
callq 0x24ca
movq %rax, %r14
leaq -0x58(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x102f(%rip), %rsi      # 0x404f
leaq 0x102d(%rip), %rdx      # 0x4054
leaq -0x68(%rbp), %rdi
callq 0x32ec
leaq -0xb8(%rbp), %rdi
leaq -0x68(%rbp), %rdx
movq %r14, %rsi
callq 0x26b0
movq -0xb8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2080
movq %rax, %rbx
leaq 0x1048(%rip), %rsi      # 0x40a4
movl $0xc, %edx
movq %rax, %rdi
callq 0x21d0
leaq 0x1041(%rip), %rsi      # 0x40b1
movl $0x17, %edx
movq %rbx, %rdi
callq 0x21d0
callq 0x24ca
movq %rax, %r14
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0xfbb(%rip), %rsi       # 0x404f
leaq 0xfb9(%rip), %rdx       # 0x4054
leaq -0x48(%rbp), %rdi
callq 0x32ec
leaq -0xa0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movq %r14, %rsi
callq 0x26b0
movq -0x90(%rbp), %rsi
movq %rbx, %rdi
callq 0x2180
leaq 0xffc(%rip), %rsi       # 0x40c9
movl $0xd, %edx
movq %rax, %rdi
callq 0x21d0
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x30e8
callq 0x2170
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x30f6
callq 0x2170
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0x3107
callq 0x2170
movq 0x2ec2(%rip), %rdi      # 0x5fd0
leaq 0xfc2(%rip), %rsi       # 0x40d7
movl $0x16, %edx
callq 0x21d0
callq 0x24ca
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
movq %r15, (%rdi)
leaq 0xf2b(%rip), %rsi       # 0x4063
leaq 0xf29(%rip), %rdx       # 0x4068
callq 0x32ec
leaq -0xd0(%rbp), %rdi
leaq -0x88(%rbp), %rdx
movq %rbx, %rsi
callq 0x26b0
movq -0xc8(%rbp), %rsi
movq 0x2e68(%rip), %rdi      # 0x5fd0
callq 0x2080
movq %rax, %rbx
leaq 0xf17(%rip), %rsi       # 0x408e
movl $0x15, %edx
movq %rax, %rdi
callq 0x21d0
callq 0x24ca
movq %rax, %r14
leaq -0x68(%rbp), %rdi
movq %r12, (%rdi)
leaq 0xec9(%rip), %rsi       # 0x4063
leaq 0xec7(%rip), %rdx       # 0x4068
callq 0x32ec
leaq -0xb8(%rbp), %rdi
leaq -0x68(%rbp), %rdx
movq %r14, %rsi
callq 0x26b0
movq -0xb8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2080
movq %rax, %rbx
leaq 0xed2(%rip), %rsi       # 0x40a4
movl $0xc, %edx
movq %rax, %rdi
callq 0x21d0
leaq 0xecb(%rip), %rsi       # 0x40b1
movl $0x17, %edx
movq %rbx, %rdi
callq 0x21d0
callq 0x24ca
movq %rax, %r14
leaq -0x48(%rbp), %rdi
movq %r13, (%rdi)
leaq 0xe5a(%rip), %rsi       # 0x4063
leaq 0xe58(%rip), %rdx       # 0x4068
callq 0x32ec
leaq -0xa0(%rbp), %rdi
leaq -0x48(%rbp), %rdx
movq %r14, %rsi
callq 0x26b0
movq -0x90(%rbp), %rsi
movq %rbx, %rdi
callq 0x2180
leaq 0xe8b(%rip), %rsi       # 0x40c9
movl $0xd, %edx
movq %rax, %rdi
callq 0x21d0
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x3259
callq 0x2170
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x3267
callq 0x2170
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0x3278
callq 0x2170
xorl %eax, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x32c1
jmp 0x32c1
jmp 0x32ba
jmp 0x32ba
jmp 0x329e
jmp 0x32c1
jmp 0x32c1
jmp 0x32ba
jmp 0x32ba
movq %rax, %rbx
jmp 0x32e3
jmp 0x32a7
jmp 0x32ba
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x32c4
callq 0x2170
jmp 0x32c4
movq %rax, %rbx
jmp 0x32d2
jmp 0x32c1
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r12, %rdi
je 0x32d2
callq 0x2170
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0x32e3
callq 0x2170
movq %rbx, %rdi
callq 0x2250
nop