Function at 0x414360
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, esp
sub esp, 0x430
and esp, 0xffffff80
test ecx, ecx
jne 0x414480
movdqu xmm0, xmmword [esi]
movdqu xmm1, xmmword [esi + 0x10]
movdqu xmm2, xmmword [esi + 0x20]
movdqu xmm3, xmmword [esi + 0x30]
movdqu xmm4, xmmword [esi + 0x40]
movdqu xmm5, xmmword [esi + 0x50]
movdqu xmm6, xmmword [esi + 0x60]
movdqu xmm7, xmmword [esi + 0x70]
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x40], xmm1
movdqa xmmword [esp + 0x50], xmm2
movdqa xmmword [esp + 0x60], xmm3
movdqa xmmword [esp + 0x70], xmm4
movdqa xmmword [esp + 0x80], xmm5
movdqa xmmword [esp + 0x90], xmm6
movdqa xmmword [esp + 0xa0], xmm7
movdqu xmm0, xmmword [esi + 0x80]
movdqu xmm1, xmmword [esi + 0x90]
movdqu xmm2, xmmword [esi + 0xa0]
movdqu xmm3, xmmword [esi + 0xb0]
movdqu xmm4, xmmword [esi + 0xc0]
movdqu xmm5, xmmword [esi + 0xd0]
movdqu xmm6, xmmword [esi + 0xe0]
movdqu xmm7, xmmword [esi + 0xf0]
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xc0], xmm1
movdqa xmmword [esp + 0xd0], xmm2
movdqa xmmword [esp + 0xe0], xmm3
movdqa xmmword [esp + 0xf0], xmm4
movdqa xmmword [esp + 0x100], xmm5
movdqa xmmword [esp + 0x110], xmm6
movdqa xmmword [esp + 0x120], xmm7
jmp 0x414728
movdqu xmm0, xmmword [esi]
movdqu xmm2, xmmword [esi + 0x10]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x40], xmm2
movdqu xmm0, xmmword [esi + 0x20]
movdqu xmm2, xmmword [esi + 0x30]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x60], xmm2
movdqu xmm0, xmmword [esi + 0x40]
movdqu xmm2, xmmword [esi + 0x50]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x80], xmm2
movdqu xmm0, xmmword [esi + 0x60]
movdqu xmm2, xmmword [esi + 0x70]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0xa0], xmm2
movdqu xmm0, xmmword [esi + 0x80]
movdqu xmm2, xmmword [esi + 0x90]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xc0], xmm2
movdqu xmm0, xmmword [esi + 0xa0]
movdqu xmm2, xmmword [esi + 0xb0]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xe0], xmm2
movdqu xmm0, xmmword [esi + 0xc0]
movdqu xmm2, xmmword [esi + 0xd0]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0x100], xmm2
movdqu xmm0, xmmword [esi + 0xe0]
movdqu xmm2, xmmword [esi + 0xf0]
pshuflw xmm0, xmm0, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm2, 0xb1
movdqa xmm1, xmm0
movdqa xmm3, xmm2
psrlw xmm1, 8
psrlw xmm3, 8
psllw xmm0, 8
psllw xmm2, 8
pxor xmm0, xmm1
pxor xmm2, xmm3
movdqa xmmword [esp + 0x110], xmm0
movdqa xmmword [esp + 0x120], xmm2
lea ecx, [esp + 0x130]
lea eax, [ecx + 0x300]
movdqa xmm3, xmmword [ecx - 0x20]
movdqa xmm7, xmmword [ecx - 0x10]
movdqa xmm0, xmmword [ecx - 0xf0]
movdqa xmm4, xmmword [ecx - 0xe0]
movdqa xmm2, xmm0
movdqa xmm6, xmm4
psrld xmm0, 3
psrld xmm4, 3
movdqa xmm1, xmm0
movdqa xmm5, xmm4
pslld xmm2, 0xe
pslld xmm6, 0xe
psrld xmm1, 4
psrld xmm5, 4
pxor xmm0, xmm1
pxor xmm4, xmm5
psrld xmm1, 0xb
psrld xmm5, 0xb
pxor xmm0, xmm2
pxor xmm4, xmm6
pslld xmm2, 0xb
pslld xmm6, 0xb
pxor xmm0, xmm1
pxor xmm4, xmm5
pxor xmm0, xmm2
pxor xmm4, xmm6
paddd xmm0, xmmword [ecx - 0x100]
paddd xmm4, xmmword [ecx - 0xf0]
movdqa xmm2, xmm3
movdqa xmm6, xmm7
psrld xmm3, 0xa
psrld xmm7, 0xa
movdqa xmm1, xmm3
movdqa xmm5, xmm7
pslld xmm2, 0xd
pslld xmm6, 0xd
psrld xmm1, 7
psrld xmm5, 7
paddd xmm0, xmmword [ecx - 0x70]
paddd xmm4, xmmword [ecx - 0x60]
pxor xmm3, xmm1
pxor xmm7, xmm5
psrld xmm1, 2
psrld xmm5, 2
pxor xmm3, xmm2
pxor xmm7, xmm6
pslld xmm2, 2
pslld xmm6, 2
pxor xmm3, xmm1
pxor xmm7, xmm5
pxor xmm3, xmm2
pxor xmm7, xmm6
paddd xmm3, xmm0
paddd xmm7, xmm4
movdqa xmmword [ecx], xmm3
movdqa xmmword [ecx + 0x10], xmm7
add ecx, 0x20
cmp eax, ecx
jne 0x41473f
movdqu xmm7, xmmword [edi]
movdqu xmm5, xmmword [edi + 0x10]
movdqu xmm4, xmmword [edi + 0x20]
movdqu xmm3, xmmword [edi + 0x30]
movdqu xmm0, xmmword [edi + 0x40]
movdqu xmm1, xmmword [edi + 0x50]
movdqu xmm2, xmmword [edi + 0x60]
movdqu xmm6, xmmword [edi + 0x70]
movdqa xmmword [esp], xmm1
movdqa xmmword [esp + 0x10], xmm2
movdqa xmmword [esp + 0x20], xmm6
xor eax, eax
movdqa xmm6, xmmword [esp + eax + 0x30]
paddd xmm6, xmmword [eax + 0x42d100]
paddd xmm6, xmmword [esp + 0x20]
movdqa xmm1, xmm0
movdqa xmm2, xmmword [esp + 0x10]
pandn xmm1, xmm2
movdqa xmmword [esp + 0x20], xmm2
movdqa xmm2, xmmword [esp]
movdqa xmmword [esp + 0x10], xmm2
pand xmm2, xmm0
pxor xmm1, xmm2
movdqa xmmword [esp], xmm0
paddd xmm6, xmm1
movdqa xmm1, xmm0
psrld xmm0, 6
movdqa xmm2, xmm0
pslld xmm1, 7
psrld xmm2, 5
pxor xmm0, xmm1
pxor xmm0, xmm2
pslld xmm1, 0xe
psrld xmm2, 0xe
pxor xmm0, xmm1
pxor xmm0, xmm2
pslld xmm1, 5
pxor xmm0, xmm1
paddd xmm6, xmm0
movdqa xmm0, xmm3
paddd xmm0, xmm6
movdqa xmm1, xmm5
movdqa xmm3, xmm4
movdqa xmm2, xmm4
pand xmm2, xmm5
pand xmm4, xmm7
pand xmm1, xmm7
pxor xmm1, xmm4
movdqa xmm4, xmm5
movdqa xmm5, xmm7
pxor xmm1, xmm2
paddd xmm6, xmm1
movdqa xmm2, xmm7
psrld xmm7, 2
movdqa xmm1, xmm7
pslld xmm2, 0xa
psrld xmm1, 0xb
pxor xmm7, xmm2
pxor xmm7, xmm1
pslld xmm2, 9
psrld xmm1, 9
pxor xmm7, xmm2
pxor xmm7, xmm1
pslld xmm2, 0xb
pxor xmm7, xmm2
paddd xmm7, xmm6
add eax, 0x10
cmp eax, 0x400
jne 0x414883
movdqu xmm1, xmmword [edi]
movdqu xmm2, xmmword [edi + 0x10]
paddd xmm7, xmm1
paddd xmm5, xmm2
movdqu xmm1, xmmword [edi + 0x20]
movdqu xmm2, xmmword [edi + 0x30]
paddd xmm4, xmm1
paddd xmm3, xmm2
movdqu xmmword [edi], xmm7
movdqu xmmword [edi + 0x10], xmm5
movdqu xmmword [edi + 0x20], xmm4
movdqu xmmword [edi + 0x30], xmm3
movdqu xmm1, xmmword [edi + 0x40]
movdqu xmm2, xmmword [edi + 0x50]
movdqu xmm6, xmmword [edi + 0x60]
movdqu xmm7, xmmword [edi + 0x70]
paddd xmm0, xmm1
paddd xmm2, xmmword [esp]
paddd xmm6, xmmword [esp + 0x10]
paddd xmm7, xmmword [esp + 0x20]
movdqu xmmword [edi + 0x40], xmm0
movdqu xmmword [edi + 0x50], xmm2
movdqu xmmword [edi + 0x60], xmm6
movdqu xmmword [edi + 0x70], xmm7
mov esp, edx
pop esi
pop edi
ret