// File: /workspace/github_cpp_makefile_star2_O1/Unreality3D[P]Unreality3D/indie-studio/source/Network/NetManager.cpp
// Function: network::NetManager::start(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int)
void	NetManager::start(std::string const &name, std::string const &address, int port)
  {
    _tcp.OnDisconnect(
		      [this](Socket::Client &c)
		      {
			this->onDisconnect(c);
		      });
    _tcp.OnReadPossible(
			[this](Socket::Client &c, size_t size)
			{
			  this->onReadPossible(c, size);
			});
    _tcp.OnWritePossible(
			 [this](Socket::Client &c)
			 {
			   this->onWritePossible(c);
			 });

    _deserializer.OnConnect(
			    [this](IndieProtocol::Connect c)
			    {
			      this->onPacketConnect(c);
			    });
    _deserializer.OnList(
			 [this](IndieProtocol::List l)
			 {
			   this->onPacketList(l);
			 });
    _deserializer.OnMessage(
			    [this](IndieProtocol::Message m)
			    {
			      this->onPacketMessage(m);
			    });

    _writeBuffer.push_back(_serializer(IndieProtocol::Connect(name)));

    _tcp.start(address, port);
  }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movl %ecx, %ebx
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r14
xorps %xmm0, %xmm0
movq %rsp, %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %rdi, (%rsi)
leaq 0x83e(%rip), %rax       # 0xd074
movq %rax, 0x18(%rsi)
leaq 0x839(%rip), %rax       # 0xd07a
movq %rax, 0x10(%rsi)
callq 0xbcd0
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xc861
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
movq %rsp, %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %r14, (%rsi)
leaq 0x828(%rip), %rax       # 0xd0a0
movq %rax, 0x18(%rsi)
leaq 0x829(%rip), %rax       # 0xd0ac
movq %rax, 0x10(%rsi)
movq %r14, %rdi
callq 0xb500
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xc8a6
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
movq %rsp, %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %r14, (%rsi)
leaq 0x815(%rip), %rax       # 0xd0d2
movq %rax, 0x18(%rsi)
leaq 0x812(%rip), %rax       # 0xd0da
movq %rax, 0x10(%rsi)
movq %r14, %rdi
callq 0xb560
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xc8eb
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x178(%r14), %r13
xorps %xmm0, %xmm0
movq %rsp, %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %r14, (%rsi)
leaq 0x7f7(%rip), %rax       # 0xd100
movq %rax, 0x18(%rsi)
leaq 0x8b0(%rip), %rax       # 0xd1c4
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0xb5f0
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xc937
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
movq %rsp, %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %r14, (%rsi)
leaq 0x89c(%rip), %rax       # 0xd1ea
movq %rax, 0x18(%rsi)
leaq 0x90d(%rip), %rax       # 0xd266
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0xbde0
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xc97c
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
xorps %xmm0, %xmm0
movq %rsp, %rsi
movaps %xmm0, (%rsi)
movaps %xmm0, 0x10(%rsi)
movq %r14, (%rsi)
leaq 0x8f9(%rip), %rax       # 0xd28c
movq %rax, 0x18(%rsi)
leaq 0xb2e(%rip), %rax       # 0xd4cc
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0xbd00
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xc9c1
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x68(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
leaq 0x58(%rsp), %r12
movq %r12, %rdi
callq 0xb2b0
leaq 0x10(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
movq %rsp, %rdi
callq 0xb2b0
leaq 0x170(%r14), %rsi
leaq 0x28(%rsp), %rdi
movq %rsp, %rdx
callq 0xbca0
leaq 0x240(%r14), %rdi
leaq 0x28(%rsp), %rsi
callq 0xb690
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0xca34
callq 0xb990
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0xca42
callq 0xb730
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
je 0xca51
callq 0xb730
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%r15), %rsi
movq 0x8(%r15), %rdx
addq %rsi, %rdx
leaq 0x38(%rsp), %r15
movq %r15, %rdi
callq 0xb2b0
movq %r14, %rdi
movq %r15, %rsi
movl %ebx, %edx
callq 0xb780
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0xca8e
callq 0xb730
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xcbd5
jmp 0xcbd5
jmp 0xcbd5
jmp 0xcbd5
jmp 0xcbd5
jmp 0xcbd5
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
jne 0xcb05
jmp 0xcbcd
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0xcae4
callq 0xb990
jmp 0xcae4
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0xcaf7
callq 0xb730
jmp 0xcaf7
movq %rax, %rbx
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
je 0xcbcd
callq 0xb730
jmp 0xcbcd
movq %rax, %rbx
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xcbcd
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcbcd
jmp 0xcbd5
movq %rax, %rbx
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xcbcd
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcbcd
jmp 0xcbd5
movq %rax, %rbx
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xcbcd
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcbcd
jmp 0xcbd5
movq %rax, %rbx
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xcbcd
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcbcd
jmp 0xcbd5
movq %rax, %rbx
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xcbcd
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcbcd
jmp 0xcbd5
movq %rax, %rbx
movq 0x10(%rsp), %rax
testq %rax, %rax
je 0xcbcd
movq %rsp, %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq %rbx, %rdi
callq 0xbce0
movq %rax, %rdi
callq 0xd7ee
nop