Function at 0x1400fd79c
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, 0x68
mov ebx, dword [rcx + 0x30]
xorps xmm0, xmm0
xor r13d, r13d
mov r14, rcx
movups xmmword [rbp - 0x28], xmm0
movups xmmword [rbp - 0x18], xmm0
cmp dword [rcx + 8], r13d
je 0x1400fd7dd
mov eax, dword [rcx + 0x18]
jmp 0x1400fd7e0
mov eax, dword [rcx + 0x28]
mov ecx, 0x80070103
mov r12d, 0x80070216
mov r15d, 0x8007000d
cmp ebx, eax
jne 0x1400fd802
mov edi, ecx
call fcn.140082a8c
mov rbx, qword [rbp + 0x48]
jmp 0x1400fd865
mov esi, ebx
xor ecx, ecx
call fcn.140082b34
lea eax, [rbx + 0x10]
cmp eax, ebx
jb 0x1400fd819
mov esi, eax
mov edi, r13d
jmp 0x1400fd824
mov ecx, r12d
mov edi, r12d
call fcn.140082a8c
mov ecx, edi
call fcn.140082b34
test edi, edi
jns 0x1400fd833
mov ecx, edi
jmp 0x1400fd7f7
mov ecx, dword [r14 + 8]
test ecx, ecx
je 0x1400fd841
mov eax, dword [r14 + 0x18]
jmp 0x1400fd845
mov eax, dword [r14 + 0x28]
cmp esi, eax
jbe 0x1400fd851
mov edi, r15d
mov ecx, r15d
jmp 0x1400fd7f7
test ecx, ecx
je 0x1400fd85b
mov rax, qword [r14 + 0x10]
jmp 0x1400fd85f
mov rax, qword [r14 + 0x20]
add rbx, rax
mov dword [rbp + 0x48], esi
mov qword [rbp - 0x30], rbx
mov ecx, edi
call fcn.140082b34
test edi, edi
jns 0x1400fd880
mov ecx, edi
call fcn.140082a8c
jmp 0x1400fdd16
mov eax, dword [rbx + 4]
lea rdx, [rbp - 0x34]
or r10d, 0xffffffff
mov dword [rbp - 0x20], eax
mov r15d, 4
mov dword [rbp - 0x34], r13d
mov esi, r10d
lea r11, [0x1403e17e0]
mov r8d, r15d
movzx eax, byte [rdx]
inc rdx
mov ecx, esi
shr rcx, 0x18
xor rcx, rax
mov eax, esi
shl eax, 8
mov esi, dword [r11 + rcx*4]
xor esi, eax
add r8d, r10d
jne 0x1400fd8a5
lea rdx, [rbx + 4]
mov r8d, SafeArrayGetDim
movzx eax, byte [rdx]
inc rdx
mov ecx, esi
shr rcx, 0x18
xor rcx, rax
mov eax, esi
shl eax, 8
mov esi, dword [r11 + rcx*4]
xor esi, eax
add r8d, r10d
jne 0x1400fd8ce
mov eax, dword [rbp + 0x48]
not esi
mov ebx, dword [rbx + 8]
mov dword [rbp - 0x34], eax
xor ecx, ecx
call fcn.140082b34
xor ecx, ecx
call fcn.140082b34
lea r12d, [rbx + 7]
mov edi, r13d
cmp r12d, ebx
jae 0x1400fd924
mov ecx, 0x80070216
mov edi, ecx
call fcn.140082a8c
mov r12d, dword [rbp + 0x48]
jmp 0x1400fd928
and r12d, 0xfffffff8
mov ecx, edi
call fcn.140082b34
test edi, edi
js 0x1400fd874
mov edx, dword [rbp + 0x48]
lea rax, [rbp + 0x48]
lea r9, [rbp - 0x28]
mov qword [rsp + 0x20], rax
mov r8d, r12d
mov rcx, r14
call fcn.1401060fc
mov edi, eax
test eax, eax
jns 0x1400fd95f
mov ecx, eax
jmp 0x1400fd876
mov r13d, dword [rbp + 0x48]
mov ebx, 0x20
mov eax, r13d
mov dword [rbp - 0x38], ebx
sub eax, dword [rbp - 0x34]
mov dword [rbp - 0x34], eax
add eax, ebx
cmp eax, ebx
jb 0x1400fd983
mov dword [rbp - 0x38], eax
xor eax, eax
mov edi, eax
jmp 0x1400fd991
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140082a8c
mov ecx, edi
call fcn.140082b34
xor r9d, r9d
test edi, edi
js 0x1400fd874
mov rbx, qword [rbp - 0x30]
cmp dword [rbp - 0x34], r9d
jbe 0x1400fda04
mov edx, dword [rbx + 8]
cmp edx, 2
jb 0x1400fd9f8
test dl, 1
jne 0x1400fd9f8
mov r8, qword [rbp - 0x28]
mov eax, edx
shr rax, 1
cmp word [r8 + rax*2 - 2], r9w
jne 0x1400fd9f8
not esi
lea r10, [0x1403e17e0]
movzx eax, byte [r8]
inc r8
mov ecx, esi
shr rcx, 0x18
xor rcx, rax
mov eax, esi
shl eax, 8
mov esi, dword [r10 + rcx*4]
xor esi, eax
add edx, 0xffffffff
jne 0x1400fd9d4
not esi
jmp 0x1400fda08
mov ecx, 0x8007000d
mov edi, ecx
jmp 0x1400fd876
mov qword [rbp - 0x28], r9
mov ecx, dword [rbx + 4]
mov edx, 0xfffffffd
lea eax, [rcx + 0x7ffffffe]
test edx, eax
je 0x1400fda26
cmp ecx, 1
je 0x1400fda48
lea eax, [rcx - 2]
test edx, eax
jne 0x1400fd9f8
mov r15d, dword [rbx + 0xc]
mov ecx, dword [rbp - 0x38]
mov dword [rbp - 0x10], r15d
lea eax, [rcx + r15]
cmp eax, ecx
jb 0x1400fdb3c
mov dword [rbp - 0x38], eax
mov edi, r9d
jmp 0x1400fdb4a
cmp dword [rbx + 0xc], r15d
jne 0x1400fd9f8
cmp dword [r14 + 8], r9d
je 0x1400fda5a
mov eax, dword [r14 + 0x18]
jmp 0x1400fda5e
mov eax, dword [r14 + 0x28]
cmp r13d, eax
jne 0x1400fda71
mov ecx, 0x80070103
mov edi, ecx
call fcn.140082a8c
jmp 0x1400fdaed
mov ebx, r13d
xor ecx, ecx
call fcn.140082b34
lea eax, [r13 + 4]
cmp eax, r13d
jb 0x1400fda8c
mov ebx, eax
xor eax, eax
mov edi, eax
jmp 0x1400fda9a
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140082a8c
mov ecx, edi
call fcn.140082b34
test edi, edi
jns 0x1400fdaae
mov ecx, edi
call fcn.140082a8c
jmp 0x1400fdae9
mov ecx, dword [r14 + 8]
test ecx, ecx
je 0x1400fdabc
mov eax, dword [r14 + 0x18]
jmp 0x1400fdac0
mov eax, dword [r14 + 0x28]
cmp ebx, eax
jbe 0x1400fdacd
mov ecx, 0x8007000d
mov edi, ecx
jmp 0x1400fdaa7
test ecx, ecx
je 0x1400fdad7
mov rcx, qword [r14 + 0x10]
jmp 0x1400fdadb
mov rcx, qword [r14 + 0x20]
lea rax, [rcx + r13]
mov dword [rbp + 0x48], ebx
mov qword [rbp - 0x18], rax
mov r13d, ebx
mov rbx, qword [rbp - 0x30]
mov ecx, edi
call fcn.140082b34
test edi, edi
js 0x1400fd874
mov rax, qword [rbp - 0x18]
lea rdx, [rbp - 0x18]
not esi
lea r10, [0x1403e17e0]
mov r8d, r15d
mov ecx, dword [rax]
mov dword [rbp - 0x18], ecx
movzx eax, byte [rdx]
inc rdx
mov ecx, esi
shr rcx, 0x18
xor rcx, rax
mov eax, esi
shl eax, 8
mov esi, dword [r10 + rcx*4]
xor esi, eax
add r8d, 0xffffffff
jne 0x1400fdb15
not esi
jmp 0x1400fdc67
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140082a8c
mov ecx, edi
call fcn.140082b34
xor r10d, r10d
test edi, edi
js 0x1400fd874
test r15d, r15d
je 0x1400fdbce
lea rax, [rbp + 0x48]
mov r8d, r15d
lea r9, [rbp - 0x18]
mov qword [rsp + 0x20], rax
mov edx, r13d
mov rcx, r14
call fcn.1401060fc
xor r10d, r10d
mov edi, eax
test eax, eax
js 0x1400fd958
mov r15d, dword [rbp - 0x10]
not esi
mov rdx, qword [rbp - 0x18]
mov r8d, r15d
mov r9, rdx
test r15d, r15d
je 0x1400fdbc6
lea r11, [0x1403e17e0]
movzx eax, byte [r9]
inc r9
mov ecx, esi
shr rcx, 0x18
xor rcx, rax
mov eax, esi
shl eax, 8
mov esi, dword [r11 + rcx*4]
xor esi, eax
add r8d, 0xffffffff
jne 0x1400fdba5
mov r13d, dword [rbp + 0x48]
not esi
jmp 0x1400fdbd5
mov rdx, r10
mov qword [rbp - 0x18], rdx
test byte [rbp - 0x20], 2
je 0x1400fdbf2
test r15d, r15d
je 0x1400fdbf2
mov eax, r15d
shr rax, 1
cmp word [rdx + rax*2 - 2], r10w
jne 0x1400fd9f8
xor ecx, ecx
call fcn.140082b34
xor ecx, ecx
call fcn.140082b34
xor eax, eax
mov edi, eax
lea eax, [r15 + 7]
cmp eax, r15d
jae 0x1400fdc1d
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140082a8c
jmp 0x1400fdc24
mov r12d, eax
and r12d, 0xfffffff8
mov ecx, edi
call fcn.140082b34
xor edx, edx
test edi, edi
js 0x1400fd874
mov eax, dword [rbp - 0x38]
sub eax, r15d
add eax, r12d
cmp eax, dword [rbp - 0x38]
jb 0x1400fdc4a
mov dword [rbp - 0x38], eax
mov edi, edx
jmp 0x1400fdc58
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140082a8c
mov ecx, edi
call fcn.140082b34
test edi, edi
js 0x1400fd874
xor ecx, ecx
call fcn.140082b34
xor ecx, ecx
call fcn.140082b34
xor eax, eax
mov edi, eax
lea eax, [r15 + 7]
cmp eax, r15d
jae 0x1400fdc92
mov eax, 0x80070216
mov ecx, eax
mov edi, eax
call fcn.140082a8c
jmp 0x1400fdc99
mov r12d, eax
and r12d, 0xfffffff8
mov ecx, edi
call fcn.140082b34
test edi, edi
js 0x1400fd874
sub r12d, r15d
je 0x1400fdcd5
lea rax, [rbp + 0x48]
xor r9d, r9d
mov r8d, r12d
mov qword [rsp + 0x20], rax
mov edx, r13d
mov rcx, r14
call fcn.1401060fc
mov edi, eax
test eax, eax
js 0x1400fd958
mov r13d, dword [rbp + 0x48]
cmp esi, dword [rbx]
je 0x1400fdce3
mov edi, 0x80070017
jmp 0x1400fd874
mov rax, qword [rbp + 0x50]
movups xmm0, xmmword [rbp - 0x28]
mov rcx, qword [rbp + 0x58]
mov dword [r14 + 0x30], r13d
movups xmm1, xmmword [rbp - 0x18]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
test rcx, rcx
je 0x1400fdd08
mov eax, dword [rbp - 0x34]
mov dword [rcx], eax
mov rax, qword [rbp + 0x60]
test rax, rax
je 0x1400fdd16
mov ecx, dword [rbp - 0x38]
mov dword [rax], ecx
mov ecx, edi
call fcn.140082b34
mov eax, edi
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret