// File: 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:
subq $0x208, %rsp            # imm = 0x208
movq %rdi, 0x200(%rsp)
movq %rsi, 0x1f8(%rsp)
movq %rdx, 0x1f0(%rsp)
movl %ecx, 0x1ec(%rsp)
movq 0x200(%rsp), %rax
movq %rax, 0x68(%rsp)
movq %rax, 0x1c0(%rsp)
leaq 0x1c8(%rsp), %rdi
movq %rdi, 0x70(%rsp)
leaq 0x1c0(%rsp), %rsi
callq 0x2d3d0
movq 0x68(%rsp), %rdi
movq 0x70(%rsp), %rsi
callq 0x2b6e0
jmp 0x2cfd6
leaq 0x1c8(%rsp), %rdi
callq 0x2b4c0
movq 0x68(%rsp), %rax
movq %rax, 0x188(%rsp)
leaq 0x190(%rsp), %rdi
movq %rdi, 0x60(%rsp)
leaq 0x188(%rsp), %rsi
callq 0x2d460
movq 0x68(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x29470
jmp 0x2d01b
leaq 0x190(%rsp), %rdi
callq 0x2a290
movq 0x68(%rsp), %rax
movq %rax, 0x160(%rsp)
leaq 0x168(%rsp), %rdi
movq %rdi, 0x58(%rsp)
leaq 0x160(%rsp), %rsi
callq 0x2d4f0
movq 0x68(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x295b0
jmp 0x2d060
leaq 0x168(%rsp), %rdi
callq 0x2b4c0
movq 0x68(%rsp), %rax
movq %rax, %rcx
addq $0x178, %rcx            # imm = 0x178
movq %rcx, 0x48(%rsp)
movq %rax, 0x138(%rsp)
leaq 0x140(%rsp), %rdi
movq %rdi, 0x50(%rsp)
leaq 0x138(%rsp), %rsi
callq 0x2d580
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x297f0
jmp 0x2d0b4
leaq 0x140(%rsp), %rdi
callq 0x2a100
movq 0x68(%rsp), %rax
movq %rax, %rcx
addq $0x178, %rcx            # imm = 0x178
movq %rcx, 0x38(%rsp)
movq %rax, 0x110(%rsp)
leaq 0x118(%rsp), %rdi
movq %rdi, 0x40(%rsp)
leaq 0x110(%rsp), %rsi
callq 0x2d610
movq 0x38(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x2bbc0
jmp 0x2d108
leaq 0x118(%rsp), %rdi
callq 0x2b9f0
movq 0x68(%rsp), %rax
movq %rax, %rcx
addq $0x178, %rcx            # imm = 0x178
movq %rcx, 0x28(%rsp)
movq %rax, 0xe8(%rsp)
leaq 0xf0(%rsp), %rdi
movq %rdi, 0x30(%rsp)
leaq 0xe8(%rsp), %rsi
callq 0x2d6a0
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0x2b720
jmp 0x2d15c
leaq 0xf0(%rsp), %rdi
callq 0x28790
movq 0x68(%rsp), %rax
movq %rax, %rcx
addq $0x240, %rcx            # imm = 0x240
movq %rcx, 0x10(%rsp)
addq $0x170, %rax            # imm = 0x170
movq %rax, 0x18(%rsp)
movq 0x1f8(%rsp), %rsi
leaq 0x98(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x28c70
movq 0x20(%rsp), %rsi
leaq 0xb8(%rsp), %rdi
callq 0x29b30
jmp 0x2d1b6
movq 0x18(%rsp), %rsi
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x2b620
jmp 0x2d1d2
movq 0x10(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x2b1a0
jmp 0x2d1e6
leaq 0xd8(%rsp), %rdi
callq 0x295d0
leaq 0xb8(%rsp), %rdi
callq 0x29140
leaq 0x98(%rsp), %rdi
callq 0x29360
movq 0x1f0(%rsp), %rsi
leaq 0x78(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x28c70
movq 0x68(%rsp), %rdi
movq 0x8(%rsp), %rsi
movl 0x1ec(%rsp), %edx
callq 0x29f80
jmp 0x2d23c
leaq 0x78(%rsp), %rdi
callq 0x29360
addq $0x208, %rsp            # imm = 0x208
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x2b4c0
jmp 0x2d3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0x190(%rsp), %rdi
callq 0x2a290
jmp 0x2d3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0x168(%rsp), %rdi
callq 0x2b4c0
jmp 0x2d3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x2a100
jmp 0x2d3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0x118(%rsp), %rdi
callq 0x2b9f0
jmp 0x2d3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0x28790
jmp 0x2d3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
jmp 0x2d38c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
jmp 0x2d37f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0xd8(%rsp), %rdi
callq 0x295d0
leaq 0xb8(%rsp), %rdi
callq 0x29140
leaq 0x98(%rsp), %rdi
callq 0x29360
jmp 0x2d3b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1b8(%rsp)
movl %eax, 0x1b4(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x29360
movq 0x1b8(%rsp), %rdi
callq 0x2b6f0
nopw %cs:(%rax,%rax)