Function at 0x14006a890
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2b0]
sub rsp, 0x3b0
mov rax, qword [0x1403a73d0]
xor rax, rsp
mov qword [rbp + 0x2a0], rax
mov r14, rcx
mov qword [rsp + 0x60], rcx
xor r13d, r13d
mov eax, r13d
mov dword [rsp + 0x20], eax
mov dword [rbp + 0x220], eax
mov rcx, qword [rcx]
add rcx, 0x390
call fcn.140077050
mov rcx, qword [r14]
add rcx, 0x3d0
call fcn.140076f70
mov rdi, qword [r14]
mov rsi, qword [rdi + 0x478]
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x19], r13b
jne 0x14006a93f
mov r8, qword [rbx + 0x10]
lea rdx, [rdi + 0x478]
lea rcx, [rdi + 0x478]
call fcn.14007b100
mov rcx, rbx
mov rbx, qword [rbx]
mov edx, 0x20
call fcn.1400934c0
cmp byte [rbx + 0x19], r13b
je 0x14006a912
mov qword [rsi + 8], rsi
mov qword [rsi], rsi
mov qword [rsi + 0x10], rsi
mov qword [rdi + 0x480], r13
mov rdi, qword [r14]
mov rsi, qword [rdi + 0x410]
mov rbx, qword [rsi + 8]
cmp byte [rbx + 0x19], r13b
jne 0x14006a992
mov r8, qword [rbx + 0x10]
lea rdx, [rdi + 0x410]
lea rcx, [rdi + 0x410]
call fcn.140079e90
mov rcx, rbx
mov rbx, qword [rbx]
mov edx, 0x28
call fcn.1400934c0
cmp byte [rbx + 0x19], r13b
je 0x14006a965
mov qword [rsi + 8], rsi
mov qword [rsi], rsi
mov qword [rsi + 0x10], rsi
mov qword [rdi + 0x418], r13
xorps xmm0, xmm0
movups xmmword [rbp + 0x260], xmm0
movups xmmword [rbp + 0x270], xmm0
movups xmmword [rbp + 0x280], xmm0
movups xmmword [rbp + 0x290], xmm0
mov dword [rbp + 0x260], r13d
mov qword [rbp + 0x268], r13
mov qword [rbp + 0x270], r13
mov ecx, 0x28
call fcn.14010f520
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp + 0x268], rax
mov qword [rbp + 0x278], r13
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x280], xmm0
mov qword [rbp + 0x290], 7
mov qword [rbp + 0x298], 8
mov dword [rbp + 0x260], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [rbp + 0x278]
call fcn.140027f00
nop
mov rax, qword [r14 + 0x10]
mov qword [rbp - 0x70], rax
mov rbx, qword [rax]
cmp rbx, rax
je 0x14006b345
nop dword [rax + rax]
mov r12, r13
mov rcx, qword [rbx + 0x30]
mov rax, qword [rcx]
lea rdx, [rbp + 0x240]
call qword [rax + 0xa8]
nop
mov r15, qword [rbp + 0x240]
mov r13, qword [rbp + 0x248]
cmp r15, r13
je 0x14006af25
nop
mov rsi, qword [r14]
add rsi, 0x410
mov rcx, qword [r15]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rdi, rax
mov r14, qword [rsi]
mov rcx, qword [r14 + 8]
mov qword [rsp + 0x28], rcx
xor eax, eax
mov dword [rsp + 0x30], eax
mov rdx, r14
cmp byte [rcx + 0x19], al
jne 0x14006aad8
mov qword [rsp + 0x28], rcx
cmp qword [rcx + 0x20], rdi
jae 0x14006aac5
mov dword [rsp + 0x30], eax
mov rcx, qword [rcx + 0x10]
jmp 0x14006aad3
mov dword [rsp + 0x30], 1
mov rdx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], al
je 0x14006aab0
cmp byte [rdx + 0x19], al
jne 0x14006aae3
cmp rdi, qword [rdx + 0x20]
jae 0x14006ab45
movabs rcx, 0x666666666666666
cmp qword [rsi + 8], rcx
je 0x14006b498
mov qword [rbp + 0x20], rsi
mov qword [rbp + 0x28], rax
mov ecx, 0x28
call fcn.14010f520
nop
mov qword [rax + 0x20], rdi
mov qword [rax], r14
mov qword [rax + 8], r14
mov qword [rax + 0x10], r14
mov word [rax + 0x18], 0
mov qword [rbp + 0x28], 0
movups xmm0, xmmword [rsp + 0x28]
movaps xmmword [rbp + 0xa0], xmm0
mov r8, rax
lea rdx, [rbp + 0xa0]
mov rcx, rsi
call fcn.14003a620
mov rcx, qword [r15]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r9d, eax
mov dword [rbp + 0x220], r9d
mov r14, qword [rsp + 0x60]
mov r8, qword [r14]
lea rsi, [r8 + 0x390]
movzx edx, al
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs r10, 0x100000001b3
imul rdx, r10
mov eax, r9d
shr eax, 8
movzx ecx, al
xor rdx, rcx
imul rdx, r10
mov eax, r9d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r10
mov eax, r9d
shr rax, 0x18
xor rdx, rax
imul rdx, r10
mov rcx, qword [r8 + 0x3c0]
and rcx, rdx
add rcx, rcx
mov rdx, qword [r8 + 0x3a8]
mov rax, qword [rdx + rcx*8 + 8]
cmp rax, qword [r8 + 0x398]
je 0x14006abf1
mov rcx, qword [rdx + rcx*8]
cmp r9d, dword [rax + 0x10]
je 0x14006abf3
nop
cmp rax, rcx
je 0x14006abf1
mov rax, qword [rax + 8]
cmp r9d, dword [rax + 0x10]
jne 0x14006abe0
jmp 0x14006abf3
xor eax, eax
test rax, rax
jne 0x14006ade9
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x14006ac09
lock inc dword [rax + 8]
mov rax, qword [rbx + 0x30]
mov qword [rbp - 0x60], rax
mov rax, qword [rbx + 0x38]
mov qword [rbp - 0x58], rax
mov r8, r12
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x20]
call fcn.140069e80
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], 0
mov edx, 1
call fcn.140033650
mov rcx, rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
lea rdi, [rax + 0x20]
mov qword [rsp + 0x38], rdi
xor eax, eax
mov qword [rcx], rax
mov qword [rcx + 8], rax
mov rax, qword [rbp - 0x18]
test rax, rax
je 0x14006ac72
lock inc dword [rax + 8]
mov rax, qword [rbp - 0x20]
mov qword [rcx], rax
mov rax, qword [rbp - 0x18]
mov qword [rcx + 8], rax
mov rax, qword [rbp - 0x10]
mov qword [rcx + 0x10], rax
movzx eax, byte [rbp - 8]
mov byte [rcx + 0x18], al
mov rdx, rdi
mov rcx, rdi
call fcn.14007b580
nop
mov eax, dword [rbp + 0x220]
mov dword [rbp + 0x40], eax
mov rcx, qword [rsp + 0x38]
xor edx, edx
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rdx
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x28], rdx
mov qword [rbp + 0x48], rax
mov qword [rbp + 0x50], rdi
mov qword [rbp + 0x58], rcx
lea r8, [rbp + 0x40]
lea rdx, [rbp + 0xe0]
mov rcx, rsi
call fcn.14007c1f0
nop
lea rcx, [rbp + 0x48]
call fcn.140077de0
nop
lea rcx, [rsp + 0x28]
call fcn.140077de0
nop
lea r9, [fcn.140019540]
mov edx, 0x20
lea r8d, [rdx - 0x1f]
lea rcx, [rbp - 0x20]
call fcn.14010f8f8
mov rcx, qword [r15]
mov rax, qword [rcx]
lea rdx, [rbp + 0xc0]
call qword [rax + 0x30]
nop
lea rax, [rbp + 0xc0]
mov qword [rbp + 0x30], rax
lea rax, [rbp + 0xe0]
mov qword [rbp + 0x38], rax
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 0xb0]
call fcn.14005d130
mov rdi, rax
mov ecx, dword [rbp + 0x220]
mov dword [rsp + 0x78], ecx
xor eax, eax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
lea ecx, [rax + 0x40]
call fcn.14010f520
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp - 0x80], rax
mov rcx, qword [rdi]
mov qword [rbp - 0x80], rcx
mov qword [rdi], rax
mov rcx, qword [rbp - 0x78]
mov rax, qword [rdi + 8]
mov qword [rbp - 0x78], rax
mov qword [rdi + 8], rcx
or dword [rsp + 0x20], 1
lea r8, [rsp + 0x78]
lea rdx, [rbp + 0xf0]
lea rcx, [rbp + 0x260]
call fcn.14007c450
nop
lea rcx, [rbp - 0x80]
call fcn.14005d270
nop
lea rcx, [rbp + 0xb0]
call fcn.14005d270
nop
lea r9, [fcn.140011980]
mov edx, 0x20
lea r8d, [rdx - 0x1f]
lea rcx, [rbp + 0xc0]
call fcn.14010f8f8
jmp 0x14006af07
lea r8, [rbp + 0x220]
lea rdx, [rbp + 0x100]
mov rcx, rsi
call fcn.14007a180
mov rdi, qword [rax]
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x14006ae0f
lock inc dword [rax + 8]
mov rax, qword [rbx + 0x30]
mov qword [rbp - 0x50], rax
mov rax, qword [rbx + 0x38]
mov qword [rbp - 0x48], rax
mov r8, r12
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x150]
call fcn.140069e80
mov r8, rax
mov rdx, qword [rdi + 0x20]
cmp rdx, qword [rdi + 0x28]
je 0x14006ae74
xor ecx, ecx
mov qword [rdx], rcx
mov qword [rdx + 8], rcx
mov rax, qword [rax]
mov qword [rdx], rax
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov qword [r8], rcx
mov qword [r8 + 8], rcx
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
movzx eax, byte [r8 + 0x18]
mov byte [rdx + 0x18], al
add qword [rdi + 0x20], 0x20
jmp 0x14006ae7e
lea rcx, [rdi + 0x18]
call fcn.14007e5b0
nop
mov rdi, qword [rbp + 0x158]
test rdi, rdi
je 0x14006aeb9
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14006aeb9
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x14006aeb9
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, [rbp + 0x220]
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x260]
call fcn.140079910
mov rdi, qword [rax]
mov rcx, qword [r15]
mov rax, qword [rcx]
lea rdx, [rbp + 0x170]
call qword [rax + 0x30]
nop
mov r8, rax
lea rdx, [rbp + 0x210]
lea rcx, [rdi + 0x18]
call fcn.14005d590
nop
lea rcx, [rbp + 0x170]
call fcn.140011c90
inc r12
add r15, 0x10
cmp r15, r13
jne 0x14006aa80
mov r13, qword [rbp + 0x248]
mov r15, qword [rbp + 0x240]
test r15, r15
je 0x14006af8b
mov rdx, r13
mov rcx, r15
call fcn.14002d7f0
mov rdx, qword [rbp + 0x250]
mov rcx, qword [rbp + 0x240]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006af6f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006b49e
call fcn.1400934c0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x240], xmm0
xor r13d, r13d
mov qword [rbp + 0x250], r13
jmp 0x14006af8e
xor r13d, r13d
mov r15, r13
mov rcx, qword [rbx + 0x30]
mov rax, qword [rcx]
lea rdx, [rbp + 0x228]
call qword [rax + reloc.OLEAUT32.dll_VariantTimeToSystemTime]
nop
mov rsi, qword [rbp + 0x228]
mov r12, qword [rbp + 0x230]
cmp rsi, r12
je 0x14006b2ce
nop dword [rax]
mov rdi, qword [r14]
mov rcx, qword [rsi]
mov rax, qword [rcx]
lea rdx, [rbp + 0x190]
call qword [rax + 0x10]
mov r10, rax
mov r8, qword [rax + 0x10]
mov rcx, rax
cmp qword [rax + 0x18], 8
jb 0x14006afe7
mov rcx, qword [rax]
movabs r9, 0xcbf29ce484222325
add r8, r8
mov rdx, r13
je 0x14006b028
movabs r14, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
xor r9, rax
imul r9, r14
inc rdx
cmp rdx, r8
jb 0x14006b010
mov r14, qword [rsp + 0x60]
mov r8, r10
lea rdx, [rbp + 0x130]
lea rcx, [rdi + 0x3d0]
call fcn.140058720
mov rdi, qword [rax + 8]
lea rcx, [rbp + 0x190]
call fcn.140011c90
mov r14, qword [r14]
test rdi, rdi
jne 0x14006b1bf
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x14006b067
lock inc dword [rax + 8]
mov rax, qword [rbx + 0x30]
mov qword [rbp - 0x40], rax
mov rax, qword [rbx + 0x38]
mov qword [rbp - 0x38], rax
mov r8, r15
lea rdx, [rbp - 0x40]
lea rcx, [rbp]
call fcn.140069e80
nop
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r13
mov edx, 1
call fcn.140033650
mov rcx, rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
lea rdi, [rax + 0x20]
mov qword [rsp + 0x50], rdi
mov qword [rax], r13
mov qword [rax + 8], r13
mov rax, qword [rbp + 8]
test rax, rax
je 0x14006b0ca
lock inc dword [rax + 8]
mov rax, qword [rbp]
mov qword [rcx], rax
mov rax, qword [rbp + 8]
mov qword [rcx + 8], rax
mov rax, qword [rbp + 0x10]
mov qword [rcx + 0x10], rax
movzx eax, byte [rbp + 0x18]
mov byte [rcx + 0x18], al
mov rdx, rdi
mov rcx, rdi
call fcn.14007b580
mov qword [rsp + 0x48], rdi
mov rcx, qword [rsi]
mov rax, qword [rcx]
lea rdx, [rbp + 0x1b0]
call qword [rax + 0x10]
nop
movups xmm1, xmmword [rax]
movups xmmword [rbp + 0x60], xmm1
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rbp + 0x70], xmm0
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 7
mov word [rax], r13w
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x50], r13
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x48], r13
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x40], r13
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], rcx
mov qword [rbp + 0x90], rdx
lea r8, [rbp + 0x60]
lea rdx, [rbp + 0x120]
lea rcx, [r14 + 0x3d0]
call fcn.14007c740
nop
lea rcx, [rbp + 0x80]
call fcn.140077de0
lea rcx, [rbp + 0x60]
call fcn.140011c90
nop
lea rcx, [rbp + 0x1b0]
call fcn.140011c90
nop
lea rcx, [rsp + 0x40]
call fcn.140077de0
nop
lea r9, [fcn.140019540]
mov edx, 0x20
lea r8d, [rdx - 0x1f]
lea rcx, [rbp]
call fcn.14010f8f8
jmp 0x14006b2ab
mov rcx, qword [rsi]
mov rax, qword [rcx]
lea rdx, [rbp + 0x1f0]
call qword [rax + 0x10]
nop
mov r8, rax
lea rdx, [rbp + 0x140]
lea rcx, [r14 + 0x3d0]
call fcn.140079ee0
mov rdi, qword [rax]
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x14006b1f6
lock inc dword [rax + 8]
mov rax, qword [rbx + 0x30]
mov qword [rbp - 0x30], rax
mov rax, qword [rbx + 0x38]
mov qword [rbp - 0x28], rax
mov r8, r15
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x1d0]
call fcn.140069e80
mov r8, rax
mov rdx, qword [rdi + 0x38]
cmp rdx, qword [rdi + 0x40]
je 0x14006b259
mov qword [rdx], r13
mov qword [rdx + 8], r13
mov rax, qword [rax]
mov qword [rdx], rax
mov rax, qword [r8 + 8]
mov qword [rdx + 8], rax
mov qword [r8], r13
mov qword [r8 + 8], r13
mov rax, qword [r8 + 0x10]
mov qword [rdx + 0x10], rax
movzx eax, byte [r8 + 0x18]
mov byte [rdx + 0x18], al
add qword [rdi + 0x38], 0x20
jmp 0x14006b263
lea rcx, [rdi + 0x30]
call fcn.14007e5b0
nop
mov rdi, qword [rbp + 0x1d8]
test rdi, rdi
je 0x14006b29f
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14006b29f
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x14006b29f
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp + 0x1f0]
call fcn.140011c90
inc r15
add rsi, 0x10
cmp rsi, r12
mov r14, qword [rsp + 0x60]
jne 0x14006afc0
mov r12, qword [rbp + 0x230]
mov rsi, qword [rbp + 0x228]
test rsi, rsi
je 0x14006b32f
mov rdx, r12
mov rcx, rsi
call fcn.14002d7f0
mov rdx, qword [rbp + 0x238]
mov rcx, qword [rbp + 0x228]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006b318
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006b48c
call fcn.1400934c0
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x228], xmm0
mov qword [rbp + 0x238], r13
mov rax, qword [rbx]
mov rbx, rax
cmp rax, qword [rbp - 0x70]
je 0x14006b345
mov r14, qword [rsp + 0x60]
jmp 0x14006aa50
mov r14, qword [rbp + 0x268]
mov rbx, qword [r14]
cmp rbx, r14
je 0x14006b450
movabs r12, 0x7ffffffffffffff
mov r15, qword [rsp + 0x60]
nop word [rax + rax]
cmp qword [rbx + 0x20], 1
jbe 0x14006b441
mov rdi, qword [r15]
add rdi, 0x478
mov rsi, qword [rdi]
mov rax, qword [rsi + 8]
mov qword [rbp + 0x228], rax
mov dword [rbp + 0x230], r13d
mov rcx, rsi
cmp byte [rax + 0x19], 0
jne 0x14006b3df
mov edx, dword [rbx + 0x10]
nop word [rax + rax]
mov qword [rbp + 0x228], rax
cmp dword [rax + 0x1c], edx
jae 0x14006b3c9
mov dword [rbp + 0x230], r13d
mov rax, qword [rax + 0x10]
jmp 0x14006b3d9
mov dword [rbp + 0x230], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x14006b3b0
cmp byte [rcx + 0x19], 0
jne 0x14006b3ed
mov eax, dword [rcx + 0x1c]
cmp dword [rbx + 0x10], eax
jae 0x14006b441
cmp qword [rdi + 8], r12
je 0x14006b492
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x68], r13
mov ecx, 0x20
call fcn.14010f520
nop
mov edx, dword [rbx + 0x10]
mov dword [rax + 0x1c], edx
mov qword [rax], rsi
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rsi
mov word [rax + 0x18], 0
mov qword [rbp - 0x68], r13
movups xmm0, xmmword [rbp + 0x228]
movaps xmmword [rsp + 0x60], xmm0
mov r8, rax
lea rdx, [rsp + 0x60]
mov rcx, rdi
call fcn.14003a620
mov rax, qword [rbx]
mov rbx, rax
cmp rax, r14
jne 0x14006b370
lea rcx, [rbp + 0x260]
call fcn.14006b4d0
mov rcx, qword [rbp + 0x2a0]
xor rcx, rsp
call fcn.14010f500
lea r11, [rsp + 0x3b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1402a816c
nop
call fcn.140019ee0
nop
call fcn.140019ee0
nop
call fcn.1402a816c
int3