Function at 0x512860
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
mov eax, dword [0x590048]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
mov ecx, eax
mov edx, dword [ebx + 0x10]
sub dword [ebx + 0xc], eax
sub edx, eax
push esi
lea esi, [ebp - 0x410]
mov dword [ebp - 0x444], eax
push edi
sub esi, eax
mov edi, 0x40
mov eax, dword [ebx + 0xc]
nop dword [eax + eax]
lea ecx, [ecx + 0x10]
movups xmm1, xmmword [eax + ecx - 0x10]
pxor xmm1, xmmword [ecx - 0x10]
movups xmmword [ecx - 0x10], xmm1
movups xmm0, xmmword [edx + ecx - 0x10]
pxor xmm0, xmm1
movups xmmword [esi + ecx - 0x10], xmm0
sub edi, 1
jne 0x5128b0
mov eax, dword [ebp - 0x444]
mov edi, 8
lea ecx, [eax + 0x20]
movups xmm2, xmmword [ecx]
movups xmm0, xmmword [ecx - 0x20]
movups xmm1, xmmword [ecx + 0x10]
movaps xmm3, xmm0
paddq xmm0, xmm2
pmuludq xmm3, xmm2
paddq xmm3, xmm3
paddq xmm3, xmm0
movups xmm0, xmmword [ecx - 0x10]
movaps xmm4, xmm0
movaps xmmword [ebp - 0x440], xmm3
paddq xmm0, xmm1
pmuludq xmm4, xmm1
paddq xmm4, xmm4
paddq xmm4, xmm0
movaps xmm0, xmm3
pxor xmm0, xmmword [ecx + 0x40]
pshufd xmm3, xmm0, 0xb1
movaps xmm0, xmm4
pxor xmm0, xmmword [ecx + 0x50]
movaps xmmword [ebp - 0x430], xmm4
pshufd xmm4, xmm0, 0xb1
movups xmm0, xmmword [ecx + 0x20]
movaps xmm7, xmm0
paddq xmm0, xmm3
pmuludq xmm7, xmm3
paddq xmm7, xmm7
paddq xmm7, xmm0
movups xmm0, xmmword [ecx + 0x30]
movaps xmm6, xmm0
movaps xmm5, xmm7
paddq xmm0, xmm4
pmuludq xmm6, xmm4
pxor xmm5, xmm2
pshufb xmm5, xmmword [0x55db70]
paddq xmm6, xmm6
paddq xmm6, xmm0
movaps xmm0, xmmword [ebp - 0x440]
movaps xmm2, xmm6
pxor xmm2, xmm1
movaps xmm1, xmm0
pshufb xmm2, xmmword [0x55db70]
pmuludq xmm1, xmm5
paddq xmm0, xmm5
paddq xmm1, xmm1
paddq xmm1, xmm0
movaps xmm0, xmmword [ebp - 0x430]
movaps xmmword [ebp - 0x440], xmm1
movaps xmm1, xmm0
pmuludq xmm1, xmm2
paddq xmm0, xmm2
paddq xmm1, xmm1
paddq xmm1, xmm0
movaps xmmword [ebp - 0x420], xmm1
movaps xmm1, xmmword [ebp - 0x440]
movaps xmm0, xmmword [ebp - 0x420]
pxor xmm1, xmm3
pshufb xmm1, xmmword [0x55db60]
movaps xmm3, xmm7
pxor xmm0, xmm4
pshufb xmm0, xmmword [0x55db60]
pmuludq xmm3, xmm1
paddq xmm7, xmm1
movaps xmmword [ebp - 0x430], xmm0
movaps xmmword [ebp - 0x460], xmm1
paddq xmm3, xmm3
paddq xmm3, xmm7
movaps xmm7, xmm6
pmuludq xmm7, xmm0
paddq xmm6, xmm0
movaps xmm0, xmm3
movaps xmmword [ebp - 0x470], xmm3
pxor xmm0, xmm5
paddq xmm7, xmm7
paddq xmm7, xmm6
movaps xmm1, xmm7
pxor xmm1, xmm2
movaps xmm2, xmm0
paddq xmm2, xmm0
psrlq xmm0, 0x3f
pxor xmm2, xmm0
movaps xmm0, xmmword [ebp - 0x440]
movaps xmm5, xmm1
movaps xmm6, xmmword [ebp - 0x420]
paddq xmm5, xmm1
movaps xmm3, xmm2
psrlq xmm1, 0x3f
movaps xmm4, xmm0
pxor xmm5, xmm1
movaps xmm1, xmmword [ebp - 0x430]
palignr xmm3, xmm5, 8
palignr xmm5, xmm2, 8
movaps xmm2, xmmword [ebp - 0x460]
paddq xmm0, xmm5
pmuludq xmm4, xmm5
pmuludq xmm6, xmm3
palignr xmm1, xmm2, 8
palignr xmm2, xmmword [ebp - 0x430], 8
paddq xmm4, xmm4
paddq xmm4, xmm0
paddq xmm6, xmm6
movaps xmm0, xmmword [ebp - 0x420]
pxor xmm2, xmm4
paddq xmm0, xmm3
pshufd xmm2, xmm2, 0xb1
paddq xmm6, xmm0
movaps xmmword [ebp - 0x460], xmm2
movaps xmm0, xmm6
pxor xmm0, xmm1
movaps xmm1, xmm7
pmuludq xmm1, xmm2
paddq xmm7, xmm2
movaps xmm2, xmmword [ebp - 0x470]
pshufd xmm0, xmm0, 0xb1
paddq xmm1, xmm1
paddq xmm1, xmm7
movaps xmm7, xmm2
pmuludq xmm7, xmm0
paddq xmm2, xmm0
paddq xmm7, xmm7
paddq xmm7, xmm2
movaps xmm2, xmm1
pxor xmm2, xmm5
movaps xmmword [ebp - 0x420], xmm2
movaps xmm2, xmm7
movaps xmm5, xmmword [ebp - 0x420]
pxor xmm2, xmm3
pshufb xmm5, xmmword [0x55db70]
pshufb xmm2, xmmword [0x55db70]
movaps xmm3, xmm4
movaps xmmword [ebp - 0x420], xmm5
pmuludq xmm3, xmm5
paddq xmm4, xmm5
movaps xmm5, xmm6
movaps xmmword [ebp - 0x470], xmm2
pmuludq xmm5, xmm2
paddq xmm6, xmm2
paddq xmm3, xmm3
paddq xmm3, xmm4
movaps xmm4, xmm1
movups xmmword [ecx - 0x20], xmm3
paddq xmm5, xmm5
pxor xmm3, xmmword [ebp - 0x460]
paddq xmm5, xmm6
pshufb xmm3, xmmword [0x55db60]
movaps xmm6, xmmword [ebp - 0x470]
movups xmmword [ecx - 0x10], xmm5
paddq xmm1, xmm3
pxor xmm5, xmm0
pmuludq xmm4, xmm3
pshufb xmm5, xmmword [0x55db60]
movaps xmm0, xmmword [ebp - 0x420]
paddq xmm4, xmm4
movaps xmmword [ebp - 0x460], xmm3
paddq xmm4, xmm1
movaps xmm3, xmm7
pxor xmm0, xmm4
pmuludq xmm3, xmm5
paddq xmm7, xmm5
paddq xmm3, xmm3
paddq xmm3, xmm7
pxor xmm6, xmm3
movups xmmword [ecx + 0x20], xmm3
movaps xmm2, xmm0
movups xmmword [ecx + 0x30], xmm4
paddq xmm2, xmm0
psrlq xmm0, 0x3f
movaps xmm1, xmm6
lea ecx, [ecx + 0x80]
paddq xmm1, xmm6
psrlq xmm6, 0x3f
pxor xmm2, xmm0
movaps xmm0, xmm2
pxor xmm1, xmm6
palignr xmm0, xmm1, 8
palignr xmm1, xmm2, 8
movups xmmword [ecx - 0x80], xmm0
movaps xmm0, xmm5
movups xmmword [ecx - 0x70], xmm1
movaps xmm1, xmmword [ebp - 0x460]
palignr xmm0, xmm1, 8
palignr xmm1, xmm5, 8
movups xmmword [ecx - 0x40], xmm0
movups xmmword [ecx - 0x30], xmm1
sub edi, 1
jne 0x5128e2
lea ecx, [eax + 0x100]
mov edi, 8
movups xmm2, xmmword [ecx]
movups xmm0, xmmword [ecx - 0x100]
movaps xmm7, xmm0
movups xmm1, xmmword [ecx + 0x80]
paddq xmm0, xmm2
pmuludq xmm7, xmm2
paddq xmm7, xmm7
paddq xmm7, xmm0
movups xmm0, xmmword [ecx - 0x80]
movaps xmm6, xmm0
paddq xmm0, xmm1
pmuludq xmm6, xmm1
paddq xmm6, xmm6
paddq xmm6, xmm0
movaps xmm0, xmm7
pxor xmm0, xmmword [ecx + 0x200]
pshufd xmm3, xmm0, 0xb1
movaps xmm0, xmm6
pxor xmm0, xmmword [ecx + 0x280]
pshufd xmm5, xmm0, 0xb1
movups xmm0, xmmword [ecx + 0x100]
movaps xmm4, xmm0
movaps xmmword [ebp - 0x420], xmm3
paddq xmm0, xmm3
pmuludq xmm4, xmm3
movaps xmmword [ebp - 0x430], xmm5
paddq xmm4, xmm4
paddq xmm4, xmm0
movups xmm0, xmmword [ecx + 0x180]
movaps xmm3, xmm0
paddq xmm0, xmm5
pmuludq xmm3, xmm5
movaps xmm5, xmm4
pxor xmm5, xmm2
pshufb xmm5, xmmword [0x55db70]
paddq xmm3, xmm3
paddq xmm3, xmm0
movaps xmm0, xmm7
pmuludq xmm0, xmm5
movaps xmm2, xmm3
pxor xmm2, xmm1
paddq xmm7, xmm5
pshufb xmm2, xmmword [0x55db70]
movaps xmm1, xmmword [ebp - 0x430]
paddq xmm0, xmm0
paddq xmm0, xmm7
movaps xmm7, xmm6
pmuludq xmm7, xmm2
paddq xmm6, xmm2
movaps xmmword [ebp - 0x470], xmm0
paddq xmm7, xmm7
paddq xmm7, xmm6
movaps xmm6, xmmword [ebp - 0x420]
pxor xmm6, xmm0
pxor xmm1, xmm7
pshufb xmm6, xmmword [0x55db60]
pshufb xmm1, xmmword [0x55db60]
movaps xmm0, xmm4
movaps xmmword [ebp - 0x420], xmm6
pmuludq xmm0, xmm6
paddq xmm4, xmm6
movaps xmm6, xmm3
movaps xmmword [ebp - 0x430], xmm1
pmuludq xmm6, xmm1
paddq xmm3, xmm1
paddq xmm0, xmm0
paddq xmm0, xmm4
paddq xmm6, xmm6
movaps xmmword [ebp - 0x460], xmm0
pxor xmm5, xmm0
paddq xmm6, xmm3
pxor xmm2, xmm6
movaps xmm0, xmm5
movaps xmm4, xmm2
paddq xmm0, xmm5
paddq xmm4, xmm2
psrlq xmm5, 0x3f
psrlq xmm2, 0x3f
pxor xmm0, xmm5
pxor xmm4, xmm2
movaps xmm2, xmm0
palignr xmm1, xmmword [ebp - 0x420], 8
movaps xmm5, xmm6
palignr xmm2, xmm4, 8
palignr xmm4, xmm0, 8
movaps xmm0, xmmword [ebp - 0x470]
movaps xmm3, xmm0
movaps xmmword [ebp - 0x440], xmm4
paddq xmm0, xmm4
pmuludq xmm3, xmm4
movaps xmm4, xmm7
paddq xmm7, xmm2
pmuludq xmm4, xmm2
paddq xmm3, xmm3
paddq xmm3, xmm0
movaps xmm0, xmmword [ebp - 0x420]
palignr xmm0, xmmword [ebp - 0x430], 8
paddq xmm4, xmm4
pxor xmm0, xmm3
paddq xmm4, xmm7
pshufd xmm7, xmm0, 0xb1
movaps xmm0, xmm4
pxor xmm0, xmm1
pmuludq xmm5, xmm7
pshufd xmm1, xmm0, 0xb1
paddq xmm6, xmm7
movaps xmm0, xmmword [ebp - 0x460]
movaps xmmword [ebp - 0x420], xmm7
movaps xmmword [ebp - 0x430], xmm1
paddq xmm5, xmm5
paddq xmm5, xmm6
movaps xmm6, xmm0
paddq xmm0, xmm1
pmuludq xmm6, xmm1
movaps xmm1, xmm3
paddq xmm6, xmm6
paddq xmm6, xmm0
movaps xmm0, xmmword [ebp - 0x440]
pxor xmm0, xmm5
movaps xmm7, xmm6
pshufb xmm0, xmmword [0x55db70]
pxor xmm7, xmm2
movaps xmm2, xmmword [ebp - 0x420]
pshufb xmm7, xmmword [0x55db70]
pmuludq xmm1, xmm0
paddq xmm3, xmm0
movaps xmmword [ebp - 0x440], xmm0
movaps xmm0, xmm4
pmuludq xmm0, xmm7
paddq xmm4, xmm7
paddq xmm1, xmm1
paddq xmm1, xmm3
movaps xmm3, xmm6
pxor xmm2, xmm1
movups xmmword [ecx - 0x100], xmm1
pshufb xmm2, xmmword [0x55db60]
movaps xmm1, xmmword [ebp - 0x430]
paddq xmm0, xmm0
paddq xmm0, xmm4
movaps xmmword [ebp - 0x420], xmm2
pxor xmm1, xmm0
movups xmmword [ecx - 0x80], xmm0
pshufb xmm1, xmmword [0x55db60]
movaps xmm0, xmmword [ebp - 0x440]
movaps xmm4, xmm5
pmuludq xmm4, xmm2
paddq xmm5, xmm2
pmuludq xmm3, xmm1
paddq xmm6, xmm1
movaps xmmword [ebp - 0x430], xmm1
paddq xmm4, xmm4
paddq xmm4, xmm5
paddq xmm3, xmm3
pxor xmm0, xmm4
paddq xmm3, xmm6
movaps xmm2, xmm0
pxor xmm7, xmm3
paddq xmm2, xmm0
movaps xmm1, xmm7
psrlq xmm0, 0x3f
paddq xmm1, xmm7
pxor xmm2, xmm0
psrlq xmm7, 0x3f
movaps xmm0, xmm2
movups xmmword [ecx + 0x100], xmm3
lea ecx, [ecx + 0x10]
movups xmmword [ecx + 0x170], xmm4
pxor xmm1, xmm7
movaps xmm7, xmmword [ebp - 0x420]
palignr xmm0, xmm1, 8
movups xmmword [ecx - 0x10], xmm0
movaps xmm0, xmmword [ebp - 0x430]
palignr xmm0, xmm7, 8
palignr xmm7, xmmword [ebp - 0x430], 8
palignr xmm1, xmm2, 8
movups xmmword [ecx + 0x70], xmm1
movups xmmword [ecx + 0x1f0], xmm0
movups xmmword [ecx + 0x270], xmm7
sub edi, 1
jne 0x512c50
lea ecx, [edi + 0x40]
nop word [eax + eax]
movups xmm0, xmmword [esi + eax]
lea eax, [eax + 0x10]
pxor xmm0, xmmword [eax - 0x10]
movups xmmword [eax - 0x10], xmm0
movups xmmword [edx + eax - 0x10], xmm0
sub ecx, 1
jne 0x512fc0
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0050d855
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret