Function at 0x1400f42a4
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 edi, dword [rcx + 0x30]
xorps xmm0, xmm0
xor r12d, r12d
mov rsi, rcx
movups xmmword [rbp - 0x30], xmm0
movups xmmword [rbp - 0x20], xmm0
cmp dword [rcx + 8], r12d
je 0x1400f42e5
mov eax, dword [rcx + 0x18]
jmp 0x1400f42e8
mov eax, dword [rcx + 0x28]
mov ecx, 0x80070103
mov r15d, 0x80070216
mov r13d, 0x8007000d
cmp edi, eax
jne 0x1400f430a
mov ebx, ecx
call fcn.140079c40
mov r13, qword [rbp + 0x48]
jmp 0x1400f4376
xor ecx, ecx
call fcn.140079c60
lea r14d, [rdi + 0x10]
cmp r14d, edi
jae 0x1400f4325
mov ecx, r15d
call fcn.140079c40
cmp r14d, edi
sbb ebx, ebx
and ebx, r15d
mov r15d, r14d
cmp r14d, edi
mov ecx, ebx
cmovb r15d, edi
call fcn.140079c60
cmp r14d, edi
jae 0x1400f4344
mov ecx, ebx
jmp 0x1400f42ff
mov ecx, dword [rsi + 8]
test ecx, ecx
je 0x1400f4350
mov eax, dword [rsi + 0x18]
jmp 0x1400f4353
mov eax, dword [rsi + 0x28]
cmp r15d, eax
jbe 0x1400f4360
mov ebx, r13d
mov ecx, r13d
jmp 0x1400f42ff
test ecx, ecx
je 0x1400f436a
mov rax, qword [rsi + 0x10]
jmp 0x1400f436e
mov rax, qword [rsi + 0x20]
lea r13, [rax + rdi]
mov dword [rbp + 0x48], r15d
mov qword [rbp - 0x38], r13
mov ecx, ebx
call fcn.140079c60
test ebx, ebx
jns 0x1400f4391
mov ecx, ebx
call fcn.140079c40
jmp 0x1400f485c
mov eax, dword [r13 + 4]
lea rdx, [rbp - 0x3c]
or r10d, 0xffffffff
mov dword [rbp - 0x28], eax
mov r14d, 4
mov dword [rbp - 0x3c], r12d
mov edi, r10d
lea r11, [0x1403d1bd0]
mov r8d, r14d
movzx eax, byte [rdx]
inc rdx
mov ecx, edi
shr rcx, 0x18
xor rcx, rax
mov eax, edi
shl eax, 8
mov edi, dword [r11 + rcx*4]
xor edi, eax
add r8d, r10d
jne 0x1400f43b7
lea rdx, [r13 + 4]
mov r8d, SafeArrayGetDim
movzx eax, byte [rdx]
inc rdx
mov ecx, edi
shr rcx, 0x18
xor rcx, rax
mov eax, edi
shl eax, 8
mov edi, dword [r11 + rcx*4]
xor edi, eax
add r8d, r10d
jne 0x1400f43e0
mov eax, dword [rbp + 0x48]
not edi
mov r13d, dword [r13 + 8]
mov dword [rbp - 0x3c], eax
xor ecx, ecx
call fcn.140079c60
xor ecx, ecx
call fcn.140079c60
lea r15d, [r13 + 7]
cmp r15d, r13d
jae 0x1400f4432
mov ecx, 0x80070216
call fcn.140079c40
mov r12d, dword [rbp + 0x48]
jmp 0x1400f4439
mov r12d, r15d
and r12d, 0xfffffff8
cmp r15d, r13d
sbb ebx, ebx
and ebx, 0x80070216
mov ecx, ebx
call fcn.140079c60
cmp r15d, r13d
jb 0x1400f4385
mov edx, dword [rbp + 0x48]
lea rax, [rbp + 0x48]
lea r9, [rbp - 0x30]
mov qword [rsp + 0x20], rax
mov r8d, r12d
mov rcx, rsi
call fcn.1400fcba0
mov ebx, eax
test eax, eax
jns 0x1400f447c
mov ecx, eax
jmp 0x1400f4387
mov r13d, dword [rbp + 0x48]
mov edx, 0x20
mov eax, r13d
mov dword [rbp - 0x48], edx
sub eax, dword [rbp - 0x3c]
mov dword [rbp - 0x3c], eax
lea r15d, [rax + 0x20]
cmp r15d, edx
jb 0x1400f44a2
mov edx, r15d
mov dword [rbp - 0x48], edx
jmp 0x1400f44ac
mov ecx, 0x80070216
call fcn.140079c40
cmp r15d, 0x20
mov dword [rbp - 0x44], edx
sbb ebx, ebx
and ebx, 0x80070216
mov ecx, ebx
call fcn.140079c60
cmp r15d, 0x20
jb 0x1400f4385
mov r9, qword [rbp - 0x38]
xor r10d, r10d
cmp dword [rbp - 0x3c], r10d
jbe 0x1400f4531
mov edx, dword [r9 + 8]
cmp edx, 2
jb 0x1400f4525
test dl, 1
jne 0x1400f4525
mov r8, qword [rbp - 0x30]
mov eax, edx
shr rax, 1
cmp word [r8 + rax*2 - 2], r10w
jne 0x1400f4525
not edi
lea r11, [0x1403d1bd0]
movzx eax, byte [r8]
inc r8
mov ecx, edi
shr rcx, 0x18
xor rcx, rax
mov eax, edi
shl eax, 8
mov edi, dword [r11 + rcx*4]
xor edi, eax
add edx, 0xffffffff
jne 0x1400f4501
not edi
jmp 0x1400f4535
mov ecx, 0x8007000d
mov ebx, ecx
jmp 0x1400f4387
mov qword [rbp - 0x30], r10
mov ecx, dword [r9 + 4]
mov edx, 0xfffffffd
lea eax, [rcx + 0x7ffffffe]
test edx, eax
je 0x1400f4554
cmp ecx, 1
je 0x1400f4577
lea eax, [rcx - 2]
test edx, eax
jne 0x1400f4525
mov r14d, dword [r9 + 0xc]
mov edx, dword [rbp - 0x48]
mov dword [rbp - 0x18], r14d
lea r15d, [rdx + r14]
cmp r15d, edx
jb 0x1400f4668
mov edx, r15d
mov dword [rbp - 0x48], edx
jmp 0x1400f4672
cmp dword [r9 + 0xc], r14d
jne 0x1400f4525
cmp dword [rsi + 8], r10d
je 0x1400f4588
mov eax, dword [rsi + 0x18]
jmp 0x1400f458b
mov eax, dword [rsi + 0x28]
cmp r13d, eax
jne 0x1400f459e
mov ecx, 0x80070103
mov ebx, ecx
call fcn.140079c40
jmp 0x1400f4619
xor ecx, ecx
call fcn.140079c60
lea r15d, [r13 + 4]
cmp r15d, r13d
jae 0x1400f45bb
mov ecx, 0x80070216
call fcn.140079c40
cmp r15d, r13d
sbb ebx, ebx
mov eax, r15d
and ebx, 0x80070216
cmp r15d, r13d
mov ecx, ebx
cmovb eax, r13d
mov dword [rbp - 0x40], eax
call fcn.140079c60
cmp r15d, r13d
jae 0x1400f45e0
mov ecx, ebx
jmp 0x1400f4597
mov ecx, dword [rsi + 8]
test ecx, ecx
je 0x1400f45ec
mov eax, dword [rsi + 0x18]
jmp 0x1400f45ef
mov eax, dword [rsi + 0x28]
mov edx, dword [rbp - 0x40]
cmp edx, eax
jbe 0x1400f45fd
mov ecx, 0x8007000d
jmp 0x1400f4595
test ecx, ecx
je 0x1400f4607
mov rcx, qword [rsi + 0x10]
jmp 0x1400f460b
mov rcx, qword [rsi + 0x20]
lea rax, [rcx + r13]
mov dword [rbp + 0x48], edx
mov qword [rbp - 0x20], rax
mov r13d, edx
mov ecx, ebx
call fcn.140079c60
test ebx, ebx
js 0x1400f4385
mov rax, qword [rbp - 0x20]
lea rdx, [rbp - 0x20]
not edi
lea r9, [0x1403d1bd0]
mov r8d, r14d
mov ecx, dword [rax]
mov dword [rbp - 0x20], ecx
movzx eax, byte [rdx]
inc rdx
mov ecx, edi
shr rcx, 0x18
xor rcx, rax
mov eax, edi
shl eax, 8
mov edi, dword [r9 + rcx*4]
xor edi, eax
add r8d, 0xffffffff
jne 0x1400f4641
not edi
jmp 0x1400f47a5
mov ecx, 0x80070216
call fcn.140079c40
cmp r15d, dword [rbp - 0x44]
mov dword [rbp - 0x40], edx
sbb ebx, ebx
and ebx, 0x80070216
mov ecx, ebx
call fcn.140079c60
cmp r15d, dword [rbp - 0x44]
jb 0x1400f4385
xor r15d, r15d
test r14d, r14d
je 0x1400f4704
lea rax, [rbp + 0x48]
mov r8d, r14d
lea r9, [rbp - 0x20]
mov qword [rsp + 0x20], rax
mov edx, r13d
mov rcx, rsi
call fcn.1400fcba0
mov ebx, eax
test eax, eax
js 0x1400f4475
mov r14d, dword [rbp - 0x18]
not edi
mov rdx, qword [rbp - 0x20]
mov r8d, r14d
mov r9, rdx
test r14d, r14d
je 0x1400f46fc
lea r10, [0x1403d1bd0]
movzx eax, byte [r9]
inc r9
mov ecx, edi
shr rcx, 0x18
xor rcx, rax
mov eax, edi
shl eax, 8
mov edi, dword [r10 + rcx*4]
xor edi, eax
add r8d, 0xffffffff
jne 0x1400f46db
mov r13d, dword [rbp + 0x48]
not edi
jmp 0x1400f470b
mov rdx, r15
mov qword [rbp - 0x20], rdx
test byte [rbp - 0x28], 2
je 0x1400f4728
test r14d, r14d
je 0x1400f4728
mov eax, r14d
shr rax, 1
cmp word [rdx + rax*2 - 2], r15w
jne 0x1400f4525
xor ecx, ecx
call fcn.140079c60
xor ecx, ecx
call fcn.140079c60
lea eax, [r14 + 7]
mov ebx, r15d
cmp eax, r14d
jae 0x1400f4752
mov eax, 0x80070216
mov ecx, eax
mov ebx, eax
call fcn.140079c40
jmp 0x1400f4759
mov r12d, eax
and r12d, 0xfffffff8
mov ecx, ebx
call fcn.140079c60
test ebx, ebx
js 0x1400f4385
mov r15d, dword [rbp - 0x48]
sub r15d, r14d
add r15d, r12d
cmp r15d, dword [rbp - 0x48]
jb 0x1400f477e
mov dword [rbp - 0x48], r15d
jmp 0x1400f4788
mov ecx, 0x80070216
call fcn.140079c40
cmp r15d, dword [rbp - 0x40]
sbb ebx, ebx
and ebx, 0x80070216
mov ecx, ebx
call fcn.140079c60
cmp r15d, dword [rbp - 0x40]
jb 0x1400f4385
xor ecx, ecx
call fcn.140079c60
xor ecx, ecx
call fcn.140079c60
lea r15d, [r14 + 7]
cmp r15d, r14d
jae 0x1400f47c8
mov ecx, 0x80070216
call fcn.140079c40
jmp 0x1400f47cf
mov r12d, r15d
and r12d, 0xfffffff8
cmp r15d, r14d
sbb ebx, ebx
and ebx, 0x80070216
mov ecx, ebx
call fcn.140079c60
cmp r15d, r14d
jb 0x1400f4385
sub r12d, r14d
je 0x1400f4817
lea rax, [rbp + 0x48]
xor r9d, r9d
mov r8d, r12d
mov qword [rsp + 0x20], rax
mov edx, r13d
mov rcx, rsi
call fcn.1400fcba0
mov ebx, eax
test eax, eax
js 0x1400f4475
mov r13d, dword [rbp + 0x48]
mov rax, qword [rbp - 0x38]
cmp edi, dword [rax]
je 0x1400f4829
mov ebx, 0x80070017
jmp 0x1400f4385
mov rax, qword [rbp + 0x50]
movups xmm0, xmmword [rbp - 0x30]
mov rcx, qword [rbp + 0x58]
mov dword [rsi + 0x30], r13d
movups xmm1, xmmword [rbp - 0x20]
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm1
test rcx, rcx
je 0x1400f484e
mov eax, dword [rbp - 0x3c]
mov dword [rcx], eax
mov rcx, qword [rbp + 0x60]
test rcx, rcx
je 0x1400f485c
mov eax, dword [rbp - 0x48]
mov dword [rcx], eax
mov ecx, ebx
call fcn.140079c60
mov eax, ebx
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret