Function at 0x1400be850
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov r13, qword [rcx + 0x18]
movzx edx, word [r13 + 0x3d2]
mov r15, qword [rcx + 0x28]
movzx r14d, word [r15 + 0x3d2]
lea r9, [rdx + r14]
inc r9
cmp r9, 0xc
jae 0x1400beffd
mov qword [rsp + 0x28], r14
mov rsi, qword [rcx]
mov eax, dword [0x141dd4c30]
and eax, dword [0x141dd4c34]
xor eax, 0x8000000
or eax, 0x12950236
and eax, 0x5a9583f6
cmp eax, 0xa4438317
jbe 0x1400be8be
mov word [r13 + 0x3d2], r9w
mov r8, qword [rcx + 8]
mov r14, rdx
lea rbx, [rdx + 1]
lea rdx, [rsi + 0x168]
mov eax, dword [0x141dd4c38]
and eax, dword [0x141dd4c3c]
or eax, 0xcdb7ebb5
and eax, 0xedb7ebbd
mov r12, qword [rcx + 0x10]
movzx r10d, word [rsi + 0x3d2]
mov word [r13 + 0x3d2], r9w
cmp eax, 0x8c0259df
je 0x1400be8d0
mov qword [rsp + 0x50], r9
mov qword [rsp + 0x58], r8
imul rax, r12, 0x38
lea rcx, [rsi + rax]
add rcx, 0x168
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x90], rax
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x80], xmm2
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
lea rbp, [r12 + 1]
imul rax, rbp, 0x38
add rdx, rax
mov rdi, r12
not rdi
mov qword [rsp + 0x48], r10
add rdi, r10
imul r8, rdi, 0x38
call sub.VCRUNTIME140.dll_memmove
imul rax, r14, 0x38
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movaps xmm2, xmmword [rsp + 0x80]
movups xmmword [r13 + rax + 0x168], xmm0
movups xmmword [r13 + rax + 0x178], xmm1
movups xmmword [r13 + rax + 0x188], xmm2
mov rcx, qword [rsp + 0x90]
mov qword [r13 + rax + 0x198], rcx
mov qword [rsp + 0x38], r15
lea rdx, [r15 + 0x168]
imul rax, rbx, 0x38
lea rcx, [rax + r13]
add rcx, 0x168
mov r15, qword [rsp + 0x28]
imul r8, r15, 0x38
call sub.VCRUNTIME140.dll_memcpy
mov rax, r12
shl rax, 5
lea rcx, [rsi + rax]
movups xmm0, xmmword [rsi + rax]
movups xmm1, xmmword [rsi + rax + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov rdx, rbp
shl rdx, 5
add rdx, rsi
mov r8, rdi
shl r8, 5
call sub.VCRUNTIME140.dll_memmove
shl r14, 5
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [r13 + r14], xmm0
movups xmmword [r13 + r14 + 0x10], xmm1
mov rcx, rbx
shl rcx, 5
add rcx, r13
shl r15, 5
mov rdx, qword [rsp + 0x38]
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [0x141dd4c40]
imul eax, dword [0x141dd4c44]
lea r15, [rsi + 0x3d8]
and eax, 0xa5efeb3
imul eax, eax, 0xa4544212
cmp eax, 0xcf53f84e
jne 0x1400bea78
lea rcx, [r15 + rbp*8]
lea rdx, [r15 + r12*8]
add rdx, 0x10
lea r8, [rdi*8]
call sub.VCRUNTIME140.dll_memmove
lea r14, [r15 + rbp*8]
mov qword [rsp + 0x30], r12
lea r15, [r15 + r12*8]
add r15, 0x10
mov qword [rsp + 0x40], rdi
lea r12, [rdi*8]
nop word cs:[rax + rax]
mov eax, dword [0x141dd4c48]
xor eax, dword [0x141dd4c4c]
and eax, 0x24aed6b9
imul edi, eax, 0xbf5f5a0a
add edi, 0xbe091ed2
mov rcx, r14
mov rdx, r15
mov r8, r12
call sub.VCRUNTIME140.dll_memmove
cmp edi, 0xe76e594b
ja 0x1400beaa0
mov r10, qword [rsp + 0x48]
cmp rbp, r10
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x58]
jae 0x1400becc3
mov r11, qword [rsp + 0x40]
mov eax, dword [0x141dd4c50]
or eax, dword [0x141dd4c54]
xor eax, 0xa85bb766
imul eax, eax, 0x9af4c7da
xor eax, 0xbe65b924
cmp eax, 0xb12a7a37
ja 0x1400beaf0
xor eax, eax
nop word cs:[rax + rax]
test al, al
jne 0x1400beb20
mov rax, r10
sub rax, qword [rsp + 0x30]
add rax, 0xfffffffffffffffe
and r11d, 3
nop word cs:[rax + rax]
mov ecx, dword [0x141dd4c58]
imul ecx, dword [0x141dd4c5c]
add ecx, 0xdd0e6c2e
and ecx, 0xa48a2220
cmp ecx, 0x969fb39c
je 0x1400beb40
test r11, r11
je 0x1400beba2
mov rcx, qword [rsp + 0x30]
lea rdx, [rsi + rcx*8]
add rdx, 0x3e0
xor ecx, ecx
nop dword [rax + rax]
mov r8, qword [rdx + rcx*8]
mov qword [r8 + 0x160], rsi
lea r9d, [rcx + rbp]
mov word [r8 + 0x3d0], r9w
inc rcx
cmp r11, rcx
jne 0x1400beb80
add rbp, rcx
cmp rax, 3
jb 0x1400becc3
nop dword [rax]
mov eax, dword [0x141dd4c60]
sub eax, dword [0x141dd4c64]
and eax, 0x82002811
xor eax, 0x2210035
cmp eax, 0x721c6fa6
jae 0x1400bec30
mov rax, qword [rsi + rbp*8 + 0x3d8]
mov qword [rax + 0x160], rsi
mov word [rax + 0x3d0], bp
mov rax, qword [rsi + rbp*8 + 0x3e0]
mov qword [rax + 0x160], rsi
lea ecx, [rbp + 1]
mov word [rax + 0x3d0], cx
mov rax, qword [rsi + rbp*8 + 0x3e8]
mov qword [rax + 0x160], rsi
lea ecx, [rbp + 2]
mov word [rax + 0x3d0], cx
mov rax, qword [rsi + rbp*8 + 0x3f0]
mov qword [rax + 0x160], rsi
lea ecx, [rbp + 3]
mov word [rax + 0x3d0], cx
nop
mov eax, dword [0x141dd4c68]
sub eax, dword [0x141dd4c6c]
and eax, 0x82010048
imul eax, eax, 0xfede0501
lea ecx, [rbp + 1]
lea edx, [rbp + 2]
mov r8, qword [rsi + rbp*8 + 0x3d8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], bp
mov r8, qword [rsi + rbp*8 + 0x3e0]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], cx
lea ecx, [rbp + 3]
mov r8, qword [rsi + rbp*8 + 0x3e8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], dx
mov rdx, qword [rsi + rbp*8 + 0x3f0]
mov qword [rdx + 0x160], rsi
mov word [rdx + 0x3d0], cx
cmp eax, 0x1e1b23b2
je 0x1400bec30
add rbp, 4
cmp rbp, r10
jne 0x1400bebb0
dec word [rsi + 0x3d2]
mov rdi, qword [rsp + 0x50]
nop
mov eax, dword [0x141dd4c70]
imul eax, dword [0x141dd4c74]
or eax, 0x7fd33b51
and eax, 0x7fff7b53
cmp eax, 0xba6addbe
ja 0x1400becd0
cmp r12, 2
jb 0x1400bef06
lea rcx, [rbx*8 + 0x3d8]
add rcx, r13
lea rdx, [r15 + 0x3d8]
mov r14, qword [rsp + 0x28]
lea r8, [r14*8 + 8]
call sub.VCRUNTIME140.dll_memcpy
lea eax, [r14 + 1]
and eax, 3
je 0x1400bedb0
xor ecx, ecx
nop dword [rax + rax]
mov edx, dword [0x141dd4c78]
imul edx, dword [0x141dd4c7c]
add edx, 0x23e2d9d3
and edx, 0x6a3d62a1
cmp edx, 0xd8ea6958
jbe 0x1400bed70
mov rdx, qword [r13 + rbx*8 + 0x3d8]
mov qword [rdx + 0x160], r13
mov word [rdx + 0x3d0], bx
nop word [rax + rax]
mov edx, dword [0x141dd4c80]
or edx, dword [0x141dd4c84]
mov r8, qword [r13 + rbx*8 + 0x3d8]
mov qword [r8 + 0x160], r13
mov word [r8 + 0x3d0], bx
cmp edx, 0xf1ea10c6
je 0x1400bed70
inc rbx
inc rcx
cmp rcx, rax
jne 0x1400bed30
nop word cs:[rax + rax]
mov eax, dword [0x141dd4c88]
sub eax, dword [0x141dd4c8c]
imul rax, rax, 0x890e1ad
shr rax, 0x3b
imul eax, eax, 0x536ff9ef
and eax, 0x23ca4b72
cmp eax, 0x84b1bf89
ja 0x1400bedb0
cmp word [rsp + 0x28], 3
jb 0x1400bef06
nop word cs:[rax + rax]
mov eax, dword [0x141dd4c90]
sub eax, dword [0x141dd4c94]
and eax, 0x222f3f58
imul eax, eax, 0xba2f10ba
cmp eax, 0x9cf9f9fc
jae 0x1400bee70
mov rax, qword [r13 + rbx*8 + 0x3d8]
mov qword [rax + 0x160], r13
mov word [rax + 0x3d0], bx
mov rax, qword [r13 + rbx*8 + 0x3e0]
mov qword [rax + 0x160], r13
lea ecx, [rbx + 1]
mov word [rax + 0x3d0], cx
mov rax, qword [r13 + rbx*8 + 0x3e8]
mov qword [rax + 0x160], r13
lea ecx, [rbx + 2]
mov word [rax + 0x3d0], cx
mov rax, qword [r13 + rbx*8 + 0x3f0]
mov qword [rax + 0x160], r13
lea ecx, [rbx + 3]
mov word [rax + 0x3d0], cx
nop
mov ecx, dword [0x141dd4c98]
and ecx, dword [0x141dd4c9c]
xor ecx, 0xac953be6
add ecx, 0x67c0e9f3
lea edx, [rbx + 1]
lea rax, [rbx + 3]
mov r8, qword [r13 + rbx*8 + 0x3d8]
mov qword [r8 + 0x160], r13
mov word [r8 + 0x3d0], bx
mov r8, qword [r13 + rbx*8 + 0x3e0]
mov qword [r8 + 0x160], r13
mov word [r8 + 0x3d0], dx
lea edx, [rbx + 2]
mov r8, qword [r13 + rbx*8 + 0x3e8]
mov qword [r8 + 0x160], r13
mov word [r8 + 0x3d0], dx
mov rdx, qword [r13 + rbx*8 + 0x3f0]
mov qword [rdx + 0x160], r13
mov word [rdx + 0x3d0], ax
cmp ecx, 0x3b5210fd
ja 0x1400bee70
add rbx, 4
cmp rax, rdi
jne 0x1400bedf0
mov eax, dword [0x141dd4ca0]
sub eax, dword [0x141dd4ca4]
imul eax, eax, 0xe4d102ff
imul rcx, rax, 0x178c85a7
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x18
imul eax, eax, 0x4a62d230
cmp eax, 0x28281ef4
jne 0x1400bef40
mov rax, qword [0x141ddb260]
xor eax, eax
nop word cs:[rax + rax]
mov r14, qword [0x141ddb260]
test al, al
jne 0x1400bef50
mov eax, dword [0x141dd4ca8]
xor eax, dword [0x141dd4cac]
and eax, 0xcc408470
imul eax, eax, 0x8b49d328
cmp eax, 0xe7a78f56
jbe 0x1400bef87
mov rcx, r14
xor edx, edx
mov r8, r15
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov ebx, dword [0x141dd4cb0]
or ebx, dword [0x141dd4cb4]
add ebx, 0xbfc871cd
or ebx, 0x878cce40
mov rcx, r14
xor edx, edx
mov r8, r15
call rdi
cmp ebx, 0x223cc997
jb 0x1400bef90
nop word [rax + rax]
mov eax, dword [0x141dd4cb8]
or eax, dword [0x141dd4cbc]
or eax, 0x992a8f31
imul eax, eax, 0x1fb42db3
add eax, 0xd81771cd
cmp eax, 0x58612efc
jb 0x1400befc0
mov rax, rsi
mov rdx, r12
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [0x141dd4c18]
or eax, dword [0x141dd4c1c]
add eax, 0x1d9da815
and eax, 0x997f522e
imul rax, rax, 0x3d54593d
shr rax, 0x3c
cmp eax, 0xf3f5042e
jbe 0x1400bf030
ud2
mov eax, dword [0x141dd4c20]
xor eax, dword [0x141dd4c24]
add eax, 0x6aac72c1
or eax, 0x8e80240e
and eax, 0x9e902c3f
ud2