Function at 0x140021700
Capabilities:
Hash data using fnv

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x590
movaps xmmword [r11 - 0x38], xmm6
mov rax, qword [0x1403a73d0]
xor rax, rsp
mov qword [rsp + 0x570], rax
mov rdi, rdx
mov qword [r11 - 0x528], rdx
mov r12, rcx
mov qword [rsp + 0xc0], rcx
mov qword [r11 - 0x338], rdx
xor r15d, r15d
mov esi, r15d
mov dword [rsp + 0x28], r15d
cmp qword [rcx + 0x50], r15
jne 0x140021765
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov byte [rsp + 0x20], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
movdqa xmm1, xmmword [0x140353040]
movdqu xmmword [rsp + 0x78], xmm1
mov word [rsp + 0x68], r15w
lea r9, [rsp + 0x68]
lea r8, [0x1402ead08]
mov rdx, qword [0x1403bbd90]
lea rcx, [rsp + 0x370]
call fcn.1400d43bc
nop
lea rcx, [rsp + 0x68]
call fcn.140011c90
lea rax, vtable.bit7z::BitExtractor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const____ptr64_.0
mov qword [rsp + 0x370], rax
mov rcx, rdi
call fcn.14002bf40
xorps xmm0, xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x288], xmm1
mov qword [rsp + 0x298], r15
movups xmmword [rsp + 0x2d0], xmm0
movups xmmword [rsp + 0x2e0], xmm0
movups xmmword [rsp + 0x2f0], xmm0
movups xmmword [rsp + 0x300], xmm0
mov dword [rsp + 0x2d0], 0
mov qword [rsp + 0x2d8], r15
mov qword [rsp + 0x2e0], r15
mov ecx, 0x30
call fcn.14010f520
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rsp + 0x2d8], rax
mov qword [rsp + 0x2e8], r15
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x2f0], xmm0
mov qword [rsp + 0x300], 7
mov qword [rsp + 0x308], 8
mov dword [rsp + 0x2d0], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [rsp + 0x2e8]
call fcn.140027f00
nop
xor r13b, r13b
mov dword [rsp + 0x24], r15d
mov r14, qword [rdi]
mov rax, qword [rdi + 8]
mov qword [rsp + 0x2b0], rax
movabs rdi, 0x100000001b3
cmp r14, rax
je 0x140021c4c
mov rdx, r14
lea rcx, [r12 + 0x40]
call fcn.14002bd50
test al, al
je 0x140021ac5
mov r8, r14
lea rdx, [rsp + 0x190]
lea rcx, [r12 + 0x40]
call fcn.14002cb40
mov r15, qword [rax]
mov eax, dword [r15 + 0x30]
mov dword [rsp + 0x48], eax
mov rdx, qword [rsp + 0x290]
cmp rdx, qword [rsp + 0x298]
je 0x1400218fe
mov dword [rdx], eax
add qword [rsp + 0x290], 4
jmp 0x140021910
lea r8, [rsp + 0x48]
lea rcx, [rsp + 0x288]
call fcn.140037d40
mov r8d, dword [r15 + 0x30]
movzx edx, r8b
movabs rax, 0xcbf29ce484222325
xor rdx, rax
imul rdx, rdi
mov eax, r8d
shr eax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, rdi
mov eax, r8d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, rdi
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, rdi
and rdx, qword [rsp + 0x300]
add rdx, rdx
mov rcx, qword [rsp + 0x2e8]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [rsp + 0x2d8]
je 0x140021993
mov rcx, qword [rcx + rdx*8]
nop dword [rax]
cmp r8d, dword [rax + 0x10]
jne 0x14002198a
xor ebx, ebx
jmp 0x140021997
cmp rax, rcx
jne 0x140021c43
xor ebx, ebx
mov eax, ebx
test rax, rax
je 0x140021ad6
mov eax, dword [r15 + 0x30]
mov dword [rsp + 0x28], eax
lea r8, [rsp + 0x28]
lea rdx, [rsp + 0x1a0]
lea rcx, [rsp + 0x2d0]
call fcn.14002c0a0
mov rbx, qword [rax]
lea rdx, [r14 + 0x20]
lea rcx, [rsp + 0xd0]
call fcn.140025b80
mov byte [rsp + 0xf0], 1
or esi, 4
mov rdx, qword [rbx + 0x20]
cmp rdx, qword [rbx + 0x28]
je 0x140021a2d
movups xmm0, xmmword [rsp + 0xd0]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rsp + 0xe0]
movups xmmword [rdx + 0x10], xmm1
xor r15d, r15d
mov qword [rsp + 0xe0], r15
mov qword [rsp + 0xe8], 7
mov word [rsp + 0xd0], r15w
mov byte [rdx + 0x20], 1
add qword [rbx + 0x20], 0x28
jmp 0x140021a41
lea r8, [rsp + 0xd0]
lea rcx, [rbx + 0x18]
call fcn.140036ea0
xor r15d, r15d
lea rcx, [rsp + 0xd0]
call fcn.140011c90
mov r13b, 1
xorps xmm0, xmm0
movups xmmword [rsp + 0x2a0], xmm0
mov rax, qword [r12]
mov r8, r14
lea rdx, [rsp + 0x2a0]
mov rcx, r12
call qword [rax + 0x20]
nop
mov rcx, qword [rsp + 0x2a0]
test rcx, rcx
je 0x140021a89
mov rax, qword [rcx]
call qword [rax + 0x40]
mov dword [rsp + 0x24], eax
mov rbx, qword [rsp + 0x2a8]
test rbx, rbx
je 0x140021ac5
mov edx, 0xffffffff
lock xadd dword [rbx + 8], edx
cmp edx, 1
jne 0x140021ac5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140021ac5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add r14, 0x40
mov rax, qword [rsp + 0x2b0]
jmp 0x1400218a1
lea rdx, [r14 + 0x20]
lea rcx, [rsp + 0x118]
call fcn.140025b80
mov byte [rsp + 0x138], 1
or esi, 8
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rbx
mov edx, 1
call fcn.140033560
mov rbx, rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
lea rcx, [rax + 0x28]
mov qword [rsp + 0x40], rcx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x140], rax
lea rdi, [rsp + 0x118]
lea rcx, [rsp + 0x140]
xorps xmm0, xmm0
movups xmmword [rsp + 0x310], xmm0
mov qword [rsp + 0x310], rbx
mov qword [rsp + 0x318], rbx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x320], rax
cmp rdi, rcx
je 0x140021b96
mov rdx, rdi
mov rcx, rbx
call fcn.140025b80
movzx eax, byte [rdi + 0x20]
mov byte [rbx + 0x20], al
add rbx, 0x28
mov qword [rsp + 0x318], rbx
add rdi, 0x28
lea rcx, [rsp + 0x140]
jmp 0x140021b65
mov eax, dword [r15 + 0x30]
mov dword [rsp + 0xf8], eax
mov rcx, qword [rsp + 0x40]
xor r15d, r15d
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], r15
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rbx
mov qword [rsp + 0x110], rcx
lea r8, [rsp + 0xf8]
lea rdx, [rsp + 0x1b0]
lea rcx, [rsp + 0x2d0]
call fcn.140036bc0
nop
lea rcx, [rsp + 0x100]
call fcn.140026df0
nop
lea rcx, [rsp + 0x30]
call fcn.140026df0
nop
lea r9, [fcn.140011980]
lea edx, [r15 + 0x28]
lea r8d, [r15 + 1]
lea rcx, [rsp + 0x118]
call fcn.14010f8f8
movabs rdi, 0x100000001b3
add r14, 0x40
mov rax, qword [rsp + 0x2b0]
jmp 0x1400218a1
mov rax, qword [rax + 8]
jmp 0x140021980
mov rdx, qword [rsp + 0x290]
mov r8, rdx
mov rcx, qword [rsp + 0x288]
sub r8, rcx
sar r8, 2
xor r9d, r9d
call fcn.140039b10
lea rax, [rsp + 0x288]
mov qword [rsp + 0x2b0], rax
lea rax, [rsp + 0x2d0]
mov qword [rsp + 0x2b8], rax
lea rax, [0x14034d088]
mov qword [rsp + 0x150], rax
movups xmm0, xmmword [rsp + 0x2b0]
movups xmmword [rsp + 0x158], xmm0
lea rax, [rsp + 0x150]
mov qword [rsp + 0x188], rax
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x370]
call fcn.1400d4350
nop
mov rcx, qword [rsp + 0x188]
test rcx, rcx
je 0x140021cf4
mov rax, qword [rcx]
lea rdx, [rsp + 0x150]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
test r13b, r13b
je 0x140021e20
cmp dword [rsp + 0x24], 4
jne 0x140021e20
mov rdi, qword [rsp + 0x288]
mov r14, qword [rsp + 0x290]
nop dword [rax + rax]
cmp rdi, r14
je 0x140021f27
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x80], 7
mov word [rsp + 0x68], r15w
mov ebx, dword [rdi]
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r15
mov edx, 1
call fcn.140033340
mov qword [rsp + 0x50], rax
lea rcx, [rax + 4]
mov qword [rsp + 0x60], rcx
mov dword [rax], ebx
mov qword [rsp + 0x58], rcx
lea rdx, [r12 + 8]
lea rcx, [rsp + 0xa0]
call fcn.140025b80
or esi, 1
lea r9, [rsp + 0x68]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x370]
call fcn.1400234a0
nop
lea rcx, [rsp + 0xa0]
call fcn.140011c90
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140021e0d
mov rax, qword [rsp + 0x60]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021dfa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021fff
call fcn.1400934c0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r15
lea rcx, [rsp + 0x68]
call fcn.140011c90
add rdi, 4
jmp 0x140021d20
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
movdqa xmm1, xmmword [0x140353040]
movdqu xmmword [rsp + 0x78], xmm1
mov word [rsp + 0x68], r15w
lea rdx, [r12 + 8]
lea rcx, [rsp + 0xa0]
call fcn.140025b80
nop
mov rax, qword [rsp + 0x290]
cmp qword [rsp + 0x288], rax
je 0x140022005
xorps xmm0, xmm0
movups xmmword [rsp + 0x330], xmm0
movups xmmword [rsp + 0x340], xmm0
movups xmmword [rsp + 0x350], xmm0
movups xmmword [rsp + 0x360], xmm0
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x370]
lea rcx, [rsp + 0x330]
call fcn.1400d752c
nop
lea rcx, [rsp + 0x330]
call fcn.1400d81e8
mov rcx, qword [rsp + 0x288]
mov rdx, qword [rsp + 0x290]
cmp rcx, rdx
je 0x140021ed5
cmp dword [rcx], eax
jae 0x140021ed5
add rcx, 4
cmp rcx, rdx
jne 0x140021ec8
mov qword [rsp + 0x2b0], rcx
cmp rcx, rdx
jne 0x140022066
lea r8, [rsp + 0x288]
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x330]
call fcn.1400d7bd0
nop
lea rcx, [rsp + 0x330]
call fcn.1400d7930
nop
lea rcx, [rsp + 0xa0]
call fcn.140011c90
nop
lea rcx, [rsp + 0x68]
call fcn.140011c90
mov bl, 1
mov byte [rsp + 0x20], bl
lea rcx, [rsp + 0x2d0]
call fcn.1400222e0
nop
mov rcx, qword [rsp + 0x288]
test rcx, rcx
je 0x140021f9d
mov rax, qword [rsp + 0x298]
sub rax, rcx
sar rax, 2
lea rdx, [rax*4]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021f84
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400220e2
call fcn.1400934c0
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x288], xmm0
mov qword [rsp + 0x298], r15
lea rcx, [rsp + 0x370]
call fcn.1400200f0
nop
mov rdi, qword [rsp + 0x90]
jmp 0x140021fc2
mov rcx, rdi
call fcn.140026f40
movzx eax, bl
mov rcx, qword [rsp + 0x570]
xor rcx, rsp
call fcn.14010f500
lea r11, [rsp + 0x590]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.1402a816c
nop
lea rcx, [rsp + 0x2b0]
call fcn.140025660
nop
mov edx, 4
lea rcx, [rsp + 0x50]
call fcn.1400d50cc
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x90], xmm0
lea r9, [rsp + 0x2b0]
lea r8, [rsp + 0x90]
lea rdx, str.Cannot_extract_items
lea rcx, [rsp + 0x200]
call fcn.1400d1a70
lea rdx, [0x1403a1e08]
lea rcx, [rsp + 0x200]
call fcn.14029d5e4
nop
mov edx, 9
lea rcx, [rsp + 0x50]
call fcn.1400d50cc
movups xmm6, xmmword [rax]
lea rcx, [rsp + 0x2b0]
call fcn.140026de0
mov edx, dword [rax]
lea rcx, [rsp + 0x1c0]
call fcn.140017b00
nop
mov r8, rax
lea rdx, str.Cannot_extract_item_at_the_index
lea rcx, [rsp + 0x1e0]
call fcn.14002bba0
nop
movaps xmmword [rsp + 0x90], xmm6
lea r8, [rsp + 0x90]
mov rdx, rax
lea rcx, [rsp + 0x240]
call fcn.1400d1950
lea rdx, [0x1403a1e08]
lea rcx, [rsp + 0x240]
call fcn.14029d5e4
nop
call fcn.1402a816c
int3