Function at 0x4b6838
Capabilities:
Encode data using xor

Disassembly:
mov edi, edi
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [ecx]
push esi
mov esi, dword [ebx + 0xc]
push edi
movups xmm5, xmmword [eax]
mov eax, dword [ecx + 4]
push 0x10
movaps xmm2, xmm5
movaps xmm6, xmmword [0x4e2dc0]
pop edi
movups xmm1, xmmword [eax]
mov eax, dword [ecx + 8]
mov dword [ebp - 8], ecx
punpckldq xmm2, xmm1
punpckhdq xmm5, xmm1
movups xmm3, xmmword [eax]
mov eax, dword [ecx + 0xc]
movaps xmm1, xmm3
movups xmm0, xmmword [eax]
punpckldq xmm1, xmm0
punpckhdq xmm3, xmm0
movaps xmm0, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [esi + 0xb0], xmm0
movaps xmm0, xmm5
punpcklqdq xmm0, xmm3
movups xmmword [esi + 0x90], xmm0
punpckhqdq xmm2, xmm1
movups xmmword [esi + 0xa0], xmm2
punpckhqdq xmm5, xmm3
movups xmmword [esi + 0x80], xmm5
mov eax, dword [ecx]
movups xmm4, xmmword [eax + edi]
mov eax, dword [ecx + 4]
movaps xmm2, xmm4
movups xmm1, xmmword [eax + edi]
mov eax, dword [ecx + 8]
punpckldq xmm2, xmm1
punpckhdq xmm4, xmm1
movups xmm3, xmmword [eax + edi]
mov eax, dword [ecx + 0xc]
movaps xmm1, xmm3
movups xmm0, xmmword [eax + edi]
mov eax, dword [ebx + 8]
punpckldq xmm1, xmm0
punpckhdq xmm3, xmm0
movaps xmm0, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [esi + 0x70], xmm0
movaps xmm0, xmm4
punpcklqdq xmm0, xmm3
movups xmmword [esi + 0x50], xmm0
punpckhqdq xmm2, xmm1
movups xmmword [esi + 0x60], xmm2
punpckhqdq xmm4, xmm3
movups xmmword [esi + 0x40], xmm4
movups xmmword [esi], xmm5
movups xmm0, xmmword [esi + 0x90]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [esi + 0xa0]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [esi + 0xb0]
movups xmmword [esi + 0x30], xmm0
cmp eax, 0x40
jb 0x4b6fbd
shr eax, 6
lea edi, [esi + 0xe0]
lea ecx, [esi + 0x40]
mov dword [ebx + 8], eax
push 4
pop esi
mov eax, dword [edx]
movups xmm4, xmmword [eax]
add eax, 0x10
mov dword [edx], eax
mov eax, dword [edx + 4]
pshufb xmm4, xmm6
movups xmm1, xmmword [eax]
add eax, 0x10
mov dword [edx + 4], eax
movaps xmm2, xmm4
mov eax, dword [edx + 8]
pshufb xmm1, xmm6
movups xmm3, xmmword [eax]
add eax, 0x10
punpckldq xmm2, xmm1
mov dword [edx + 8], eax
mov eax, dword [edx + 0xc]
pshufb xmm3, xmm6
movups xmm0, xmmword [eax]
add eax, 0x10
punpckhdq xmm4, xmm1
movaps xmm1, xmm3
mov dword [edx + 0xc], eax
pshufb xmm0, xmm6
punpckldq xmm1, xmm0
punpckhdq xmm3, xmm0
movaps xmm0, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [edi - 0x20], xmm0
movaps xmm0, xmm4
punpckhqdq xmm2, xmm1
punpcklqdq xmm0, xmm3
punpckhqdq xmm4, xmm3
movups xmmword [edi - 0x10], xmm2
movups xmmword [edi], xmm0
lea edi, [edi + 0x40]
movups xmmword [edi - 0x30], xmm4
sub esi, 1
jne 0x4b695c
mov esi, dword [ebx + 0xc]
push 0x18
pop edi
movups xmm4, xmmword [esi + 0x1b0]
lea eax, [esi + 0x150]
movups xmm5, xmmword [esi + 0x1a0]
movups xmm6, xmmword [esi + 0xc0]
movups xmm3, xmmword [eax - 0x80]
movaps xmm2, xmm5
psrld xmm2, 0x11
movaps xmm0, xmm5
pslld xmm0, 0xf
movaps xmm1, xmm3
pslld xmm1, 0x19
pxor xmm2, xmm0
movaps xmm0, xmm5
pslld xmm0, 0xd
pxor xmm2, xmm0
movaps xmm0, xmm5
psrld xmm0, 0x13
psrld xmm5, 0xa
pxor xmm2, xmm0
movaps xmm0, xmm3
psrld xmm0, 7
pxor xmm5, xmm2
movaps xmm2, xmm4
paddd xmm5, xmm6
movups xmm6, xmmword [eax - 0x70]
pxor xmm1, xmm0
paddd xmm5, xmmword [eax]
movaps xmm0, xmm3
pslld xmm0, 0xe
lea eax, [eax + 0x20]
psrld xmm2, 0x11
pxor xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 0x12
pxor xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 3
pxor xmm1, xmm0
movaps xmm0, xmm4
pslld xmm0, 0xf
paddd xmm5, xmm1
movups xmmword [eax + 0x50], xmm5
movaps xmm1, xmm6
pslld xmm1, 0x19
pxor xmm2, xmm0
movaps xmm0, xmm4
pslld xmm0, 0xd
pxor xmm2, xmm0
movaps xmm0, xmm4
psrld xmm0, 0x13
psrld xmm4, 0xa
pxor xmm2, xmm0
movaps xmm0, xmm6
psrld xmm0, 7
pxor xmm4, xmm2
paddd xmm4, xmm3
paddd xmm4, xmmword [eax - 0x10]
pxor xmm1, xmm0
movaps xmm0, xmm6
pslld xmm0, 0xe
pxor xmm1, xmm0
movaps xmm0, xmm6
psrld xmm0, 0x12
pxor xmm1, xmm0
movaps xmm0, xmm6
psrld xmm0, 3
pxor xmm1, xmm0
paddd xmm4, xmm1
movups xmmword [eax + 0x60], xmm4
sub edi, 1
jne 0x4b6a06
movups xmm0, xmmword [esi + 0xa0]
movups xmm6, xmmword [esi + 0xb0]
movups xmm7, xmmword [esi + 0x90]
movups xmm3, xmmword [esi + 0x80]
movaps xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [ecx]
mov dword [ebp - 4], ecx
movaps xmmword [ebp - 0x20], xmm0
movups xmm5, xmmword [ecx + 0x30]
movups xmm2, xmmword [ecx + 0x10]
movaps xmm1, xmm5
pslld xmm1, 0x1a
movaps xmm0, xmm5
psrld xmm0, 6
movups xmm4, xmmword [ecx + 0x20]
pxor xmm1, xmm0
mov eax, dword [edi*4 + 0x4daa00]
movaps xmm0, xmm5
pslld xmm0, 0x15
pxor xmm1, xmm0
movaps xmm0, xmm5
psrld xmm0, 0xb
pxor xmm1, xmm0
movaps xmm0, xmm5
pslld xmm0, 7
pxor xmm1, xmm0
movaps xmm0, xmm5
psrld xmm0, 0x19
pxor xmm1, xmm0
movaps xmm0, xmm4
paddd xmm1, xmmword [ecx + 0x80]
pxor xmm0, xmm2
paddd xmm1, xmmword [ebp - 0x20]
pand xmm0, xmm5
pxor xmm0, xmm2
paddd xmm1, xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm1, xmm0
movaps xmm0, xmm1
paddd xmm0, xmm3
movaps xmm3, xmm6
movaps xmmword [ebp - 0x20], xmm0
movups xmmword [ecx + 0x40], xmm0
movaps xmm0, xmm6
psrld xmm0, 2
pslld xmm3, 0x1e
pxor xmm3, xmm0
movaps xmm0, xmm6
pslld xmm0, 0x13
pxor xmm3, xmm0
movaps xmm0, xmm6
psrld xmm0, 0xd
pxor xmm3, xmm0
movaps xmm0, xmm6
pslld xmm0, 0xa
pxor xmm3, xmm0
movaps xmm0, xmm6
psrld xmm0, 0x16
pxor xmm3, xmm0
movaps xmm0, xmmword [ebp - 0x30]
paddd xmm3, xmm1
movaps xmm1, xmm0
por xmm1, xmm6
pand xmm0, xmm6
pand xmm1, xmm7
por xmm1, xmm0
paddd xmm3, xmm1
movaps xmmword [ebp - 0x40], xmm3
movaps xmm3, xmmword [ebp - 0x20]
movaps xmm1, xmm3
movaps xmm0, xmm3
psrld xmm0, 6
pslld xmm1, 0x1a
pxor xmm1, xmm0
movaps xmm0, xmm3
pslld xmm0, 0x15
pxor xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 0xb
pxor xmm1, xmm0
movaps xmm0, xmm3
pslld xmm0, 7
pxor xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 0x19
pxor xmm1, xmm0
paddd xmm1, xmmword [ecx + 0x90]
paddd xmm1, xmm2
mov eax, dword [edi*4 + 0x4daa04]
movaps xmm0, xmm4
pxor xmm0, xmm5
movaps xmm2, xmmword [ebp - 0x40]
pand xmm0, xmm3
pxor xmm0, xmm4
paddd xmm1, xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm1, xmm0
movaps xmm0, xmm2
psrld xmm0, 2
movaps xmm3, xmm1
paddd xmm3, xmm7
movaps xmm7, xmm2
pslld xmm7, 0x1e
movups xmmword [ecx + 0x50], xmm3
pxor xmm7, xmm0
mov eax, dword [edi*4 + 0x4daa08]
movaps xmm0, xmm2
pslld xmm0, 0x13
pxor xmm7, xmm0
movaps xmm0, xmm2
psrld xmm0, 0xd
pxor xmm7, xmm0
movaps xmm0, xmm2
pslld xmm0, 0xa
pxor xmm7, xmm0
movaps xmm0, xmm2
psrld xmm0, 0x16
pxor xmm7, xmm0
movaps xmm0, xmm2
pand xmm0, xmm6
paddd xmm7, xmm1
movaps xmm1, xmm2
por xmm1, xmm6
pand xmm1, xmmword [ebp - 0x30]
por xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 6
paddd xmm7, xmm1
movaps xmm1, xmm3
pslld xmm1, 0x1a
pxor xmm1, xmm0
movaps xmm0, xmm3
pslld xmm0, 0x15
pxor xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 0xb
pxor xmm1, xmm0
movaps xmm0, xmm3
pslld xmm0, 7
pxor xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 0x19
pxor xmm1, xmm0
movaps xmm0, xmmword [ebp - 0x20]
paddd xmm1, xmmword [ecx + 0xa0]
pxor xmm0, xmm5
pand xmm0, xmm3
paddd xmm1, xmm4
pxor xmm0, xmm5
movaps xmm4, xmm7
paddd xmm1, xmm0
pslld xmm4, 0x1e
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm1, xmm0
movaps xmm0, xmm7
psrld xmm0, 2
movaps xmm2, xmm1
paddd xmm2, xmmword [ebp - 0x30]
pxor xmm4, xmm0
movups xmmword [ecx + 0x60], xmm2
movaps xmm0, xmm7
pslld xmm0, 0x13
pxor xmm4, xmm0
movaps xmm0, xmm7
psrld xmm0, 0xd
pxor xmm4, xmm0
movaps xmm0, xmm7
pslld xmm0, 0xa
lea ecx, [ecx + 0x40]
mov eax, dword [edi*4 + 0x4daa0c]
add edi, 4
pxor xmm3, xmmword [ebp - 0x20]
pxor xmm4, xmm0
movaps xmm0, xmm7
pand xmm3, xmm2
psrld xmm0, 0x16
pxor xmm3, xmmword [ebp - 0x20]
pxor xmm4, xmm0
movaps xmm0, xmmword [ebp - 0x40]
paddd xmm4, xmm1
movaps xmm1, xmm0
pand xmm0, xmm7
por xmm1, xmm7
pand xmm1, xmm6
por xmm1, xmm0
movaps xmm0, xmm2
psrld xmm0, 6
paddd xmm4, xmm1
movaps xmmword [ebp - 0x30], xmm4
movaps xmm1, xmm2
pslld xmm1, 0x1a
pxor xmm1, xmm0
movaps xmm0, xmm2
pslld xmm0, 0x15
pxor xmm1, xmm0
movaps xmm0, xmm2
psrld xmm0, 0xb
pxor xmm1, xmm0
movaps xmm0, xmm2
pslld xmm0, 7
pxor xmm1, xmm0
movaps xmm0, xmm2
psrld xmm0, 0x19
pxor xmm1, xmm0
movd xmm0, eax
paddd xmm1, xmmword [ecx + 0x70]
pshufd xmm0, xmm0, 0
paddd xmm1, xmm5
paddd xmm1, xmm3
movaps xmm3, xmmword [ebp - 0x40]
paddd xmm1, xmm0
movaps xmm0, xmm1
paddd xmm0, xmm6
movaps xmm6, xmm4
movups xmmword [ecx + 0x30], xmm0
movaps xmm0, xmm4
psrld xmm0, 2
pslld xmm6, 0x1e
pxor xmm6, xmm0
movaps xmm0, xmm4
pslld xmm0, 0x13
pxor xmm6, xmm0
movaps xmm0, xmm4
psrld xmm0, 0xd
pxor xmm6, xmm0
movaps xmm0, xmm4
pslld xmm0, 0xa
pxor xmm6, xmm0
movaps xmm0, xmm4
psrld xmm0, 0x16
pxor xmm6, xmm0
movaps xmm0, xmm7
paddd xmm6, xmm1
movaps xmm1, xmm7
por xmm1, xmm4
pand xmm0, xmm4
pand xmm1, xmm3
por xmm1, xmm0
paddd xmm6, xmm1
cmp edi, 0x40
jl 0x4b6b3f
paddd xmm6, xmmword [esi + 0x30]
lea eax, [edi - 5]
movups xmmword [esi + 0xb0], xmm6
lea ecx, [esi + 0x40]
movups xmm0, xmmword [esi + 0x20]
add eax, eax
movups xmmword [esi + 0x30], xmm6
paddd xmm0, xmm4
movups xmmword [esi + 0xa0], xmm0
paddd xmm7, xmmword [esi + 0x10]
movups xmmword [esi + 0x20], xmm0
movups xmmword [esi + 0x90], xmm7
paddd xmm3, xmmword [esi]
movups xmmword [esi + 0x10], xmm7
movups xmmword [esi + 0x80], xmm3
movups xmmword [esi], xmm3
movups xmm0, xmmword [esi + eax*8 + 0xc0]
lea eax, [edi - 6]
paddd xmm0, xmmword [esi + 0x70]
add eax, eax
movaps xmm6, xmmword [0x4e2dc0]
movups xmmword [esi + 0x70], xmm0
movups xmm0, xmmword [esi + eax*8 + 0xc0]
lea eax, [edi - 7]
paddd xmm0, xmmword [esi + 0x60]
add eax, eax
movups xmmword [esi + 0x60], xmm0
movups xmm0, xmmword [esi + eax*8 + 0xc0]
lea eax, [edi - 8]
paddd xmm0, xmmword [esi + 0x50]
lea edi, [esi + 0xe0]
add eax, eax
movups xmmword [esi + 0x50], xmm0
sub dword [ebx + 8], 1
movups xmm0, xmmword [esi + eax*8 + 0xc0]
paddd xmm0, xmmword [esi + 0x40]
movups xmmword [esi + 0x40], xmm0
jne 0x4b6959
mov ecx, dword [ebp - 8]
push 0x10
pop edi
movups xmm4, xmmword [esi + 0xb0]
movups xmm0, xmmword [esi + 0xa0]
movaps xmm2, xmm4
movups xmm3, xmmword [esi + 0x90]
mov eax, dword [ecx]
movaps xmm1, xmm3
punpckldq xmm2, xmm0
punpckhdq xmm4, xmm0
movups xmm0, xmmword [esi + 0x80]
punpckldq xmm1, xmm0
punpckhdq xmm3, xmm0
movaps xmm0, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [eax], xmm0
mov eax, dword [ecx + 4]
punpckhqdq xmm2, xmm1
movaps xmm0, xmm4
punpcklqdq xmm0, xmm3
punpckhqdq xmm4, xmm3
movups xmmword [eax], xmm2
mov eax, dword [ecx + 8]
movups xmmword [eax], xmm0
mov eax, dword [ecx + 0xc]
movups xmmword [eax], xmm4
mov eax, dword [ecx]
movups xmm4, xmmword [esi + 0x70]
movups xmm0, xmmword [esi + 0x60]
movaps xmm2, xmm4
movups xmm3, xmmword [esi + 0x50]
punpckldq xmm2, xmm0
movaps xmm1, xmm3
punpckhdq xmm4, xmm0
movups xmm0, xmmword [esi + 0x40]
punpckldq xmm1, xmm0
punpckhdq xmm3, xmm0
movaps xmm0, xmm2
punpcklqdq xmm0, xmm1
movups xmmword [eax + edi], xmm0
mov eax, dword [ecx + 4]
punpckhqdq xmm2, xmm1
movaps xmm0, xmm4
punpcklqdq xmm0, xmm3
punpckhqdq xmm4, xmm3
movups xmmword [eax + edi], xmm2
mov eax, dword [ecx + 8]
movups xmmword [eax + edi], xmm0
mov eax, dword [ecx + 0xc]
movups xmmword [eax + edi], xmm4
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8