Function at 0x1400be160
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov eax, dword [0x141dd5c58]
or eax, dword [0x141dd5c5c]
add eax, 0xe451ea64
imul rax, rax, 0x30e86bc7
shr rax, 0x3c
add eax, 0x762f3dcf
cmp eax, 0x1c201321
jb 0x1400be1dd
mov eax, dword [0x141dd5c60]
and eax, dword [0x141dd5c64]
imul edx, eax, 0x40f5fcc7
add edx, 0xcbe2741a
mov eax, 0x20
call fcn.1400f07c0
sub rsp, rax
mov r14, rsp
mov eax, 0x40
call fcn.1400f07c0
sub rsp, rax
mov r13, rsp
cmp edx, 0x1f67ca8
jae 0x1400be1f9
mov eax, 0x20
call fcn.1400f07c0
sub rsp, rax
mov eax, 0x40
call fcn.1400f07c0
sub rsp, rax
jmp 0x1400be19d
mov rdi, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rbp - 0x28], rax
mov rsi, qword [rcx + 0x18]
mov rax, qword [rcx + 0x20]
mov qword [rbp - 0x38], rax
movzx r8d, word [rsi + 0x3d2]
mov eax, dword [0x141dd5c68]
xor edx, edx
div dword [0x141dd5c6c]
lea r15, [r8 + 1]
nop word [rax + rax]
mov eax, dword [0x141dd5c70]
sub eax, dword [0x141dd5c74]
shr eax, 1
imul rax, rax, 0x25dd8937
shr rax, 0x3c
or eax, 0x397de834
imul eax, eax, 0xcfb99586
cmp eax, 0xd302820a
ja 0x1400be230
mov rbx, qword [rcx + 0x28]
movzx eax, word [rbx + 0x3d2]
mov qword [rbp - 8], rax
add rax, r8
inc rax
cmp eax, 0xc
mov qword [rbp - 0x10], r8
jae 0x1400be962
movzx r8d, word [rdi + 0x3d2]
mov qword [rbp - 0x20], r8
mov r9, qword [rcx + 0x10]
mov qword [rbp], r9
mov qword [rbp - 0x30], rax
mov word [rsi + 0x3d2], ax
imul rax, r9, 0x38
lea rcx, [rdi + rax]
add rcx, 0x168
mov rdx, qword [rdi + rax + 0x198]
mov qword [r13 + 0x30], rdx
movups xmm0, xmmword [rdi + rax + 0x168]
movups xmm1, xmmword [rdi + rax + 0x178]
movups xmm2, xmmword [rdi + rax + 0x188]
movups xmmword [r13 + 0x20], xmm2
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
lea r12, [r9 + 1]
lea rdx, [rdi + rax]
add rdx, 0x1a0
not r9
add r9, r8
mov qword [rbp - 0x18], r9
imul r8, r9, 0x38
sub rsp, 0x20
call sub.VCRUNTIME140.dll_memmove
add rsp, 0x20
imul rax, qword [rbp - 0x10], 0x38
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmm2, xmmword [r13 + 0x20]
movups xmmword [rsi + rax + 0x168], xmm0
movups xmmword [rsi + rax + 0x178], xmm1
movups xmmword [rsi + rax + 0x188], xmm2
mov rcx, qword [r13 + 0x30]
mov qword [rsi + rax + 0x198], rcx
lea rdx, [rbx + 0x168]
imul rax, r15, 0x38
lea rcx, [rsi + rax]
add rcx, 0x168
imul r8, qword [rbp - 8], 0x38
sub rsp, 0x20
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov rax, qword [rbp]
shl rax, 5
lea rcx, [rdi + rax]
movups xmm0, xmmword [rdi + rax]
movups xmm1, xmmword [rdi + rax + 0x10]
movups xmmword [r14], xmm0
movups xmmword [r14 + 0x10], xmm1
mov rdx, r12
shl rdx, 5
add rdx, rdi
mov r13, qword [rbp - 0x18]
mov r8, r13
shl r8, 5
sub rsp, 0x20
call sub.VCRUNTIME140.dll_memmove
add rsp, 0x20
mov rax, qword [rbp - 0x10]
shl rax, 5
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rsi + rax], xmm0
movups xmmword [rsi + rax + 0x10], xmm1
mov rcx, r15
shl rcx, 5
add rcx, rsi
mov r8, qword [rbp - 8]
shl r8, 5
sub rsp, 0x20
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov rax, qword [rbp]
lea r14, [rdi + rax*8]
add r14, 0x3e0
lea rdx, [rdi + rax*8]
add rdx, 0x3e8
lea r8, [r13*8]
sub rsp, 0x20
mov rcx, r14
call sub.VCRUNTIME140.dll_memmove
mov r11, qword [rbp - 0x20]
add rsp, 0x20
cmp r12, r11
jae 0x1400be568
nop word cs:[rax + rax]
mov eax, dword [0x141dd5c90]
sub eax, dword [0x141dd5c94]
imul eax, eax, 0x32c9a627
add eax, 0xdc01d3a3
cmp eax, 0x7a06048f
jb 0x1400be430
mov eax, 0xcfbd50d5
nop word cs:[rax + rax]
mov ecx, dword [0x141dd5c98]
xor ecx, dword [0x141dd5c9c]
imul ecx, ecx, 0x792d69b4
add ecx, 0xc2db10ec
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x519036c2
ja 0x1400be460
mov rcx, r11
sub rcx, qword [rbp]
and r13, 3
je 0x1400be528
xor eax, eax
mov rdx, r12
jmp 0x1400be4ab
inc rax
inc rdx
cmp r13, rax
je 0x1400be525
mov r8d, dword [0x141dd5ca0]
and r8d, dword [0x141dd5ca4]
or r8d, 0x24096d0
and r8d, 0x252b6d1
cmp r8d, 0x97b0ad3d
ja 0x1400be50c
mov r8d, dword [0x141dd5ca8]
sub r8d, dword [0x141dd5cac]
lea r9d, [r12 + rax]
mov r10, qword [r14 + rax*8]
mov qword [r10 + 0x160], rdi
mov word [r10 + 0x3d0], r9w
or r8d, 0x12200416
and r8d, 0x12209677
cmp r8d, 0xba214731
jbe 0x1400be4a0
mov r8, qword [r14 + rax*8]
mov qword [r8 + 0x160], rdi
lea r9d, [r12 + rax]
mov word [r8 + 0x3d0], r9w
jmp 0x1400be4d0
add r12, rax
add rcx, 0xfffffffffffffffe
mov eax, dword [0x141dd5cb0]
xor edx, edx
div dword [0x141dd5cb4]
nop word [rax + rax]
mov eax, dword [0x141dd5cb8]
sub eax, dword [0x141dd5cbc]
imul eax, eax, 0x6e32acc6
add eax, 0x8efd0502
cmp eax, 0xf102861c
ja 0x1400be540
cmp rcx, 3
jae 0x1400be811
movzx eax, word [rdi + 0x3d2]
mov ecx, dword [0x141dd5cd0]
or ecx, dword [0x141dd5cd4]
dec eax
and ecx, 0x1c2e6bd6
imul ecx, ecx, 0x63ec0042
cmp ecx, 0x3a504bb5
jne 0x1400be598
mov word [rdi + 0x3d2], ax
mov r14, qword [rbp - 0x30]
nop dword [rax]
mov ecx, dword [0x141dd5cd8]
and ecx, dword [0x141dd5cdc]
and ecx, 0x52b08c0c
imul ecx, ecx, 0xebedcd55
imul rcx, rcx, 0x73b40a0b
shr rcx, 0x3e
mov word [rdi + 0x3d2], ax
cmp ecx, 0x15d842ab
ja 0x1400be5a0
cmp qword [rbp - 0x28], 2
jb 0x1400be802
lea rax, [rsi + 0x3d8]
nop word cs:[rax + rax]
mov ecx, dword [0x141dd5ce0]
sub ecx, dword [0x141dd5ce4]
imul ecx, ecx, 0xeb100bfd
cmp ecx, 0xad3f8821
je 0x1400be5f0
lea rcx, [rax + r15*8]
lea rdx, [rbx + 0x3d8]
mov rdi, qword [rbp - 8]
lea r8, [rdi*8 + 8]
sub rsp, 0x20
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
lea eax, [rdi + 1]
and eax, 3
je 0x1400be6ce
xor ecx, ecx
nop dword [rax]
mov edx, dword [0x141dd5ce8]
or edx, dword [0x141dd5cec]
and edx, 0x2f2dda9b
xor edx, 0x646a6e17
imul edx, edx, 0xbc83ec35
cmp edx, 0x40d5217c
jbe 0x1400be680
mov rdx, qword [rsi + r15*8 + 0x3d8]
mov qword [rdx + 0x160], rsi
mov word [rdx + 0x3d0], r15w
nop dword [rax]
mov edx, dword [0x141dd5cf0]
sub edx, dword [0x141dd5cf4]
mov r8, qword [rsi + r15*8 + 0x3d8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], r15w
imul rdx, rdx, 0x1348e8cf
shr rdx, 0x3b
and edx, 1
xor edx, 0xc38d14af
cmp edx, 0xd2a79c6f
ja 0x1400be680
inc r15
inc rcx
cmp rcx, rax
jne 0x1400be640
cmp di, 3
jb 0x1400be802
nop dword [rax + rax]
mov eax, dword [0x141dd5cf8]
sub eax, dword [0x141dd5cfc]
or eax, 0x823093bb
imul eax, eax, 0xcd80f44a
cmp eax, 0x9b0faeff
jne 0x1400be770
mov rax, qword [rsi + r15*8 + 0x3d8]
mov qword [rax + 0x160], rsi
mov word [rax + 0x3d0], r15w
mov rax, qword [rsi + r15*8 + 0x3e0]
mov qword [rax + 0x160], rsi
lea ecx, [r15 + 1]
mov word [rax + 0x3d0], cx
mov rax, qword [rsi + r15*8 + 0x3e8]
mov qword [rax + 0x160], rsi
lea ecx, [r15 + 2]
mov word [rax + 0x3d0], cx
mov rax, qword [rsi + r15*8 + 0x3f0]
mov qword [rax + 0x160], rsi
lea ecx, [r15 + 3]
mov word [rax + 0x3d0], cx
nop word cs:[rax + rax]
mov eax, dword [0x141dd5d00]
sub eax, dword [0x141dd5d04]
imul ecx, eax, 0x4a959045
lea edx, [r15 + 1]
lea rax, [r15 + 3]
mov r8, qword [rsi + r15*8 + 0x3d8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], r15w
mov r8, qword [rsi + r15*8 + 0x3e0]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], dx
lea edx, [r15 + 2]
mov r8, qword [rsi + r15*8 + 0x3e8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], dx
mov rdx, qword [rsi + r15*8 + 0x3f0]
mov qword [rdx + 0x160], rsi
mov word [rdx + 0x3d0], ax
cmp ecx, 0x4366215f
je 0x1400be770
add r15, 4
cmp rax, r14
jne 0x1400be6e0
xor eax, eax
test al, al
je 0x1400be9cd
jmp 0x1400bea08
mov eax, 0x8ab89157
jmp 0x1400be82d
add r12, 4
cmp r11, r12
je 0x1400be568
mov ecx, dword [0x141dd5cc0]
xor ecx, dword [0x141dd5cc4]
add ecx, 0xe4d48d8b
xor ecx, 0xeaf7dca7
imul rcx, rax
shr rcx, 0x3e
cmp ecx, 0x8e8d2978
ja 0x1400be8f5
nop dword [rax]
mov ecx, dword [0x141dd5cc8]
xor ecx, dword [0x141dd5ccc]
add ecx, 0xc60ec5f1
and ecx, 0xe23f77e
imul ecx, ecx, 0x75301c69
lea edx, [r12 + 1]
lea r8d, [r12 + 2]
mov r9, qword [rdi + r12*8 + 0x3d8]
mov qword [r9 + 0x160], rdi
mov word [r9 + 0x3d0], r12w
mov r9, qword [rdi + r12*8 + 0x3e0]
mov qword [r9 + 0x160], rdi
mov word [r9 + 0x3d0], dx
lea edx, [r12 + 3]
mov r9, qword [rdi + r12*8 + 0x3e8]
mov qword [r9 + 0x160], rdi
mov word [r9 + 0x3d0], r8w
mov r8, qword [rdi + r12*8 + 0x3f0]
mov qword [r8 + 0x160], rdi
mov word [r8 + 0x3d0], dx
cmp ecx, 0x226b711c
jae 0x1400be820
mov rcx, qword [rdi + r12*8 + 0x3d8]
mov qword [rcx + 0x160], rdi
mov word [rcx + 0x3d0], r12w
mov rcx, qword [rdi + r12*8 + 0x3e0]
mov qword [rcx + 0x160], rdi
lea edx, [r12 + 1]
mov word [rcx + 0x3d0], dx
mov rcx, qword [rdi + r12*8 + 0x3e8]
mov qword [rcx + 0x160], rdi
lea edx, [r12 + 2]
mov word [rcx + 0x3d0], dx
mov rcx, qword [rdi + r12*8 + 0x3f0]
mov qword [rcx + 0x160], rdi
lea edx, [r12 + 3]
mov word [rcx + 0x3d0], dx
jmp 0x1400be860
mov eax, dword [0x141dd5c78]
xor eax, dword [0x141dd5c7c]
xor eax, 0x810a135
or eax, 0x552b1ec2
cmp eax, 0xa11c43fa
je 0x1400be9a1
mov eax, dword [0x141dd5c80]
xor edx, edx
div dword [0x141dd5c84]
xor eax, 0x173419a3
imul eax, eax, 0x892d61ef
ud2
ud2
mov edi, dword [0x141dd5d08]
imul edi, dword [0x141dd5d0c]
add edi, 0x2e958e0
or edi, 0xd288252e
mov rcx, qword [0x141ddc4e0]
sub rsp, 0x20
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x20
cmp edi, 0xb939a947
jae 0x1400bea30
mov rcx, qword [0x141ddc4e0]
sub rsp, 0x20
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
add rsp, 0x20
jmp 0x1400be9cd
mov eax, dword [0x141dd5d10]
xor eax, dword [0x141dd5d14]
shr eax, 2
imul rax, rax, 0x2056324d
shr rax, 0x3a
imul eax, eax, 0x28a0b089
add eax, 0x36738bb8
cmp eax, 0x558578e0
jb 0x1400bea30
mov rax, rsi
mov rdx, qword [rbp - 0x38]
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret