Function at 0x661f70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x248
call fcn.006d13f0
mov eax, dword [0x7c0ab4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x248], eax
mov eax, dword [ebp + 0xc]
push edi
push 1
push eax
lea eax, [ebp - 0x1c4]
push eax
call fcn.0068cb30
movups xmm0, xmmword [0x755670]
add esp, 0x10
mov ebx, 0x1bf
movups xmm4, xmmword [0x7556b0]
movups xmmword [ebp - 0x44], xmm0
movups xmm0, xmmword [0x755680]
movups xmm3, xmmword [0x7556c0]
movups xmm2, xmmword [0x7556d0]
movups xmm1, xmmword [0x7556e0]
movups xmmword [ebp - 0x34], xmm0
movups xmm0, xmmword [0x755690]
movups xmmword [ebp - 0x84], xmm4
movups xmmword [ebp - 0x24], xmm0
movups xmm0, xmmword [0x7556a0]
movups xmmword [ebp - 0x74], xmm3
movups xmmword [ebp - 0x14], xmm0
movups xmm0, xmmword [ebp - 0x1c4]
movups xmmword [ebp - 0x64], xmm2
movups xmmword [ebp - 0xc4], xmm0
movups xmm0, xmmword [ebp - 0x1b4]
movups xmmword [ebp - 0x54], xmm1
movups xmmword [ebp - 0xb4], xmm0
movups xmm0, xmmword [ebp - 0x1a4]
movups xmmword [ebp - 0x144], xmm4
movups xmmword [ebp - 0xa4], xmm0
movups xmm0, xmmword [ebp - 0x194]
movups xmmword [ebp - 0x134], xmm3
movups xmmword [ebp - 0x94], xmm0
movups xmmword [ebp - 0x124], xmm2
movups xmmword [ebp - 0x114], xmm1
nop
mov ecx, dword [ebp + 0x10]
mov eax, ebx
shr eax, 3
mov esi, 0xff
mov dl, byte [eax + ecx]
test eax, eax
jne 0x662079
and dl, 0xfc
jmp 0x662085
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 dword [eax]
nop word [eax + eax]
movups xmm1, xmmword [ebp + eax - 0x84]
movups xmm3, xmmword [ebp + eax - 0xc4]
movaps xmm2, xmm1
pxor xmm2, xmm3
pand xmm2, xmm4
movaps xmm0, xmm2
pxor xmm2, xmm3
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x84], xmm0
movups xmmword [ebp + eax - 0xc4], xmm2
add eax, 0x10
cmp eax, 0x40
jb 0x6620b0
xor eax, eax
movups xmm1, xmmword [ebp + eax - 0x44]
movups xmm3, xmmword [ebp + eax - 0x144]
movaps xmm2, xmm1
pxor xmm2, xmm3
pand xmm2, xmm4
movaps xmm0, xmm2
pxor xmm2, xmm3
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0x44], xmm0
movups xmmword [ebp + eax - 0x144], xmm2
add eax, 0x10
cmp eax, 0x40
jb 0x6620f0
movups xmm0, xmmword [ebp - 0x44]
lea eax, [ebp - 0x44]
mov edi, esi
movups xmm1, xmmword [ebp - 0x84]
push eax
lea eax, [ebp - 0x84]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x74]
push eax
movups xmmword [ebp - 0x104], xmm1
lea eax, [ebp - 0x184]
movups xmm1, xmmword [ebp - 0x34]
push eax
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x64]
movups xmmword [ebp - 0xf4], xmm1
movups xmm1, xmmword [ebp - 0x24]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x54]
movups xmmword [ebp - 0xe4], xmm1
movups xmm1, xmmword [ebp - 0x14]
paddd xmm1, xmm0
movups xmmword [ebp - 0xd4], xmm1
call fcn.00661850
lea eax, [ebp - 0x184]
push 2
push eax
call fcn.00661690
lea eax, [ebp - 0x184]
push eax
call fcn.006618e0
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00661850
lea eax, [ebp - 0x44]
push 2
push eax
call fcn.00661690
lea eax, [ebp - 0x44]
push eax
call fcn.006618e0
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0068d600
movups xmm0, xmmword [ebp - 0x144]
lea eax, [ebp - 0x44]
movups xmm1, xmmword [ebp - 0xc4]
push eax
lea eax, [ebp - 0x184]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0xb4]
push eax
movups xmmword [ebp - 0x44], xmm1
lea eax, [ebp - 0xc4]
movups xmm1, xmmword [ebp - 0x134]
push eax
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0xa4]
movups xmmword [ebp - 0x34], xmm1
movups xmm1, xmmword [ebp - 0x124]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x94]
movups xmmword [ebp - 0x24], xmm1
movups xmm1, xmmword [ebp - 0x114]
paddd xmm1, xmm0
movups xmmword [ebp - 0x14], xmm1
call fcn.0068d600
add esp, 0x48
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.00661850
lea eax, [ebp - 0x144]
push 2
push eax
call fcn.00661690
lea eax, [ebp - 0x144]
push eax
call fcn.006618e0
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0068dba0
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x1c4]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.0068d600
movups xmm0, xmmword [ebp - 0x84]
lea eax, [ebp - 0x44]
movups xmm1, xmmword [ebp - 0xc4]
push eax
lea eax, [ebp - 0xc4]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x74]
push eax
movups xmmword [ebp - 0x44], xmm1
movups xmm1, xmmword [ebp - 0xb4]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x64]
movups xmmword [ebp - 0x34], xmm1
movups xmm1, xmmword [ebp - 0xa4]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x54]
movups xmmword [ebp - 0x24], xmm1
movups xmm1, xmmword [ebp - 0x94]
paddd xmm1, xmm0
movups xmmword [ebp - 0x14], xmm1
call fcn.0068dba0
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0068dba0
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.0068dba0
add esp, 0x44
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0068d600
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x184]
push eax
call fcn.00661850
lea eax, [ebp - 0x184]
push 2
push eax
call fcn.00661690
lea eax, [ebp - 0x184]
push eax
call fcn.006618e0
push 0x98a9
lea eax, [ebp - 0x184]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.0068d8e0
movups xmm1, xmmword [ebp - 0x104]
movups xmm0, xmmword [ebp - 0x44]
lea eax, [ebp - 0x104]
push eax
paddd xmm1, xmm0
lea eax, [ebp - 0x184]
movups xmm0, xmmword [ebp - 0x34]
push eax
movups xmmword [ebp - 0x104], xmm1
lea eax, [ebp - 0x44]
movups xmm1, xmmword [ebp - 0xf4]
push eax
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x24]
movups xmmword [ebp - 0xf4], xmm1
movups xmm1, xmmword [ebp - 0xe4]
paddd xmm1, xmm0
movups xmm0, xmmword [ebp - 0x14]
movups xmmword [ebp - 0xe4], xmm1
movups xmm1, xmmword [ebp - 0xd4]
paddd xmm1, xmm0
movups xmmword [ebp - 0xd4], xmm1
call fcn.0068d600
add esp, 0x3c
sub ebx, 1
jns 0x662060
push esi
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.006617b0
push esi
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.006617b0
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.0068dba0
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.0068cd80
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x244]
push eax
call fcn.0068dba0
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x204]
push eax
call fcn.0068d600
movups xmm0, xmmword [ebp - 0x204]
lea eax, [ebp - 0x44]
push eax
movups xmmword [ebp - 0x44], xmm0
lea eax, [ebp - 0x84]
movups xmm0, xmmword [ebp - 0x1f4]
push eax
lea eax, [ebp - 0x1c4]
movups xmmword [ebp - 0x34], xmm0
push eax
movups xmm0, xmmword [ebp - 0x1e4]
movups xmmword [ebp - 0x24], xmm0
movups xmm0, xmmword [ebp - 0x1d4]
movups xmmword [ebp - 0x14], xmm0
call fcn.0068d600
add esp, 0x48
lea eax, [ebp - 0x1c4]
push 1
push eax
push dword [ebp - 0x248]
call fcn.0068d250
lea eax, [ebp - 0x1c4]
push 0x755670
push eax
call fcn.0068cce0
mov esi, eax
lea eax, [ebp - 0x1c4]
push 0x40
push eax
not esi
call fcn.004019e0
lea eax, [ebp - 0x84]
push 0x40
push eax
call fcn.004019e0
lea eax, [ebp - 0x44]
push 0x40
push eax
call fcn.004019e0
lea eax, [ebp - 0xc4]
push 0x40
push eax
call fcn.004019e0
lea eax, [ebp - 0x144]
push 0x40
push eax
call fcn.004019e0
lea eax, [ebp - 0x104]
push 0x40
push eax
call fcn.004019e0
add esp, 0x44
lea eax, [ebp - 0x184]
push 0x40
push eax
call fcn.004019e0
mov ecx, dword [ebp - 4]
add esp, 8
mov eax, esi
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.006d0856
mov esp, ebp
pop ebp
ret