// File: /workspace/github_cpp_makefile_star2_O2/xjrueda[P]fixprime/include/Initiator.h
// Function: fprime::Initiator::startInitiator()
void startInitiator() {
            try {
                if (protocolPtr == nullptr)
                    throw runtime_error("Protocol not defined for  session.");
                if (callbacksManager == nullptr)
                    throw runtime_error("CallbacksManager not defined for  session.");

                SocketPtr socketPtr(new SocketConnector(sessionSetup.getHost(), sessionSetup.getPort()));
                setConnected(true);
                setSessionRunning(true);
                socketHandler(socketPtr);
            } catch (SocketException& se) {
                //TODO: log error
                cout << "Error trying to connect to server: " << se.description() << endl;
            } catch (exception& e) {
                //TODO: log error
                cout << "Error starting initiator: " << e.what() << endl;
            }
            this->stop();
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq %rdi, %rbx
cmpq $0x0, 0x8(%rdi)
je 0x4c6b5
cmpq $0x0, 0x18(%rbx)
je 0x4c6d1
pushq $0x20
popq %rdi
callq 0x405e0
movq %rax, %r12
leaq 0x28(%rbx), %r14
leaq 0x30(%rsp), %rdi
movq %r14, %rsi
callq 0x3eef0
movb $0x1, %bpl
movq %r14, %rdi
callq 0x41bb0
leaq 0x30(%rsp), %rsi
movq %r12, %rdi
movl %eax, %edx
callq 0x3ea40
xorl %ebp, %ebp
movq %rsp, %rdi
movq %r12, %rsi
callq 0x41640
leaq 0x30(%rsp), %rdi
callq 0x3ef50
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x3f5d0
pushq $0x1
popq %rsi
movq %rbx, %rdi
callq 0x42a90
leaq 0x20(%rsp), %r14
movq %rsp, %rsi
movq %r14, %rdi
callq 0x3e330
movq %rbx, %rdi
movq %r14, %rsi
callq 0x41c80
leaq 0x28(%rsp), %rdi
callq 0x40650
leaq 0x8(%rsp), %rdi
callq 0x40650
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x3f0e0
movq %rax, %r12
leaq 0x18971(%rip), %rsi     # 0x65038
movq %rax, %rdi
callq 0x3ecd0
jmp 0x4c6eb
pushq $0x10
popq %rdi
callq 0x3f0e0
movq %rax, %r12
leaq 0x18978(%rip), %rsi     # 0x6505b
movq %rax, %rdi
callq 0x3ecd0
movq 0x328e6(%rip), %rsi     # 0x7efd8
movq 0x326cf(%rip), %rdx     # 0x7edc8
movq %r12, %rdi
callq 0x42050
jmp 0x4c703
movq %rdx, %r15
movq %rax, %r14
movq %r12, %rdi
callq 0x3faf0
jmp 0x4c766
movq %rdx, %r15
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x40650
jmp 0x4c73d
movq %rdx, %r15
movq %rax, %r14
jmp 0x4c75e
jmp 0x4c72f
movq %rdx, %r15
movq %rax, %r14
jmp 0x4c766
movq %rdx, %r15
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x40650
jmp 0x4c766
movq %rdx, %r15
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x3ef50
testb %bpl, %bpl
je 0x4c766
movq %r12, %rdi
callq 0x403f0
cmpl $0x2, %r15d
jne 0x4c7b5
movq %r14, %rdi
callq 0x3ed90
movq %rax, %r15
movq 0x326da(%rip), %rdi     # 0x7ee58
leaq 0x19952(%rip), %rsi     # 0x660d7
callq 0x405b0
movq %rax, %r14
movq %rsp, %rdi
movq %r15, %rsi
callq 0x412d0
movq %rsp, %rsi
movq %r14, %rdi
callq 0x40130
movq %rax, %rdi
callq 0x3f0a0
movq %rsp, %rdi
callq 0x3ef50
jmp 0x4c7f8
cmpl $0x1, %r15d
jne 0x4c823
movq %r14, %rdi
callq 0x3ed90
movq %rax, %r14
movq 0x3268b(%rip), %rdi     # 0x7ee58
leaq 0x198e8(%rip), %rsi     # 0x660bc
callq 0x405b0
movq %rax, %r15
movq (%r14), %rax
movq %r14, %rdi
callq *0x10(%rax)
movq %r15, %rdi
movq %rax, %rsi
callq 0x405b0
movq %rax, %rdi
callq 0x3f0a0
callq 0x41d30
jmp 0x4c69f
jmp 0x4c804
movq %rax, %r14
jmp 0x4c814
movq %rax, %r14
movq %rsp, %rdi
callq 0x3ef50
callq 0x41d30
jmp 0x4c823
movq %rax, %r14
callq 0x41d30
movq %r14, %rdi
callq 0x42200
movq %rax, %rdi
callq 0x43915
nop