Function at 0x14002b910
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rsi, rdx
cmp r9d, 0xffffffff
jne 0x14002b92d
mov r9d, dword [0x1406ba664]
mov r11d, r8d
shr r11d, 8
mov r10d, r8d
shr r10d, 0x10
mov edx, r8d
shr edx, 0x18
mov rax, qword [rcx + 0x50]
mov rcx, qword [rcx + 0x58]
sub rcx, rax
shr rcx, 3
imul ebx, ecx, 0xc28f5c29
xor ecx, ecx
cmp r9d, ebx
jge 0x14002b9fc
movsxd rcx, r9d
imul rcx, rcx, 0xc8
movzx edi, r8b
movabs r14, 0xcbf29ce484222325
xor r14, rdi
movabs rdi, 0x100000001b3
imul r14, rdi
movzx r15d, r11b
xor r15, r14
imul r15, rdi
movzx r14d, r10b
xor r14, r15
imul r14, rdi
mov r15d, edx
xor r15, r14
imul r15, rdi
and r15, qword [rax + rcx + 0x58]
mov r14, qword [rax + rcx + 0x30]
mov r12, qword [rax + rcx + 0x40]
mov rdi, r15
shl rdi, 4
mov rdi, qword [r12 + rdi + 8]
cmp rdi, r14
je 0x14002b9f8
cmp dword [rdi + 0x10], r8d
je 0x14002b9ef
add r15, r15
mov r15, qword [r12 + r15*8]
nop word [rax + rax]
cmp rdi, r15
je 0x14002b9f8
mov rdi, qword [rdi + 8]
cmp dword [rdi + 0x10], r8d
jne 0x14002b9e0
cmp rdi, r14
jne 0x14002bb44
mov ecx, dword [rax + rcx + 8]
cmp r9d, ecx
je 0x14002baa8
cmp ecx, ebx
jge 0x14002baa8
movsxd rdi, ecx
imul rdi, rdi, 0xc8
movzx ebx, r8b
movabs r14, 0xcbf29ce484222325
xor r14, rbx
movabs rbx, 0x100000001b3
imul r14, rbx
movzx r15d, r11b
xor r15, r14
imul r15, rbx
movzx r12d, r10b
xor r12, r15
imul r12, rbx
mov r14d, edx
xor r14, r12
imul r14, rbx
and r14, qword [rax + rdi + 0x58]
mov rbx, qword [rax + rdi + 0x30]
mov r15, qword [rax + rdi + 0x40]
mov rdi, r14
shl rdi, 4
mov rdi, qword [r15 + rdi + 8]
cmp rdi, rbx
je 0x14002baa8
cmp dword [rdi + 0x10], r8d
je 0x14002ba9f
add r14, r14
mov r14, qword [r15 + r14*8]
nop word cs:[rax + rax]
cmp rdi, r14
je 0x14002baa8
mov rdi, qword [rdi + 8]
cmp dword [rdi + 0x10], r8d
jne 0x14002ba90
cmp rdi, rbx
jne 0x14002bb44
test r9d, r9d
je 0x14002bb67
test ecx, ecx
je 0x14002bb67
movzx ecx, r8b
movabs r9, 0xcbf29ce484222325
xor r9, rcx
movabs rcx, 0x100000001b3
imul r9, rcx
movzx r11d, r11b
xor r11, r9
imul r11, rcx
movzx r9d, r10b
xor r9, r11
imul r9, rcx
mov edx, edx
xor rdx, r9
imul rdx, rcx
and rdx, qword [rax + 0x58]
mov rcx, qword [rax + 0x30]
mov rax, qword [rax + 0x40]
mov r9, rdx
shl r9, 4
mov rdi, qword [rax + r9 + 8]
cmp rdi, rcx
je 0x14002bb67
cmp dword [rdi + 0x10], r8d
je 0x14002bb3f
add rdx, rdx
mov rax, qword [rax + rdx*8]
nop word cs:[rax + rax]
cmp rdi, rax
je 0x14002bb67
mov rdi, qword [rdi + 8]
cmp dword [rdi + 0x10], r8d
jne 0x14002bb30
cmp rdi, rcx
je 0x14002bb67
xorps xmm0, xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi], xmm0
mov rbx, qword [rdi + 0x28]
cmp qword [rdi + 0x30], 0x10
jb 0x14002bb7f
mov rdi, qword [rdi + 0x18]
test rbx, rbx
jns 0x14002bb88
call fcn.140004b30
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
jmp 0x14002bbfc
add rdi, 0x18
test rbx, rbx
js 0x14002bb62
cmp rbx, 0xf
ja 0x14002bba2
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
movups xmm0, xmmword [rdi]
movups xmmword [rsi], xmm0
jmp 0x14002bbfc
mov rax, rbx
or rax, 0xf
cmp rax, 0x17
mov r14d, reloc.WS2_32.dll_shutdown
cmovae r14, rax
cmp r14, 0xfff
jb 0x14002bbd7
lea rcx, [r14 + 0x28]
call fcn.14016e404
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14002bbe3
lea rcx, [r14 + 1]
call fcn.14016e404
mov rcx, rax
mov qword [rsi], rcx
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], r14
inc rbx
mov rdx, rdi
mov r8, rbx
call fcn.140373e60
mov rax, rsi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret