// File: 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
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x98(%rbp)
addq $0x8, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9b380
testb $0x1, %al
jne 0xc5c6d
jmp 0xc5cdf
movl $0x10, %edi
callq 0x99e80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa0(%rbp)
leaq 0x3c3ad(%rip), %rsi     # 0x102038
callq 0x99380
jmp 0xc5c92
movq -0xa0(%rbp), %rdi
movq 0x6d338(%rip), %rsi     # 0x132fd8
movq 0x6d0f9(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xc601f
movq -0xa0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
callq 0x9b9c0
jmp 0xc5ea1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0xc5ea1
movq -0x98(%rbp), %rdi
addq $0x18, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9dcf0
testb $0x1, %al
jne 0xc5cf9
jmp 0xc5d5a
movl $0x10, %edi
callq 0x99e80
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa8(%rbp)
leaq 0x3c344(%rip), %rsi     # 0x10205b
callq 0x99380
jmp 0xc5d1e
movq -0xa8(%rbp), %rdi
movq 0x6d2ac(%rip), %rsi     # 0x132fd8
movq 0x6d06d(%rip), %rdx     # 0x132da0
callq 0xa2fe0
jmp 0xc601f
movq -0xa8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
callq 0x9b9c0
jmp 0xc5ea1
movl $0x20, %edi
callq 0x9dc00
movq %rax, -0xb0(%rbp)
jmp 0xc5d6d
movq -0x98(%rbp), %rsi
movb $0x1, -0x49(%rbp)
addq $0x28, %rsi
leaq -0x48(%rbp), %rdi
callq 0x99940
jmp 0xc5d87
movq -0x98(%rbp), %rdi
addq $0x28, %rdi
callq 0xa2210
movl %eax, -0xb4(%rbp)
jmp 0xc5d9f
movl -0xb4(%rbp), %edx
movq -0xb0(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x98ba0
jmp 0xc5db7
movq -0xb0(%rbp), %rsi
movb $0x0, -0x49(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x9a3b0
jmp 0xc5dcd
leaq -0x48(%rbp), %rdi
callq 0xa4f00
movq -0x98(%rbp), %rdi
movl $0x1, %esi
callq 0x9acd0
jmp 0xc5de9
movq -0x98(%rbp), %rdi
movl $0x1, %esi
callq 0xa4c50
jmp 0xc5dfc
leaq -0x60(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
leaq -0x28(%rbp), %rsi
callq 0x9d5b0
movq -0x98(%rbp), %rdi
movq -0xc0(%rbp), %rsi
callq 0xa2420
jmp 0xc5e25
leaq -0x60(%rbp), %rdi
callq 0xa3930
leaq -0x28(%rbp), %rdi
callq 0xa3930
jmp 0xc5f34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0xc5e5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xa4f00
testb $0x1, -0x49(%rbp)
jne 0xc5e67
jmp 0xc5e73
movq -0xb0(%rbp), %rdi
callq 0x9d660
jmp 0xc5ea1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0xc5e98
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xa3930
leaq -0x28(%rbp), %rdi
callq 0xa3930
movl -0x14(%rbp), %eax
movl %eax, -0xc4(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0xc5f4a
movq -0x10(%rbp), %rdi
callq 0x99540
movq %rax, -0x70(%rbp)
movq 0x6cf6d(%rip), %rdi     # 0x132e38
leaq 0x3d270(%rip), %rsi     # 0x103142
callq 0x9dba0
movq %rax, -0xd0(%rbp)
jmp 0xc5ee0
movq -0x70(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x9f600
jmp 0xc5ef2
movq -0xd0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x9cf40
movq %rax, -0xd8(%rbp)
jmp 0xc5f0e
movq -0xd8(%rbp), %rdi
movq 0x6cd44(%rip), %rsi     # 0x132c60
callq 0x9e070
jmp 0xc5f23
leaq -0x90(%rbp), %rdi
callq 0xa4f00
callq 0xa2520
movq -0x98(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
addq $0xf0, %rsp
popq %rbp
retq
movl -0xc4(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xc600e
movq -0x10(%rbp), %rdi
callq 0x99540
movq %rax, -0x68(%rbp)
movq 0x6cec7(%rip), %rdi     # 0x132e38
leaq 0x3d1af(%rip), %rsi     # 0x103127
callq 0x9dba0
movq %rax, -0xe0(%rbp)
jmp 0xc5f86
movq -0x68(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x9dba0
movq %rax, -0xe8(%rbp)
jmp 0xc5fab
movq -0xe8(%rbp), %rdi
movq 0x6cca7(%rip), %rsi     # 0x132c60
callq 0x9e070
jmp 0xc5fc0
callq 0xa2520
jmp 0xc5f34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
callq 0xa2520
jmp 0xc5fdd
jmp 0xc600e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0xc6005
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xa4f00
callq 0xa2520
jmp 0xc600c
jmp 0xc600e
movq -0x10(%rbp), %rdi
callq 0xa3520
movq %rax, %rdi
callq 0xa6900
nop