Function at 0x1011fb40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x28
mov eax, dword [ecx + 8]
mov ecx, dword [ebp + 0x14]
mov dword [esp], eax
push esi
movd xmm0, eax
pshufd xmm6, xmm0, 0
push edi
test ecx, ecx
je 0x1011fcef
xor edi, edi
mov dword [esp + 0x18], edi
cmp dword [ebp + 0x10], edi
jle 0x101201b6
movzx eax, byte [edi + ecx]
mov dword [esp + 0x14], eax
test eax, eax
je 0x1011fcd9
mov eax, dword [ebp + 8]
movzx edx, word [eax + edi*2]
lea eax, [eax + edi*2]
mov ecx, edx
mov dword [esp + 0x1c], eax
shr ecx, 0xb
mov eax, edx
shr eax, 5
mov esi, ecx
or esi, 0xffffffe0
and eax, 0x3f
shl esi, 9
and ecx, 0xfffffffc
or esi, eax
shl ecx, 0xa
or ecx, eax
shl esi, 6
mov eax, dword [ebp + 0xc]
and edx, 0x1f
and ecx, 0xfffffff0
or esi, ecx
add esi, esi
mov edi, dword [eax + edi*4]
or esi, edx
shr edx, 2
mov eax, edi
shl esi, 3
or esi, edx
shr eax, 8
mov dword [esp + 0xc], esi
mov edx, esi
and dword [esp + 0xc], 0xff00ff
and eax, 0xffff00ff
imul eax, dword [esp + 8]
mov esi, 0x100
sub esi, dword [esp + 8]
shr edx, 8
mov ecx, esi
and edx, 0xff00ff
imul ecx, edx
mov dword [esp + 0x10], edx
mov edx, edi
and edx, 0xff00ff
shr edi, 8
imul edx, dword [esp + 8]
and edi, 0xff00ff
imul edi, dword [esp + 8]
add eax, ecx
mov ecx, dword [esp + 0xc]
imul ecx, esi
imul esi, dword [esp + 0x10]
add edx, ecx
shr edx, 8
add edi, esi
xor eax, edx
mov edx, dword [esp + 0x14]
and eax, 0xff00ff
xor eax, edi
cmp edx, 0xff
jae 0x1011fcab
mov ecx, edx
mov esi, eax
shr ecx, 7
and esi, 0xff00ff
add ecx, edx
mov edi, 0x100
imul esi, ecx
sub edi, ecx
mov dword [esp + 0x14], ecx
mov edx, eax
mov ecx, edi
shr edx, 8
imul ecx, dword [esp + 0xc]
and edx, 0xffff00ff
imul edx, dword [esp + 0x14]
shr eax, 8
and eax, 0xff00ff
imul eax, dword [esp + 0x14]
add esi, ecx
mov ecx, edi
imul ecx, dword [esp + 0x10]
imul edi, dword [esp + 0x10]
shr esi, 8
add edx, ecx
xor esi, edx
add eax, edi
and esi, 0xff00ff
xor eax, esi
mov edi, dword [esp + 0x18]
mov edx, eax
mov ecx, eax
shr edx, 8
shr ecx, 5
and edx, 0xf800
and ecx, 0x7e0
shr eax, 3
or edx, ecx
and eax, 0x1f
mov ecx, dword [ebp + 0x14]
or edx, eax
mov eax, dword [esp + 0x1c]
mov word [eax], dx
inc edi
mov dword [esp + 0x18], edi
cmp edi, dword [ebp + 0x10]
jl 0x1011fb74
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x10]
xor esi, esi
mov dword [esp + 0xc], esi
test ecx, ecx
jle 0x101201b6
mov edi, dword [ebp + 8]
cmp ecx, 8
jb 0x101200c4
cmp dword [0x10266c2c], 2
jl 0x101200c4
mov edx, dword [ebp + 0xc]
lea eax, [ecx - 1]
mov dword [esp + 0xc], esi
lea eax, [edx + eax*4]
cmp edi, eax
ja 0x1011fd38
lea eax, [ecx - 1]
lea eax, [edi + eax*2]
cmp eax, edx
jae 0x101200c0
mov eax, ecx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x1011fd46
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm5, xmmword [0x10226780]
movaps xmm4, xmmword [0x10226720]
psubd xmm5, xmm6
movaps xmm7, xmmword [0x102268b0]
mov dword [esp + 0x10], ecx
sub dword [esp + 0x10], eax
mov eax, 0xb
movd xmm1, eax
lea ecx, [eax - 2]
movaps xmmword [esp + 0x20], xmm1
nop dword [eax + eax]
movq xmm0, qword [edi + esi*2]
mov eax, 5
pmovzxwd xmm0, xmm0
movaps xmm3, xmm0
psrld xmm3, xmm1
movaps xmm1, xmm0
movd xmm2, eax
pand xmm3, xmm4
mov eax, 0xa
psrld xmm1, xmm2
movaps xmm2, xmm4
movaps xmm4, xmm3
pand xmm4, xmmword [0x10226b60]
pand xmm2, xmm0
por xmm3, xmmword [0x10226b40]
pand xmm1, xmmword [0x10226740]
movd xmm0, eax
mov eax, 6
pslld xmm4, xmm0
movd xmm0, ecx
mov ecx, 1
pslld xmm3, xmm0
por xmm4, xmm1
movd xmm0, eax
pand xmm4, xmmword [0x10226b50]
por xmm3, xmm1
pslld xmm3, xmm0
movd xmm0, ecx
mov ecx, 3
por xmm4, xmm3
pslld xmm4, xmm0
por xmm4, xmm2
movd xmm0, ecx
pslld xmm4, xmm0
mov ecx, 2
movd xmm0, ecx
mov ecx, 8
psrld xmm2, xmm0
por xmm4, xmm2
movups xmm2, xmmword [edx + esi*4]
movd xmm1, ecx
movaps xmm0, xmm4
psrld xmm0, xmm1
movaps xmm3, xmm2
pand xmm4, xmm7
psrld xmm3, xmm1
pand xmm0, xmm7
movaps xmm1, xmm5
pmulld xmm0, xmm5
pand xmm3, xmm7
pmulld xmm3, xmm6
paddd xmm3, xmm0
movaps xmm0, xmm7
pand xmm3, xmmword [0x10226b00]
pand xmm0, xmm2
pmulld xmm0, xmm6
pmulld xmm1, xmm4
paddd xmm1, xmm0
movd xmm2, ecx
psrld xmm1, xmm2
mov ecx, 5
pand xmm1, xmm7
por xmm3, xmm1
movaps xmm0, xmm3
psrld xmm0, xmm2
movd xmm4, ecx
mov ecx, 3
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm2, xmm0, 0xd8
movq xmm0, qword [0x10226ae0]
pand xmm2, xmm0
movaps xmm0, xmm3
psrld xmm0, xmm4
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x102268d0]
pand xmm1, xmm0
movd xmm0, ecx
por xmm2, xmm1
psrld xmm3, xmm0
mov ecx, 0xa
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x10226820]
pand xmm1, xmm0
por xmm2, xmm1
movq qword [edi + esi*2], xmm2
movq xmm0, qword [edi + esi*2 + 8]
pmovzxwd xmm2, xmm0
movaps xmm1, xmm2
movaps xmm0, xmm2
psrld xmm1, xmmword [esp + 0x20]
psrld xmm0, xmm4
pand xmm1, xmmword [0x10226720]
pand xmm0, xmmword [0x10226740]
movaps xmm3, xmm1
pand xmm3, xmmword [0x10226b60]
por xmm1, xmmword [0x10226b40]
pand xmm2, xmmword [0x10226720]
movd xmm4, ecx
mov ecx, 9
pslld xmm3, xmm4
por xmm3, xmm0
pand xmm3, xmmword [0x10226b50]
movd xmm4, ecx
pslld xmm1, xmm4
por xmm1, xmm0
movd xmm0, eax
pslld xmm1, xmm0
mov eax, 1
por xmm3, xmm1
movups xmm1, xmmword [edx + esi*4 + 0x10]
movd xmm0, eax
mov eax, 3
pslld xmm3, xmm0
movaps xmm4, xmm1
pand xmm1, xmm7
por xmm3, xmm2
movd xmm0, eax
mov eax, 2
pslld xmm3, xmm0
pmulld xmm1, xmm6
movd xmm0, eax
mov eax, 8
psrld xmm2, xmm0
por xmm3, xmm2
movd xmm2, eax
movaps xmm0, xmm3
psrld xmm0, xmm2
psrld xmm4, xmm2
pand xmm0, xmm7
pand xmm3, xmm7
pmulld xmm0, xmm5
pand xmm4, xmm7
mov eax, 5
pmulld xmm4, xmm6
paddd xmm4, xmm0
movaps xmm0, xmm5
pand xmm4, xmmword [0x10226b00]
pmulld xmm0, xmm3
paddd xmm0, xmm1
movd xmm1, eax
psrld xmm0, xmm2
pand xmm0, xmm7
por xmm4, xmm0
movaps xmm0, xmm4
psrld xmm0, xmm2
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm2, xmm0, 0xd8
movq xmm0, qword [0x10226ae0]
pand xmm2, xmm0
movaps xmm0, xmm4
psrld xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x102268d0]
pand xmm1, xmm0
mov eax, 3
por xmm2, xmm1
movd xmm0, eax
psrld xmm4, xmm0
pshuflw xmm0, xmm4, 0xd8
movaps xmm4, xmmword [0x10226720]
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movq xmm0, qword [0x10226820]
pand xmm1, xmm0
por xmm2, xmm1
movaps xmm1, xmmword [esp + 0x20]
movq qword [edi + esi*2 + 8], xmm2
add esi, 8
cmp esi, dword [esp + 0x10]
jl 0x1011fd80
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0xc], esi
mov eax, dword [esp + 8]
cmp esi, ecx
jge 0x101201b6
mov ecx, 0x100
sub ecx, eax
mov dword [esp + 0x10], ecx
movzx edx, word [edi + esi*2]
mov ecx, edx
mov eax, edx
shr ecx, 0xb
and edx, 0x1f
mov edi, ecx
shr eax, 5
or edi, 0xffffffe0
and ecx, 0xfffffffc
and eax, 0x3f
shl edi, 9
or edi, eax
shl ecx, 0xa
or ecx, eax
shl edi, 6
mov eax, dword [ebp + 0xc]
and ecx, 0xfffffff0
or edi, ecx
add edi, edi
or edi, edx
shr edx, 2
shl edi, 3
or edi, edx
mov edx, dword [eax + esi*4]
mov esi, edi
mov eax, edx
shr esi, 8
mov ecx, edi
shr eax, 8
and esi, 0xffff00ff
imul esi, dword [esp + 0x10]
and eax, 0xffff00ff
imul eax, dword [esp + 8]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x10]
shr edi, 8
and edi, 0xff00ff
imul edi, dword [esp + 0x10]
add esi, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, dword [esp + 8]
and edx, 0xff00ff
imul edx, dword [esp + 8]
add ecx, eax
shr ecx, 8
add edi, edx
xor esi, ecx
and esi, 0xff00ff
xor esi, edi
mov edi, dword [ebp + 8]
mov ecx, esi
mov eax, esi
shr ecx, 8
shr eax, 5
and ecx, 0xf800
shr esi, 3
and eax, 0x7e0
and esi, 0x1f
or ecx, eax
or ecx, esi
mov esi, dword [esp + 0xc]
mov word [edi + esi*2], cx
inc esi
mov dword [esp + 0xc], esi
cmp esi, dword [ebp + 0x10]
jl 0x101200d7
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10