Function at 0x14003e6c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x908
mov ebx, r9d
mov rsi, r8
mov rdi, rcx
lea rcx, [rsp + 0x108]
mov r8d, 0x400
call sub.VCRUNTIME140.dll_memcpy
nop
mov eax, dword [0x141dc8800]
xor edx, edx
div dword [0x141dc8804]
xor eax, 0x21f7d4ac
imul eax, eax, 0xaa87aad6
cmp eax, 0xa09acd27
ja 0x14003e6f0
mov eax, 6
nop word cs:[rax + rax]
movups xmm0, xmmword [rdi + rax*8 - 0x30]
movups xmm1, xmmword [rdi + rax*8 - 0x20]
movups xmm2, xmmword [rsp + rax*8 + 0xd8]
xorps xmm2, xmm0
movups xmm0, xmmword [rsp + rax*8 + 0xe8]
xorps xmm0, xmm1
movups xmm1, xmmword [rsp + rax*8 + 0xf8]
movups xmm3, xmmword [rsp + rax*8 + 0x108]
movups xmmword [rsp + rax*8 + 0xd8], xmm2
movups xmmword [rsp + rax*8 + 0xe8], xmm0
movups xmm0, xmmword [rdi + rax*8 - 0x10]
xorps xmm0, xmm1
movups xmm1, xmmword [rdi + rax*8]
xorps xmm1, xmm3
movups xmmword [rsp + rax*8 + 0xf8], xmm0
movups xmmword [rsp + rax*8 + 0x108], xmm1
add rax, 8
cmp rax, 0x86
jne 0x14003e720
lea rcx, [rsp + 0x508]
lea rdx, [rsp + 0x108]
mov r8d, 0x400
call sub.VCRUNTIME140.dll_memcpy
test bl, bl
je 0x14003e8eb
nop
mov eax, dword [str.2oJy]
add eax, dword [0x141dc880c]
xor eax, 0x208014
or eax, 0xfd473f0a
and eax, 0xff77bf5e
cmp eax, 0xa8874310
je 0x14003e7b0
xor eax, eax
xor ecx, ecx
jmp 0x14003e7f1
add rcx, 8
cmp rcx, 0x80
je 0x14003e8eb
mov edx, dword [0x141dc8810]
imul edx, dword [0x141dc8814]
imul edx, edx, 0xe34f8f2e
add edx, 0xd7c37582
xor edx, 0x799aeadd
cmp edx, 0x90b9a39b
ja 0x14003e887
nop dword [rax + rax]
movups xmm0, xmmword [rsi + rcx*8]
movups xmm1, xmmword [rsi + rcx*8 + 0x10]
movups xmm2, xmmword [rsp + rcx*8 + 0x508]
xorps xmm2, xmm0
movups xmm0, xmmword [rsp + rcx*8 + 0x518]
xorps xmm0, xmm1
movups xmm1, xmmword [rsp + rcx*8 + 0x528]
movups xmm3, xmmword [rsp + rcx*8 + 0x538]
movups xmmword [rsp + rcx*8 + 0x508], xmm2
movups xmmword [rsp + rcx*8 + 0x518], xmm0
movups xmm0, xmmword [rsi + rcx*8 + 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rsi + rcx*8 + 0x30]
xorps xmm1, xmm3
movups xmmword [rsp + rcx*8 + 0x528], xmm0
movups xmmword [rsp + rcx*8 + 0x538], xmm1
test al, al
je 0x14003e7e0
movups xmm0, xmmword [rsi + rcx*8]
movups xmm1, xmmword [rsi + rcx*8 + 0x10]
movups xmm2, xmmword [rsp + rcx*8 + 0x508]
xorps xmm2, xmm0
movups xmm0, xmmword [rsp + rcx*8 + 0x518]
xorps xmm0, xmm1
movups xmm1, xmmword [rsp + rcx*8 + 0x528]
movups xmm3, xmmword [rsp + rcx*8 + 0x538]
movups xmmword [rsp + rcx*8 + 0x508], xmm2
movups xmmword [rsp + rcx*8 + 0x518], xmm0
movups xmm0, xmmword [rsi + rcx*8 + 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rsi + rcx*8 + 0x30]
xorps xmm1, xmm3
movups xmmword [rsp + rcx*8 + 0x528], xmm0
movups xmmword [rsp + rcx*8 + 0x538], xmm1
jmp 0x14003e820
mov qword [rsp + 0x100], rsi
mov ecx, 0x83b43bcb
nop dword [rax + rax]
mov eax, dword [0x141dc8818]
xor edx, edx
div dword [0x141dc881c]
or eax, 0x85113cc2
imul rax, rcx
shr rax, 0x3c
cmp eax, 0x28a22ac5
je 0x14003e900
mov r12d, 0x78
lea r14, [rsp + 0xb8]
lea r8, [rsp + 0xb0]
lea rbp, [rsp + 0xa8]
lea r10, [rsp + 0xa0]
lea r11, [rsp + 0x98]
lea r15, [rsp + 0xd0]
lea rbx, [rsp + 0xc8]
lea rdi, [rsp + 0xc0]
lea r13, [rsp + 0xf8]
lea rsi, [rsp + 0x90]
nop dword [rax + rax]
mov rax, qword [rsp + r12 + 0x90]
mov rcx, qword [rsp + r12 + 0x98]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
mov rax, qword [rsp + r12 + 0xa0]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + r12 + 0xa8]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + r12 + 0xb0]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + r12 + 0xb8]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + r12 + 0xc0]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + r12 + 0xc8]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + r12 + 0xd0]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + r12 + 0xd8]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + r12 + 0xe0]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + r12 + 0xe8]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + r12 + 0xf0]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + r12 + 0xf8]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + r12 + 0x100]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + r12 + 0x108]
mov qword [rsp + 0xf0], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x40], r11
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x88]
mov r8, r13
mov r9, rsi
call fcn.14003f3e0
lea r11, [rsp + 0x98]
lea r10, [rsp + 0xa0]
lea rbp, [rsp + 0xa8]
lea r8, [rsp + 0xb0]
lea r14, [rsp + 0xb8]
mov rax, qword [rsp + 0x80]
mov qword [rsp + r12 + 0x90], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + r12 + 0x98], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + r12 + 0xa0], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + r12 + 0xa8], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + r12 + 0xb0], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + r12 + 0xb8], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + r12 + 0xc0], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + r12 + 0xc8], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + r12 + 0xd0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + r12 + 0xd8], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + r12 + 0xe0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + r12 + 0xe8], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + r12 + 0xf0], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + r12 + 0xf8], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + r12 + 0x100], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + r12 + 0x108], rax
sub r12, 0xffffffffffffff80
cmp r12, 0x478
jne 0x14003e980
xor ebx, ebx
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x88]
lea r13, [rsp + 0xf8]
lea r9, [rsp + 0x90]
nop word cs:[rax + rax]
mov eax, dword [0x141dc8848]
or eax, dword [0x141dc884c]
and eax, 0x85001400
or eax, 0x6abf0089
imul eax, eax, 0xf2238ae9
cmp eax, 0xd460f9bf
jbe 0x14003ef2a
mov r12, rbx
shl r12, 4
mov rax, qword [rsp + r12 + 0x108]
mov rsi, qword [rsp + r12 + 0x110]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rsi
mov rax, qword [rsp + r12 + 0x188]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + r12 + 0x190]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + r12 + 0x208]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + r12 + 0x210]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + r12 + 0x288]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + r12 + 0x290]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + r12 + 0x308]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + r12 + 0x310]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + r12 + 0x388]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + r12 + 0x390]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + r12 + 0x408]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + r12 + 0x410]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + r12 + 0x488]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + r12 + 0x490]
mov qword [rsp + 0xf0], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x40], r11
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r15
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
mov r8, r13
call fcn.14003f3e0
lea r11, [rsp + 0x98]
lea r10, [rsp + 0xa0]
lea rbp, [rsp + 0xa8]
lea r8, [rsp + 0xb0]
lea r14, [rsp + 0xb8]
mov rax, qword [rsp + 0x80]
mov qword [rsp + r12 + 0x108], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + r12 + 0x110], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + r12 + 0x188], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + r12 + 0x190], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + r12 + 0x208], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + r12 + 0x210], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + r12 + 0x288], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + r12 + 0x290], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + r12 + 0x308], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + r12 + 0x310], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + r12 + 0x388], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + r12 + 0x390], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + r12 + 0x408], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + r12 + 0x410], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + r12 + 0x488], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + r12 + 0x490], rax
lea rsi, [rsp + 0xc8]
lea rdi, [rsp + 0xc0]
mov r15, r13
nop dword [rax]
mov eax, dword [0x141dc8850]
or eax, dword [0x141dc8854]
imul r13d, eax, 0x71f2ff1a
add r13d, 0xcb485020
or r13d, 0x3b3ff370
mov r12, rbx
shl r12, 4
mov rax, qword [rsp + r12 + 0x108]
mov rcx, qword [rsp + r12 + 0x110]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
mov rax, qword [rsp + r12 + 0x188]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + r12 + 0x190]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + r12 + 0x208]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + r12 + 0x210]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + r12 + 0x288]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + r12 + 0x290]
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + r12 + 0x308]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + r12 + 0x310]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + r12 + 0x388]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + r12 + 0x390]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + r12 + 0x408]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + r12 + 0x410]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + r12 + 0x488]
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + r12 + 0x490]
mov qword [rsp + 0xf0], rax
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x40], r11
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x88]
mov r8, r15
lea r9, [rsp + 0x90]
call fcn.14003f3e0
lea r11, [rsp + 0x98]
lea r10, [rsp + 0xa0]
lea rbp, [rsp + 0xa8]
lea r8, [rsp + 0xb0]
lea r14, [rsp + 0xb8]
mov rax, qword [rsp + 0x80]
mov qword [rsp + r12 + 0x108], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + r12 + 0x110], rax
mov rax, qword [rsp + 0xf8]
mov qword [rsp + r12 + 0x188], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + r12 + 0x190], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + r12 + 0x208], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + r12 + 0x210], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + r12 + 0x288], rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + r12 + 0x290], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + r12 + 0x308], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + r12 + 0x310], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + r12 + 0x388], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + r12 + 0x390], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + r12 + 0x408], rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + r12 + 0x410], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + r12 + 0x488], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + r12 + 0x490], rax
cmp r13d, 0xfb9f6a81
ja 0x14003ef40
inc rbx
cmp rbx, 8
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x88]
mov r13, r15
lea r15, [rsp + 0xd0]
lea r9, [rsp + 0x90]
jne 0x14003ec60
mov eax, dword [0x141dc8820]
sub eax, dword [0x141dc8824]
imul eax, eax, 0xe8ceb2c2
add eax, 0xed50738
cmp eax, 0x51872407
mov rdi, qword [rsp + 0x100]
jb 0x14003f2b1
mov eax, dword [0x141dc8828]
and eax, dword [0x141dc882c]
or eax, 0x19843357
xor eax, 0xbe1a7b38
imul esi, eax, 0xed47508d
lea rdx, [rsp + 0x508]
mov r8d, 0x400
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
cmp esi, 0xa34956d1
jbe 0x14003f2d0
lea rdx, [rsp + 0x508]
mov r8d, 0x400
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14003f277
mov eax, dword [0x141dc8830]
add eax, dword [0x141dc8834]
imul eax, eax, 0xf8d4754
imul rax, rax, 0x2fc61f71
shr rax, 0x3d
or eax, 0x1c668e12
cmp eax, 0x6f9426e2
ja 0x14003f2d0
mov eax, 6
nop
movups xmm0, xmmword [rsp + rax*8 + 0xd8]
movups xmm1, xmmword [rsp + rax*8 + 0xe8]
movups xmm2, xmmword [rdi + rax*8 - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rax*8 - 0x20]
xorps xmm0, xmm1
movups xmm1, xmmword [rdi + rax*8 - 0x10]
movups xmm3, xmmword [rdi + rax*8]
movups xmmword [rdi + rax*8 - 0x30], xmm2
movups xmmword [rdi + rax*8 - 0x20], xmm0
movups xmm0, xmmword [rsp + rax*8 + 0xf8]
xorps xmm0, xmm1
movups xmm1, xmmword [rsp + rax*8 + 0x108]
xorps xmm1, xmm3
movups xmmword [rdi + rax*8 - 0x10], xmm0
movups xmmword [rdi + rax*8], xmm1
add rax, 8
cmp rax, 0x86
jne 0x14003f300
mov eax, 0xa56f63e5
nop word cs:[rax + rax]
mov ecx, dword [0x141dc8838]
sub ecx, dword [0x141dc883c]
mov rdx, rcx
imul rdx, rax
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1e
cmp ecx, 0x5c677668
je 0x14003f370
nop dword [rax + rax]
mov eax, dword [0x141dc8840]
add eax, dword [0x141dc8844]
imul eax, eax, 0x4a10dd08
and eax, 0xe0020680
cmp eax, 0xe0bbc65
jb 0x14003f3a0
add rsp, 0x908
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret