Function at 0x1400319d0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x14008f060]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r15, rdx
mov r9, rcx
mov qword [rbp - 0x28], rdx
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
mov rdx, qword [rdx + 8]
test rdx, rdx
je 0x140031a21
mov eax, dword [rdx + 8]
test eax, eax
je 0x140031a21
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x140031a71
test eax, eax
jne 0x140031a13
mov rsi, qword [rbp - 0x18]
cmp qword [rbp - 0x20], 0
je 0x140031de8
mov rax, qword [rbp - 0x20]
movzx edx, word [rax + 0x10]
movzx r8d, dx
mov eax, 0xe3ff
and r8w, ax
mov eax, 0x1c00
and dx, ax
mov ecx, dword [r9 + 8]
sub ecx, 1
je 0x140031a89
sub ecx, 0x3e7
je 0x140031a82
cmp ecx, 0xe678
jne 0x140031e5c
mov eax, 0x1000
jmp 0x140031a8e
mov rax, qword [r15]
mov qword [rbp - 0x20], rax
mov rsi, qword [r15 + 8]
mov qword [rbp - 0x18], rsi
jmp 0x140031a25
mov eax, 0x800
jmp 0x140031a8e
mov eax, 0x400
cmp dx, ax
jne 0x140031d51
mov rax, qword [rbp - 0x20]
and dword [rax + 8], 0xbfffffff
movzx r8d, r8w
mov r10, qword [r9 + 0x20]
mov rcx, qword [r9 + 0x28]
sub rcx, r10
sar rcx, 3
shl rcx, 6
cmp r8, rcx
ja 0x140031aed
mov edx, r8d
shr edx, 6
mov eax, r8d
and eax, 0x3f
mov rcx, qword [r10 + rdx*8]
btr rcx, rax
mov qword [r10 + rdx*8], rcx
mov rax, qword [r9 + 0x20]
cmp qword [rax + rdx*8], 0
jne 0x140031aed
mov eax, dword [r9 + 0x18]
btr rax, rdx
mov dword [r9 + 0x18], eax
mov rax, qword [rbp - 0x20]
mov r10d, dword [rax + 0xc]
movzx edx, r8b
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rcx, 0x100000001b3
imul rdx, rcx
mov rax, r8
shr rax, 8
xor rdx, rax
imul rdx, rcx
mov rax, r8
shr rax, 0x10
xor rdx, rax
imul rdx, rcx
mov rax, r8
shr rax, 0x18
xor rdx, rax
imul rdx, rcx
mov rcx, qword [r9 + 0x88]
and rcx, rdx
shl rcx, 4
add rcx, qword [r9 + 0x70]
mov rax, qword [rcx + 8]
mov rdx, qword [r9 + 0x60]
cmp rax, rdx
je 0x140031cf8
mov rcx, qword [rcx]
cmp r8d, dword [rax + 0x10]
je 0x140031b83
nop word [rax + rax]
cmp rax, rcx
je 0x140031cf8
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x140031b70
test rax, rax
cmove rax, rdx
cmp rax, rdx
je 0x140031cf8
xor ecx, ecx
cmp qword [r9 + 0x48], rcx
cmovne ecx, r10d
mov rdx, qword [rax + 0x18]
mov rax, qword [rdx + 8]
mov r14, rdx
cmp byte [rax + 0x19], 0
jne 0x140031bc7
nop
cmp dword [rax + 0x20], ecx
jae 0x140031bbb
mov rax, qword [rax + 0x10]
jmp 0x140031bc1
mov r14, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x140031bb0
cmp byte [r14 + 0x19], 0
jne 0x140031de8
cmp ecx, dword [r14 + 0x20]
jb 0x140031de8
cmp r14, rdx
je 0x140031de8
mov rax, qword [r14 + 0x28]
mov rbx, qword [rax]
mov edi, 0xffffffff
cmp rbx, rax
je 0x140031c71
nop word [rax + rax]
xor r8d, r8d
xor esi, esi
mov rdx, qword [rbx + 0x18]
test rdx, rdx
je 0x140031c2d
mov eax, dword [rdx + 8]
test eax, eax
je 0x140031c2d
lea ecx, [rax + 1]
lock cmpxchg dword [rdx + 8], ecx
je 0x140031c25
test eax, eax
jne 0x140031c15
jmp 0x140031c2d
mov r8, qword [rbx + 0x10]
mov rsi, qword [rbx + 0x18]
cmp r8, qword [rbp - 0x20]
je 0x140031c76
test rsi, rsi
je 0x140031c61
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x140031c61
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, edi
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x140031c61
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, qword [rbx]
mov rbx, rax
cmp rax, qword [r14 + 0x28]
jne 0x140031c00
mov rsi, qword [rbp - 0x18]
jmp 0x140031cfd
mov rcx, qword [rbx + 8]
mov rax, qword [rbx]
mov qword [rcx], rax
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov qword [rcx + 8], rax
dec qword [r14 + 0x30]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x140031caa
mov eax, edi
lock xadd dword [rcx + 0xc], eax
cmp eax, 1
jne 0x140031caa
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov edx, 0x20
mov rcx, rbx
call fcn.140036d1c
test rsi, rsi
je 0x140031ce6
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x140031ce6
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, edi
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x140031ce6
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x140031d31
mov eax, edi
lock xadd dword [rcx + 8], eax
jmp 0x140031d09
mov edi, 0xffffffff
test rsi, rsi
je 0x140031d31
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x140031d31
mov rbx, qword [rbp - 0x18]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140031d31
mov rcx, qword [rbp - 0x18]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140031d4a
lock xadd dword [rcx + 0xc], edi
cmp edi, 1
jne 0x140031d4a
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov al, 1
jmp 0x140031e3c
mov rcx, qword [r9 + 0x48]
test rcx, rcx
je 0x140031de8
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x40], xmm0
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x140031d82
mov rax, qword [r15]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rdx
lock inc dword [rdx + 0xc]
mov rsi, qword [rbp - 0x18]
mov rax, qword [rcx]
lea rdx, [rbp - 0x40]
call qword [rax + reloc.WS2_32.dll_htonl]
movzx r14d, al
mov edi, 0xffffffff
test rsi, rsi
je 0x140031dc9
mov ecx, edi
lock xadd dword [rsi + 8], ecx
cmp ecx, 1
jne 0x140031dc9
mov rbx, qword [rbp - 0x18]
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140031dc9
mov rcx, qword [rbp - 0x18]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140031de2
lock xadd dword [rcx + 0xc], edi
cmp edi, 1
jne 0x140031de2
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
movzx eax, r14b
jmp 0x140031e3c
mov edi, 0xffffffff
test rsi, rsi
je 0x140031e21
mov eax, edi
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x140031e21
mov rbx, qword [rbp - 0x18]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, edi
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140031e21
mov rcx, qword [rbp - 0x18]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rcx, qword [r15 + 8]
test rcx, rcx
je 0x140031e3a
lock xadd dword [rcx + 0xc], edi
cmp edi, 1
jne 0x140031e3a
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
xor al, al
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140036cc0
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
lea rax, str.invalid_time_unit
mov qword [rbp - 0x30], rax
lea rdx, [0x14008cf98]
lea rcx, [rbp - 0x30]
call fcn.14003919c
int3