Function at 0x14004ed20
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov r13, rdx
mov r15, rcx
mov rcx, qword [rdx + 8]
call fcn.1400c96cc
mov r12, rax
mov r8, qword [r13 + 8]
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov qword [rsp + 0x88], 0
mov rcx, qword [r15]
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
mov r9, qword [r13 + 8]
mov r8, r12
mov rdx, qword [r13]
mov rcx, qword [rcx + 8]
call qword [sym.imp.ntdll.dll_ZwReadVirtualMemory]
mov rbx, qword [rsp + 0x88]
test ebx, ebx
jle 0x14004edf6
xor r14d, r14d
mov rax, qword [r15 + 0x10]
mov r9, qword [rax]
mov rax, qword [r15 + 8]
mov rdi, qword [rax]
xor esi, esi
test rbx, rbx
je 0x14004edf6
mov r11, r12
sub r11, rdi
nop
xor edx, edx
test r9, r9
je 0x14004ede9
mov rax, rdi
lea r10, [r11 + rsi]
nop
movzx ecx, byte [rax]
cmp cl, 0xc
je 0x14004edde
movzx r8d, byte [rax + r10]
cmp cl, 0xf
jne 0x14004edd9
test r8b, r8b
je 0x14004ede9
jmp 0x14004edde
cmp r8b, cl
jne 0x14004ede9
inc rdx
inc rax
cmp rdx, r9
jb 0x14004edc0
cmp rdx, r9
je 0x14004ee16
inc rsi
cmp rsi, rbx
jb 0x14004edb0
mov rcx, r12
call fcn.1400c9628
mov rbx, qword [rsp + 0x98]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp esi, 0xffffffff
je 0x14004edf6
movabs rdi, 0x100000001b3
movabs rbp, 0xcbf29ce484222325
movsxd rax, esi
add r14, rax
mov rcx, qword [r13]
add rcx, r14
mov qword [rsp + 0x80], rcx
mov rbx, qword [r15 + 0x18]
mov qword [rsp + 0x90], rbx
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_lock]
test eax, eax
jne 0x14004f025
mov eax, dword [rbx + 0x4c]
cmp eax, 0x7fffffff
je 0x14004f014
mov rdx, qword [r15]
mov r8, qword [rsp + 0x80]
movzx ecx, r8b
xor rcx, rbp
imul rcx, rdi
movzx eax, byte [rsp + 0x81]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rsp + 0x82]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rsp + 0x83]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rsp + 0x84]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rsp + 0x85]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rsp + 0x86]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rsp + 0x87]
xor rcx, rax
imul rcx, rdi
mov r9, qword [rdx + 0x170]
and r9, rcx
mov r10, qword [rdx + 0x158]
mov rax, r9
add rax, rax
mov rcx, qword [r10 + rax*8 + 8]
mov rax, qword [rdx + 0x148]
cmp rcx, rax
je 0x14004ef34
add r9, r9
mov rdx, qword [r10 + r9*8]
cmp r8, qword [rcx + 0x10]
je 0x14004ef36
cmp rcx, rdx
je 0x14004ef34
mov rcx, qword [rcx + 8]
cmp r8, qword [rcx + 0x10]
jne 0x14004ef23
jmp 0x14004ef36
xor ecx, ecx
test rcx, rcx
je 0x14004ef40
cmp rcx, rax
jne 0x14004ef8b
mov rcx, qword [r15 + 0x20]
mov rdx, qword [rcx + 8]
cmp rdx, qword [rcx + 0x10]
je 0x14004ef58
mov qword [rdx], r8
add qword [rcx + 8], 8
jmp 0x14004ef65
lea r8, [rsp + 0x80]
call fcn.140064f70
mov rcx, qword [r15]
add rcx, 0x140
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x30]
call fcn.1400639e0
mov rcx, qword [rax]
mov dword [rcx + 0x18], 1
mov rax, qword [r15 + 0x10]
mov r9, qword [rax]
add r14, r9
mov rax, qword [r15 + 8]
mov rbp, qword [rax]
mov r11, qword [rsp + 0x88]
sub r11, r9
sub r11, r14
lea rsi, [r14 + r12]
mov edi, 0
je 0x14004effc
sub rsi, rbp
xor edx, edx
test r9, r9
je 0x14004efef
mov rax, rbp
lea r10, [rdi + rsi]
movzx ecx, byte [rax]
cmp cl, 0xc
je 0x14004efe4
movzx r8d, byte [rax + r10]
cmp cl, 0xf
jne 0x14004efdf
test r8b, r8b
je 0x14004efef
jmp 0x14004efe4
cmp r8b, cl
jne 0x14004efef
inc rdx
inc rax
cmp rdx, r9
jb 0x14004efc6
cmp rdx, r9
je 0x14004f001
inc rdi
cmp rdi, r11
jb 0x14004efb8
mov edi, 0xffffffff
mov esi, edi
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
cmp edi, 0xffffffff
jmp 0x14004ee19
dec eax
mov dword [rbx + 0x4c], eax
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3