// File: /workspace/github_cpp_makefile_star2_O3/tdv[P]boss/boss/examples/multy_object/main.cpp
// Function: main
int main()
{
  try
  {
    auto Obj = Boss::Base<MyNs::Impl::Face_1_2_3_4>::Create();
    FuncForIFace1(Boss::RefObjQIPtr<MyNs::IFaces::IFace1>(Obj).Get());
    FuncForIFace2(Boss::RefObjQIPtr<MyNs::IFaces::IFace2>(Obj).Get());
    FuncForIFace3(Boss::RefObjQIPtr<MyNs::IFaces::IFace3>(Obj).Get());
    FuncForIFace4(Boss::RefObjQIPtr<MyNs::IFaces::IFace4>(Obj).Get());
  }
  catch (std::exception const &e)
  {
    std::cerr << "Error: " << e.what() << std::endl;
  }
  return 0;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
leaq 0x10(%rsp), %rdi
callq 0x17466
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x17266
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0xaec344bf, %esi       # imm = 0xAEC344BF
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
jmp 0x17268
xorl %edi, %edi
callq 0x17083
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x1727d
movq (%rdi), %rax
callq *0x18(%rax)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x172a7
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0x37ca1505, %esi       # imm = 0x37CA1505
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
jmp 0x172a9
xorl %edi, %edi
callq 0x170ed
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x172be
movq (%rdi), %rax
callq *0x18(%rax)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x172e8
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0x40cd2593, %esi       # imm = 0x40CD2593
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
jmp 0x172ea
xorl %edi, %edi
callq 0x17157
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x172ff
movq (%rdi), %rax
callq *0x18(%rax)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x17329
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0xdea9b030, %esi       # imm = 0xDEA9B030
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
jmp 0x1732b
xorl %edi, %edi
callq 0x171c1
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x17340
movq (%rdi), %rax
callq *0x18(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x17350
movq (%rdi), %rax
callq *0x20(%rax)
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %r14
retq
jmp 0x17368
jmp 0x17368
jmp 0x17370
jmp 0x17368
jmp 0x17370
jmp 0x17368
jmp 0x17370
movq %rax, %rdi
callq 0x17519
movq %rdx, %r14
movq %rax, %rbx
jmp 0x173dc
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x173dc
movq (%rdi), %rax
callq *0x18(%rax)
jmp 0x173dc
jmp 0x17368
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x173dc
movq (%rdi), %rax
callq *0x18(%rax)
jmp 0x173dc
jmp 0x17368
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x173dc
movq (%rdi), %rax
callq *0x18(%rax)
jmp 0x173dc
jmp 0x17368
movq %rdx, %r14
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x173dc
movq (%rdi), %rax
callq *0x18(%rax)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x173ec
movq (%rdi), %rax
callq *0x20(%rax)
cmpl $0x1, %r14d
jne 0x17451
movq %rbx, %rdi
callq 0x17f40
movq %rax, %rbx
leaq 0xdfedc(%rip), %rdi     # 0xf72e0
leaq 0xa3c80(%rip), %rsi     # 0xbb08b
movl $0x7, %edx
callq 0x819e0
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
leaq 0xdfebb(%rip), %rdi     # 0xf72e0
movq %rax, %rsi
callq 0x81f10
movq %rax, %rdi
callq 0x817f0
callq 0x17fb0
jmp 0x17350
jmp 0x17368
jmp 0x17368
movq %rax, %rbx
callq 0x17fb0
movq %rbx, %rdi
callq 0xb88c0
jmp 0x17368
movq %rdx, %r14
movq %rax, %rbx
jmp 0x173ec