Function at 0x14006f640
Capabilities:
Encode data using xor
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
movapd xmmword [rsp + 0xc0], xmm9
movdqa xmmword [rsp + 0xb0], xmm8
movaps xmmword [rsp + 0xa0], xmm7
movapd xmmword [rsp + 0x90], xmm6
mov rdi, rcx
mov rax, qword [0x140140040]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov rbx, qword [rcx + 8]
mov r14, qword [rcx + 0x10]
xorpd xmm0, xmm0
lea rsi, [rsp + 0x40]
movupd xmmword [rsi + 0x34], xmm0
movupd xmmword [rsi + 0x28], xmm0
movupd xmmword [rsi + 0x18], xmm0
movupd xmmword [rsi + 8], xmm0
movupd xmmword [rsi - 8], xmm0
movaps xmm7, xmmword [0x14012d400]
movups xmmword [rsi - 0x18], xmm7
test r14, r14
je 0x14006f6fe
lea eax, [r14*8]
mov rcx, r14
shr rcx, 0x1d
mov dword [rsp + 0x3c], ecx
mov dword [rsp + 0x38], eax
mov r8, r14
cmp r14, 0x40
jae 0x14006f9ec
mov dword [rsp + 0x80], r14d
mov rcx, rsi
mov rdx, rbx
call fcn.1400d60b0
mov eax, dword [rsp + 0x80]
lea rcx, [rax + 1]
mov ebp, dword [rsp + 0x38]
mov r14d, dword [rsp + 0x3c]
mov byte [rsp + rax + 0x40], 0x80
cmp rax, 0x38
jae 0x14006f9bc
cmp rcx, 0x38
je 0x14006f73a
mov r8d, 0x38
sub r8, rcx
add rcx, rsi
xor edx, edx
call fcn.1400d6750
lea rbx, [rsp + 0x28]
mov dword [rbx + 0x50], ebp
mov dword [rbx + 0x54], r14d
mov r8d, 1
mov rcx, rbx
mov rdx, rsi
call fcn.140048880
mov rbx, qword [rbx]
mov r14, qword [0x140151d20]
cmp r14, 1
jbe 0x14006fe6a
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006fe23
mov r15, qword [0x140151d30]
test r15, r15
je 0x14006fa4d
mov rax, qword [0x140151d20]
cmp rax, 1
jbe 0x14006fe9c
mov r8, qword [r15 + 8]
test r8, r8
je 0x14006fa4d
bswap rbx
mov rax, r8
shr rax, 1
movabs rcx, 0x5555555555555555
and rcx, rax
mov rax, r8
sub rax, rcx
movabs rcx, 0x3333333333333333
mov rdx, rax
and rdx, rcx
shr rax, 2
and rax, rcx
add rax, rdx
mov rcx, rax
shr rcx, 4
add rcx, rax
movabs rax, 0xf0f0f0f0f0f0f0f
and rax, rcx
movabs r9, 0x101010101010101
imul r9, rax
shr r9, 0x38
cmp r9, 1
jbe 0x14006fe31
mov rcx, rbx
cmp rbx, r8
jb 0x14006f826
mov rax, rbx
xor edx, edx
div r8
mov rcx, rdx
mov rax, qword [r15]
mov rax, qword [rax + rcx*8]
test rax, rax
je 0x14006fa4d
mov r10, qword [rax]
test r10, r10
je 0x14006fa4d
mov rax, qword [r10 + 8]
cmp rbx, rax
jne 0x14006f982
cmp qword [r10 + 0x10], rbx
jne 0x14006f9a2
mov rbx, qword [r10 + 0x18]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test rbx, rbx
je 0x14006fa56
mov ebp, dword [rdi + 0x18]
mov rax, qword [rbx]
mov rax, qword [rax + 0x18]
xor ecx, ecx
lea rdx, [fcn.140005330]
cmp rax, rdx
jne 0x14006f953
cmp ebp, ecx
jne 0x14006ff7a
mov r9, qword [rdi + 0x28]
test r9, r9
je 0x14006f90a
mov edx, dword [rdi + 0x1c]
mov r8d, dword [rdi + 0x20]
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
lea rcx, [0x1400570f0]
cmp rax, rcx
jne 0x1400700b6
mov rax, qword [rbx + 0x18]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
sub rcx, rax
mov r10, rcx
sar r10, 2
lea r11, [r10 - 1]
cmp r11, r9
jne 0x14006ff7a
cmp r11, 2
jb 0x14006ff44
cmp r10, 1
jbe 0x1400700a3
cmp dword [rax + 4], edx
jne 0x14006ff7a
mov eax, dword [rax + rcx - 8]
cmp eax, r8d
jne 0x14006ff7a
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.1400a4d90
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 1
lea rdx, [method.std::__Cr::codecvt_char__char__struct__Mbstatet_.virtual_40]
cmp rax, rdx
je 0x14006f88b
mov ecx, 2
lea rdx, [0x140057160]
cmp rax, rdx
je 0x14006f88b
jmp 0x14006fe5a
cmp r9d, 1
jbe 0x14006fe3d
cmp rax, r8
jb 0x14006f999
xor edx, edx
div r8
mov rax, rdx
cmp rax, rcx
jne 0x14006fa4d
mov r10, qword [r10]
jmp 0x14006f839
mov r8d, 0x3f
sub r8, rax
xor edx, edx
call fcn.1400d6750
jmp 0x14006f9d2
cmp eax, 0x3f
je 0x14006f9d2
add rcx, rsi
cmp eax, 0x3c
jne 0x14006f9aa
mov byte [rcx + 2], 0
mov word [rcx], 0
lea rcx, [rsp + 0x28]
mov r8d, 1
mov rdx, rsi
call fcn.140048880
xor ecx, ecx
jmp 0x14006f727
shr r8, 6
lea rcx, [rsp + 0x28]
mov rdx, rbx
call fcn.140048880
mov r8, r14
and r8, 0x3f
je 0x14006f6fe
and r14, 0xffffffffffffffc0
add rbx, r14
mov r14d, r8d
jmp 0x14006f6eb
cmp eax, 0x3f
je 0x14006fa33
add rcx, rsi
cmp eax, 0x3c
jne 0x14006fde1
mov byte [rcx + 2], 0
mov word [rcx], 0
lea rcx, [rsp + 0x28]
mov r8d, 1
mov rdx, rsi
call fcn.140048880
xor ecx, ecx
jmp 0x14006faea
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rdi + 8]
mov r14, qword [rdi + 0x10]
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x74], xmm0
movupd xmmword [rsp + 0x68], xmm0
movupd xmmword [rsp + 0x58], xmm0
movupd xmmword [rsp + 0x48], xmm0
movupd xmmword [rsp + 0x38], xmm0
movups xmmword [rsp + 0x28], xmm7
test r14, r14
je 0x14006fac1
lea eax, [r14*8]
mov rcx, r14
shr rcx, 0x1d
mov dword [rsp + 0x3c], ecx
mov dword [rsp + 0x38], eax
mov r8, r14
cmp r14, 0x40
jae 0x14006fdf6
mov dword [rsp + 0x80], r14d
mov rcx, rsi
mov rdx, rbx
call fcn.1400d60b0
mov eax, dword [rsp + 0x80]
lea rcx, [rax + 1]
mov ebp, dword [rsp + 0x38]
mov r14d, dword [rsp + 0x3c]
mov byte [rsp + rax + 0x40], 0x80
cmp rax, 0x38
jae 0x14006fa19
cmp rcx, 0x38
je 0x14006fafd
mov r8d, 0x38
sub r8, rcx
add rcx, rsi
xor edx, edx
call fcn.1400d6750
lea rbx, [rsp + 0x28]
mov dword [rbx + 0x50], ebp
mov dword [rbx + 0x54], r14d
mov r8d, 1
mov rcx, rbx
mov rdx, rsi
call fcn.140048880
mov ecx, dword [rbx]
bswap ecx
call fcn.14005a300
test al, al
je 0x140070044
mov rax, qword [rdi]
mov rax, qword [rax]
lea rcx, [0x1400f36e0]
cmp rax, rcx
jne 0x14006fd70
mov ecx, 0x20
call fcn.1400a2d04
mov rbx, rax
mov rdx, qword [rdi + 0x28]
inc rdx
mov rcx, rax
call fcn.14005a260
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [rdi + 0x20]
call fcn.1400d3c00
mov rax, qword [rbx]
mov rcx, qword [rbx + 8]
sub rcx, rax
cmp rcx, 4
jbe 0x140070090
mov r12d, dword [rdi + 0x1c]
mov dword [rax + 4], r12d
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
mov r15, rax
sub r15, rcx
sar r15, 2
lea rdx, [r15 - 1]
cmp rdx, 3
jb 0x14006fc67
movapd xmm6, xmm0
add r15, 0xfffffffffffffffd
mov r13d, 2
lea r14, [rsp + 0x28]
movq xmm8, qword [0x140123450]
movapd xmm9, xmmword [0x140123460]
nop word [rax + rax]
xorps xmm0, xmm0
cvtsi2sd xmm0, r12d
call fcn.1400d3c00
movsd qword [rsp + 0x28], xmm0
mov rcx, r14
call fcn.140058b40
mov rbp, qword [rbx]
mov rax, qword [rbx + 8]
sub rax, rbp
sar rax, 2
cmp rax, r13
jbe 0x140070090
movsd xmm1, qword [rsp + 0x28]
movapd xmm0, xmm6
subsd xmm0, xmm1
movq xmm2, r15
punpckldq xmm2, xmm8
subpd xmm2, xmm9
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
divsd xmm0, xmm3
addsd xmm0, xmm1
call fcn.1400d4130
call fcn.1400d4528
cvttsd2si eax, xmm0
cmp r12d, eax
lea ecx, [r12 + 1]
cmovl ecx, eax
mov dword [rbp + r13*4], ecx
inc r13
mov r12d, ecx
dec r15
jne 0x14006fbd0
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
cmp rax, rcx
je 0x140070090
mov dword [rax - 4], 0x7fffffff
mov r8, qword [rbx]
mov rax, qword [rbx + 8]
mov rdx, rax
sub rdx, r8
je 0x1400700cc
js 0x1400700d3
mov rcx, rdx
shr rcx, 2
test dl, 1
jne 0x14006fece
mov rdx, r8
lea r9, [rax - 1]
cmp r9, r8
je 0x14006fcee
lea r8, [0x14012ed70]
nop word cs:[rax + rax]
movzx r9d, byte [rdx]
movzx r10d, cl
xor r10d, r9d
shr ecx, 8
xor ecx, dword [r8 + r10*4]
movzx r9d, byte [rdx + 1]
movzx r10d, cl
xor r10d, r9d
shr ecx, 8
xor ecx, dword [r8 + r10*4]
add rdx, 2
cmp rdx, rax
jne 0x14006fcc0
mov dword [rbx + 0x18], ecx
mov rcx, rbx
call fcn.140082540
cmp qword [rdi + 0x28], 0
je 0x14006fef0
and byte [rdi + 0x30], 0xbf
mov rcx, qword [rdi]
mov r9, qword [rcx + 8]
lea rbx, [rsp + 0x28]
mov rcx, rdi
mov rdx, rbx
mov r8, rax
mov rax, r9
call qword [0x140134870]
mov rbx, qword [rbx]
mov eax, dword [rdi + 0x30]
lock or dword [rbx + 0x10], eax
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
lea rcx, [fcn.1400d83e0]
cmp rax, rcx
jne 0x14006fd53
mov rcx, rbx
call fcn.14005a590
mov rbx, rax
jmp 0x14006f86f
lea rcx, [fcn.1400017d0]
cmp rax, rcx
jne 0x1400700d6
mov rcx, rdi
mov rdx, rbx
call fcn.1400017d0
jmp 0x14006fd43
lea rcx, [0x1400f38f0]
cmp rax, rcx
jne 0x14006fdab
mov ecx, 0x20
call fcn.1400a2d04
mov rbx, rax
mov rdx, qword [rdi + 0x28]
inc rdx
mov rcx, rax
call fcn.14005a260
mov ecx, dword [rdi + 0x1c]
mov edx, dword [rdi + 0x20]
mov r8, rbx
call fcn.14005a3b0
jmp 0x14006fcf1
lea rcx, [0x1400f3a10]
cmp rax, rcx
jne 0x14006fe49
mov ecx, 0x20
call fcn.1400a2d04
mov rbx, rax
mov edx, 4
mov rcx, rax
call fcn.14005a260
mov ecx, 1
mov edx, 2
jmp 0x14006fd9e
mov r8d, 0x3f
sub r8, rax
xor edx, edx
call fcn.1400d6750
jmp 0x14006fa33
shr r8, 6
lea rcx, [rsp + 0x28]
mov rdx, rbx
call fcn.140048880
mov r8, r14
and r8, 0x3f
je 0x14006fac1
and r14, 0xffffffffffffffc0
add rbx, r14
mov r14d, r8d
jmp 0x14006faae
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14006f77c
lea rcx, [r8 - 1]
and rcx, rbx
jmp 0x14006f826
lea rdx, [r8 - 1]
and rax, rdx
jmp 0x14006f999
mov rcx, rdi
call qword [0x140134870]
mov rbx, rax
jmp 0x14006fcf1
mov rcx, rbx
call qword [0x140134870]
mov ecx, eax
jmp 0x14006f88b
lea rcx, [0x140151d20]
call fcn.140002d50
test al, al
je 0x1400700e7
mov qword [0x140151d28], 0
lea r14, [0x140151d28]
mov qword [0x140151d20], r14
jmp 0x14006f76b
lea rcx, [0x140151d20]
call fcn.140002d50
test al, al
je 0x1400700f3
mov qword [0x140151d28], 0
lea rax, [0x140151d28]
mov qword [0x140151d20], rax
jmp 0x14006f79d
movzx edx, byte [r8]
movzx r9d, cl
xor r9d, edx
lea rdx, [0x14012ed70]
shr ecx, 8
xor ecx, dword [rdx + r9*4]
lea rdx, [r8 + 1]
jmp 0x14006fca3
mov rcx, qword [rax + 8]
sub rcx, qword [rax]
sar rcx, 2
lea rdx, [rcx - 1]
mov qword [rdi + 0x28], rdx
mov rdx, qword [rax]
mov r8, qword [rax + 8]
sub r8, rdx
cmp r8, 4
jbe 0x1400700a3
mov edx, dword [rdx + 4]
mov dword [rdi + 0x1c], edx
lea r8, [rcx - 2]
mov rdx, qword [rax]
mov r9, qword [rax + 8]
sub r9, rdx
sar r9, 2
cmp r9, r8
jbe 0x1400700a3
mov ecx, dword [rdx + rcx*4 - 8]
mov dword [rdi + 0x20], ecx
jmp 0x14006fd04
mov eax, 0xffffffff
cmp edx, 0xffffffff
je 0x14006f901
jmp 0x14006ff7a
shr r8, 6
lea rcx, [rsp + 0x28]
mov rdx, rbx
call fcn.140048880
mov r8, rdi
and r8, 0x3f
je 0x14006ffdf
and rdi, 0xffffffffffffffc0
add rbx, rdi
mov edi, r8d
jmp 0x14006ffcd
mov rbx, qword [rdi + 8]
mov rdi, qword [rdi + 0x10]
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x74], xmm0
movupd xmmword [rsp + 0x68], xmm0
movupd xmmword [rsp + 0x58], xmm0
movupd xmmword [rsp + 0x48], xmm0
movupd xmmword [rsp + 0x38], xmm0
movups xmmword [rsp + 0x28], xmm7
test rdi, rdi
je 0x14006ffdf
lea eax, [rdi*8]
mov rcx, rdi
shr rcx, 0x1d
mov dword [rsp + 0x3c], ecx
mov dword [rsp + 0x38], eax
mov r8, rdi
cmp rdi, 0x40
jae 0x14006ff54
mov dword [rsp + 0x80], edi
mov rcx, rsi
mov rdx, rbx
call fcn.1400d60b0
mov eax, dword [rsp + 0x80]
lea rcx, [rax + 1]
mov ebx, dword [rsp + 0x38]
mov ebp, dword [rsp + 0x3c]
mov byte [rsp + rax + 0x40], 0x80
cmp rax, 0x38
jae 0x140070051
cmp rcx, 0x38
je 0x140070016
mov r8d, 0x38
sub r8, rcx
add rcx, rsi
xor edx, edx
call fcn.1400d6750
lea rdi, [rsp + 0x28]
mov dword [rdi + 0x50], ebx
mov dword [rdi + 0x54], ebp
mov r8d, 1
mov rcx, rdi
mov rdx, rsi
call fcn.140048880
mov rdx, qword [rdi]
bswap rdx
lea rcx, [0x14012d418]
call fcn.14005c4c0
call fcn.1400d6be0
mov rbx, rax
jmp 0x14006f90a
cmp eax, 0x3f
je 0x140070067
add rcx, rsi
cmp eax, 0x3c
jne 0x14007007e
mov byte [rcx + 2], 0
mov word [rcx], 0
lea rcx, [rsp + 0x28]
mov r8d, 1
mov rdx, rsi
call fcn.140048880
xor ecx, ecx
jmp 0x140070003
mov r8d, 0x3f
sub r8, rax
xor edx, edx
call fcn.1400d6750
jmp 0x140070067
lea rcx, [0x140121d8c]
lea rdx, str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
call fcn.1400d6ae0
lea rcx, [0x140121d8c]
lea rdx, str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
call fcn.1400d6ae0
mov rcx, rbx
call qword [0x140134870]
test al, al
jne 0x14006f90a
jmp 0x14006ff7a
xor ecx, ecx
jmp 0x14006fcee
int3
mov rcx, rdi
mov rdx, rbx
call qword [0x140134870]
jmp 0x14006fd43
mov r14, qword [0x140151d20]
jmp 0x14006f76b
mov rax, qword [0x140151d20]
jmp 0x14006f79d