Function at 0x5053d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x240
push ebx
push esi
push edi
xor edi, edi
lea eax, [ebp - 0x1c0]
push edi
push 1
push dword [ebp + 0xc]
push eax
call fcn.00529250
movups xmm0, xmmword [0x5c2a30]
add esp, 0x10
mov ebx, 0x1bf
movups xmm4, xmmword [0x5c2a70]
movups xmmword [ebp - 0x40], xmm0
movups xmm0, xmmword [0x5c2a40]
movups xmm3, xmmword [0x5c2a80]
movups xmm2, xmmword [0x5c2a90]
movups xmm1, xmmword [0x5c2aa0]
movups xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [0x5c2a50]
movups xmmword [ebp - 0x80], xmm4
movups xmmword [ebp - 0x20], xmm0
movups xmm0, xmmword [0x5c2a60]
movups xmmword [ebp - 0x70], xmm3
movups xmmword [ebp - 0x10], xmm0
movups xmm0, xmmword [ebp - 0x1c0]
movups xmmword [ebp - 0x60], xmm2
movups xmmword [ebp - 0xc0], xmm0
movups xmm0, xmmword [ebp - 0x1b0]
movups xmmword [ebp - 0x50], xmm1
movups xmmword [ebp - 0xb0], xmm0
movups xmm0, xmmword [ebp - 0x1a0]
movups xmmword [ebp - 0x140], xmm4
movups xmmword [ebp - 0xa0], xmm0
movups xmm0, xmmword [ebp - 0x190]
movups xmmword [ebp - 0x130], xmm3
movups xmmword [ebp - 0x90], xmm0
movups xmmword [ebp - 0x120], xmm2
movups xmmword [ebp - 0x110], xmm1
mov ecx, dword [ebp + 0x10]
mov eax, ebx
shr eax, 3
mov esi, 0xff
mov dl, byte [eax + ecx]
test eax, eax
jne 0x5054bd
and dl, 0xfc
jmp 0x5054c9
cmp ebx, 0x1bf
movzx edx, dl
cmove edx, esi
movzx ecx, bl
and ecx, 7
movzx esi, dl
shr esi, cl
and esi, 1
neg esi
xor edi, esi
xor eax, eax
movd xmm0, edi
pshufd xmm4, xmm0, 0
nop word [eax + eax]
movups xmm1, xmmword [ebp + eax - 0x80]
movups xmm3, xmmword [ebp + eax - 0xc0]
movaps xmm2, xmm1
pxor xmm2, xmm3
pand xmm2, xmm4
movaps xmm0, xmm2
pxor xmm2, xmm3
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x80], xmm0
movups xmmword [ebp + eax - 0xc0], xmm2
add eax, 0x10
cmp eax, 0x40
jb 0x5054f0
xor eax, eax
nop word [eax + eax]
movups xmm1, xmmword [ebp + eax - 0x40]
movups xmm3, xmmword [ebp + eax - 0x140]
movaps xmm2, xmm1
pxor xmm2, xmm3
pand xmm2, xmm4
movaps xmm0, xmm2
pxor xmm2, xmm3
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x40], xmm0
movups xmmword [ebp + eax - 0x140], xmm2
add eax, 0x10
cmp eax, 0x40
jb 0x505530
movups xmm0, xmmword [ebp - 0x40]
lea eax, [ebp - 0x40]
mov edi, esi
movups xmm1, xmmword [ebp - 0x80]
push eax
lea eax, [ebp - 0x80]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x70]
push eax
movups xmmword [ebp - 0x100], xmm1
lea eax, [ebp - 0x180]
movups xmm1, xmmword [ebp - 0x30]
push eax
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x60]
movups xmmword [ebp - 0xf0], xmm1
movups xmm1, xmmword [ebp - 0x20]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x50]
movups xmmword [ebp - 0xe0], xmm1
movups xmm1, xmmword [ebp - 0x10]
paddd xmm1, xmm0
movups xmmword [ebp - 0xd0], xmm1
call fcn.00504cf0
lea eax, [ebp - 0x180]
push 2
push eax
call fcn.00504b10
lea eax, [ebp - 0x180]
push eax
call fcn.00504d80
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00504cf0
lea eax, [ebp - 0x40]
push 2
push eax
call fcn.00504b10
lea eax, [ebp - 0x40]
push eax
call fcn.00504d80
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00529d50
movups xmm0, xmmword [ebp - 0x140]
lea eax, [ebp - 0x40]
movups xmm1, xmmword [ebp - 0xc0]
push eax
lea eax, [ebp - 0x180]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0xb0]
push eax
movups xmmword [ebp - 0x40], xmm1
lea eax, [ebp - 0xc0]
movups xmm1, xmmword [ebp - 0x130]
push eax
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0xa0]
movups xmmword [ebp - 0x30], xmm1
movups xmm1, xmmword [ebp - 0x120]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x90]
movups xmmword [ebp - 0x20], xmm1
movups xmm1, xmmword [ebp - 0x110]
paddd xmm1, xmm0
movups xmmword [ebp - 0x10], xmm1
call fcn.00529d50
add esp, 0x48
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.00504cf0
lea eax, [ebp - 0x140]
push 2
push eax
call fcn.00504b10
lea eax, [ebp - 0x140]
push eax
call fcn.00504d80
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0052a2e0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.00529d50
movups xmm0, xmmword [ebp - 0x80]
lea eax, [ebp - 0x40]
movups xmm1, xmmword [ebp - 0xc0]
push eax
lea eax, [ebp - 0xc0]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x70]
push eax
movups xmmword [ebp - 0x40], xmm1
movups xmm1, xmmword [ebp - 0xb0]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x60]
movups xmmword [ebp - 0x30], xmm1
movups xmm1, xmmword [ebp - 0xa0]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x50]
movups xmmword [ebp - 0x20], xmm1
movups xmm1, xmmword [ebp - 0x90]
paddd xmm1, xmm0
movups xmmword [ebp - 0x10], xmm1
call fcn.0052a2e0
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0052a2e0
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.0052a2e0
add esp, 0x44
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00529d50
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x180]
push eax
call fcn.00504cf0
lea eax, [ebp - 0x180]
push 2
push eax
call fcn.00504b10
lea eax, [ebp - 0x180]
push eax
call fcn.00504d80
push 0x98a9
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.0052a010
movups xmm1, xmmword [ebp - 0x100]
movups xmm0, xmmword [ebp - 0x40]
lea eax, [ebp - 0x100]
push eax
paddd xmm1, xmm0
lea eax, [ebp - 0x180]
movups xmm0, xmmword [ebp - 0x30]
push eax
movups xmmword [ebp - 0x100], xmm1
lea eax, [ebp - 0x40]
movups xmm1, xmmword [ebp - 0xf0]
push eax
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x20]
movups xmmword [ebp - 0xf0], xmm1
movups xmm1, xmmword [ebp - 0xe0]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x10]
movups xmmword [ebp - 0xe0], xmm1
movups xmm1, xmmword [ebp - 0xd0]
paddd xmm1, xmm0
movups xmmword [ebp - 0xd0], xmm1
call fcn.00529d50
add esp, 0x3c
sub ebx, 1
jns 0x5054a4
push esi
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00504c50
push esi
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00504c50
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.0052a2e0
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.00529490
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.0052a2e0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.00529d50
movups xmm0, xmmword [ebp - 0x200]
lea eax, [ebp - 0x40]
push eax
movups xmmword [ebp - 0x40], xmm0
lea eax, [ebp - 0x80]
movups xmm0, xmmword [ebp - 0x1f0]
push eax
lea eax, [ebp - 0x1c0]
movups xmmword [ebp - 0x30], xmm0
push eax
movups xmm0, xmmword [ebp - 0x1e0]
movups xmmword [ebp - 0x20], xmm0
movups xmm0, xmmword [ebp - 0x1d0]
movups xmmword [ebp - 0x10], xmm0
call fcn.00529d50
add esp, 0x48
lea eax, [ebp - 0x1c0]
push 1
push eax
push dword [ebp + 8]
call fcn.005298c0
lea eax, [ebp - 0x1c0]
push 0x5c2a30
push eax
call fcn.005293b0
mov esi, eax
lea eax, [ebp - 0x1c0]
push 0x40
push eax
not esi
call fcn.00456130
lea eax, [ebp - 0x80]
push 0x40
push eax
call fcn.00456130
lea eax, [ebp - 0x40]
push 0x40
push eax
call fcn.00456130
lea eax, [ebp - 0xc0]
push 0x40
push eax
call fcn.00456130
lea eax, [ebp - 0x140]
push 0x40
push eax
call fcn.00456130
lea eax, [ebp - 0x100]
push 0x40
push eax
invalid