Function at 0x14018bb60
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0x88
mov r15, r9
mov r13, rdx
mov rsi, rcx
movzx edx, word [r9 + 0x18]
mov rcx, qword [0x14026e870]
mov rax, qword [0x14026e878]
sub rax, rcx
sar rax, 3
movabs rbx, 0x8f9c18f9c18f9c19
imul rax, rbx
cmp rdx, rax
jae 0x14018bbc2
imul rax, rdx, 0x148
add rcx, rax
xor r12d, r12d
cmp byte [rcx + 0x139], r12b
je 0x14018bbe8
mov rax, qword [r9 + 0x20]
test rax, rax
je 0x14018bdad
mov eax, dword [rax + 0x18]
shr eax, 1
test al, 1
je 0x14018bdad
mov rax, qword [r9 + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, r15
mov rax, qword [rcx]
call qword [rax + 0x58]
test rax, rax
jne 0x14018bdad
movzx edx, word [r13 + 0x18]
mov rcx, qword [0x14026e870]
mov rax, qword [0x14026e878]
sub rax, rcx
sar rax, 3
imul rax, rbx
cmp rdx, rax
jae 0x14018bc33
imul rax, rdx, 0x148
add rcx, rax
cmp byte [rcx + 0x139], r12b
je 0x14018bc4e
mov rax, qword [r13 + 0x20]
test rax, rax
je 0x14018bc6c
mov eax, dword [rax + 0x18]
shr eax, 1
test al, 1
je 0x14018bc6c
mov rax, qword [r13 + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, r13
mov rax, qword [rcx]
call qword [rax + 0x58]
test rax, rax
je 0x14018c04c
mov rax, rsi
shr rax, 8
movzx edx, al
movzx eax, sil
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r8, 0x100000001b3
imul rax, r8
xor rdx, rax
imul rdx, r8
mov rax, rsi
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x30
movzx ecx, al
xor rcx, rdx
imul rcx, r8
mov rax, rsi
shr rax, 0x38
xor rcx, rax
imul rcx, r8
and rcx, qword [0x14026dba0]
shl rcx, 4
add rcx, qword [0x14026db88]
mov rax, qword [rcx + 8]
mov rdx, qword [0x14026db78]
cmp rax, rdx
je 0x14018bd41
mov rcx, qword [rcx]
cmp rsi, qword [rax + 0x10]
je 0x14018bd44
nop word [rax + rax]
cmp rax, rcx
je 0x14018bd41
mov rax, qword [rax + 8]
cmp rsi, qword [rax + 0x10]
jne 0x14018bd30
jmp 0x14018bd44
mov rax, r12
mov rdi, rdx
test rax, rax
cmovne rdi, rax
cmp rdi, rdx
je 0x14018c04c
mov rax, qword [r13 + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, r13
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rbx, rax
mov rcx, qword [rdi + 0x18]
add rcx, 0x40
movzx r8d, byte [r13 + 0x2c]
mov rdx, qword [r13 + 8]
movsxd rdx, dword [rdx + 4]
add rdx, 8
add rdx, r13
call fcn.140035710
mov rcx, qword [r13 + 8]
movsxd rcx, dword [rcx + 4]
add rcx, 8
add rcx, r13
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + 0x20]
jmp 0x14018c04c
mov rax, rsi
shr rax, 8
movzx edx, al
movzx eax, sil
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r8, 0x100000001b3
imul rax, r8
xor rdx, rax
imul rdx, r8
mov rax, rsi
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, rsi
shr rax, 0x30
movzx ecx, al
xor rcx, rdx
imul rcx, r8
mov rax, rsi
shr rax, 0x38
xor rcx, rax
imul rcx, r8
and rcx, qword [0x14026dba0]
shl rcx, 4
add rcx, qword [0x14026db88]
mov rax, qword [rcx + 8]
mov rdx, qword [0x14026db78]
cmp rax, rdx
je 0x14018be81
mov rcx, qword [rcx]
cmp rsi, qword [rax + 0x10]
je 0x14018be84
nop dword [rax + rax]
cmp rax, rcx
je 0x14018be81
mov rax, qword [rax + 8]
cmp rsi, qword [rax + 0x10]
jne 0x14018be70
jmp 0x14018be84
mov rax, r12
mov rdi, rdx
test rax, rax
cmovne rdi, rax
cmp rdi, rdx
je 0x14018c04c
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x21], rax
lea r14, [rax + 0x40]
test r13, r13
jne 0x14018bead
mov rdx, r12
jmp 0x14018bebc
mov rax, qword [r13 + 8]
movsxd rdx, dword [rax + 4]
add rdx, 8
add rdx, r13
mov rcx, r14
call fcn.140035930
mov ebx, eax
mov dword [rbp + 0x5f], ebx
cmp eax, 0xffffffff
je 0x14018c04c
mov rcx, qword [r15 + 8]
movsxd rcx, dword [rcx + 4]
add rcx, 8
add rcx, r15
mov rdx, qword [rcx]
call qword [rdx + 0x68]
mov r9, rax
mov qword [rbp + 0x77], rax
test rax, rax
je 0x14018c024
cmp rbx, qword [r14 + 0x30]
jae 0x14018c024
mov r8, qword [r14 + 0x28]
add r8, rbx
mov rdx, qword [r14 + 0x20]
dec rdx
mov rcx, r8
shr rcx, 1
and rdx, rcx
and r8d, 1
mov rax, qword [r14 + 0x18]
mov rcx, qword [rax + rdx*8]
mov r12, qword [rcx + r8*8]
test r12, r12
je 0x14018c021
mov rdx, qword [r14 + 0x28]
add rdx, rbx
mov rcx, rdx
shr rcx, 1
mov rax, qword [r14 + 0x20]
dec rax
and rcx, rax
and edx, 1
mov rax, qword [r14 + 0x18]
mov rcx, qword [rax + rcx*8]
mov qword [rcx + rdx*8], r9
mov rax, qword [r9 + 8]
movsxd rcx, dword [rax + 4]
add r9, 8
add rcx, r9
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
lea rax, [r14 - 0x40]
mov rdx, r14
test rax, rax
mov eax, 0
cmove rdx, rax
call r8
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x90]
mov ebx, eax
mov rax, qword [rbp + 0x77]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x90]
sub eax, ebx
mov edx, eax
mov rcx, qword [rbp - 0x21]
call fcn.140033fe0
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x98]
movsx ebx, al
mov rcx, qword [rbp + 0x77]
mov rax, qword [rcx]
call qword [rax + 0x98]
movzx edx, ax
sub edx, ebx
mov rbx, qword [rbp - 0x21]
mov rcx, rbx
call fcn.1400340b0
mov rax, qword [r14 - 0x38]
movsxd rcx, dword [rax + 4]
add rcx, 0xffffffffffffffc8
add rcx, r14
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x14018c009
mov r9, qword [rbp + 0x77]
mov r8, r12
mov edx, dword [rbp + 0x5f]
mov rcx, rbx
call fcn.140034540
mov rax, qword [r12 + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, r12
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x20]
xor r12d, r12d
mov rax, qword [r15 + 8]
movsxd rcx, dword [rax + 4]
add rcx, 8
add rcx, r15
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov rax, qword [rdi + 0x18]
lea rdx, [rax + 0x40]
test rax, rax
cmove rdx, r12
call r8
lea r14, [rsi + 0x18]
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rbp - 0x11], xmm0
mov qword [rbp - 1], r12
mov qword [rbp + 0x5f], 0x20
lea rdx, [rbp + 0x5f]
lea rcx, [rbp - 0x11]
call fcn.14001be30
nop
movzx ebx, byte [r14 + 4]
cmp bl, 0x10
jae 0x14018c0bf
mov r8, r14
lea rdx, [rbp + 0x5f]
lea rcx, [0x14026dc30]
call fcn.14010fda0
mov rdx, qword [rbp + 0x5f]
cmp rdx, qword [0x14026dc30]
je 0x14018c1bb
mov rbx, qword [rbp - 0x11]
mov r12, qword [rbp - 9]
cmp rbx, r12
je 0x14018c18e
add rdx, 0x28
lea rcx, [rbp - 0x11]
call fcn.140048df0
mov r12, qword [rbp - 9]
mov rbx, qword [rbp - 0x11]
mov rdi, rbx
cmp rbx, r12
je 0x14018c171
mov rcx, qword [rdi]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov r14, rax
test rax, rax
je 0x14018c117
cmp qword [rax + 0x8f8], 0
je 0x14018c117
mov r8, r15
mov rdx, rax
mov rcx, rsi
call fcn.14018ea80
cmp eax, 0xffffffff
je 0x14018c117
mov r9, r15
mov r8d, eax
lea rdx, [rsi + 0x18]
mov rcx, qword [r14 + 0x8f8]
call fcn.1401631c0
add rdi, 8
cmp rdi, r12
jne 0x14018c0d3
mov r13, qword [rbp + 0x67]
lea r14, [rsi + 0x18]
cmp rbx, r12
je 0x14018c171
mov rdi, qword [rbp + 0x7f]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x28], r15
mov rdx, qword [rbp + 0x6f]
mov qword [rsp + 0x20], rdx
mov r9, r13
mov r8, r14
mov rdx, rsi
call qword [rax + 0x220]
add rbx, 8
cmp rbx, r12
jne 0x14018c140
lea rcx, [rbp - 0x11]
call fcn.140012df0
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea r8, [rdx + 0x28]
lea rax, [rbp - 0x11]
cmp rax, r8
je 0x14018c0c7
mov rdx, qword [r8]
mov r8, qword [r8 + 8]
sub r8, rdx
sar r8, 3
lea rcx, [rbp - 0x11]
call fcn.140066b10
jmp 0x14018c0bf
cmp bl, 7
jbe 0x14018c1d8
lea ecx, [rbx - 2]
test ecx, ecx
cmovs ecx, r12d
lea eax, [rbx + 2]
mov edx, 0xf
cmp eax, edx
cmova eax, edx
jmp 0x14018c1f6
cmp bl, 6
jne 0x14018c1e4
mov eax, 8
jmp 0x14018c1f3
cmp bl, 7
mov eax, 9
je 0x14018c1f3
mov eax, 7
mov ecx, r12d
mov byte [rsp + 0x48], 0
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], setsockopt
mov dword [rsp + 0x28], 0xffffffef
mov dword [rsp + 0x20], setsockopt
mov r9d, 0xffffffef
mov r8, r14
lea rdx, [rbp - 0x11]
lea rcx, [0x14026dbc8]
call fcn.14010dbf0
mov r8, r14
lea rdx, [rbp - 0x21]
lea rcx, [0x14026dc30]
call fcn.140110080
mov rcx, qword [rax]
add rcx, 0x28
lea rax, [rbp - 0x11]
cmp rcx, rax
je 0x14018c0bf
mov r12, qword [rbp - 9]
mov r8, r12
mov rbx, qword [rbp - 0x11]
sub r8, rbx
sar r8, 3
mov rdx, rbx
call fcn.140066b10
jmp 0x14018c0c7