Function at 0x1401c3f30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x108
movdqa xmmword [rsp + 0xf0], xmm8
movdqa xmmword [rsp + 0xe0], xmm7
movaps xmmword [rsp + 0xd0], xmm6
mov rsi, r8
mov rax, qword [0x14022f038]
xor rax, rsp
mov qword [rsp + 0xc8], rax
cmp edx, 0x100
je 0x1401c4077
cmp edx, 0xc0
je 0x1401c41e6
mov edi, 1
cmp edx, 0x80
jne 0x1401c4424
mov dword [rsi + 0xf0], 0xa
movdqu xmm7, xmmword [rcx]
movdqu xmmword [rsi], xmm7
lea r14, [rsp + 0x50]
add rsi, 0x10
xor edi, edi
xorps xmm6, xmm6
lea rbx, [rsp + 0x40]
lea r15, [0x140219600]
xor r12d, r12d
movaps xmmword [r14 + 0x60], xmm6
movaps xmmword [r14 + 0x50], xmm6
movaps xmmword [r14 + 0x40], xmm6
movaps xmmword [r14 + 0x30], xmm6
movaps xmmword [r14 + 0x20], xmm6
movaps xmmword [r14 + 0x10], xmm6
movaps xmmword [r14], xmm6
movdqa xmmword [rsp + 0x40], xmm7
mov rcx, rbx
call fcn.1401c4a20
mov rcx, rbx
call fcn.1401c4c90
mov rcx, rbx
call fcn.1401c4a20
movdqa xmm0, xmmword [rsp + 0x40]
movzx eax, byte [r12 + r15]
movd xmm1, eax
movdqa xmm2, xmm0
psrld xmm2, 8
pslld xmm0, 0x18
por xmm0, xmm2
psrldq xmm0, 0xc
pxor xmm1, xmm7
pxor xmm1, xmm0
movdqa xmm0, xmm1
pslldq xmm0, 4
movdqa xmm2, xmm1
pslldq xmm2, 8
pxor xmm2, xmm0
movdqa xmm7, xmm1
pslldq xmm7, 0xc
pxor xmm7, xmm2
pxor xmm7, xmm1
movdqu xmmword [rsi], xmm7
inc r12
add rsi, 0x10
cmp r12, 0xa
jne 0x1401c3fc8
jmp 0x1401c4424
mov dword [rsi + 0xf0], SafeArrayDestroy
movdqu xmm8, xmmword [rcx]
movdqu xmmword [rsi], xmm8
movdqu xmm6, xmmword [rcx + 0x10]
movdqu xmmword [rsi + 0x10], xmm6
lea rbx, [rsp + 0x50]
mov r14d, 0x30
lea r15, [0x140219600]
pxor xmm7, xmm7
lea rdi, [rsp + 0x40]
movdqa xmmword [rbx + 0x60], xmm7
movdqa xmmword [rbx + 0x50], xmm7
movdqa xmmword [rbx + 0x40], xmm7
movdqa xmmword [rbx + 0x30], xmm7
movdqa xmmword [rbx + 0x20], xmm7
movdqa xmmword [rbx + 0x10], xmm7
movdqa xmmword [rbx], xmm7
movdqa xmmword [rsp + 0x40], xmm6
mov rcx, rdi
call fcn.1401c4a20
mov rcx, rdi
call fcn.1401c4c90
mov rcx, rdi
call fcn.1401c4a20
movdqa xmm0, xmmword [rsp + 0x40]
movzx eax, byte [r15]
movd xmm1, eax
pxor xmm1, xmm8
movdqa xmm2, xmm0
psrld xmm2, 8
pslld xmm0, 0x18
por xmm0, xmm2
psrldq xmm0, 0xc
pxor xmm0, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 4
movdqa xmm2, xmm0
pslldq xmm2, 8
pxor xmm2, xmm1
movdqa xmm8, xmm0
pslldq xmm8, 0xc
pxor xmm8, xmm2
pxor xmm8, xmm0
movdqu xmmword [rsi + r14 - 0x10], xmm8
cmp r14, 0xf0
je 0x1401c4422
movdqa xmmword [rbx + 0x60], xmm7
movdqa xmmword [rbx + 0x50], xmm7
movdqa xmmword [rbx + 0x40], xmm7
movdqa xmmword [rbx + 0x30], xmm7
movdqa xmmword [rbx + 0x20], xmm7
movdqa xmmword [rbx + 0x10], xmm7
movdqa xmmword [rbx], xmm7
movdqa xmmword [rsp + 0x40], xmm8
mov rcx, rdi
call fcn.1401c4a20
mov rcx, rdi
call fcn.1401c4c90
mov rcx, rdi
call fcn.1401c4a20
movdqa xmm0, xmmword [rsp + 0x40]
psrldq xmm0, 0xc
pxor xmm6, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 4
movdqa xmm1, xmm6
pslldq xmm1, 8
pxor xmm1, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 0xc
pxor xmm0, xmm1
pxor xmm6, xmm0
movdqu xmmword [rsi + r14], xmm6
add r14, 0x20
inc r15
jmp 0x1401c40b0
mov dword [rsi + 0xf0], SafeArrayDestroy
movups xmm0, xmmword [rcx]
lea rax, [rsp + 0x30]
movaps xmmword [rax], xmm0
movdqu xmm0, xmmword [rcx]
movdqu xmmword [rsi], xmm0
mov rcx, qword [rcx + 0x10]
lea rbx, [rsp + 0x20]
mov qword [rbx], rcx
mov qword [rbx + 8], 0
add rsi, 0x30
xor r14d, r14d
xorps xmm6, xmm6
lea rdi, [rsp + 0x40]
lea r15, [0x140219600]
movdqa xmm7, xmmword [0x14020d380]
mov r12, rax
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
movaps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x40], xmm0
mov rcx, rdi
call fcn.1401c4a20
mov rcx, rdi
call fcn.1401c4c90
mov rcx, rdi
call fcn.1401c4a20
movzx eax, byte [r15 + r14*2]
movd xmm0, eax
movdqa xmm1, xmmword [r12]
pxor xmm0, xmm1
pslldq xmm0, 8
por xmm0, xmmword [rbx]
movdqa xmm2, xmmword [rsp + 0x40]
movdqa xmm3, xmm2
psrld xmm3, 8
pslld xmm2, 0x18
por xmm2, xmm3
shufps xmm2, xmm6, 0x31
pxor xmm3, xmm3
shufps xmm3, xmm2, 0x84
xorps xmm3, xmm0
pshufd xmm2, xmm3, 0xaa
pand xmm2, xmm7
pxor xmm2, xmm3
movdqa xmmword [rbx], xmm2
shufps xmm1, xmm0, 0x4e
psrldq xmm2, 0xc
pxor xmm2, xmm1
movdqa xmm0, xmm2
movdqa xmm1, xmm2
pslldq xmm1, 0xc
pxor xmm1, xmm2
pslldq xmm2, 4
pslldq xmm0, 8
pxor xmm0, xmm2
pxor xmm1, xmm0
movdqa xmmword [r12], xmm1
movups xmm0, xmmword [rbx]
movups xmmword [rsi - 0x20], xmm0
movups xmm0, xmmword [r12]
movups xmmword [rsi - 0x10], xmm0
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x40], xmm6
movaps xmm0, xmmword [r12]
movaps xmmword [rsp + 0x40], xmm0
mov rcx, rdi
call fcn.1401c4a20
mov rcx, rdi
call fcn.1401c4c90
mov rcx, rdi
call fcn.1401c4a20
movdqa xmm1, xmmword [rsp + 0x40]
movzx eax, byte [r15 + r14*2 + 1]
movaps xmm2, xmmword [rbx]
movaps xmm0, xmmword [r12]
shufps xmm2, xmm0, 0x4e
movd xmm3, eax
pxor xmm3, xmm2
movdqa xmm2, xmm1
psrld xmm2, 8
pslld xmm1, 0x18
por xmm1, xmm2
psrldq xmm1, 0xc
pxor xmm1, xmm3
movdqa xmm2, xmm1
pslldq xmm2, 4
movdqa xmm3, xmm1
pslldq xmm3, 8
pxor xmm3, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 0xc
pxor xmm2, xmm3
pxor xmm2, xmm1
movdqa xmmword [rbx], xmm2
psrldq xmm0, 8
psrldq xmm2, 0xc
pxor xmm2, xmm0
movdqa xmm0, xmm2
psllq xmm0, 0x20
pxor xmm0, xmm2
movdqa xmmword [r12], xmm0
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rsi], xmm0
inc r14
add rsi, 0x30
mov rax, rbx
mov rbx, r12
cmp r14, 4
jne 0x1401c4235
xor edi, edi
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.14014ced0
mov eax, edi
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret