Function at 0x14001c890
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
movdqa xmmword [rbp - 0x10], xmm8
movdqa xmmword [rbp - 0x20], xmm7
movdqa xmmword [rbp - 0x30], xmm6
mov rdi, rdx
mov rbx, rcx
xor eax, eax
test al, al
je 0x14001c8d0
mov eax, 0x10
call fcn.1400ef330
sub rsp, rax
nop
mov eax, dword [0x141dc2380]
and eax, dword [0x141dc2384]
imul eax, eax, 0x3596c7b0
imul rcx, rax, 0x461b8441
shr rcx, 0x3c
or ecx, 0xd56bc9c5
mov eax, 0x10
call fcn.1400ef330
sub rsp, rax
mov r14, rsp
cmp ecx, 0x50f0e5c1
jb 0x14001c8d0
mov eax, dword [0x141dc2388]
imul eax, dword [0x141dc238c]
or eax, 0x1a1c8e01
imul eax, eax, 0x3026e6aa
and eax, 0xd2213f56
cmp eax, 0xe19c6831
ja 0x14001c959
mov ecx, dword [0x141dc2390]
and ecx, dword [0x141dc2394]
add ecx, 0x8f68b2ee
mov eax, 0x50
call fcn.1400ef330
sub rsp, rax
mov r15, rsp
cmp ecx, 0x990d6f1f
jbe 0x14001c968
mov eax, 0x50
call fcn.1400ef330
sub rsp, rax
jmp 0x14001c92f
cmp qword [rbx + 0x18], 0
je 0x14001cd7e
mov eax, dword [0x141dc2398]
sub eax, dword [0x141dc239c]
add eax, 0xc6ab1414
or eax, 0xc0104041
and eax, 0xf638c161
cmp eax, 0x7e69ee14
mov qword [rbp - 0x38], r8
jne 0x14001ca0f
movdqu xmm0, xmmword [rbx + 0x20]
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmmword [0x140102660]
movdqa xmmword [r15], xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmmword [0x140102670]
movdqa xmmword [r15 + 0x10], xmm1
movdqa xmmword [r15 + 0x20], xmm0
pxor xmm0, xmm0
movdqa xmmword [r15 + 0x30], xmm0
mov qword [r15 + 0x40], 0
sub rsp, 0x20
mov rcx, r15
mov rdx, rdi
call fcn.14001af50
add rsp, 0x20
mov byte [r14], 0xff
sub rsp, 0x20
mov r8d, 1
mov rcx, r15
mov rdx, r14
call fcn.14001af50
mov r8, qword [rbp - 0x38]
add rsp, 0x20
movdqa xmm6, xmmword [0x140102660]
movdqa xmm7, xmmword [0x140102670]
pxor xmm8, xmm8
xor esi, esi
nop word cs:[rax + rax]
movdqu xmm0, xmmword [rbx + 0x20]
pshufd xmm1, xmm0, 0x44
pxor xmm1, xmm6
movdqa xmmword [r15], xmm1
pshufd xmm1, xmm0, 0xee
pxor xmm1, xmm7
movdqa xmmword [r15 + 0x10], xmm1
movdqa xmmword [r15 + 0x20], xmm0
movdqa xmmword [r15 + 0x30], xmm8
mov qword [r15 + 0x40], 0
sub rsp, 0x20
mov rcx, r15
mov rdx, rdi
call fcn.14001af50
add rsp, 0x20
mov byte [r14], 0xff
sub rsp, 0x20
mov r8d, 1
mov rcx, r15
mov rdx, r14
call fcn.14001af50
mov r8, qword [rbp - 0x38]
add rsp, 0x20
test sil, sil
jne 0x14001ca30
mov qword [rbp - 0x48], rdi
mov r9, qword [r15 + 0x30]
shl r9, 0x38
or r9, qword [r15 + 0x38]
mov rcx, qword [r15 + 0x10]
mov rax, qword [r15 + 0x18]
xor rax, r9
mov r10, qword [r15]
add r10, rcx
mov rdx, qword [r15 + 8]
rol rcx, 0xd
add rdx, rax
xor rcx, r10
rol rax, 0x10
xor rax, rdx
rol r10, 0x20
add rdx, rcx
add r10, rax
rol rcx, 0x11
xor rcx, rdx
rol rax, 0x15
rol rdx, 0x20
xor rax, r10
xor r10, r9
xor rdx, 0xff
add r10, rcx
add rdx, rax
rol rcx, 0xd
xor rcx, r10
rol rax, 0x10
rol r10, 0x20
xor rax, rdx
add rdx, rcx
rol rcx, 0x11
add r10, rax
xor rcx, rdx
rol rax, 0x15
xor rax, r10
rol rdx, 0x20
add r10, rcx
add rdx, rax
rol rcx, 0xd
xor rcx, r10
rol rax, 0x10
rol r10, 0x20
xor rax, rdx
add rdx, rcx
rol rcx, 0x11
add r10, rax
xor rcx, rdx
rol rax, 0x15
xor rax, r10
rol rdx, 0x20
add r10, rcx
add rdx, rax
rol rcx, 0xd
xor rcx, r10
rol rax, 0x10
xor rax, rdx
add rdx, rcx
rol rcx, 0x11
rol rax, 0x15
mov r14, rdx
rol r14, 0x20
xor r14, rcx
xor r14, rax
xor r14, rdx
mov r15, qword [rbx]
mov rbx, qword [rbx + 8]
mov rax, r14
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
xor r12d, r12d
pcmpeqd xmm7, xmm7
mov r13d, 0x85a1f809
xor eax, eax
mov qword [rbp - 0x40], rax
and r14, rbx
movdqu xmm8, xmmword [r15 + r14]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb edi, xmm0
test edi, edi
je 0x14001cc83
nop dword [rax + rax]
test r12b, r12b
jne 0x14001cbe0
tzcnt eax, edi
add rax, r14
and rax, rbx
neg rax
imul rsi, rax, 0x38
cmp qword [r15 + rsi - 0x28], r8
jne 0x14001cc41
add rsi, r15
mov eax, dword [0x141dc23a0]
xor edx, edx
div dword [0x141dc23a4]
imul eax, eax, 0x95d0a958
add eax, 0x977762d8
cmp eax, 0x5b500f0c
jb 0x14001cc00
mov rdx, qword [rsi - 0x30]
sub rsp, 0x20
mov rcx, qword [rbp - 0x48]
call sub.VCRUNTIME140.dll_memcmp
mov r8, qword [rbp - 0x38]
add rsp, 0x20
test eax, eax
je 0x14001cd84
lea eax, [rdi - 1]
and eax, edi
mov edi, eax
nop dword [rax + rax]
mov eax, dword [0x141dc23c8]
xor edx, edx
div dword [0x141dc23cc]
or eax, 0x549823fc
shr eax, 1
imul rax, r13
shr rax, 0x3e
imul eax, eax, 0x1442f1ff
cmp eax, 0x8e5a120f
je 0x14001cc50
test di, di
jne 0x14001cbe0
mov eax, dword [0x141dc23a8]
xor edx, edx
div dword [0x141dc23ac]
nop word cs:[rax + rax]
mov eax, dword [0x141dc23b0]
xor edx, edx
div dword [str._aHeM]
xor eax, 0x39816ec6
add eax, 0x83b939db
cmp eax, 0x417d99b
jb 0x14001cca0
nop
mov eax, dword [0x141dc23b8]
and eax, dword [0x141dc23bc]
or eax, 0x3d7ddbd6
xor eax, 0xdb7bafd1
cmp eax, 0x1e4a3017
jb 0x14001ccc0
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
nop word [rax + rax]
mov ecx, dword [0x141dc23c0]
xor ecx, dword [0x141dc23c4]
add ecx, 0xd3177f59
or ecx, 0x3fbeb12
xor ecx, 0x2b5a9422
cmp ecx, 0x51992585
jb 0x14001ccf0
test ax, ax
jne 0x14001cd82
nop dword [rax + rax]
mov eax, dword [0x141dc23d0]
xor edx, edx
div dword [0x141dc23d4]
and eax, 0xa3d79595
add eax, 0xa0a8bfa8
xor eax, 0x15b4a1f2
cmp eax, 0x52acf39d
jb 0x14001cd20
mov rdx, qword [rbp - 0x40]
add rdx, 0x10
nop dword [rax]
mov eax, dword [0x141dc23d8]
mov ecx, dword [0x141dc23dc]
add eax, ecx
add eax, 0x463e4d66
xor eax, 0x3107e7f9
cmp eax, 0x1ba4e2e7
jbe 0x14001cd50
mov rax, rdx
mov qword [rbp - 0x40], rdx
add r14, rdx
jmp 0x14001cbbd
xor eax, eax
jmp 0x14001cd90
xor esi, esi
lea rax, [rsi - 0x38]
test rsi, rsi
cmove rax, rsi
nop
mov ecx, dword [0x141dc23e0]
imul ecx, dword [0x141dc23e4]
imul ecx, ecx, 0x69f90921
cmp ecx, 0xb3c4ffae
je 0x14001cd90
movaps xmm6, xmmword [rbp - 0x30]
movaps xmm7, xmmword [rbp - 0x20]
movaps xmm8, xmmword [rbp - 0x10]
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret