Function at 0x5bc660
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
mov ebx, dword [ecx + 8]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 8], ebx
push esi
movd xmm0, ebx
pshufd xmm7, xmm0, 0
push edi
test ecx, ecx
je 0x5bc7b2
xor eax, eax
mov dword [esp + 0x14], eax
cmp dword [ebp + 0x10], eax
jle 0x5bc9bd
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
sub esi, ebx
mov dword [ebp + 0xc], esi
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x5bc792
mov edx, dword [ebx]
mov eax, edx
mov edi, dword [esi + ebx]
and edx, 0xff00ff
shr eax, 8
mov esi, 0x100
sub esi, dword [esp + 0x10]
and eax, 0xff00ff
mov dword [esp + 0xc], eax
mov ecx, esi
imul ecx, dword [esp + 0xc]
mov eax, edi
and eax, 0xff00ff
mov dword [esp + 0x1c], edx
imul eax, dword [esp + 0x10]
imul edx, esi
imul esi, dword [esp + 0xc]
add eax, edx
mov edx, edi
shr edx, 8
and edx, 0xffff00ff
shr edi, 8
imul edx, dword [esp + 0x10]
and edi, 0xff00ff
imul edi, dword [esp + 0x10]
shr eax, 8
add edx, ecx
mov ecx, dword [esp + 0x18]
xor eax, edx
add edi, esi
and eax, 0xff00ff
xor eax, edi
cmp ecx, 0xff
jae 0x5bc789
mov ebx, ecx
mov esi, eax
shr ebx, 7
and esi, 0xff00ff
add ebx, ecx
mov edi, 0x100
sub edi, ebx
imul esi, ebx
mov ecx, edi
mov edx, eax
imul ecx, dword [esp + 0x1c]
shr edx, 8
and edx, 0xffff00ff
shr eax, 8
imul edx, ebx
and eax, 0xff00ff
imul eax, ebx
mov ebx, dword [ebp + 8]
add esi, ecx
mov ecx, edi
shr esi, 8
imul ecx, dword [esp + 0xc]
imul edi, dword [esp + 0xc]
add edx, ecx
xor esi, edx
add eax, edi
and esi, 0xff00ff
xor eax, esi
mov esi, dword [ebp + 0xc]
mov dword [ebx], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x14]
inc eax
add ebx, 4
mov dword [esp + 0x14], eax
mov dword [ebp + 8], ebx
cmp eax, dword [ebp + 0x10]
jl 0x5bc6a1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp + 0x10]
xor edi, edi
test edx, edx
jle 0x5bc9bd
mov esi, dword [ebp + 0xc]
cmp edx, 8
jb 0x5bc917
cmp dword [0x751118], 2
mov ecx, dword [ebp + 8]
jl 0x5bc91a
lea eax, [edx - 1]
lea eax, [esi + eax*4]
cmp ecx, eax
ja 0x5bc7f3
lea eax, [edx - 1]
lea eax, [ecx + eax*4]
cmp eax, esi
jae 0x5bc91a
mov eax, edx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x5bc801
dec eax
or eax, 0xfffffff8
inc eax
movaps xmm5, xmmword [0x6f3090]
mov ebx, esi
movaps xmm4, xmmword [0x6f31c0]
psubd xmm5, xmm7
mov dword [esp + 0xc], edx
sub dword [esp + 0xc], eax
mov eax, 8
sub ebx, ecx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x10]
movd xmm6, eax
lea eax, [ecx + 0x10]
mov ecx, dword [esp + 0x1c]
nop word [eax + eax]
movups xmm1, xmmword [eax - 0x10]
lea eax, [eax + 0x20]
movups xmm2, xmmword [esi + edi*4]
add edi, 8
movaps xmm3, xmm1
movaps xmm0, xmm2
psrld xmm0, xmm6
psrld xmm3, xmm6
pand xmm0, xmm4
pand xmm3, xmm4
pmulld xmm0, xmm7
pmulld xmm3, xmm5
paddd xmm3, xmm0
movaps xmm0, xmm4
pand xmm0, xmm1
pand xmm3, xmmword [0x6f3420]
movaps xmm1, xmm5
pmulld xmm1, xmm0
movaps xmm0, xmm4
pand xmm0, xmm2
movups xmm2, xmmword [ecx + eax - 0x20]
pmulld xmm0, xmm7
paddd xmm1, xmm0
psrld xmm1, xmm6
pand xmm1, xmm4
por xmm3, xmm1
movups xmmword [eax - 0x30], xmm3
movaps xmm3, xmm2
movups xmm1, xmmword [eax - 0x20]
psrld xmm3, xmm6
movaps xmm0, xmm1
pand xmm3, xmm4
psrld xmm0, xmm6
pmulld xmm3, xmm7
pand xmm0, xmm4
pmulld xmm0, xmm5
paddd xmm3, xmm0
movaps xmm0, xmm4
pand xmm0, xmm1
pand xmm3, xmmword [0x6f3420]
movaps xmm1, xmm5
pmulld xmm1, xmm0
movaps xmm0, xmm4
pand xmm0, xmm2
pmulld xmm0, xmm7
paddd xmm1, xmm0
psrld xmm1, xmm6
pand xmm1, xmm4
por xmm3, xmm1
movups xmmword [eax - 0x20], xmm3
cmp edi, dword [esp + 0xc]
jl 0x5bc840
mov ecx, dword [ebp + 8]
cmp edi, edx
jge 0x5bc9bd
mov eax, 0x100
sub esi, ecx
sub eax, ebx
mov dword [ebp + 0xc], esi
mov dword [esp + 0x10], eax
sub edx, edi
lea eax, [ecx + edi*4]
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], eax
nop
mov edx, dword [esi + eax]
mov edi, dword [eax]
mov esi, edi
shr esi, 8
mov eax, edx
shr eax, 8
and esi, 0xffff00ff
imul esi, dword [esp + 0x10]
and eax, 0xffff00ff
imul eax, ebx
mov ecx, edi
and ecx, 0xff00ff
shr edi, 8
imul ecx, dword [esp + 0x10]
and edi, 0xff00ff
imul edi, dword [esp + 0x10]
add esi, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, ebx
and edx, 0xff00ff
imul edx, ebx
add ecx, eax
mov eax, dword [esp + 0x14]
shr ecx, 8
add edi, edx
xor esi, ecx
and esi, 0xff00ff
xor esi, edi
mov dword [eax], esi
add eax, 4
sub dword [esp + 0xc], 1
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x14], eax
jne 0x5bc940
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10