// File: /workspace/github_cpp_makefile_star2_O3/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
leaq 0x8(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %rdi, (%rsi)
leaq 0x872(%rip), %rax       # 0xd0dc
movq %rax, 0x18(%rsi)
leaq 0x86d(%rip), %rax       # 0xd0e2
movq %rax, 0x10(%rsi)
callq 0xbcd0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xc897
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x8(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r14, (%rsi)
leaq 0x85a(%rip), %rax       # 0xd108
movq %rax, 0x18(%rsi)
leaq 0x85b(%rip), %rax       # 0xd114
movq %rax, 0x10(%rsi)
movq %r14, %rdi
callq 0xb500
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xc8de
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x8(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r14, (%rsi)
leaq 0x845(%rip), %rax       # 0xd13a
movq %rax, 0x18(%rsi)
leaq 0x842(%rip), %rax       # 0xd142
movq %rax, 0x10(%rsi)
movq %r14, %rdi
callq 0xb560
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xc925
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x178(%r14), %r13
leaq 0x8(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r14, (%rsi)
leaq 0x825(%rip), %rax       # 0xd168
movq %rax, 0x18(%rsi)
leaq 0x8e0(%rip), %rax       # 0xd22e
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0xb5f0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xc973
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x8(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r14, (%rsi)
leaq 0x8ca(%rip), %rax       # 0xd254
movq %rax, 0x18(%rsi)
leaq 0x93b(%rip), %rax       # 0xd2d0
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0xbde0
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xc9ba
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
leaq 0x8(%rsp), %rsi
movq $0x0, 0x8(%rsi)
movq %r14, (%rsi)
leaq 0x925(%rip), %rax       # 0xd2f6
movq %rax, 0x18(%rsi)
leaq 0xb5c(%rip), %rax       # 0xd538
movq %rax, 0x10(%rsi)
movq %r13, %rdi
callq 0xbd00
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xca01
leaq 0x8(%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 0x18(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
addq %rsi, %rdx
leaq 0x8(%rsp), %rdi
callq 0xb2b0
leaq 0x170(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0xbca0
leaq 0x240(%r14), %rdi
leaq 0x28(%rsp), %rsi
callq 0xb690
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0xca78
callq 0xb990
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xca87
callq 0xb730
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
je 0xca96
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 0xcad3
callq 0xb730
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xcc2d
jmp 0xcc2d
jmp 0xcc2d
jmp 0xcc2d
jmp 0xcc2d
jmp 0xcc2d
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
jne 0xcb4b
jmp 0xcc25
movq %rax, %rbx
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0xcb29
callq 0xb990
jmp 0xcb29
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %rbp, %rdi
je 0xcb3d
callq 0xb730
jmp 0xcb3d
movq %rax, %rbx
movq 0x58(%rsp), %rdi
cmpq %r13, %rdi
je 0xcc25
callq 0xb730
jmp 0xcc25
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xcc25
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcc25
jmp 0xcc2d
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xcc25
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcc25
jmp 0xcc2d
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xcc25
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcc25
jmp 0xcc2d
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xcc25
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcc25
jmp 0xcc2d
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xcc25
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
jmp 0xcc25
jmp 0xcc2d
movq %rax, %rbx
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0xcc25
leaq 0x8(%rsp), %rdi
movq %rdi, %rsi
movl $0x3, %edx
callq *%rax
movq %rbx, %rdi
callq 0xbce0
movq %rax, %rdi
callq 0xd85c
nop