Function at 0x1400ed720
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x78
mov eax, 0x20
mov r14, rcx
mov r8d, eax
mov qword [rbp - 0x38], rax
xor edx, edx
lea rcx, [rbp - 0x30]
call sub.msvcrt.dll_memset
mov ebx, dword [r14 + 0x30]
xor r12d, r12d
cmp dword [r14 + 8], r12d
je 0x1400ed76f
mov eax, dword [r14 + 0x18]
jmp 0x1400ed773
mov eax, dword [r14 + 0x28]
mov ecx, 0x80070103
mov r13d, 0x80070216
mov r15d, 0x8007000d
cmp ebx, eax
jne 0x1400ed795
mov edi, ecx
call fcn.140078308
mov rbx, qword [rbp + 0x48]
jmp 0x1400ed7f8
mov esi, ebx
xor ecx, ecx
call fcn.140078324
lea eax, [rbx + 0x10]
cmp eax, ebx
jb 0x1400ed7ac
mov esi, eax
mov edi, r12d
jmp 0x1400ed7b7
mov ecx, r13d
mov edi, r13d
call fcn.140078308
mov ecx, edi
call fcn.140078324
test edi, edi
jns 0x1400ed7c6
mov ecx, edi
jmp 0x1400ed78a
mov ecx, dword [r14 + 8]
test ecx, ecx
je 0x1400ed7d4
mov eax, dword [r14 + 0x18]
jmp 0x1400ed7d8
mov eax, dword [r14 + 0x28]
cmp esi, eax
jbe 0x1400ed7e4
mov edi, r15d
mov ecx, r15d
jmp 0x1400ed78a
test ecx, ecx
je 0x1400ed7ee
mov rax, qword [r14 + 0x10]
jmp 0x1400ed7f2
mov rax, qword [r14 + 0x20]
add rbx, rax
mov dword [rbp + 0x48], esi
mov qword [rbp - 0x40], rbx
mov ecx, edi
call fcn.140078324
test edi, edi
jns 0x1400ed813
mov ecx, edi
call fcn.140078308
jmp 0x1400edcb9
mov eax, dword [rbx + 4]
lea rdx, [rbp - 0x48]
or r10d, 0xffffffff
mov dword [rbp - 0x28], eax
mov r15d, 4
mov dword [rbp - 0x48], r12d
mov esi, r10d
lea r11, [0x1403b2710]
mov r8d, r15d
movzx eax, byte [rdx]
mov ecx, esi
shr rcx, 0x18
inc rdx
xor rcx, rax
mov eax, esi
shl eax, 8
movzx ecx, cl
mov esi, dword [r11 + rcx*4]
xor esi, eax
add r8d, r10d
jne 0x1400ed838
not esi
lea rdx, [rbx + 4]
not esi
mov r8d, SafeArrayGetDim
movzx eax, byte [rdx]
mov ecx, esi
shr rcx, 0x18
inc rdx
xor rcx, rax
mov eax, esi
shl eax, 8
movzx ecx, cl
mov esi, dword [r11 + rcx*4]
xor esi, eax
add r8d, r10d
jne 0x1400ed868
mov r13d, dword [rbp + 0x48]
not esi
mov ebx, dword [rbx + 8]
xor ecx, ecx
call fcn.140078324
xor ecx, ecx
call fcn.140078324
mov edi, r12d
lea r12d, [rbx + 7]
cmp r12d, ebx
jae 0x1400ed8bf
mov ecx, 0x80070216
mov edi, ecx
call fcn.140078308
mov r12d, dword [rbp + 0x48]
jmp 0x1400ed8c3
and r12d, 0xfffffff8
mov ecx, edi
call fcn.140078324
test edi, edi
js 0x1400ed807
mov edx, dword [rbp + 0x48]
lea rax, [rbp + 0x48]
lea r9, [rbp - 0x30]
mov qword [rsp + 0x20], rax
mov r8d, r12d
mov rcx, r14
call fcn.1400f60f0
xor ecx, ecx
mov edi, eax
test eax, eax
jns 0x1400ed8fc
mov ecx, eax
jmp 0x1400ed809
mov ebx, dword [rbp + 0x48]
mov eax, ebx
sub eax, r13d
mov dword [rbp - 0x48], eax
add eax, 0x20
cmp eax, 0x20
jb 0x1400ed916
mov dword [rbp - 0x38], eax
mov edi, ecx
jmp 0x1400ed924
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140078308
mov ecx, edi
call fcn.140078324
xor r9d, r9d
test edi, edi
js 0x1400ed807
mov r13, qword [rbp - 0x40]
cmp dword [rbp - 0x48], r9d
jbe 0x1400ed99f
mov edx, dword [r13 + 8]
cmp edx, 2
jb 0x1400ed993
test dl, 1
jne 0x1400ed993
mov r8, qword [rbp - 0x30]
mov eax, edx
shr rax, 1
cmp word [r8 + rax*2 - 2], r9w
jne 0x1400ed993
not esi
test edx, edx
je 0x1400ed98f
lea r10, [0x1403b2710]
movzx eax, byte [r8]
mov ecx, esi
shr rcx, 0x18
inc r8
xor rcx, rax
mov eax, esi
shl eax, 8
movzx ecx, cl
mov esi, dword [r10 + rcx*4]
xor esi, eax
add edx, 0xffffffff
jne 0x1400ed96c
not esi
jmp 0x1400ed9a3
mov ecx, 0x8007000d
mov edi, ecx
jmp 0x1400ed809
mov qword [rbp - 0x30], r9
mov ecx, dword [r13 + 4]
mov edx, 0xfffffffd
lea eax, [rcx + 0x7ffffffe]
test edx, eax
je 0x1400ed9c2
cmp ecx, 1
je 0x1400ed9e5
lea eax, [rcx - 2]
test edx, eax
jne 0x1400ed993
mov r15d, dword [r13 + 0xc]
mov rcx, qword [rbp - 0x38]
mov dword [rbp - 0x18], r15d
lea eax, [r15 + rcx]
cmp eax, ecx
jb 0x1400edadb
mov dword [rbp - 0x38], eax
mov edi, r9d
jmp 0x1400edae9
cmp dword [r13 + 0xc], r15d
jne 0x1400ed993
cmp dword [r14 + 8], r9d
je 0x1400ed9f7
mov eax, dword [r14 + 0x18]
jmp 0x1400ed9fb
mov eax, dword [r14 + 0x28]
cmp ebx, eax
jne 0x1400eda0d
mov ecx, 0x80070103
mov edi, ecx
call fcn.140078308
jmp 0x1400eda89
mov r13d, ebx
xor ecx, ecx
call fcn.140078324
lea eax, [rbx + 4]
cmp eax, ebx
jb 0x1400eda27
mov r13d, eax
xor eax, eax
mov edi, eax
jmp 0x1400eda35
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140078308
mov ecx, edi
call fcn.140078324
test edi, edi
jns 0x1400eda49
mov ecx, edi
call fcn.140078308
jmp 0x1400eda85
mov ecx, dword [r14 + 8]
test ecx, ecx
je 0x1400eda57
mov eax, dword [r14 + 0x18]
jmp 0x1400eda5b
mov eax, dword [r14 + 0x28]
cmp r13d, eax
jbe 0x1400eda69
mov ecx, 0x8007000d
mov edi, ecx
jmp 0x1400eda42
test ecx, ecx
je 0x1400eda73
mov rcx, qword [r14 + 0x10]
jmp 0x1400eda77
mov rcx, qword [r14 + 0x20]
lea rax, [rcx + rbx]
mov ebx, r13d
mov dword [rbp + 0x48], ebx
mov qword [rbp - 0x20], rax
mov r13, qword [rbp - 0x40]
mov ecx, edi
call fcn.140078324
test edi, edi
js 0x1400ed807
mov rax, qword [rbp - 0x20]
lea rdx, [rbp - 0x20]
not esi
lea r10, [0x1403b2710]
mov r8d, r15d
mov ecx, dword [rax]
mov dword [rbp - 0x20], ecx
movzx eax, byte [rdx]
mov ecx, esi
shr rcx, 0x18
inc rdx
xor rcx, rax
mov eax, esi
shl eax, 8
movzx ecx, cl
mov esi, dword [r10 + rcx*4]
xor esi, eax
add r8d, 0xffffffff
jne 0x1400edab1
not esi
jmp 0x1400edc09
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140078308
mov ecx, edi
call fcn.140078324
xor r10d, r10d
test edi, edi
js 0x1400ed807
test r15d, r15d
je 0x1400edb6e
lea rax, [rbp + 0x48]
mov r8d, r15d
lea r9, [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov edx, ebx
mov rcx, r14
call fcn.1400f60f0
xor r10d, r10d
mov edi, eax
test eax, eax
js 0x1400ed8f5
mov r15d, dword [rbp - 0x18]
not esi
mov rdx, qword [rbp - 0x20]
mov r8d, r15d
mov r9, rdx
test r15d, r15d
je 0x1400edb67
lea r11, [0x1403b2710]
movzx eax, byte [r9]
mov ecx, esi
shr rcx, 0x18
inc r9
xor rcx, rax
mov eax, esi
shl eax, 8
movzx ecx, cl
mov esi, dword [r11 + rcx*4]
xor esi, eax
add r8d, 0xffffffff
jne 0x1400edb43
mov ebx, dword [rbp + 0x48]
not esi
jmp 0x1400edb75
mov rdx, r10
mov qword [rbp - 0x20], rdx
test byte [rbp - 0x28], 2
je 0x1400edb92
test r15d, r15d
je 0x1400edb92
mov eax, r15d
shr rax, 1
cmp word [rdx + rax*2 - 2], r10w
jne 0x1400ed993
xor ecx, ecx
call fcn.140078324
xor ecx, ecx
call fcn.140078324
xor eax, eax
mov edi, eax
lea eax, [r15 + 7]
cmp eax, r15d
jae 0x1400edbbd
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140078308
jmp 0x1400edbc4
mov r12d, eax
and r12d, 0xfffffff8
mov ecx, edi
call fcn.140078324
xor edx, edx
test edi, edi
js 0x1400ed807
mov rcx, qword [rbp - 0x38]
mov eax, ecx
sub eax, r15d
add eax, r12d
cmp eax, ecx
jb 0x1400edbec
mov dword [rbp - 0x38], eax
mov edi, edx
jmp 0x1400edbfa
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140078308
mov ecx, edi
call fcn.140078324
test edi, edi
js 0x1400ed807
xor ecx, ecx
call fcn.140078324
xor ecx, ecx
call fcn.140078324
xor eax, eax
mov edi, eax
lea eax, [r15 + 7]
cmp eax, r15d
jae 0x1400edc34
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140078308
jmp 0x1400edc3b
mov r12d, eax
and r12d, 0xfffffff8
mov ecx, edi
call fcn.140078324
test edi, edi
js 0x1400ed807
sub r12d, r15d
je 0x1400edc75
lea rax, [rbp + 0x48]
xor r9d, r9d
mov r8d, r12d
mov qword [rsp + 0x20], rax
mov edx, ebx
mov rcx, r14
call fcn.1400f60f0
mov edi, eax
test eax, eax
js 0x1400ed8f5
mov ebx, dword [rbp + 0x48]
cmp esi, dword [r13]
je 0x1400edc85
mov edi, 0x80070017
jmp 0x1400ed807
mov rax, qword [rbp + 0x50]
movups xmm0, xmmword [rbp - 0x30]
mov rcx, qword [rbp + 0x58]
mov dword [r14 + 0x30], ebx
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
test rcx, rcx
je 0x1400edcaa
mov eax, dword [rbp - 0x48]
mov dword [rcx], eax
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x1400edcb9
mov rax, qword [rbp - 0x38]
mov dword [rcx], eax
mov ecx, edi
call fcn.140078324
mov eax, edi
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret