Function at 0x413c40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
mov ebx, eax
xor eax, eax
and esp, 0xfffffff0
sub esp, 0x430
lea esi, [esi]
movdqu xmm0, xmmword [edx + eax]
pxor xmm0, xmmword [ebx + eax]
movups xmmword [ebx + eax], xmm0
movdqu xmm7, xmmword [ecx + eax]
pxor xmm0, xmm7
movups xmmword [esp + eax + 0x30], xmm0
add eax, 0x10
cmp eax, 0x400
jne 0x413c58
lea esi, [ebx + 0x400]
mov eax, ebx
mov edx, ebx
lea esi, [esi]
nop
movdqu xmm0, xmmword [edx + 0x20]
sub edx, 0xffffff80
movdqu xmm1, xmmword [edx - 0x80]
movdqa xmm5, xmm0
pmuludq xmm5, xmmword [edx - 0x80]
paddq xmm5, xmm5
movdqu xmm4, xmmword [edx - 0x70]
paddq xmm1, xmm0
pmuludq xmm4, xmmword [edx - 0x50]
paddq xmm4, xmm4
movdqu xmm2, xmmword [edx - 0x40]
paddq xmm5, xmm1
movdqu xmm1, xmmword [edx - 0x70]
paddq xmm1, xmmword [edx - 0x50]
movdqu xmm6, xmmword [edx - 0x10]
paddq xmm4, xmm1
movdqu xmm1, xmmword [edx - 0x20]
movdqu xmm7, xmmword [edx - 0x30]
pxor xmm6, xmm4
pshufd xmm6, xmm6, 0xb1
pxor xmm1, xmm5
pshufd xmm1, xmm1, 0xb1
paddq xmm2, xmm1
movdqa xmm3, xmm1
pmuludq xmm3, xmmword [edx - 0x40]
paddq xmm3, xmm3
paddq xmm7, xmm6
paddq xmm3, xmm2
movdqa xmm2, xmm6
pmuludq xmm2, xmmword [edx - 0x30]
paddq xmm2, xmm2
paddq xmm2, xmm7
movdqu xmm7, xmmword [edx - 0x50]
pxor xmm0, xmm3
pshufb xmm0, xmmword [0x512330]
pxor xmm7, xmm2
pshufb xmm7, xmmword [0x512330]
movups xmmword [esp + 0x20], xmm7
movdqa xmm7, xmm5
pmuludq xmm7, xmm0
paddq xmm5, xmm0
paddq xmm7, xmm7
paddq xmm7, xmm5
movdqu xmm5, xmmword [esp + 0x20]
pxor xmm1, xmm7
pshufb xmm1, xmmword [0x512340]
pmuludq xmm5, xmm4
paddq xmm4, xmmword [esp + 0x20]
paddq xmm5, xmm5
paddq xmm4, xmm5
movdqa xmm5, xmm3
paddq xmm3, xmm1
pmuludq xmm5, xmm1
pxor xmm6, xmm4
pshufb xmm6, xmmword [0x512340]
paddq xmm5, xmm5
paddq xmm5, xmm3
movdqa xmm3, xmm2
paddq xmm2, xmm6
pmuludq xmm3, xmm6
movups xmmword [esp], xmm5
pxor xmm0, xmm5
movdqa xmm5, xmm0
psrlq xmm5, 0x3f
paddq xmm0, xmm0
pxor xmm0, xmm5
paddq xmm3, xmm3
paddq xmm2, xmm3
movdqu xmm3, xmmword [esp + 0x20]
pxor xmm3, xmm2
movdqa xmm5, xmm3
paddq xmm3, xmm3
psrlq xmm5, 0x3f
pxor xmm3, xmm5
movdqa xmm5, xmm3
palignr xmm5, xmm0, 8
palignr xmm0, xmm3, 8
movdqa xmm3, xmm6
movups xmmword [esp + 0x10], xmm5
movups xmmword [esp + 0x20], xmm0
movdqa xmm0, xmm5
palignr xmm3, xmm1, 8
pmuludq xmm0, xmm7
paddq xmm7, xmmword [esp + 0x10]
palignr xmm1, xmm6, 8
movdqu xmm6, xmmword [esp + 0x20]
paddq xmm0, xmm0
paddq xmm7, xmm0
movdqa xmm0, xmm6
pmuludq xmm0, xmm4
paddq xmm4, xmmword [esp + 0x20]
pxor xmm1, xmm7
pshufd xmm1, xmm1, 0xb1
paddq xmm0, xmm0
paddq xmm0, xmm4
movdqa xmm4, xmm2
paddq xmm2, xmm1
pmuludq xmm4, xmm1
pxor xmm3, xmm0
pshufd xmm6, xmm3, 0xb1
movdqu xmm3, xmmword [esp + 0x20]
movdqa xmm5, xmm4
paddq xmm5, xmm4
paddq xmm5, xmm2
movdqu xmm2, xmmword [esp]
movdqa xmm4, xmm2
paddq xmm2, xmm6
pmuludq xmm4, xmm6
paddq xmm4, xmm4
paddq xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x10]
pxor xmm3, xmm4
pxor xmm2, xmm5
pshufb xmm2, xmmword [0x512330]
pshufb xmm3, xmmword [0x512330]
movups xmmword [esp + 0x20], xmm3
movdqa xmm3, xmm7
paddq xmm7, xmm2
pmuludq xmm3, xmm2
paddq xmm3, xmm3
paddq xmm3, xmm7
movdqu xmm7, xmmword [esp + 0x20]
movups xmmword [edx - 0x80], xmm3
pxor xmm3, xmm1
movdqa xmm1, xmm5
pshufb xmm3, xmmword [0x512340]
pmuludq xmm7, xmm0
paddq xmm0, xmmword [esp + 0x20]
pmuludq xmm1, xmm3
paddq xmm7, xmm7
paddq xmm0, xmm7
movups xmmword [edx - 0x70], xmm0
pxor xmm0, xmm6
movdqa xmm6, xmm1
pshufb xmm0, xmmword [0x512340]
paddq xmm6, xmm1
movdqa xmm1, xmm5
paddq xmm1, xmm3
paddq xmm6, xmm1
movdqa xmm1, xmm4
paddq xmm4, xmm0
pmuludq xmm1, xmm0
movdqa xmm5, xmm6
pxor xmm2, xmm5
movups xmmword [edx - 0x30], xmm5
movdqa xmm6, xmm1
paddq xmm6, xmm1
movdqu xmm1, xmmword [esp + 0x20]
paddq xmm6, xmm4
pxor xmm1, xmm6
movdqa xmm4, xmm6
movdqa xmm6, xmm2
paddq xmm2, xmm2
psrlq xmm6, 0x3f
movups xmmword [edx - 0x40], xmm4
pxor xmm2, xmm6
movdqa xmm6, xmm1
paddq xmm1, xmm1
psrlq xmm6, 0x3f
pxor xmm1, xmm6
movdqa xmm6, xmm2
palignr xmm6, xmm1, 8
palignr xmm1, xmm2, 8
movups xmmword [edx - 0x60], xmm6
movups xmmword [edx - 0x50], xmm1
movdqa xmm1, xmm3
palignr xmm1, xmm0, 8
palignr xmm0, xmm3, 8
movups xmmword [edx - 0x10], xmm1
movups xmmword [edx - 0x20], xmm0
cmp edx, esi
jne 0x413c90
lea edx, [ebx + 0x80]
nop
movdqu xmm0, xmmword [eax + 0x100]
add eax, 0x10
movdqu xmm1, xmmword [eax - 0x10]
movdqa xmm5, xmm0
pmuludq xmm5, xmmword [eax - 0x10]
paddq xmm5, xmm5
movdqu xmm4, xmmword [eax + 0x70]
paddq xmm1, xmm0
pmuludq xmm4, xmmword [eax + 0x170]
paddq xmm4, xmm4
movdqu xmm2, xmmword [eax + 0x1f0]
paddq xmm5, xmm1
movdqu xmm1, xmmword [eax + 0x70]
paddq xmm1, xmmword [eax + 0x170]
movdqu xmm6, xmmword [eax + 0x370]
paddq xmm4, xmm1
movdqu xmm1, xmmword [eax + 0x2f0]
movdqu xmm7, xmmword [eax + 0x270]
pxor xmm6, xmm4
pshufd xmm6, xmm6, 0xb1
pxor xmm1, xmm5
pshufd xmm1, xmm1, 0xb1
paddq xmm2, xmm1
movdqa xmm3, xmm1
pmuludq xmm3, xmmword [eax + 0x1f0]
paddq xmm3, xmm3
paddq xmm7, xmm6
paddq xmm3, xmm2
movdqa xmm2, xmm6
pmuludq xmm2, xmmword [eax + 0x270]
paddq xmm2, xmm2
paddq xmm2, xmm7
movdqu xmm7, xmmword [eax + 0x170]
pxor xmm0, xmm3
pshufb xmm0, xmmword [0x512330]
pxor xmm7, xmm2
pshufb xmm7, xmmword [0x512330]
movups xmmword [esp + 0x20], xmm7
movdqa xmm7, xmm5
pmuludq xmm7, xmm0
paddq xmm5, xmm0
paddq xmm7, xmm7
paddq xmm7, xmm5
movdqu xmm5, xmmword [esp + 0x20]
pxor xmm1, xmm7
pshufb xmm1, xmmword [0x512340]
pmuludq xmm5, xmm4
paddq xmm4, xmmword [esp + 0x20]
paddq xmm5, xmm5
paddq xmm4, xmm5
movdqa xmm5, xmm3
paddq xmm3, xmm1
pmuludq xmm5, xmm1
pxor xmm6, xmm4
pshufb xmm6, xmmword [0x512340]
paddq xmm5, xmm5
paddq xmm5, xmm3
movdqa xmm3, xmm2
paddq xmm2, xmm6
pmuludq xmm3, xmm6
movups xmmword [esp], xmm5
pxor xmm0, xmm5
movdqa xmm5, xmm0
psrlq xmm5, 0x3f
paddq xmm0, xmm0
pxor xmm0, xmm5
paddq xmm3, xmm3
paddq xmm2, xmm3
movdqu xmm3, xmmword [esp + 0x20]
pxor xmm3, xmm2
movdqa xmm5, xmm3
paddq xmm3, xmm3
psrlq xmm5, 0x3f
pxor xmm3, xmm5
movdqa xmm5, xmm3
palignr xmm5, xmm0, 8
palignr xmm0, xmm3, 8
movdqa xmm3, xmm6
movups xmmword [esp + 0x10], xmm5
movups xmmword [esp + 0x20], xmm0
movdqa xmm0, xmm5
palignr xmm3, xmm1, 8
pmuludq xmm0, xmm7
paddq xmm7, xmmword [esp + 0x10]
palignr xmm1, xmm6, 8
movdqu xmm6, xmmword [esp + 0x20]
paddq xmm0, xmm0
paddq xmm7, xmm0
movdqa xmm0, xmm6
pmuludq xmm0, xmm4
paddq xmm4, xmmword [esp + 0x20]
pxor xmm1, xmm7
pshufd xmm1, xmm1, 0xb1
paddq xmm0, xmm0
paddq xmm0, xmm4
movdqa xmm4, xmm2
paddq xmm2, xmm1
pmuludq xmm4, xmm1
pxor xmm3, xmm0
pshufd xmm6, xmm3, 0xb1
movdqu xmm3, xmmword [esp + 0x20]
movdqa xmm5, xmm4
paddq xmm5, xmm4
paddq xmm5, xmm2
movdqu xmm2, xmmword [esp]
movdqa xmm4, xmm2
paddq xmm2, xmm6
pmuludq xmm4, xmm6
paddq xmm4, xmm4
paddq xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x10]
pxor xmm3, xmm4
pxor xmm2, xmm5
pshufb xmm2, xmmword [0x512330]
pshufb xmm3, xmmword [0x512330]
movups xmmword [esp + 0x20], xmm3
movdqa xmm3, xmm7
paddq xmm7, xmm2
pmuludq xmm3, xmm2
paddq xmm3, xmm3
paddq xmm3, xmm7
movdqu xmm7, xmmword [esp + 0x20]
movups xmmword [eax - 0x10], xmm3
pxor xmm3, xmm1
movdqa xmm1, xmm5
pshufb xmm3, xmmword [0x512340]
pmuludq xmm7, xmm0
paddq xmm0, xmmword [esp + 0x20]
paddq xmm5, xmm3
pmuludq xmm1, xmm3
paddq xmm7, xmm7
paddq xmm0, xmm7
movups xmmword [eax + 0x70], xmm0
pxor xmm0, xmm6
movdqa xmm6, xmm1
pshufb xmm0, xmmword [0x512340]
paddq xmm6, xmm1
movdqa xmm1, xmm4
paddq xmm4, xmm0
pmuludq xmm1, xmm0
paddq xmm6, xmm5
movdqa xmm5, xmm6
pxor xmm2, xmm5
movups xmmword [eax + 0x270], xmm5
movdqa xmm6, xmm1
paddq xmm6, xmm1
movdqa xmm1, xmm4
movdqa xmm4, xmm6
movdqa xmm6, xmm2
paddq xmm2, xmm2
paddq xmm4, xmm1
movdqu xmm1, xmmword [esp + 0x20]
psrlq xmm6, 0x3f
pxor xmm2, xmm6
movups xmmword [eax + 0x1f0], xmm4
pxor xmm1, xmm4
movdqa xmm6, xmm1
paddq xmm1, xmm1
psrlq xmm6, 0x3f
pxor xmm1, xmm6
movdqa xmm6, xmm2
palignr xmm6, xmm1, 8
palignr xmm1, xmm2, 8
movups xmmword [eax + 0xf0], xmm6
movups xmmword [eax + 0x170], xmm1
movdqa xmm1, xmm3
palignr xmm1, xmm0, 8
palignr xmm0, xmm3, 8
movups xmmword [eax + 0x370], xmm1
movups xmmword [eax + 0x2f0], xmm0
cmp eax, edx
jne 0x413fb0
xor eax, eax
lea esi, [esi]
movdqu xmm0, xmmword [ebx + eax]
pxor xmm0, xmmword [esp + eax + 0x30]
movups xmmword [ebx + eax], xmm0
movups xmmword [ecx + eax], xmm0
add eax, 0x10
cmp eax, 0x400
jne 0x414300
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret