Function at 0x49849c
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, 0x58
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 [0x4bdf40]
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 0x498c57
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 0x4985c0
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 0x49866a
movups xmm0, xmmword [esi + 0x80]
movups xmm3, xmmword [esi + 0x90]
movups xmm7, xmmword [esi + 0xb0]
movups xmm6, xmmword [esi + 0xa0]
movaps xmmword [ebp - 0x20], xmm0
movups xmm0, xmmword [ecx]
movaps xmmword [ebp - 0x40], xmm3
mov dword [ebp - 4], ecx
movaps xmmword [ebp - 0x30], xmm0
jmp 0x4987ad
movaps xmm3, xmmword [ebp - 0x40]
movups xmm5, xmmword [ecx + 0x30]
movups xmm4, xmmword [ecx + 0x20]
movaps xmm1, xmm5
pslld xmm1, 0x1a
movaps xmm0, xmm5
psrld xmm0, 6
movups xmm2, xmmword [ecx + 0x10]
pxor xmm1, xmm0
mov eax, dword [edi*4 + 0x4b7a00]
movaps xmm0, xmm5
pslld xmm0, 0x15
movups xmmword [ebp - 0x50], xmm4
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 - 0x30]
pand xmm0, xmm5
pxor xmm0, xmm2
paddd xmm1, xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm1, xmm0
movaps xmm0, xmm1
paddd xmm0, xmmword [ebp - 0x20]
movaps xmmword [ebp - 0x30], xmm0
movups xmmword [ecx + 0x40], xmm0
movaps xmm0, xmm7
pslld xmm0, 0x1e
movaps xmmword [ebp - 0x20], xmm0
movaps xmm0, xmm7
movaps xmm4, xmmword [ebp - 0x20]
psrld xmm0, 2
pxor xmm4, xmm0
movaps xmm0, xmm7
pslld xmm0, 0x13
pxor xmm4, xmm0
movaps xmm0, xmm7
psrld xmm0, 0xd
pxor xmm4, xmm0
movaps xmm0, xmm7
pslld xmm0, 0xa
pxor xmm4, xmm0
movaps xmm0, xmm7
psrld xmm0, 0x16
pxor xmm4, xmm0
movaps xmmword [ebp - 0x20], xmm4
movaps xmm0, xmmword [ebp - 0x20]
paddd xmm0, xmm1
movaps xmm1, xmm6
movaps xmmword [ebp - 0x20], xmm0
por xmm1, xmm7
pand xmm1, xmm3
movaps xmm0, xmm6
movaps xmm3, xmmword [ebp - 0x30]
pand xmm0, xmm7
por xmm1, xmm0
movaps xmm0, xmmword [ebp - 0x20]
paddd xmm0, xmm1
movaps xmm1, xmm3
movaps xmmword [ebp - 0x20], xmm0
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
movups xmm4, xmmword [ebp - 0x50]
mov eax, dword [edi*4 + 0x4b7a04]
pxor xmm1, xmm0
movaps xmm0, xmm3
psrld xmm0, 0x19
pxor xmm1, xmm0
movaps xmm0, xmm4
paddd xmm1, xmmword [ecx + 0x90]
pxor xmm0, xmm5
pand xmm0, xmm3
paddd xmm1, xmm2
pxor xmm0, xmm4
paddd xmm1, xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm1, xmm0
movaps xmm0, xmmword [ebp - 0x20]
movaps xmm2, xmm0
movaps xmm3, xmm1
psrld xmm0, 2
pslld xmm2, 0x1e
paddd xmm3, xmmword [ebp - 0x40]
pxor xmm2, xmm0
movups xmmword [ecx + 0x50], xmm3
movaps xmm0, xmmword [ebp - 0x20]
pslld xmm0, 0x13
mov eax, dword [edi*4 + 0x4b7a08]
pxor xmm2, xmm0
movaps xmm0, xmmword [ebp - 0x20]
psrld xmm0, 0xd
pxor xmm2, xmm0
movaps xmm0, xmmword [ebp - 0x20]
pslld xmm0, 0xa
pxor xmm2, xmm0
movaps xmm0, xmmword [ebp - 0x20]
psrld xmm0, 0x16
pxor xmm2, xmm0
movaps xmm0, xmmword [ebp - 0x20]
paddd xmm2, xmm1
movaps xmm1, xmm0
pand xmm0, xmm7
por xmm1, xmm7
pand xmm1, xmm6
por xmm1, xmm0
movaps xmm0, xmm3
paddd xmm2, xmm1
psrld xmm0, 6
movaps xmm1, xmm3
movaps xmmword [ebp - 0x40], xmm2
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 - 0x30]
paddd xmm1, xmmword [ecx + 0xa0]
pxor xmm0, xmm5
pand xmm0, xmm3
paddd xmm1, xmm4
movaps xmm4, xmmword [ebp - 0x40]
pxor xmm0, xmm5
paddd xmm1, xmm0
movd xmm0, eax
pshufd xmm0, xmm0, 0
paddd xmm1, xmm0
movaps xmm0, xmm4
movaps xmm2, xmm1
paddd xmm2, xmm6
movaps xmm6, xmm4
movups xmmword [ecx + 0x60], xmm2
pslld xmm6, 0x1e
psrld xmm0, 2
lea ecx, [ecx + 0x40]
mov eax, dword [edi*4 + 0x4b7a0c]
add edi, 4
pxor xmm6, xmm0
pxor xmm3, xmmword [ebp - 0x30]
movaps xmm0, xmm4
pand xmm3, xmm2
pslld xmm0, 0x13
cmp edi, 0x40
pxor xmm3, xmmword [ebp - 0x30]
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, xmm4
pand xmm0, xmmword [ebp - 0x20]
paddd xmm6, xmm1
movaps xmm1, xmm4
por xmm1, xmmword [ebp - 0x20]
pand xmm1, xmm7
por xmm1, xmm0
movaps xmm0, xmm2
paddd xmm6, xmm1
psrld xmm0, 6
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
movaps xmm2, xmmword [ebp - 0x20]
pxor xmm1, xmm0
movd xmm0, eax
paddd xmm1, xmmword [ecx + 0x70]
pshufd xmm0, xmm0, 0
paddd xmm1, xmm5
paddd xmm1, xmm3
paddd xmm1, xmm0
movaps xmm0, xmm1
paddd xmm0, xmm7
movaps xmm7, xmm6
movups xmmword [ecx + 0x30], xmm0
movaps xmm0, xmm6
psrld xmm0, 2
pslld xmm7, 0x1e
pxor xmm7, xmm0
movaps xmm0, xmm6
pslld xmm0, 0x13
pxor xmm7, xmm0
movaps xmm0, xmm6
psrld xmm0, 0xd
pxor xmm7, xmm0
movaps xmm0, xmm6
pslld xmm0, 0xa
pxor xmm7, xmm0
movaps xmm0, xmm6
psrld xmm0, 0x16
pxor xmm7, xmm0
movaps xmm0, xmm4
paddd xmm7, xmm1
pand xmm0, xmm6
movaps xmm1, xmm4
por xmm1, xmm6
pand xmm1, xmm2
por xmm1, xmm0
paddd xmm7, xmm1
jl 0x4987a9
movups xmm0, xmmword [esi + 0x30]
lea eax, [edi - 5]
paddd xmm0, xmm7
lea ecx, [esi + 0x40]
movups xmmword [esi + 0xb0], xmm0
add eax, eax
paddd xmm6, xmmword [esi + 0x20]
movups xmmword [esi + 0x30], xmm0
movups xmmword [esi + 0xa0], xmm6
movups xmm0, xmmword [esi + 0x10]
movups xmmword [esi + 0x20], xmm6
paddd xmm0, xmm4
movups xmmword [esi + 0x90], xmm0
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [esi]
paddd xmm0, xmm2
movaps xmm6, xmmword [0x4bdf40]
movups xmmword [esi + 0x80], xmm0
movups xmmword [esi], xmm0
movups xmm0, xmmword [esi + eax*8 + 0xc0]
lea eax, [edi - 6]
paddd xmm0, xmmword [esi + 0x70]
add eax, eax
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 0x4985bd
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