Function at 0x140020af0
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 0x140020b0d
mov r9d, dword [0x1406b5524]
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 0x140020bdc
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 0x140020bd8
cmp dword [rdi + 0x10], r8d
je 0x140020bcf
add r15, r15
mov r15, qword [r12 + r15*8]
nop word [rax + rax]
cmp rdi, r15
je 0x140020bd8
mov rdi, qword [rdi + 8]
cmp dword [rdi + 0x10], r8d
jne 0x140020bc0
cmp rdi, r14
jne 0x140020d24
mov ecx, dword [rax + rcx + 8]
cmp r9d, ecx
je 0x140020c88
cmp ecx, ebx
jge 0x140020c88
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 0x140020c88
cmp dword [rdi + 0x10], r8d
je 0x140020c7f
add r14, r14
mov r14, qword [r15 + r14*8]
nop word cs:[rax + rax]
cmp rdi, r14
je 0x140020c88
mov rdi, qword [rdi + 8]
cmp dword [rdi + 0x10], r8d
jne 0x140020c70
cmp rdi, rbx
jne 0x140020d24
test r9d, r9d
je 0x140020d47
test ecx, ecx
je 0x140020d47
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 0x140020d47
cmp dword [rdi + 0x10], r8d
je 0x140020d1f
add rdx, rdx
mov rax, qword [rax + rdx*8]
nop word cs:[rax + rax]
cmp rdi, rax
je 0x140020d47
mov rdi, qword [rdi + 8]
cmp dword [rdi + 0x10], r8d
jne 0x140020d10
cmp rdi, rcx
je 0x140020d47
xorps xmm0, xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi], xmm0
mov rbx, qword [rdi + 0x28]
cmp qword [rdi + 0x30], 0x10
jb 0x140020d62
mov rdi, qword [rdi + 0x18]
test rbx, rbx
jns 0x140020d6b
call fcn.140005090
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov qword [rsi + 0x10], 0
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
jmp 0x140020de7
add rdi, 0x18
test rbx, rbx
js 0x140020d42
cmp rbx, 0xf
ja 0x140020d85
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
movups xmm0, xmmword [rdi]
movups xmmword [rsi], xmm0
jmp 0x140020de7
mov qword [rsi + 0x18], reloc.WS2_32.dll_ntohs
mov rax, rbx
or rax, 0xf
cmp rax, 0x17
mov r14d, reloc.WS2_32.dll_shutdown
cmovae r14, rax
cmp r14, 0xfff
jb 0x140020dc2
lea rcx, [r14 + 0x28]
call fcn.14016e054
lea rcx, [rax + 0x27]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140020dce
lea rcx, [r14 + 1]
call fcn.14016e054
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.14033b090
mov rax, rsi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret