Function at 0x1400e0aac
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x718
mov qword [rsp + 0x28], rcx
mov ecx, reloc.OLEAUT32.dll_SafeArrayLock
mov ebp, 0x88888889
mov qword [rsp + 0x30], rdx
mov rbx, rdx
shr rbx, 0x20
jmp 0x1400e0b3a
mov rax, qword [rsp + 0x30]
xor edx, edx
div rsi
mov dword [rsp + rcx + 0x588], edx
imul eax, edi, 0x7dc107
xor eax, 0xb8235797
mov dword [rsp + rcx + 0x58c], eax
imul r8d, eax, 0x7dc107
xor r8d, 0xb8235797
mov rax, r8
imul rax, rbp
shr rax, 0x27
imul eax, eax, 0xf0
neg eax
add eax, r8d
add eax, 0x10
mov dword [rsp + rcx + 0x590], eax
add rcx, 0x18
cmp rcx, 0x194
je 0x1400e0b90
imul eax, r8d, 0x7dc107
xor eax, 0xb8235797
mov rdx, rax
imul rdx, rbp
shr rdx, 0x27
imul edx, edx, 0xf0
neg edx
lea esi, [rax + rdx]
add esi, 0x10
mov dword [rsp + rcx + 0x580], esi
imul edi, eax, 0x7dc107
xor edi, 0xb8235797
mov dword [rsp + rcx + 0x584], edi
test rbx, rbx
jne 0x1400e0adc
mov rax, qword [rsp + 0x30]
xor edx, edx
div esi
jmp 0x1400e0ae6
mov rax, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
add rax, rbp
add rax, 0xffffffffffffffff
mov qword [rsp + 0x40], rax
lea rax, [rbp - 1]
mov qword [rsp + 0x60], rax
lea rax, [rbp + 1]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 3]
mov qword [rsp + 0x58], rax
mov ebx, reloc.OLEAUT32.dll_SafeArrayDestroy
jmp 0x1400e0bdb
mov rbx, qword [rsp + 0x68]
sub rbx, 1
jb 0x1400e132c
cmp qword [rsp + 0x40], rbp
jbe 0x1400e0c0c
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
movzx edx, byte [rax - 1]
xor dl, byte [rcx]
mov byte [rax - 1], dl
xor dl, byte [rcx]
mov byte [rcx], dl
xor byte [rax - 1], dl
add rcx, 0xffffffffffffffff
lea rdx, [rax + 1]
cmp rax, rcx
mov rax, rdx
jb 0x1400e0bec
mov qword [rsp + 0x68], rbx
lea r8, [rbx + rbx*2]
mov eax, dword [rsp + r8*8 + 0x5a4]
add rax, qword [rsp + 0x60]
cmp rax, rbp
jbe 0x1400e0c4c
mov rcx, qword [rsp + 0x38]
movzx edx, byte [rcx - 1]
xor dl, byte [rax]
mov byte [rcx - 1], dl
xor dl, byte [rax]
mov byte [rax], dl
xor byte [rcx - 1], dl
add rax, 0xffffffffffffffff
lea rdx, [rcx + 1]
cmp rcx, rax
mov rcx, rdx
jb 0x1400e0c2c
mov edi, dword [rsp + r8*8 + 0x594]
test rdi, rdi
je 0x1400e0db6
mov ecx, dword [rsp + r8*8 + 0x598]
lea rdx, [rdi - 1]
mov eax, edi
and eax, 7
cmp rdx, 7
jae 0x1400e0c7c
xor edx, edx
jmp 0x1400e0ce2
mov ebp, edi
and ebp, 0xfffffff8
xor edx, edx
nop word [rax + rax]
mov byte [rsp + rdx + 0x190], dl
lea ebx, [rdx + 1]
mov byte [rsp + rdx + 0x191], bl
lea ebx, [rdx + 2]
mov byte [rsp + rdx + 0x192], bl
lea ebx, [rdx + 3]
mov byte [rsp + rdx + 0x193], bl
lea ebx, [rdx + 4]
mov byte [rsp + rdx + 0x194], bl
lea ebx, [rdx + 5]
mov byte [rsp + rdx + 0x195], bl
lea ebx, [rdx + 6]
mov byte [rsp + rdx + 0x196], bl
lea ebx, [rdx + 7]
mov byte [rsp + rdx + 0x197], bl
add rdx, 8
cmp rbp, rdx
jne 0x1400e0c8c
test rax, rax
je 0x1400e0cfd
nop dword [rax + rax]
mov byte [rsp + rdx + 0x190], dl
add rdx, 1
add rax, 0xffffffffffffffff
jne 0x1400e0cec
cmp edi, 1
jne 0x1400e0d0c
xor ebp, ebp
jmp 0x1400e0d85
mov esi, edi
and esi, 0xfffffffe
xor ebp, ebp
nop word [rax + rax]
imul ecx, ecx, 0x7dc107
xor ecx, 0xb8235797
mov eax, ecx
xor edx, edx
div edi
movzx eax, byte [rsp + rbp + 0x190]
movzx ebx, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x190], bl
mov byte [rsp + rdx + 0x190], al
imul ecx, ecx, 0x7dc107
xor ecx, 0xb8235797
mov eax, ecx
xor edx, edx
div edi
movzx eax, byte [rsp + rbp + 0x191]
movzx ebx, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x191], bl
mov byte [rsp + rdx + 0x190], al
add rbp, 2
cmp rsi, rbp
jne 0x1400e0d1c
test dil, 1
je 0x1400e0db6
imul eax, ecx, 0x7dc107
xor eax, 0xb8235797
xor edx, edx
div edi
mov al, byte [rsp + rbp + 0x190]
mov cl, byte [rsp + rdx + 0x190]
mov byte [rsp + rbp + 0x190], cl
mov byte [rsp + rdx + 0x190], al
mov qword [rsp + 0x50], rdi
mov esi, dword [rsp + r8*8 + 0x59c]
test rsi, rsi
je 0x1400e0f26
mov ecx, dword [rsp + r8*8 + 0x5a0]
lea rdx, [rsi - 1]
mov eax, esi
and eax, 7
cmp rdx, 7
jae 0x1400e0dec
xor edx, edx
jmp 0x1400e0e52
mov ebp, esi
and ebp, 0xfffffff8
xor edx, edx
nop word [rax + rax]
mov byte [rsp + rdx + 0x90], dl
lea ebx, [rdx + 1]
mov byte [rsp + rdx + 0x91], bl
lea ebx, [rdx + 2]
mov byte [rsp + rdx + 0x92], bl
lea ebx, [rdx + 3]
mov byte [rsp + rdx + 0x93], bl
lea ebx, [rdx + 4]
mov byte [rsp + rdx + 0x94], bl
lea ebx, [rdx + 5]
mov byte [rsp + rdx + 0x95], bl
lea ebx, [rdx + 6]
mov byte [rsp + rdx + 0x96], bl
lea ebx, [rdx + 7]
mov byte [rsp + rdx + 0x97], bl
add rdx, 8
cmp rbp, rdx
jne 0x1400e0dfc
test rax, rax
je 0x1400e0e6d
nop dword [rax + rax]
mov byte [rsp + rdx + 0x90], dl
add rdx, 1
add rax, 0xffffffffffffffff
jne 0x1400e0e5c
cmp esi, 1
jne 0x1400e0e7c
xor ebp, ebp
jmp 0x1400e0ef5
mov edi, esi
and edi, 0xfffffffe
xor ebp, ebp
nop word [rax + rax]
imul ecx, ecx, 0x7dc107
xor ecx, 0xb8235797
mov eax, ecx
xor edx, edx
div esi
movzx eax, byte [rsp + rbp + 0x90]
movzx ebx, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x90], bl
mov byte [rsp + rdx + 0x90], al
imul ecx, ecx, 0x7dc107
xor ecx, 0xb8235797
mov eax, ecx
xor edx, edx
div esi
movzx eax, byte [rsp + rbp + 0x91]
movzx ebx, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x91], bl
mov byte [rsp + rdx + 0x90], al
add rbp, 2
cmp rdi, rbp
jne 0x1400e0e8c
test sil, 1
je 0x1400e0f26
imul eax, ecx, 0x7dc107
xor eax, 0xb8235797
xor edx, edx
div esi
mov al, byte [rsp + rbp + 0x90]
mov cl, byte [rsp + rdx + 0x90]
mov byte [rsp + rbp + 0x90], cl
mov byte [rsp + rdx + 0x90], al
mov r8d, 0x100
lea rcx, [rsp + 0x290]
xor edx, edx
mov qword [rsp + 0x48], rsi
call fcn.1400dc05c
mov r8d, 0x100
lea rcx, [rsp + 0x490]
xor edx, edx
call fcn.1400dc05c
mov r8d, 0x100
lea rcx, [rsp + 0x390]
xor edx, edx
call fcn.1400dc05c
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
test r9d, r9d
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
je 0x1400e1035
lea rcx, [r9 - 1]
mov eax, r9d
and eax, 3
cmp rcx, 3
jae 0x1400e0fac
xor ecx, ecx
test rax, rax
jne 0x1400e101c
jmp 0x1400e1035
mov edx, r9d
and edx, 0xfffffffc
xor ecx, ecx
nop dword [rax + rax]
movzx ebp, byte [rsp + rcx + 0x190]
mov byte [rsp + rbp + 0x490], cl
movzx ebp, byte [rsp + rcx + 0x191]
lea ebx, [rcx + 1]
mov byte [rsp + rbp + 0x490], bl
movzx ebp, byte [rsp + rcx + 0x192]
lea ebx, [rcx + 2]
mov byte [rsp + rbp + 0x490], bl
movzx ebp, byte [rsp + rcx + 0x193]
lea ebx, [rcx + 3]
mov byte [rsp + rbp + 0x490], bl
add rcx, 4
cmp rdx, rcx
jne 0x1400e0fbc
mov rbp, qword [rsp + 0x28]
test rax, rax
je 0x1400e1035
nop dword [rax + rax]
movzx edx, byte [rsp + rcx + 0x190]
mov byte [rsp + rdx + 0x490], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x1400e101c
test r10d, r10d
je 0x1400e10e5
lea rcx, [r10 - 1]
mov eax, r10d
and eax, 3
cmp rcx, 3
jae 0x1400e105c
xor ecx, ecx
test rax, rax
jne 0x1400e10cc
jmp 0x1400e10e5
mov edx, r10d
and edx, 0xfffffffc
xor ecx, ecx
nop dword [rax + rax]
movzx ebp, byte [rsp + rcx + 0x90]
mov byte [rsp + rbp + 0x390], cl
movzx ebp, byte [rsp + rcx + 0x91]
lea ebx, [rcx + 1]
mov byte [rsp + rbp + 0x390], bl
movzx ebp, byte [rsp + rcx + 0x92]
lea ebx, [rcx + 2]
mov byte [rsp + rbp + 0x390], bl
movzx ebp, byte [rsp + rcx + 0x93]
lea ebx, [rcx + 3]
mov byte [rsp + rbp + 0x390], bl
add rcx, 4
cmp rdx, rcx
jne 0x1400e106c
mov rbp, qword [rsp + 0x28]
test rax, rax
je 0x1400e10e5
nop dword [rax + rax]
movzx edx, byte [rsp + rcx + 0x90]
mov byte [rsp + rdx + 0x390], cl
add rcx, 1
add rax, 0xffffffffffffffff
jne 0x1400e10cc
test rdi, rdi
je 0x1400e0bcc
lea rax, [r9 - 1]
mov qword [rsp + 0x88], rax
lea rax, [r10 - 1]
mov qword [rsp + 0x80], rax
mov r14d, r9d
and r14d, 3
mov eax, r9d
and eax, 0xfffffffc
mov qword [rsp + 0x78], rax
mov r13d, r10d
and r13d, 3
mov eax, r10d
and eax, 0xfffffffc
mov qword [rsp + 0x70], rax
mov r12, rbp
mov rsi, qword [rsp + 0x58]
xor r15d, r15d
jmp 0x1400e116c
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x28]
lea rdx, [rsp + 0x290]
call fcn.1400dc0ec
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
add rsi, r9
add r12, r9
cmp r15, rdi
jae 0x1400e0bcc
lea rcx, [r15 + rbp]
add r15, r9
cmp r15, rdi
jbe 0x1400e119c
mov r8, r10
test r10d, r10d
je 0x1400e1146
cmp qword [rsp + 0x80], 3
jae 0x1400e11c0
mov r9, rdi
mov rdi, rbp
xor eax, eax
jmp 0x1400e1234
mov r8, r9
test r9d, r9d
je 0x1400e1146
cmp qword [rsp + 0x88], 3
jae 0x1400e127d
mov r10, rdi
mov rdi, rbp
xor eax, eax
jmp 0x1400e12e4
mov r9, rdi
mov rdi, rbp
xor eax, eax
mov rbp, qword [rsp + 0x70]
nop word cs:[rax + rax]
nop dword [rax + rax]
movzx edx, byte [rsp + rax + 0x390]
movzx ebx, byte [rsi + rax - 3]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x391]
movzx ebx, byte [rsi + rax - 2]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x392]
movzx ebx, byte [rsi + rax - 1]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x393]
movzx ebx, byte [rsi + rax]
mov byte [rsp + rdx + 0x290], bl
add rax, 4
cmp rbp, rax
jne 0x1400e11dc
mov r8, r10
test r13, r13
mov rbp, rdi
mov rdi, r9
je 0x1400e1146
lea rbp, [r12 + rax]
add rax, rsp
add rax, 0x390
xor ebx, ebx
nop dword [rax]
movzx edi, byte [rax + rbx]
movzx edx, byte [rbp + rbx]
mov byte [rsp + rdi + 0x290], dl
add rbx, 1
cmp r13, rbx
jne 0x1400e125c
mov r8, r10
jmp 0x1400e113c
mov r10, rdi
mov rdi, rbp
xor eax, eax
mov rbp, qword [rsp + 0x78]
nop
movzx edx, byte [rsp + rax + 0x490]
movzx ebx, byte [rsi + rax - 3]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x491]
movzx ebx, byte [rsi + rax - 2]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x492]
movzx ebx, byte [rsi + rax - 1]
mov byte [rsp + rdx + 0x290], bl
movzx edx, byte [rsp + rax + 0x493]
movzx ebx, byte [rsi + rax]
mov byte [rsp + rdx + 0x290], bl
add rax, 4
cmp rbp, rax
jne 0x1400e128c
mov r8, r9
test r14, r14
mov rbp, rdi
mov rdi, r10
je 0x1400e1146
lea rdi, [r12 + rax]
add rax, rsp
add rax, 0x490
xor ebx, ebx
nop dword [rax]
movzx ebp, byte [rax + rbx]
movzx edx, byte [rdi + rbx]
mov byte [rsp + rbp + 0x290], dl
add rbx, 1
cmp r14, rbx
jne 0x1400e130c
mov r8, r9
jmp 0x1400e113c
add rsp, 0x718
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret