Function at 0x14011fa40
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rbx, qword [rcx + 0x18]
mov rax, rbx
inc rax
je 0x140120395
mov r13, rcx
mov rsi, qword [rcx + 8]
lea rdi, [rsi + 1]
mov rdx, rdi
shr rdx, 3
mov rcx, rdi
and rcx, 0xfffffffffffffff8
sub rcx, rdx
cmp rsi, 8
cmovb rcx, rsi
movabs r8, 0x7ffffffffffffff0
mov rdx, rcx
shr rdx, 1
cmp rax, rdx
mov qword [rsp + 0x28], rsi
jbe 0x14011fac9
inc rcx
cmp rax, rcx
cmova rcx, rax
cmp rcx, 8
mov qword [rsp + 0x38], r13
jae 0x14011faf7
xor eax, eax
cmp rcx, 4
setae al
lea r15, [rax*4 + 4]
jmp 0x14011fb51
mov r14, qword [r13]
mov rcx, rdi
shr rcx, 4
xor eax, eax
test dil, 0xf
setne al
add rax, rcx
je 0x14011ff13
cmp rax, 1
jne 0x14011fe99
xor edx, edx
jmp 0x14011fef7
movabs rax, 0x1ffffffffffffffe
add rax, 2
cmp rcx, rax
jae 0x140120395
shl rcx, 3
mov r15d, 1
cmp rcx, 0xe
jb 0x14011fb51
movabs rdx, 0x2492492492492493
mov rax, rcx
mul rdx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 2
dec rcx
bsr rcx, rcx
not ecx
mov r15, 0xffffffffffffffff
shr r15, cl
inc r15
mov ecx, 0x18
mov rax, r15
mul rcx
jo 0x140120395
mov r12, rax
add r12, 0xf
and r12, 0xfffffffffffffff0
lea r13, [r15 + 0x10]
mov rbp, r12
add rbp, r13
jb 0x140120395
cmp rbp, r8
ja 0x140120395
test rbp, rbp
je 0x14011fbcc
movzx eax, byte [0x14037f348]
mov rcx, qword [0x14037f2d0]
test rcx, rcx
jne 0x14011fbb2
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14011fbc4
mov rcx, rax
mov qword [0x14037f2d0], rax
xor edx, edx
mov r8, rbp
call fcn.1402699c4
mov r14, rax
test rax, rax
jne 0x14011fbd2
mov rcx, rbp
call fcn.1400da530
mov r14d, 0x10
mov qword [rsp + 0x40], rdi
lea rbp, [r15 - 1]
mov rax, r15
shr rax, 3
mov rcx, r15
and rcx, 0xfffffffffffffff8
sub rcx, rax
cmp r15, 9
cmovb rcx, rbp
mov qword [rsp + 0x30], rcx
add r14, r12
mov rcx, r14
mov dl, 0xff
mov r8, r13
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x38]
mov r8, qword [rax]
mov rdi, rbx
test rbx, rbx
je 0x14011fe31
movabs rcx, 0x100000001b3
movdqa xmm0, xmmword [r8]
pmovmskb r11d, xmm0
not r11d
xor edx, edx
mov r9, r8
mov r10, rdi
jmp 0x14011fc8f
lea eax, [r11 - 1]
and eax, r11d
dec r10
shr r12, 0x39
lea r11, [r13 - 0x10]
and r11, rbp
mov byte [r14 + r13], r12b
mov byte [r11 + r14 + 0x10], r12b
not r15
lea r11, [r15 + r15*2]
not r13
lea rsi, [r13 + r13*2]
mov rbx, qword [r8 + r11*8 + 0x10]
mov qword [r14 + rsi*8 + 0x10], rbx
movdqu xmm0, xmmword [r8 + r11*8]
movdqu xmmword [r14 + rsi*8], xmm0
mov r11d, eax
test r10, r10
je 0x14011fe31
test r11w, r11w
jne 0x14011fcbf
nop word cs:[rax + rax]
movdqa xmm0, xmmword [r9 + 0x10]
add r9, 0x10
pmovmskb r11d, xmm0
add rdx, 0x10
cmp r11d, 0xffff
je 0x14011fca0
not r11d
tzcnt r15d, r11d
add r15, rdx
mov rsi, r15
neg rsi
lea r12, [rsi + rsi*2]
mov rbx, qword [r8 + r12*8 - 0x18]
movzx esi, bl
movabs rax, 0xcbf29ce484222325
xor rsi, rax
imul rsi, rcx
movzx eax, bh
xor rax, rsi
mov esi, ebx
shr esi, 0x10
imul rax, rcx
movzx esi, sil
xor rsi, rax
mov eax, ebx
shr eax, 0x18
imul rsi, rcx
xor rsi, rax
mov rax, rbx
shr rax, 0x20
imul rsi, rcx
movzx eax, al
xor rax, rsi
mov rsi, rbx
shr rsi, 0x28
imul rax, rcx
movzx esi, sil
xor rsi, rax
mov rax, rbx
shr rax, 0x30
imul rsi, rcx
movzx eax, al
xor rax, rsi
mov rsi, rbx
mov rbx, qword [r8 + r12*8 - 0x10]
shr rsi, 0x38
imul rax, rcx
xor rax, rsi
imul rax, rcx
movzx esi, bl
xor rsi, rax
imul rsi, rcx
movzx eax, bh
xor rax, rsi
mov esi, ebx
shr esi, 0x10
imul rax, rcx
movzx esi, sil
xor rsi, rax
mov eax, ebx
shr eax, 0x18
imul rsi, rcx
xor rsi, rax
mov rax, rbx
shr rax, 0x20
imul rsi, rcx
movzx eax, al
xor rax, rsi
mov rsi, rbx
shr rsi, 0x28
imul rax, rcx
movzx esi, sil
xor rsi, rax
mov rax, rbx
shr rax, 0x30
shr rbx, 0x38
imul rsi, rcx
movzx r12d, al
xor r12, rsi
imul r12, rcx
xor r12, rbx
imul r12, rcx
mov rbx, r12
and rbx, rbp
movdqu xmm0, xmmword [r14 + rbx]
pmovmskb esi, xmm0
test esi, esi
jne 0x14011fe08
mov r13d, 0x10
nop word cs:[rax + rax]
add rbx, r13
and rbx, rbp
movdqu xmm0, xmmword [r14 + rbx]
pmovmskb esi, xmm0
add r13, 0x10
test esi, esi
je 0x14011fdf0
tzcnt r13d, esi
add r13, rbx
and r13, rbp
cmp byte [r14 + r13], 0
js 0x14011fc40
movdqa xmm0, xmmword [r14]
pmovmskb eax, xmm0
tzcnt r13d, eax
jmp 0x14011fc40
mov rcx, qword [rsp + 0x30]
sub rcx, rdi
mov rax, qword [rsp + 0x38]
mov qword [rax], r14
mov qword [rax + 8], rbp
mov qword [rax + 0x10], rcx
mov r9, qword [rsp + 0x28]
test r9, r9
movabs rsi, 0x7ffffffffffffff0
je 0x14012037d
mov ecx, 0x18
mov rax, qword [rsp + 0x40]
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add r9, rax
cmp r9, 0xffffffffffffffef
je 0x14012037d
sub r8, rax
mov rcx, qword [0x14037f2d0]
xor edx, edx
call fcn.1402699cc
jmp 0x14012037d
movabs rcx, 0x1ffffffffffffffe
and rcx, rax
xor r8d, r8d
movdqa xmm0, xmmword [0x140272280]
nop word cs:[rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r14 + r8]
por xmm1, xmm0
movdqa xmmword [r14 + r8], xmm1
lea rdx, [r8 + 0x20]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r14 + r8 + 0x10]
por xmm1, xmm0
movdqa xmmword [r14 + r8 + 0x10], xmm1
mov r8, rdx
add rcx, 0xfffffffffffffffe
jne 0x14011fec0
test al, 1
je 0x14011ff13
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r14 + rdx]
por xmm0, xmmword [0x140272280]
movdqa xmmword [r14 + rdx], xmm0
cmp rdi, 0x10
jae 0x14011ff35
lea rcx, [r14 + 0x10]
mov rdx, r14
mov r8, rdi
call sub.msvcrt.dll_memmove
cmp rsi, 0xffffffffffffffff
jne 0x14011ff40
xor eax, eax
jmp 0x14012036c
movdqu xmm0, xmmword [r14]
movdqu xmmword [r14 + rdi], xmm0
movabs rcx, 0x100000001b3
xor edx, edx
jmp 0x14011ff7d
shr r11, 0x39
lea rax, [rdx - 0x10]
and rbx, rax
mov byte [r14 + rdx], r11b
mov r14, qword [r13]
mov byte [rbx + r14 + 0x10], r11b
mov rsi, qword [rsp + 0x28]
lea rax, [rdx + 1]
cmp rdx, rsi
mov rdx, rax
je 0x14012034a
cmp byte [r14 + rdx], 0x80
jne 0x14011ff6d
mov rax, rdx
not rax
lea rax, [rax + rax*2]
lea r8, [r14 + rax*8]
mov rax, rdx
neg rax
mov qword [rsp + 0x30], rax
mov rbx, qword [r13]
nop word cs:[rax + rax]
mov r9, r13
mov rax, qword [rsp + 0x30]
lea rbp, [rax + rax*2]
mov rax, qword [rbx + rbp*8 - 0x18]
mov r13d, eax
mov r12, rax
mov r15, rax
mov r11, rax
mov r10, rax
movzx esi, al
movzx edi, ah
mov rbx, qword [rbx + rbp*8 - 0x10]
shr eax, 0x10
shr r13d, 0x18
shr r12, 0x20
shr r15, 0x28
shr r11, 0x30
shr r10, 0x38
movabs rbp, 0xcbf29ce484222325
xor rsi, rbp
imul rsi, rcx
xor rdi, rsi
imul rdi, rcx
movzx eax, al
xor rax, rdi
imul rax, rcx
xor rax, r13
imul rax, rcx
movzx esi, r12b
xor rsi, rax
imul rsi, rcx
movzx eax, r15b
xor rax, rsi
imul rax, rcx
movzx r12d, r11b
xor r12, rax
imul r12, rcx
xor r12, r10
imul r12, rcx
mov ebp, ebx
mov r13, rbx
mov r15, rbx
mov r11, rbx
mov r10, rbx
movzx eax, bl
movzx esi, bh
mov edi, ebx
shr edi, 0x10
shr ebp, 0x18
shr r13, 0x20
shr r15, 0x28
shr r11, 0x30
shr r10, 0x38
xor rax, r12
imul rax, rcx
xor rsi, rax
imul rsi, rcx
movzx eax, dil
xor rax, rsi
imul rax, rcx
xor rax, rbp
imul rax, rcx
movzx esi, r13b
xor rsi, rax
imul rsi, rcx
movzx eax, r15b
xor rax, rsi
imul rax, rcx
movzx r11d, r11b
xor r11, rax
imul r11, rcx
xor r11, r10
imul r11, rcx
mov rbx, qword [r9 + 8]
mov r10, r11
and r10, rbx
movdqu xmm0, xmmword [r14 + r10]
pmovmskb eax, xmm0
mov r12, r10
test eax, eax
mov r13, r9
jne 0x1401200f8
mov r15d, 0x10
mov r12, r10
nop
add r12, r15
and r12, rbx
movdqu xmm0, xmmword [r14 + r12]
pmovmskb eax, xmm0
add r15, 0x10
test eax, eax
je 0x1401200e0
tzcnt r15d, eax
add r15, r12
and r15, rbx
cmp byte [r14 + r15], 0
js 0x140120118
movdqa xmm0, xmmword [r14]
pmovmskb eax, xmm0
tzcnt r15d, eax
mov rax, rdx
sub rax, r10
mov rsi, r15
sub rsi, r10
xor rsi, rax
and rsi, rbx
cmp rsi, 0x10
jb 0x14011ff50
mov rax, r15
not rax
lea rax, [rax + rax*2]
lea r10, [r14 + rax*8]
movzx eax, byte [r14 + r15]
shr r11, 0x39
lea rsi, [r15 - 0x10]
and rsi, rbx
mov byte [r14 + r15], r11b
mov r14, qword [r13]
mov byte [rsi + r14 + 0x10], r11b
cmp al, 0xff
je 0x140120320
movzx eax, byte [r8]
movzx r11d, byte [r10]
mov byte [r8], r11b
mov byte [r10], al
movzx eax, byte [r8 + 1]
movzx r11d, byte [r10 + 1]
mov byte [r8 + 1], r11b
mov byte [r10 + 1], al
movzx eax, byte [r8 + 2]
movzx r11d, byte [r10 + 2]
mov byte [r8 + 2], r11b
mov byte [r10 + 2], al
movzx eax, byte [r8 + 3]
movzx r11d, byte [r10 + 3]
mov byte [r8 + 3], r11b
mov byte [r10 + 3], al
movzx eax, byte [r8 + 4]
movzx r11d, byte [r10 + 4]
mov byte [r8 + 4], r11b
mov byte [r10 + 4], al
movzx eax, byte [r8 + 5]
movzx r11d, byte [r10 + 5]
mov byte [r8 + 5], r11b
mov byte [r10 + 5], al
movzx eax, byte [r8 + 6]
movzx r11d, byte [r10 + 6]
mov byte [r8 + 6], r11b
mov byte [r10 + 6], al
movzx eax, byte [r8 + 7]
movzx r11d, byte [r10 + 7]
mov byte [r8 + 7], r11b
mov byte [r10 + 7], al
movzx eax, byte [r8 + 8]
movzx r11d, byte [r10 + 8]
mov byte [r8 + 8], r11b
mov byte [r10 + 8], al
movzx eax, byte [r8 + 9]
movzx r11d, byte [r10 + 9]
mov byte [r8 + 9], r11b
mov byte [r10 + 9], al
movzx eax, byte [r8 + 0xa]
movzx r11d, byte [r10 + 0xa]
mov byte [r8 + 0xa], r11b
mov byte [r10 + 0xa], al
movzx eax, byte [r8 + 0xb]
movzx r11d, byte [r10 + 0xb]
mov byte [r8 + 0xb], r11b
mov byte [r10 + 0xb], al
movzx eax, byte [r8 + 0xc]
movzx r11d, byte [r10 + 0xc]
mov byte [r8 + 0xc], r11b
mov byte [r10 + 0xc], al
movzx eax, byte [r8 + 0xd]
movzx r11d, byte [r10 + 0xd]
mov byte [r8 + 0xd], r11b
mov byte [r10 + 0xd], al
movzx eax, byte [r8 + 0xe]
movzx r11d, byte [r10 + 0xe]
mov byte [r8 + 0xe], r11b
mov byte [r10 + 0xe], al
movzx eax, byte [r8 + 0xf]
movzx r11d, byte [r10 + 0xf]
mov byte [r8 + 0xf], r11b
mov byte [r10 + 0xf], al
movzx eax, byte [r8 + 0x10]
movzx r11d, byte [r10 + 0x10]
mov byte [r8 + 0x10], r11b
mov byte [r10 + 0x10], al
movzx eax, byte [r8 + 0x11]
movzx r11d, byte [r10 + 0x11]
mov byte [r8 + 0x11], r11b
mov byte [r10 + 0x11], al
movzx eax, byte [r8 + 0x12]
movzx r11d, byte [r10 + 0x12]
mov byte [r8 + 0x12], r11b
mov byte [r10 + 0x12], al
movzx eax, byte [r8 + 0x13]
movzx r11d, byte [r10 + 0x13]
mov byte [r8 + 0x13], r11b
mov byte [r10 + 0x13], al
movzx eax, byte [r8 + 0x14]
movzx r11d, byte [r10 + 0x14]
mov byte [r8 + 0x14], r11b
mov byte [r10 + 0x14], al
movzx eax, byte [r8 + 0x15]
movzx r11d, byte [r10 + 0x15]
mov byte [r8 + 0x15], r11b
mov byte [r10 + 0x15], al
movzx eax, byte [r8 + 0x16]
movzx r11d, byte [r10 + 0x16]
mov byte [r8 + 0x16], r11b
mov byte [r10 + 0x16], al
movzx eax, byte [r8 + 0x17]
movzx r11d, byte [r10 + 0x17]
mov byte [r8 + 0x17], r11b
mov byte [r10 + 0x17], al
mov rbx, qword [r13]
mov r14, rbx
jmp 0x14011ffb0
lea rax, [rdx - 0x10]
and rax, qword [r13 + 8]
mov byte [r14 + rdx], 0xff
mov byte [rax + r14 + 0x10], 0xff
mov rax, qword [r8 + 0x10]
mov qword [r10 + 0x10], rax
movdqu xmm0, xmmword [r8]
movdqu xmmword [r10], xmm0
jmp 0x14011ff68
mov rcx, qword [r13 + 8]
mov rbx, qword [r13 + 0x18]
lea rax, [rcx + 1]
mov rdx, rax
shr rdx, 3
and rax, 0xfffffffffffffff8
sub rax, rdx
cmp rcx, 8
cmovb rax, rcx
sub rax, rbx
mov qword [r13 + 0x10], rax
movabs rsi, 0x7ffffffffffffff0
add rsi, 0x11
mov rax, rsi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400da4f0
int3