Function at 0x14002ed70
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x110]
sub rsp, 0x210
mov rax, qword [0x140071010]
xor rax, rsp
mov qword [rbp + 0x100], rax
mov r15, rcx
xor r12d, r12d
mov edi, r12d
mov dword [rsp + 0x34], r12d
mov rax, qword [0x14007a6e0]
mov rdx, qword [rax + 0x10]
mov rcx, qword [rdx + 0x10]
test rcx, rcx
jne 0x14002eed2
lea rdx, str.Growtopia
lea rcx, str.Host_is_Null_Type__s_creating_new_host
call fcn.140025b50
mov rax, qword [0x14007a6e0]
mov rsi, qword [rax + 0x10]
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x14002ee69
mov rcx, qword [rdi]
cmp rcx, 0xffffffffffffffff
je 0x14002ee04
call qword [sym.imp.WS2_32.dll_closesocket]
mov rbx, qword [rdi + 0x28]
imul rax, qword [rdi + 0x30], 0x1d8
add rax, rbx
cmp rbx, rax
jae 0x14002ee38
mov rcx, rbx
call fcn.140003790
add rbx, 0x1d8
imul rax, qword [rdi + 0x30], 0x1d8
add rax, qword [rdi + 0x28]
cmp rbx, rax
jb 0x14002ee18
mov rcx, qword [rdi + 0xa98]
test rcx, rcx
je 0x14002ee52
mov rax, qword [rdi + 0xab0]
test rax, rax
je 0x14002ee52
call rax
mov rcx, qword [rdi + 0x28]
call qword [0x140071110]
mov rcx, rdi
call qword [0x140071110]
mov qword [rsi + 0x10], r12
mov edx, 2
xor ecx, ecx
mov r8d, edx
call fcn.140002520
mov qword [rsi + 0x10], rax
mov qword [rax + 0x2b10], 1
mov rax, qword [rsi + 0x10]
lea rcx, [0x140003140]
mov qword [rax + 0xa90], rcx
mov rcx, qword [rsi + 0x10]
call fcn.140002480
mov rcx, qword [rbp + 0x100]
xor rcx, rsp
call fcn.140053d00
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
lea rdx, [rbp + 0x80]
call fcn.140006ea0
test eax, eax
jle 0x14002eea2
movabs rbx, 0xcbf29ce484222325
movabs r13, 0x100000001b3
nop word [rax + rax]
mov ecx, dword [rbp + 0x80]
sub ecx, 1
je 0x14002f56a
sub ecx, 1
je 0x14002f555
cmp ecx, 1
jne 0x14002f561
mov rcx, qword [rbp + 0x98]
cmp qword [rcx + 0x18], 3
jbe 0x14002f44e
mov rax, qword [rcx + 0x10]
movzx edx, byte [rax]
mov dword [rbp + 0xb0], edx
cmp edx, 4
jne 0x14002f457
mov rdx, qword [rcx + 0x18]
cmp rdx, 0x38
jbe 0x14002f532
mov rsi, qword [rcx + 0x10]
add rsi, 4
test byte [rsi + 0xc], 8
je 0x14002ef74
mov ecx, dword [rsi + 0x34]
add ecx, 0x3c
cmp rdx, rcx
cmovbe rsi, r12
jmp 0x14002ef78
mov dword [rsi + 0x34], r12d
test rsi, rsi
je 0x14002f532
lea r14, [rsi + 0x38]
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xb8], xmm1
mov r8, r12
mov qword [rbp + 0xc8], r12
mov ebx, r12d
mov rcx, qword [rbp + 0xc0]
cmp dword [rsi + 0x34], r12d
jbe 0x14002f000
nop word [rax + rax]
mov eax, ebx
movzx edx, byte [rax + r14]
mov byte [rsp + 0x30], dl
cmp rcx, r8
je 0x14002efd5
mov byte [rcx], dl
mov rcx, qword [rbp + 0xc0]
inc rcx
mov qword [rbp + 0xc0], rcx
jmp 0x14002eff0
lea r8, [rsp + 0x30]
mov rdx, rcx
lea rcx, [rbp + 0xb8]
call fcn.140048820
mov rcx, qword [rbp + 0xc0]
inc ebx
cmp ebx, dword [rsi + 0x34]
jae 0x14002f000
mov r8, qword [rbp + 0xc8]
jmp 0x14002efb0
test r14, r14
je 0x14002f0a7
mov rax, qword [rbp + 0xb8]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], 0x20
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x40]
call fcn.14003fee0
nop
or edi, 1
mov dword [rsp + 0x34], edi
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x14002f046
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
movaps xmm0, xmmword [rbp - 0x40]
movdqa xmmword [rbp + 0x30], xmm0
mov qword [rbp - 0x30], reloc.WS2_32.dll_listen
lea rax, [rbp + 0x30]
mov qword [rbp - 0x28], rax
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rsp + 0x60], xmm0
lea rax, str.extended___
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], reloc.WS2_32.dll_listen
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x60]
call qword [sym.imp.fmt.dll_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_fmt::v10::vformat_class_fmt::v10::basic_string_view_char___class_fmt::v10::basic_format_args_class_fmt::v10::basic_format_context_class_fmt::v10::appender__char___]
or edi, 0x10
lea rbx, [rbp - 0x60]
or edi, 2
jmp 0x14002f0d0
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], r12
xor r8d, r8d
lea rdx, [0x14005b5c9]
lea rcx, [rbp - 0x80]
call fcn.140009b40
lea rbx, [rbp - 0x80]
or edi, 4
mov dword [rsp + 0x34], edi
movzx eax, byte [rsi]
mov ecx, eax
cmp al, 0x26
mov eax, 0x25
cmovae ecx, eax
movzx eax, cl
lea rcx, str.PACKET_STATE
mov rdx, qword [rcx + rax*8]
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r12
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x14002f110
lea rcx, [rsp + 0x40]
call fcn.140009b40
or edi, 8
mov dword [rsp + 0x34], edi
lea rax, [rsp + 0x40]
cmp qword [rsp + 0x58], 0x10
cmovae rax, qword [rsp + 0x40]
mov qword [rbp - 0x10], rax
mov rax, qword [rsp + 0x50]
mov qword [rbp - 8], rax
mov rcx, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x14002f156
mov rcx, qword [rbx]
mov rax, qword [rbx + 0x10]
mov qword [rbp], rcx
mov qword [rbp + 8], rax
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rbp + 0xe0], xmm0
movups xmm1, xmmword [rbp]
movups xmmword [rbp + 0xf0], xmm1
mov qword [rbp + 0x10], 0xdd
lea rax, [rbp + 0xe0]
mov qword [rbp + 0x18], rax
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
movaps xmm0, xmmword [rbp + 0x10]
movdqa xmmword [rsp + 0x60], xmm0
lea rcx, str.Received_Packet_From_Client____n
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], 0x23
lea r8, [rsp + 0x60]
lea rdx, [rbp + 0x20]
mov rcx, rax
call qword [sym.imp.fmt.dll_void___cdecl_fmt::v10::detail::vprint_mojibake_struct__iobuf____ptr64__class_fmt::v10::basic_string_view_char___class_fmt::v10::basic_format_args_class_fmt::v10::basic_format_context_class_fmt::v10::appender__char___]
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14002f203
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002f1fe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f5d1
call fcn.1400541a4
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x40], 0
test dil, 4
je 0x14002f26e
and edi, 0xfffffffb
mov dword [rsp + 0x34], edi
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x14002f25e
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002f259
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f5d8
call fcn.1400541a4
mov qword [rbp - 0x70], r12
mov qword [rbp - 0x68], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x80], 0
test dil, 2
je 0x14002f2c6
and edi, 0xfffffffd
mov dword [rsp + 0x34], edi
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14002f2b6
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002f2b1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f5df
call fcn.1400541a4
mov qword [rbp - 0x50], r12
mov qword [rbp - 0x48], reloc.WS2_32.dll_ntohs
mov byte [rbp - 0x60], 0
test dil, 1
je 0x14002f30e
and edi, 0xfffffffe
mov dword [rsp + 0x34], edi
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x14002f30e
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002f309
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f5e6
call fcn.1400541a4
mov rcx, rsi
call fcn.140009790
movzx edx, byte [rsi]
mov r8d, edx
movabs rbx, 0xcbf29ce484222325
xor rdx, rbx
imul rdx, r13
mov eax, r8d
shr rax, 8
xor rdx, rax
imul rdx, r13
mov eax, r8d
shr rax, 0x10
xor rdx, rax
imul rdx, r13
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, r13
mov rcx, qword [r15 + 0x30]
and rcx, rdx
shl rcx, 4
add rcx, qword [r15 + 0x18]
mov rax, qword [rcx + 8]
cmp rax, qword [r15 + 8]
je 0x14002f391
mov rcx, qword [rcx]
cmp r8d, dword [rax + 0x10]
je 0x14002f394
nop dword [rax]
cmp rax, rcx
je 0x14002f391
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x14002f380
jmp 0x14002f394
mov rax, r12
test rax, rax
je 0x14002f3f3
mov dword [rsp + 0x38], r8d
lea r8, [rsp + 0x38]
lea rdx, [rbp + 0x60]
mov rcx, r15
call fcn.1400408d0
mov dword [rbp + 0xd0], 1
mov rcx, qword [rbp + 0x98]
mov qword [rbp + 0xa0], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x14002f66b
mov rax, qword [rcx]
lea r8, [rbp + 0xd0]
lea rdx, [rbp + 0xa0]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x14002f5ed
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
je 0x14002f532
mov rdx, qword [rbp + 0xc8]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002f432
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f672
call fcn.1400541a4
xorps xmm0, xmm0
movdqu xmmword [rbp + 0xb8], xmm0
mov qword [rbp + 0xc8], r12
jmp 0x14002f532
mov edx, r12d
mov dword [rbp + 0xb0], edx
lea rcx, str.Received_Packet_From_Server__i
call fcn.140025b50
mov r8d, dword [rbp + 0xb0]
movzx edx, r8b
xor rdx, rbx
imul rdx, r13
movzx eax, byte [rbp + 0xb1]
xor rdx, rax
imul rdx, r13
movzx eax, byte [rbp + 0xb2]
xor rdx, rax
imul rdx, r13
movzx eax, byte [rbp + 0xb3]
xor rdx, rax
imul rdx, r13
mov rcx, qword [r15 + 0x70]
and rcx, rdx
shl rcx, 4
add rcx, qword [r15 + 0x58]
mov rax, qword [rcx + 8]
cmp rax, qword [r15 + 0x48]
je 0x14002f4d2
mov rcx, qword [rcx]
cmp r8d, dword [rax + 0x10]
je 0x14002f4d5
cmp rax, rcx
je 0x14002f4d2
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x14002f4c1
jmp 0x14002f4d5
mov rax, r12
test rax, rax
je 0x14002f532
lea rcx, [r15 + 0x40]
lea r8, [rbp + 0xb0]
lea rdx, [rbp + 0x70]
call fcn.1400408d0
mov dword [rbp + 0xd8], 1
mov rcx, qword [rbp + 0x98]
mov qword [rbp + 0xa8], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x14002f6ba
mov rax, qword [rcx]
lea r8, [rbp + 0xd8]
lea rdx, [rbp + 0xa8]
call qword [rax + reloc.WS2_32.dll_recv]
test al, al
jne 0x14002f679
xor r8d, r8d
mov rdx, qword [rbp + 0x98]
mov rcx, qword [0x14007a6e0]
mov rcx, qword [rcx + 0x10]
call fcn.140026150
mov rcx, qword [0x14007a6e0]
jmp 0x14002f5b0
lea rcx, str.Disconnected_From_Growtopia
call fcn.140025b50
mov rcx, qword [0x14007a6e0]
jmp 0x14002f5b0
lea rcx, str.Got_Connection_from_Growtopia
call fcn.140025b50
mov rcx, qword [0x14007a6e0]
lea rdx, [rcx + 0x28]
lea rax, [rcx + 0x70]
cmp rax, rdx
je 0x14002f5a7
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14002f598
mov rdx, qword [rdx]
mov rcx, rax
call fcn.1400384d0
mov rcx, qword [0x14007a6e0]
mov eax, dword [rcx + 0x68]
mov dword [rcx + 0x90], eax
mov rax, qword [rcx + 0x10]
lea rdx, [rbp + 0x80]
mov rcx, qword [rax + 0x10]
call fcn.140006ea0
test eax, eax
jle 0x14002eea2
jmp 0x14002ef00
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rbx, qword [rbp + 0x98]
test rbx, rbx
je 0x14002f626
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14002f607
mov rcx, rbx
call rax
test byte [rbx + 8], 4
jne 0x14002f61c
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14002f61c
call qword [0x140071110]
mov rcx, rbx
call qword [0x140071110]
nop
mov rcx, qword [rbp + 0xb8]
test rcx, rcx
je 0x14002eea2
mov rdx, qword [rbp + 0xc8]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002f661
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f672
call fcn.1400541a4
jmp 0x14002eea2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rbx, qword [rbp + 0x98]
test rbx, rbx
je 0x14002eea2
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14002f697
mov rcx, rbx
call rax
test byte [rbx + 8], 4
jne 0x14002f6ac
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x14002f6ac
call qword [0x140071110]
mov rcx, rbx
call qword [0x140071110]
jmp 0x14002eea2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xbad_function_call_void_]
int3