Function at 0x140003880
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x2e0
mov rax, qword [0x140029040]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
xor r8d, r8d
mov rsi, r9
mov qword [rsp + 0x60], r8
mov rbx, rcx
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], r8w
jne 0x1400038b4
cmp rax, 0x40
ja 0x140003b30
movups xmm0, xmmword [str.U_M_IWP.]
mov qword [rsp + 0x2f8], rdi
xor eax, eax
cmp dword [0x140029090], 2
lea rdi, [rsp + 0x68]
movups xmm1, xmmword [0x1400250e8]
mov ecx, 0x30
rep stosb byte [rdi], al
movzx eax, word [0x140025110]
mov rdi, qword [rsp + 0x2f8]
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x68], 0x30
movups xmm0, xmmword [0x1400250f8]
mov dword [rsp + 0x7c], 4
movups xmmword [rsp + 0x30], xmm1
mov word [rsp + 0x58], ax
movups xmmword [rsp + 0x40], xmm0
movsd xmm0, qword [0x140025108]
movsd qword [rsp + 0x50], xmm0
jl 0x140003a8b
movdqa xmm5, xmmword [0x140025270]
lea rcx, [rsp + 0x20]
movdqa xmm4, xmmword [0x140025300]
movaps xmmword [rsp + 0x2d0], xmm6
movdqa xmm6, xmmword [0x1400252a0]
movaps xmmword [rsp + 0x2c0], xmm7
movdqa xmm7, xmmword [0x1400252d0]
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 0x10]
paddd xmm2, xmm5
add r8d, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshuflw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
xorps xmm3, xmm0
movq qword [rcx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
mov eax, r8d
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshufhw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshuflw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 8]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
xorps xmm3, xmm0
movq qword [rcx - 8], xmm3
cmp r8d, 0x18
jl 0x140003980
movaps xmm7, xmmword [rsp + 0x2c0]
movaps xmm6, xmmword [rsp + 0x2d0]
cmp eax, 0x1d
jge 0x140003ad7
movsxd rax, r8d
lea rcx, [rsp + 0x20]
lea rcx, [rcx + rax*2]
nop word [rax + rax]
mov eax, 0x8d3dcb09
lea rcx, [rcx + 2]
imul r8d
add edx, r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul edx, eax, 0x3a
movzx eax, r8w
inc r8d
sub ax, dx
add ax, 0x38
xor word [rcx - 2], ax
cmp r8d, 0x1d
jl 0x140003aa0
lea r8, [rsp + 0x20]
mov edx, 0x104
lea rcx, [rsp + 0xa0]
call fcn.14000d050
mov r8, rbx
lea rcx, [rsp + 0xa0]
mov edx, 0x104
call fcn.14000cd80
lea r9, [rsp + 0x60]
lea r8, [0x140025040]
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.ole32.dll_CoGetObject]
mov ecx, eax
mov rax, qword [rsp + 0x60]
mov qword [rsi], rax
mov eax, ecx
jmp 0x140003b38
mov qword [r9], r8
mov eax, 0x80004005
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.140004a70
mov rbx, qword [rsp + 0x300]
add rsp, 0x2e0
pop rsi
ret