Function at 0x404070
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x478
push esi
lea esi, [ebp - 0x470]
mov dword [ebp - 0x28], ecx
mov eax, edx
sub esi, ecx
sub edx, ecx
mov dword [ebp - 4], esi
cmp dword [ebx + 0xc], 0
push edi
mov dword [ebp - 0x64], edx
je 0x4040e9
mov edi, dword [ebx + 8]
mov eax, ecx
sub edi, ecx
mov dword [ebp - 4], edi
mov edi, 0x40
mov ecx, dword [ebp - 4]
nop dword [eax + eax]
lea eax, [eax + 0x10]
movups xmm1, xmmword [edx + eax - 0x10]
movups xmm0, xmmword [ecx + eax - 0x10]
pxor xmm1, xmmword [eax - 0x10]
movups xmmword [eax - 0x10], xmm1
pxor xmm0, xmm1
movups xmmword [esi + eax - 0x10], xmm0
sub edi, 1
jne 0x4040c0
jmp 0x404180
lea esi, [ebp - 0x460]
mov dword [ebp - 0x24], 0x10
sub esi, ecx
lea edx, [eax + 0x30]
mov dword [ebp - 0x68], esi
lea eax, [ecx + 0x10]
lea esi, [ebp - 0x450]
sub esi, ecx
lea edi, [ebp - 0x470]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x6c], esi
mov esi, dword [ebp - 4]
nop dword [eax + eax]
sub dword [ebp - 0x24], 1
lea edi, [edi + 0x40]
movups xmm0, xmmword [edx - 0x30]
lea eax, [eax + 0x40]
lea edx, [edx + 0x40]
pxor xmm0, xmmword [eax - 0x50]
movups xmmword [eax - 0x50], xmm0
movups xmmword [edi - 0x40], xmm0
movups xmm0, xmmword [eax + ecx - 0x40]
pxor xmm0, xmmword [eax - 0x40]
movups xmmword [eax + esi - 0x40], xmm0
mov esi, dword [ebp - 0x68]
movups xmmword [eax - 0x40], xmm0
movups xmm0, xmmword [edx - 0x50]
pxor xmm0, xmmword [eax - 0x30]
movups xmmword [esi + eax - 0x40], xmm0
mov esi, dword [ebp - 0x6c]
movups xmmword [eax - 0x30], xmm0
movups xmm0, xmmword [edx - 0x40]
pxor xmm0, xmmword [eax - 0x20]
movups xmmword [esi + eax - 0x40], xmm0
mov esi, dword [ebp - 4]
movups xmmword [eax - 0x20], xmm0
jne 0x404120
mov ecx, dword [ebp - 0x28]
mov edx, 8
lea eax, [ecx + 0x40]
nop dword [eax + eax]
movups xmm3, xmmword [eax - 0x20]
movups xmm0, xmmword [eax - 0x40]
movups xmm2, xmmword [eax - 0x10]
movaps xmm4, xmm0
paddq xmm0, xmm3
pmuludq xmm4, xmm3
paddq xmm4, xmm4
paddq xmm4, xmm0
movups xmm0, xmmword [eax - 0x30]
movaps xmm1, xmm0
movaps xmmword [ebp - 0x20], xmm4
pmuludq xmm1, xmm2
paddq xmm0, xmm2
paddq xmm1, xmm1
paddq xmm1, xmm0
movaps xmm0, xmm4
pxor xmm0, xmmword [eax + 0x20]
movaps xmm5, xmm0
movaps xmmword [ebp - 0x60], xmm1
pxor xmm1, xmmword [eax + 0x30]
psllq xmm0, 0x20
movaps xmm4, xmm1
psrlq xmm5, 0x20
psllq xmm1, 0x20
pxor xmm5, xmm0
psrlq xmm4, 0x20
movups xmm0, xmmword [eax]
movaps xmm7, xmm0
movaps xmmword [ebp - 0x40], xmm5
paddq xmm0, xmm5
pmuludq xmm7, xmm5
pxor xmm4, xmm1
paddq xmm7, xmm7
paddq xmm7, xmm0
movups xmm0, xmmword [eax + 0x10]
movaps xmm6, xmm0
paddq xmm0, xmm4
pmuludq xmm6, xmm4
paddq xmm6, xmm6
paddq xmm6, xmm0
movaps xmm0, xmm7
pxor xmm0, xmm3
movaps xmm1, xmm6
pxor xmm1, xmm2
movaps xmm2, xmm0
movaps xmm3, xmm1
psrlq xmm0, 0x18
psrlq xmm1, 0x18
psllq xmm2, 0x28
psllq xmm3, 0x28
pxor xmm2, xmm0
movaps xmm0, xmmword [ebp - 0x20]
pxor xmm3, xmm1
movaps xmm1, xmm0
pmuludq xmm1, xmm2
paddq xmm0, xmm2
paddq xmm1, xmm1
paddq xmm1, xmm0
movaps xmm0, xmmword [ebp - 0x60]
movaps xmm5, xmm0
movaps xmmword [ebp - 0x50], xmm1
pmuludq xmm5, xmm3
paddq xmm0, xmm3
paddq xmm5, xmm5
paddq xmm5, xmm0
movaps xmm0, xmm1
pxor xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x20], xmm5
movaps xmm5, xmmword [ebp - 0x20]
movaps xmm1, xmm5
pxor xmm1, xmm4
movaps xmm4, xmm0
psllq xmm4, 0x30
psrlq xmm0, 0x10
pxor xmm4, xmm0
movaps xmmword [ebp - 0x60], xmm4
movaps xmm4, xmm1
psrlq xmm1, 0x10
psllq xmm4, 0x30
pxor xmm4, xmm1
movaps xmm1, xmm7
pmuludq xmm1, xmmword [ebp - 0x60]
paddq xmm7, xmmword [ebp - 0x60]
paddq xmm1, xmm1
paddq xmm1, xmm7
movaps xmm7, xmm6
pxor xmm2, xmm1
movaps xmmword [ebp - 0x40], xmm1
pmuludq xmm7, xmm4
movaps xmm1, xmm2
psllq xmm2, 1
paddq xmm6, xmm4
psrlq xmm1, 0x3f
pxor xmm1, xmm2
paddq xmm7, xmm7
paddq xmm7, xmm6
pxor xmm3, xmm7
movaps xmm2, xmm3
psllq xmm3, 1
psrlq xmm2, 0x3f
pxor xmm2, xmm3
movaps xmm3, xmm1
movaps xmm0, xmm2
punpcklqdq xmm1, xmm1
punpcklqdq xmm0, xmm2
punpckhqdq xmm2, xmm1
movaps xmm1, xmm4
punpckhqdq xmm3, xmm0
movaps xmm0, xmmword [ebp - 0x50]
movaps xmmword [ebp - 0x20], xmm2
movaps xmm6, xmm0
movaps xmm2, xmm5
pmuludq xmm6, xmm3
pmuludq xmm2, xmmword [ebp - 0x20]
paddq xmm0, xmm3
paddq xmm5, xmmword [ebp - 0x20]
punpcklqdq xmm4, xmm4
paddq xmm6, xmm6
paddq xmm6, xmm0
paddq xmm2, xmm2
paddq xmm2, xmm5
movaps xmm5, xmmword [ebp - 0x60]
movaps xmm0, xmm5
movaps xmmword [ebp - 0x50], xmm2
punpcklqdq xmm0, xmm5
punpckhqdq xmm1, xmm0
punpckhqdq xmm5, xmm4
pxor xmm1, xmm6
pxor xmm5, xmm2
movaps xmm4, xmm1
psllq xmm1, 0x20
movaps xmm2, xmm5
psllq xmm5, 0x20
psrlq xmm4, 0x20
psrlq xmm2, 0x20
pxor xmm4, xmm1
movaps xmm1, xmmword [ebp - 0x40]
pxor xmm2, xmm5
movaps xmm0, xmm1
pmuludq xmm0, xmm2
movaps xmm5, xmm7
pmuludq xmm5, xmm4
paddq xmm1, xmm2
paddq xmm7, xmm4
paddq xmm0, xmm0
paddq xmm0, xmm1
paddq xmm5, xmm5
movaps xmm1, xmmword [ebp - 0x20]
paddq xmm5, xmm7
pxor xmm3, xmm5
movaps xmmword [ebp - 0x40], xmm0
pxor xmm1, xmm0
movaps xmmword [ebp - 0x60], xmm5
movaps xmm0, xmm3
psrlq xmm3, 0x18
psllq xmm0, 0x28
pxor xmm0, xmm3
movaps xmm3, xmm1
psllq xmm3, 0x28
psrlq xmm1, 0x18
movaps xmmword [ebp - 0x20], xmm0
pxor xmm3, xmm1
lea eax, [eax + 0x80]
movaps xmm1, xmm6
pmuludq xmm1, xmm0
paddq xmm6, xmm0
paddq xmm1, xmm1
paddq xmm1, xmm6
movaps xmm6, xmmword [ebp - 0x50]
movups xmmword [eax - 0xc0], xmm1
movaps xmm0, xmm6
pmuludq xmm0, xmm3
pxor xmm1, xmm4
paddq xmm6, xmm3
movaps xmm7, xmm1
psrlq xmm1, 0x10
psllq xmm7, 0x30
paddq xmm0, xmm0
pxor xmm7, xmm1
pmuludq xmm5, xmm7
paddq xmm0, xmm6
movups xmmword [eax - 0xb0], xmm0
pxor xmm0, xmm2
movaps xmm6, xmm0
psrlq xmm0, 0x10
psllq xmm6, 0x30
pxor xmm6, xmm0
movaps xmm0, xmmword [ebp - 0x60]
paddq xmm0, xmm7
paddq xmm5, xmm5
paddq xmm5, xmm0
movaps xmm0, xmmword [ebp - 0x40]
movups xmmword [eax - 0x70], xmm5
movaps xmm4, xmm0
pmuludq xmm4, xmm6
paddq xmm0, xmm6
paddq xmm4, xmm4
paddq xmm4, xmm0
movaps xmm0, xmm5
pxor xmm0, xmmword [ebp - 0x20]
movaps xmm1, xmm4
movups xmmword [eax - 0x80], xmm4
pxor xmm1, xmm3
movaps xmm3, xmm0
movaps xmm2, xmm1
psllq xmm0, 1
psllq xmm1, 1
psrlq xmm3, 0x3f
psrlq xmm2, 0x3f
pxor xmm3, xmm0
pxor xmm2, xmm1
movaps xmm0, xmm3
punpcklqdq xmm0, xmm3
movaps xmm1, xmm2
punpckhqdq xmm1, xmm0
movaps xmm0, xmm6
movups xmmword [eax - 0xa0], xmm1
movaps xmm1, xmm7
punpcklqdq xmm0, xmm6
punpcklqdq xmm2, xmm2
punpcklqdq xmm7, xmm7
punpckhqdq xmm3, xmm2
punpckhqdq xmm1, xmm0
punpckhqdq xmm6, xmm7
movups xmmword [eax - 0x90], xmm3
movups xmmword [eax - 0x60], xmm1
movups xmmword [eax - 0x50], xmm6
sub edx, 1
jne 0x404190
lea eax, [ecx + 0x200]
mov edx, 8
nop word [eax + eax]
movups xmm0, xmmword [eax - 0x200]
movups xmm3, xmmword [eax - 0x100]
movaps xmm1, xmm0
movups xmm2, xmmword [eax - 0x80]
paddq xmm0, xmm3
pmuludq xmm1, xmm3
paddq xmm1, xmm1
paddq xmm1, xmm0
movups xmm0, xmmword [eax - 0x180]
movaps xmm7, xmm0
movaps xmmword [ebp - 0x50], xmm1
pmuludq xmm7, xmm2
paddq xmm0, xmm2
paddq xmm7, xmm7
paddq xmm7, xmm0
movaps xmm0, xmm1
pxor xmm0, xmmword [eax + 0x100]
movaps xmm1, xmm7
pxor xmm1, xmmword [eax + 0x180]
movaps xmm4, xmm0
psllq xmm0, 0x20
movaps xmm5, xmm1
psrlq xmm4, 0x20
psrlq xmm5, 0x20
pxor xmm4, xmm0
psllq xmm1, 0x20
movups xmm0, xmmword [eax]
movaps xmm6, xmm0
movaps xmmword [ebp - 0x40], xmm7
pmuludq xmm6, xmm4
paddq xmm0, xmm4
pxor xmm5, xmm1
paddq xmm6, xmm6
paddq xmm6, xmm0
movups xmm0, xmmword [eax + 0x80]
movaps xmm1, xmm0
pxor xmm3, xmm6
pmuludq xmm1, xmm5
paddq xmm0, xmm5
paddq xmm1, xmm1
paddq xmm1, xmm0
movaps xmm0, xmm3
pxor xmm2, xmm1
psrlq xmm3, 0x18
psllq xmm0, 0x28
pxor xmm0, xmm3
movaps xmm3, xmm2
psrlq xmm2, 0x18
psllq xmm3, 0x28
pxor xmm3, xmm2
movaps xmm2, xmmword [ebp - 0x50]
movaps xmm7, xmm2
paddq xmm2, xmm0
pmuludq xmm7, xmm0
paddq xmm7, xmm7
paddq xmm7, xmm2
movaps xmmword [ebp - 0x50], xmm7
movaps xmm7, xmmword [ebp - 0x40]
movaps xmm2, xmm7
paddq xmm7, xmm3
pmuludq xmm2, xmm3
paddq xmm2, xmm2
paddq xmm2, xmm7
movaps xmm7, xmmword [ebp - 0x50]
pxor xmm5, xmm2
movaps xmmword [ebp - 0x40], xmm2
pxor xmm4, xmm7
movaps xmm2, xmm4
psrlq xmm4, 0x10
psllq xmm2, 0x30
pxor xmm2, xmm4
movaps xmmword [ebp - 0x20], xmm2
movaps xmm2, xmm5
psrlq xmm5, 0x10
psllq xmm2, 0x30
pxor xmm2, xmm5
movaps xmm5, xmm6
pmuludq xmm5, xmmword [ebp - 0x20]
paddq xmm6, xmmword [ebp - 0x20]
paddq xmm5, xmm5
paddq xmm5, xmm6
movaps xmm6, xmm1
movaps xmmword [ebp - 0x50], xmm5
paddq xmm1, xmm2
pmuludq xmm6, xmm2
pxor xmm0, xmm5
paddq xmm6, xmm6
paddq xmm6, xmm1
movaps xmm1, xmm0
pxor xmm3, xmm6
psrlq xmm1, 0x3f
psllq xmm0, 1
movaps xmm5, xmm3
psllq xmm3, 1
pxor xmm1, xmm0
psrlq xmm5, 0x3f
movaps xmm4, xmm1
punpcklqdq xmm1, xmm1
pxor xmm5, xmm3
movaps xmm0, xmm5
punpcklqdq xmm0, xmm5
punpckhqdq xmm5, xmm1
movaps xmm1, xmm2
punpckhqdq xmm4, xmm0
movaps xmm0, xmmword [ebp - 0x40]
movaps xmmword [ebp - 0x60], xmm5
movaps xmm3, xmm0
pmuludq xmm3, xmmword [ebp - 0x60]
movaps xmm5, xmm7
paddq xmm0, xmmword [ebp - 0x60]
paddq xmm7, xmm4
pmuludq xmm5, xmm4
punpcklqdq xmm2, xmm2
paddq xmm3, xmm3
paddq xmm3, xmm0
paddq xmm5, xmm5
movaps xmmword [ebp - 0x40], xmm3
paddq xmm5, xmm7
movaps xmm7, xmmword [ebp - 0x20]
movaps xmm0, xmm7
punpcklqdq xmm0, xmm7
punpckhqdq xmm1, xmm0
movaps xmm0, xmm6
pxor xmm1, xmm5
punpckhqdq xmm7, xmm2
movaps xmm2, xmm1
pxor xmm7, xmm3
psllq xmm1, 0x20
movaps xmm3, xmm7
psrlq xmm2, 0x20
psllq xmm7, 0x20
pxor xmm2, xmm1
psrlq xmm3, 0x20
pmuludq xmm0, xmm2
paddq xmm6, xmm2
pxor xmm3, xmm7
paddq xmm0, xmm0
paddq xmm0, xmm6
movaps xmm6, xmmword [ebp - 0x50]
movaps xmm1, xmm6
movaps xmmword [ebp - 0x20], xmm0
pmuludq xmm1, xmm3
paddq xmm6, xmm3
pxor xmm4, xmm0
movaps xmm0, xmmword [ebp - 0x60]
paddq xmm1, xmm1
paddq xmm1, xmm6
movaps xmm6, xmm4
pxor xmm0, xmm1
movaps xmmword [ebp - 0x50], xmm1
psllq xmm6, 0x28
movaps xmm1, xmm5
psrlq xmm4, 0x18
movaps xmm7, xmm0
psllq xmm7, 0x28
pxor xmm6, xmm4
psrlq xmm0, 0x18
pmuludq xmm1, xmm6
paddq xmm5, xmm6
pxor xmm7, xmm0
paddq xmm1, xmm1
paddq xmm1, xmm5
movaps xmm4, xmmword [ebp - 0x40]
pxor xmm2, xmm1
movups xmmword [eax - 0x200], xmm1
movaps xmm0, xmm4
pmuludq xmm0, xmm7
paddq xmm4, xmm7
lea eax, [eax + 0x10]
movaps xmm5, xmm2
psrlq xmm2, 0x10
psllq xmm5, 0x30
paddq xmm0, xmm0
pxor xmm5, xmm2
movaps xmm2, xmmword [ebp - 0x50]
paddq xmm0, xmm4
movups xmmword [eax - 0x190], xmm0
pxor xmm3, xmm0
movaps xmm0, xmmword [ebp - 0x20]
movaps xmm4, xmm3
psrlq xmm3, 0x10
movaps xmm1, xmm0
pmuludq xmm1, xmm5
paddq xmm0, xmm5
psllq xmm4, 0x30
pxor xmm4, xmm3
paddq xmm1, xmm1
paddq xmm1, xmm0
movaps xmm0, xmm2
pmuludq xmm0, xmm4
paddq xmm2, xmm4
movups xmmword [eax + 0x70], xmm1
pxor xmm6, xmm1
movaps xmm3, xmm6
psllq xmm6, 1
psrlq xmm3, 0x3f
paddq xmm0, xmm0
pxor xmm3, xmm6
paddq xmm0, xmm2
movups xmmword [eax - 0x10], xmm0
pxor xmm7, xmm0
movaps xmm2, xmm7
psllq xmm7, 1
psrlq xmm2, 0x3f
movaps xmm0, xmm3
punpcklqdq xmm0, xmm3
pxor xmm2, xmm7
movaps xmm1, xmm2
punpcklqdq xmm2, xmm2
punpckhqdq xmm1, xmm0
movaps xmm0, xmm4
movups xmmword [eax - 0x110], xmm1
movaps xmm1, xmm5
punpcklqdq xmm0, xmm4
punpcklqdq xmm5, xmm5
punpckhqdq xmm3, xmm2
punpckhqdq xmm1, xmm0
punpckhqdq xmm4, xmm5
movups xmmword [eax - 0x90], xmm3
movups xmmword [eax + 0xf0], xmm1
movups xmmword [eax + 0x170], xmm4
sub edx, 1
jne 0x404540
mov edx, dword [ebx + 8]
mov eax, 0x40
sub edx, ecx
nop word [eax + eax]
movups xmm0, xmmword [esi + ecx]
lea ecx, [ecx + 0x10]
pxor xmm0, xmmword [ecx - 0x10]
movups xmmword [ecx - 0x10], xmm0
movups xmmword [edx + ecx - 0x10], xmm0
sub eax, 1
jne 0x4048f0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret