Function at 0x506bd0
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.0052aa30
movups xmm0, xmmword [0x5c5fb0]
add esp, 0x10
mov ebx, 0x1bf
movups xmm4, xmmword [0x5c5ff0]
movups xmmword [ebp - 0x40], xmm0
movups xmm0, xmmword [0x5c5fc0]
movups xmm3, xmmword [0x5c6000]
movups xmm2, xmmword [0x5c6010]
movups xmm1, xmmword [0x5c6020]
movups xmmword [ebp - 0x30], xmm0
movups xmm0, xmmword [0x5c5fd0]
movups xmmword [ebp - 0x80], xmm4
movups xmmword [ebp - 0x20], xmm0
movups xmm0, xmmword [0x5c5fe0]
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 0x506cbd
and dl, 0xfc
jmp 0x506cc9
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 0x506cf0
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 0x506d30
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.005064f0
lea eax, [ebp - 0x180]
push 2
push eax
call fcn.00506310
lea eax, [ebp - 0x180]
push eax
call fcn.00506580
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.005064f0
lea eax, [ebp - 0x40]
push 2
push eax
call fcn.00506310
lea eax, [ebp - 0x40]
push eax
call fcn.00506580
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0052b530
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.0052b530
add esp, 0x48
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.005064f0
lea eax, [ebp - 0x140]
push 2
push eax
call fcn.00506310
lea eax, [ebp - 0x140]
push eax
call fcn.00506580
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0052bac0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.0052b530
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.0052bac0
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0052bac0
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.0052bac0
add esp, 0x44
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0052b530
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x180]
push eax
call fcn.005064f0
lea eax, [ebp - 0x180]
push 2
push eax
call fcn.00506310
lea eax, [ebp - 0x180]
push eax
call fcn.00506580
push 0x98a9
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.0052b7f0
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.0052b530
add esp, 0x3c
sub ebx, 1
jns 0x506ca4
push esi
lea eax, [ebp - 0xc0]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00506450
push esi
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00506450
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.0052bac0
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.0052ac70
lea eax, [ebp - 0x200]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.0052bac0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x240]
push eax
lea eax, [ebp - 0x200]
push eax
call fcn.0052b530
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.0052b530
add esp, 0x48
lea eax, [ebp - 0x1c0]
push 1
push eax
push dword [ebp + 8]
call fcn.0052b0a0
lea eax, [ebp - 0x1c0]
push 0x5c5fb0
push eax
call fcn.0052ab90
mov esi, eax
lea eax, [ebp - 0x1c0]
push 0x40
push eax
not esi
call fcn.00457920
lea eax, [ebp - 0x80]
push 0x40
push eax
call fcn.00457920
lea eax, [ebp - 0x40]
push 0x40
push eax
call fcn.00457920
lea eax, [ebp - 0xc0]
push 0x40
push eax
call fcn.00457920
lea eax, [ebp - 0x140]
push 0x40
push eax
call fcn.00457920
lea eax, [ebp - 0x100]
push 0x40
push eax
call fcn.00457920
add esp, 0x44
lea eax, [ebp - 0x180]
push 0x40
push eax
call fcn.00457920
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret