Function at 0x7ff6f9cea8c0
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov r13, rcx
mov rcx, qword [rcx + 0x18]
mov qword [rsp + 0x30], rcx
add rcx, 0x10
jb 0x7ff6f9ceaeb5
mov r14, qword [r13]
lea r15, [r14 + 1]
mov rax, r15
shr rax, 3
mov r12, r15
and r12, 0xfffffffffffffff8
sub r12, rax
cmp r14, 8
mov rax, r12
cmovb rax, r14
mov rdx, rax
shr rdx, 1
cmp rcx, rdx
jbe 0x7ff6f9cea944
inc rax
cmp rcx, rax
cmova rax, rcx
cmp rax, 8
mov qword [rsp + 0x28], r13
jae 0x7ff6f9ceabac
xor ecx, ecx
cmp rax, 4
setae cl
lea r13, [rcx*4 + 4]
jmp 0x7ff6f9ceabf4
mov rbx, qword [r13 + 8]
xor eax, eax
movdqa xmm0, xmmword [0x7ff6f9cf28c0]
xor edx, edx
jmp 0x7ff6f9cea986
cmp rax, r15
mov rcx, rax
adc rcx, 0
cmp rax, r15
jae 0x7ff6f9cea99c
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + rax]
por xmm1, xmm0
movdqa xmmword [rbx + rax], xmm1
mov dl, 1
mov rax, rcx
test dl, 1
je 0x7ff6f9cea960
add rax, 0xf
jb 0x7ff6f9cea99c
cmp rax, r15
jae 0x7ff6f9cea99c
lea rcx, [rax + 1]
jmp 0x7ff6f9cea96f
cmp r15, 0x10
jae 0x7ff6f9ceac55
lea rcx, [rbx + 0x10]
mov rdx, rbx
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
cmp r14, 0xffffffffffffffff
je 0x7ff6f9ceac69
xor r10d, r10d
movabs r8, 0xcbf29ce484222325
movabs r11, 0x1efac7090aef4a21
movabs r9, 0x100000001b3
jmp 0x7ff6f9ceaa14
shr rdi, 0x39
lea rax, [r10 - 0x10]
and rax, r14
mov byte [rbx + r10], dil
mov byte [rax + rbx + 0x10], dil
lea rax, [r10 + 1]
cmp r10, r14
mov r10, rax
je 0x7ff6f9ceab9f
cmp byte [rbx + r10], 0x80
jne 0x7ff6f9ceaa04
mov r15, r10
not r15
shl r15, 4
add r15, rbx
mov rax, r10
shl rax, 4
neg rax
lea rcx, [rbx + rax]
add rcx, 0xfffffffffffffff0
nop word [rax + rax]
movzx eax, byte [rcx + 2]
xor rax, r8
imul rax, r11
movzx edx, byte [rcx + 3]
xor rdx, rax
imul rdx, r11
movzx eax, byte [rcx + 4]
xor rax, rdx
imul rax, r11
movzx edx, byte [rcx + 5]
xor rdx, rax
imul rdx, r11
movzx eax, byte [rcx + 6]
xor rax, rdx
imul rax, r11
movzx edx, byte [rcx + 7]
xor esi, esi
cmp rdx, 8
setne sil
xor rsi, rax
imul rsi, r11
mov rax, rsi
xor rax, rdx
imul rax, r11
cmp rdx, 8
cmove rax, rsi
movzx edx, word [rcx]
movzx edi, dl
shr rdx, 8
xor rdi, rax
imul rdi, r9
xor rdi, rdx
imul rdi, r9
mov rbp, r14
and rbp, rdi
movdqu xmm0, xmmword [rbx + rbp]
pmovmskb edx, xmm0
mov rsi, rbp
test edx, edx
jne 0x7ff6f9ceaaf7
mov eax, 0x10
mov rsi, rbp
nop word cs:[rax + rax]
add rsi, rax
and rsi, r14
movdqu xmm0, xmmword [rbx + rsi]
pmovmskb edx, xmm0
add rax, 0x10
test edx, edx
je 0x7ff6f9ceaae0
bsf ax, dx
movzx edx, ax
add rdx, rsi
and rdx, r14
cmp byte [rbx + rdx], 0
js 0x7ff6f9ceab19
movdqa xmm0, xmmword [rbx]
pmovmskb eax, xmm0
bsf ax, ax
movzx edx, ax
mov rax, r10
sub rax, rbp
mov rsi, rdx
sub rsi, rbp
xor rsi, rax
and rsi, r14
cmp rsi, 0x10
jb 0x7ff6f9cea9f0
mov rsi, rdx
not rsi
shl rsi, 4
add rsi, rbx
movzx eax, byte [rbx + rdx]
shr rdi, 0x39
lea rbp, [rdx - 0x10]
and rbp, r14
mov byte [rbx + rdx], dil
mov byte [rbp + rbx + 0x10], dil
cmp al, 0xff
je 0x7ff6f9ceab80
mov rax, qword [r15]
mov rdx, qword [rsi]
mov qword [r15], rdx
mov qword [rsi], rax
mov rax, qword [r15 + 8]
mov rdx, qword [rsi + 8]
mov qword [r15 + 8], rdx
mov qword [rsi + 8], rax
jmp 0x7ff6f9ceaa40
lea rax, [r10 - 0x10]
and rax, r14
mov byte [rbx + r10], 0xff
mov byte [rax + rbx + 0x10], 0xff
movdqu xmm0, xmmword [r15]
movdqu xmmword [rsi], xmm0
jmp 0x7ff6f9ceaa04
cmp r14, 8
cmovb r12, r14
jmp 0x7ff6f9ceac6c
mov ecx, 8
mul rcx
jo 0x7ff6f9ceaeb5
mov rcx, rax
movabs rdx, 0x2492492492492493
mul rdx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 2
dec rcx
bsr rcx, rcx
xor ecx, 0x3f
mov r13, 0xffffffffffffffff
shr r13, cl
inc r13
je 0x7ff6f9ceae9b
mov ecx, 0x10
mov rax, r13
mul rcx
jo 0x7ff6f9ceaeb5
mov rsi, rax
lea rdi, [r13 + 0x10]
mov r12, rax
add r12, rdi
jb 0x7ff6f9ceaeb5
je 0x7ff6f9ceac7a
mov rcx, qword [0x7ff6f9d20580]
test rcx, rcx
jne 0x7ff6f9ceac3b
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x7ff6f9ceac4b
mov rcx, rax
mov qword [0x7ff6f9d20580], rax
xor edx, edx
mov r8, r12
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
jne 0x7ff6f9ceac7f
mov rcx, r12
call fcn.7ff6f9cb5b10
ud2
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rbx + r15], xmm0
cmp r14, 0xffffffffffffffff
jne 0x7ff6f9cea9bf
xor r12d, r12d
sub r12, qword [rsp + 0x30]
mov qword [r13 + 0x10], r12
jmp 0x7ff6f9ceae80
mov eax, 0x10
lea rbx, [r13 - 1]
mov rcx, r13
shr rcx, 3
and r13, 0xfffffffffffffff8
sub r13, rcx
cmp rbx, 8
cmovb r13, rbx
add rsi, rax
mov rcx, rsi
mov dl, 0xff
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [rsp + 0x30]
sub r13, rcx
test r15, r15
je 0x7ff6f9ceae42
mov rax, qword [rsp + 0x28]
mov r8, qword [rax + 8]
lea r11, [r8 - 0x10]
xor ecx, ecx
movabs r9, 0xcbf29ce484222325
movabs r12, 0x1efac7090aef4a21
movabs r10, 0x100000001b3
jmp 0x7ff6f9cead30
shr rbp, 0x39
lea rax, [rdi - 0x10]
and rax, rbx
mov byte [rsi + rdi], bpl
mov byte [rax + rsi + 0x10], bpl
mov rax, rcx
not rax
shl rax, 4
not rdi
shl rdi, 4
movdqu xmm0, xmmword [r8 + rax]
movdqu xmmword [rsi + rdi], xmm0
lea rax, [rcx + 1]
cmp rcx, r14
mov rcx, rax
je 0x7ff6f9ceae22
cmp byte [r8 + rcx], 0
js 0x7ff6f9cead20
mov rdx, rcx
shl rdx, 4
mov rax, r11
sub rax, rdx
movzx edx, byte [rax + 2]
xor rdx, r9
imul rdx, r12
movzx edi, byte [rax + 3]
xor rdi, rdx
imul rdi, r12
movzx edx, byte [rax + 4]
xor rdx, rdi
imul rdx, r12
movzx edi, byte [rax + 5]
xor rdi, rdx
imul rdi, r12
movzx edx, byte [rax + 6]
xor rdx, rdi
imul rdx, r12
movzx edi, byte [rax + 7]
xor ebp, ebp
cmp rdi, 8
setne bpl
xor rbp, rdx
imul rbp, r12
mov rdx, rbp
xor rdx, rdi
imul rdx, r12
cmp rdi, 8
cmove rdx, rbp
movzx eax, word [rax]
movzx ebp, al
shr rax, 8
xor rbp, rdx
imul rbp, r10
xor rbp, rax
imul rbp, r10
mov rax, rbp
and rax, rbx
movdqu xmm0, xmmword [rsi + rax]
pmovmskb edi, xmm0
test edi, edi
jne 0x7ff6f9ceadf7
mov edx, 0x10
nop word cs:[rax + rax]
add rax, rdx
and rax, rbx
movdqu xmm0, xmmword [rsi + rax]
pmovmskb edi, xmm0
add rdx, 0x10
test edi, edi
je 0x7ff6f9ceade0
bsf dx, di
movzx edi, dx
add rdi, rax
and rdi, rbx
cmp byte [rsi + rdi], 0
js 0x7ff6f9ceacf0
movdqa xmm0, xmmword [rsi]
pmovmskb eax, xmm0
bsf ax, ax
movzx edi, ax
jmp 0x7ff6f9ceacf0
mov rax, qword [rsp + 0x28]
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r13
mov rcx, qword [rsp + 0x30]
mov qword [rax + 0x18], rcx
test r14, r14
jne 0x7ff6f9ceae5a
jmp 0x7ff6f9ceae80
mov rax, qword [rsp + 0x28]
mov r8, qword [rax + 8]
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], rcx
mov ecx, 0x10
mov rax, r15
mul rcx
add r14, rax
cmp r14, 0xffffffffffffffef
je 0x7ff6f9ceae80
sub r8, rax
mov rcx, qword [0x7ff6f9d20580]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
movabs rax, 0x8000000000000001
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x7ff6f9cfb6f0]
lea r8, [0x7ff6f9d17530]
mov edx, 0x1c
call fcn.7ff6f9cee040
ud2
call fcn.7ff6f9cb5aa0
ud2