Function at 0x460ec0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
sub esp, 0x18
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
test eax, eax
jne 0x460f41
test edi, edi
je 0x460f23
cmp byte [edi], 0
mov esi, edi
je 0x460ee6
nop
inc esi
cmp byte [esi], 0
jne 0x460ee0
mov ebx, dword [ebp + 8]
sub esi, edi
add ebx, 0x19c
and esi, 0x3fffffff
cmp dword [ebx + 0xc], 0
je 0x460f0d
push esi
push edi
call fcn.00488610
xor edx, edx
add esp, 8
div dword [ebx]
jmp 0x460f0f
xor edx, edx
push edx
push esi
push edi
push ebx
call fcn.00439580
add esp, 0x10
test eax, eax
jne 0x460f26
xor ecx, ecx
jmp 0x460f29
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x460f4b
movzx eax, byte [ebp + 0xc]
lea eax, [eax + eax*4]
lea eax, [eax - 5]
lea eax, [ecx + eax*4]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x460f4b
cmp dword [eax + 0xc], 0
jne 0x4610dd
movzx ebx, byte [ebp + 0xc]
mov esi, dword [ebp + 8]
push edi
push ebx
push esi
call fcn.0042f1f0
add esp, 0xc
test edi, edi
je 0x460fbc
cmp byte [edi], 0
mov esi, edi
je 0x460f6e
inc esi
cmp byte [esi], 0
jne 0x460f68
mov eax, dword [ebp + 8]
sub esi, edi
add eax, 0x19c
and esi, 0x3fffffff
mov dword [ebp + 0x10], eax
cmp dword [eax + 0xc], 0
je 0x460fa1
push esi
push edi
call fcn.00488610
mov ecx, dword [ebp + 8]
xor edx, edx
add esp, 8
div dword [ecx + 0x19c]
mov eax, dword [ebp + 0x10]
jmp 0x460fa3
xor edx, edx
push edx
push esi
push edi
push eax
call fcn.00439580
add esp, 0x10
test eax, eax
je 0x460fb8
mov eax, dword [eax + 8]
jmp 0x460fbf
xor eax, eax
jmp 0x460fbf
mov eax, dword [esi + 8]
mov dword [ebp + 0x10], eax
test eax, eax
je 0x4610dd
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
mov dword [ebp + 0x10], eax
test eax, eax
je 0x4610dd
cmp dword [eax + 0xc], 0
jne 0x4610dd
mov esi, dword [eax]
xor edx, edx
mov dword [ebp - 0x14], esi
mov dword [ebp - 8], edx
mov bl, byte [edx + 0x4bd668]
mov byte [ebp - 1], bl
test esi, esi
je 0x461099
cmp byte [esi], 0
mov ecx, esi
je 0x461016
nop word [eax + eax]
inc ecx
cmp byte [ecx], 0
jne 0x461010
mov eax, dword [ebp + 8]
sub ecx, esi
add eax, 0x19c
and ecx, 0x3fffffff
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
cmp dword [eax + 0xc], 0
je 0x461078
xor edi, edi
mov dword [ebp - 0xc], esi
mov ebx, ecx
test ecx, ecx
je 0x461063
mov ecx, esi
nop
movzx eax, byte [ecx]
lea edx, [edi*8]
dec ebx
lea ecx, [ecx + 1]
movzx esi, byte [eax + 0x4bd0d8]
xor esi, edx
xor edi, esi
test ebx, ebx
jg 0x461040
mov ecx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x14]
mov bl, byte [ebp - 1]
mov eax, edi
mov edi, dword [ebp + 8]
xor edx, edx
div dword [edi + 0x19c]
mov eax, dword [ebp - 0x18]
jmp 0x46107a
xor edx, edx
push edx
push ecx
push esi
push eax
call fcn.00439580
add esp, 0x10
test eax, eax
je 0x461092
mov ecx, dword [eax + 8]
mov edx, dword [ebp - 8]
jmp 0x46109f
mov edx, dword [ebp - 8]
xor ecx, ecx
jmp 0x46109f
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4610af
movzx eax, bl
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
add ecx, 0xffffffec
cmp dword [ecx + 0xc], 0
jne 0x4610cb
inc edx
mov dword [ebp - 8], edx
cmp edx, 3
jl 0x460ff2
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov eax, edx
movups xmm0, xmmword [ecx]
movups xmmword [edx], xmm0
mov dword [edx + 0x10], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret