// File: /workspace/github_cpp_makefile_star2_O1/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 0x17478
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1726f
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0xaec344bf, %esi       # imm = 0xAEC344BF
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
callq 0x17093
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x17289
movq (%rdi), %rax
callq *0x18(%rax)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x172ac
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0x37ca1505, %esi       # imm = 0x37CA1505
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
callq 0x170fd
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x172c6
movq (%rdi), %rax
callq *0x18(%rax)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x172e9
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0x40cd2593, %esi       # imm = 0x40CD2593
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
callq 0x17167
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x17303
movq (%rdi), %rax
callq *0x18(%rax)
movq $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x17326
movq (%rdi), %rax
leaq 0x8(%rsp), %rdx
movl $0xdea9b030, %esi       # imm = 0xDEA9B030
callq *0x28(%rax)
movq 0x8(%rsp), %rdi
callq 0x171d1
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 0x1752b
movq %rdx, %r14
movq %rax, %rbx
jmp 0x173e5
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 $0x0, 0x8(%rsp)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x173f5
movq (%rdi), %rax
callq *0x20(%rax)
movq $0x0, 0x10(%rsp)
cmpl $0x1, %r14d
jne 0x17463
movq %rbx, %rdi
callq 0x18000
movq %rax, %rbx
leaq 0xdfeca(%rip), %rdi     # 0xf72e0
leaq 0xa3c6e(%rip), %rsi     # 0xbb08b
movl $0x7, %edx
callq 0x81aa0
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x10(%rax)
leaq 0xdfea9(%rip), %rdi     # 0xf72e0
movq %rax, %rsi
callq 0x81fd0
movq %rax, %rdi
callq 0x818b0
callq 0x18070
jmp 0x17350
jmp 0x17368
jmp 0x17368
movq %rax, %rbx
callq 0x18070
movq %rbx, %rdi
callq 0xb8980
jmp 0x17368
movq %rdx, %r14
movq %rax, %rbx
jmp 0x173fe