Function at 0x628760
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x24
mov eax, dword [ecx + 8]
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0xc], eax
push ebx
movd xmm0, eax
pshufd xmm7, xmm0, 0
push esi
push edi
test ecx, ecx
je 0x62884f
mov eax, dword [ebp + 0x10]
xor edi, edi
test eax, eax
jle 0x628d02
movzx ebx, byte [edi + ecx]
test ebx, ebx
je 0x62883d
mov eax, dword [ebp + 8]
push dword [esp + 0x18]
movzx edx, word [eax + edi*2]
mov ecx, edx
mov eax, edx
shr ecx, 0xb
and edx, 0x1f
and ecx, 0x1f
shr eax, 5
mov esi, ecx
and eax, 0x3f
or esi, 0xffffffe0
and ecx, 0xfffffffc
shl esi, 9
or esi, eax
shl ecx, 0xa
shl esi, 6
or ecx, eax
mov eax, dword [ebp + 0xc]
and ecx, 0xfffffff0
or esi, ecx
add esi, esi
or esi, edx
shr edx, 2
shl esi, 3
or esi, edx
push esi
push dword [eax + edi*4]
call fcn.00628680
add esp, 0xc
mov edx, eax
cmp ebx, 0xff
jae 0x628811
mov ecx, ebx
shr ecx, 7
add ecx, ebx
push ecx
push esi
push edx
call fcn.00628680
add esp, 0xc
mov edx, eax
mov ecx, edx
mov eax, edx
shr ecx, 8
shr eax, 5
and ecx, 0xf800
and eax, 0x7e0
shr edx, 3
or ecx, eax
and edx, 0x1f
mov eax, dword [ebp + 8]
or ecx, edx
mov word [eax + edi*2], cx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
inc edi
cmp edi, eax
jl 0x628794
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
test ecx, ecx
jle 0x628d02
cmp ecx, 8
jb 0x628c0f
cmp dword [0x748bc8], 2
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
jl 0x628c15
lea eax, [ecx - 1]
lea eax, [esi + eax*4]
lea edi, [ecx - 1]
lea edi, [edx + edi*2]
cmp edx, eax
ja 0x628890
cmp edi, esi
jae 0x628d0b
mov eax, ecx
and eax, reloc.OLEAUT32.dll_VariantInit
jns 0x62889e
dec eax
or eax, 0xfffffff8
inc eax
movdqa xmm5, xmmword [0x6d1840]
mov edi, ecx
movdqa xmm3, xmmword [0x6cf510]
sub edi, eax
movdqa xmm6, xmmword [0x6cde10]
mov eax, 0xb
psubd xmm5, xmm7
movd xmm1, eax
mov eax, 5
movdqa xmmword [esp + 0x20], xmm1
movd xmm4, eax
mov eax, edx
mov edx, 9
lea ecx, [ecx]
movq xmm0, qword [eax]
mov ecx, 0xa
pmovzxwd xmm0, xmm0
movdqa xmm2, xmm0
psrld xmm2, xmm1
movdqa xmm1, xmm0
psrld xmm1, xmm4
movdqa xmm4, xmmword [0x6d48c0]
pand xmm2, xmm3
pand xmm3, xmm0
pand xmm1, xmmword [0x6cf520]
pand xmm4, xmm2
movd xmm0, ecx
pslld xmm4, xmm0
movdqa xmm0, xmmword [0x6d48a0]
mov ecx, 6
por xmm0, xmm2
por xmm4, xmm1
pand xmm4, xmmword [0x6d48b0]
movd xmm2, edx
mov edx, 1
pslld xmm0, xmm2
por xmm0, xmm1
movd xmm1, ecx
pslld xmm0, xmm1
movdqu xmm1, xmmword [esi]
por xmm4, xmm0
movd xmm0, edx
pslld xmm4, xmm0
mov edx, 3
por xmm4, xmm3
movd xmm0, edx
mov edx, 2
pslld xmm4, xmm0
movd xmm0, edx
mov edx, 8
psrld xmm3, xmm0
movdqa xmm0, xmm1
pand xmm1, xmm6
por xmm4, xmm3
movd xmm3, edx
movdqa xmm2, xmm4
psrld xmm0, xmm3
psrld xmm2, xmm3
pand xmm0, xmm6
pand xmm4, xmm6
pmulld xmm0, xmm7
pand xmm2, xmm6
mov edx, 5
pmulld xmm2, xmm5
paddd xmm2, xmm0
movdqa xmm0, xmm5
pand xmm2, xmmword [0x6d1510]
pmulld xmm0, xmm4
pmulld xmm1, xmm7
paddd xmm0, xmm1
movd xmm4, edx
psrld xmm0, xmm3
mov edx, 3
pand xmm0, xmm6
por xmm2, xmm0
movdqa xmm0, xmm2
psrld xmm0, xmm3
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movdqa xmm0, xmm2
pand xmm1, xmmword [0x6d4890]
psrld xmm0, xmm4
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x6d4880]
por xmm1, xmm0
movd xmm0, edx
psrld xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x6d3c00]
por xmm1, xmm0
movdqa xmm3, xmmword [0x6cf510]
mov edx, 0xa
movq qword [eax], xmm1
movq xmm0, qword [eax + 8]
pmovzxwd xmm0, xmm0
movdqa xmm2, xmm0
movdqa xmm1, xmm0
psrld xmm2, xmmword [esp + 0x20]
psrld xmm1, xmm4
movdqa xmm4, xmmword [0x6d48c0]
pand xmm2, xmm3
pand xmm3, xmm0
pand xmm1, xmmword [0x6cf520]
pand xmm4, xmm2
movd xmm0, edx
pslld xmm4, xmm0
movdqa xmm0, xmmword [0x6d48a0]
mov edx, 9
por xmm0, xmm2
por xmm4, xmm1
pand xmm4, xmmword [0x6d48b0]
movd xmm2, edx
pslld xmm0, xmm2
por xmm0, xmm1
movd xmm1, ecx
pslld xmm0, xmm1
movdqu xmm1, xmmword [esi + 0x10]
mov ecx, 1
por xmm4, xmm0
movdqa xmm2, xmm1
pand xmm1, xmm6
pmulld xmm1, xmm7
movd xmm0, ecx
mov ecx, 3
pslld xmm4, xmm0
por xmm4, xmm3
movd xmm0, ecx
mov ecx, 2
pslld xmm4, xmm0
movd xmm0, ecx
mov ecx, 8
psrld xmm3, xmm0
por xmm4, xmm3
movd xmm3, ecx
movdqa xmm0, xmm4
psrld xmm0, xmm3
psrld xmm2, xmm3
pand xmm0, xmm6
pand xmm4, xmm6
pmulld xmm0, xmm5
pand xmm2, xmm6
mov ecx, 5
pmulld xmm2, xmm7
paddd xmm2, xmm0
movdqa xmm0, xmm5
pand xmm2, xmmword [0x6d1510]
pmulld xmm0, xmm4
paddd xmm0, xmm1
movd xmm4, ecx
psrld xmm0, xmm3
mov ecx, 3
pand xmm0, xmm6
por xmm2, xmm0
movdqa xmm0, xmm2
psrld xmm0, xmm3
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm1, xmm0, 0xd8
movdqa xmm0, xmm2
pand xmm1, xmmword [0x6d4890]
psrld xmm0, xmm4
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x6d4880]
por xmm1, xmm0
movd xmm0, ecx
psrld xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x6d3c00]
lea esi, [esi + 0x20]
movdqa xmm3, xmmword [0x6cf510]
lea eax, [eax + 0x10]
mov ecx, dword [ebp + 0x10]
por xmm1, xmm0
add ebx, 8
movq qword [eax - 8], xmm1
movdqa xmm1, xmmword [esp + 0x20]
cmp ebx, edi
jl 0x6288e0
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
cmp ebx, ecx
jge 0x628d02
mov ecx, 0x100
sub ecx, eax
mov dword [esp + 0x1c], ecx
movzx edx, word [edx + ebx*2]
mov ecx, edx
mov eax, edx
shr ecx, 0xb
and edx, 0x1f
and ecx, 0x1f
shr eax, 5
mov edi, ecx
and eax, 0x3f
and ecx, 0xfffffffc
or edi, 0xffffffe0
shl ecx, 0xa
or ecx, eax
shl edi, 9
or edi, eax
and ecx, 0xfffffff0
shl edi, 6
or edi, ecx
add edi, edi
or edi, edx
shr edx, 2
shl edi, 3
or edi, edx
mov edx, dword [esi + ebx*4]
mov esi, edi
mov eax, edx
shr esi, 8
mov ecx, edi
shr eax, 8
and esi, 0xffff00ff
imul esi, dword [esp + 0x1c]
and eax, 0xffff00ff
imul eax, dword [esp + 0x18]
and ecx, 0xff00ff
imul ecx, dword [esp + 0x1c]
shr edi, 8
and edi, 0xff00ff
imul edi, dword [esp + 0x1c]
add esi, eax
mov eax, edx
and eax, 0xff00ff
shr edx, 8
imul eax, dword [esp + 0x18]
and edx, 0xff00ff
imul edx, dword [esp + 0x18]
add ecx, eax
shr ecx, 8
add edi, edx
mov edx, dword [ebp + 8]
xor esi, ecx
and esi, 0xff00ff
xor esi, edi
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 [ebp + 0xc]
mov word [edx + ebx*2], cx
inc ebx
cmp ebx, dword [ebp + 0x10]
jl 0x628c28
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esp + 0x18]
jmp 0x628c15