Function at 0x45cf50
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
push edi
test eax, eax
je 0x45d19e
mov edx, dword [esp + 0x14]
test edx, edx
je 0x45d19e
cmp edx, 0x10
jl 0x45d170
push ebp
mov ebp, edx
shr ebp, 4
mov esi, ebp
neg esi
shl esi, 4
add edx, esi
mov edi, dword [ecx + 4]
xor ebx, ebx
mov bl, byte [eax]
mov esi, edi
and esi, 0xff
xor esi, ebx
xor ebx, ebx
shr edi, 8
mov esi, dword [esi*4 + 0x4c64c8]
xor esi, edi
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax + 1]
and edi, 0xff
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor edi, esi
mov esi, edi
mov dword [ecx + 4], edi
mov bl, byte [eax + 2]
and esi, 0xff
xor ebx, esi
shr edi, 8
mov esi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor esi, edi
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax + 3]
and edi, 0xff
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor edi, esi
mov esi, edi
mov dword [ecx + 4], edi
mov bl, byte [eax + 4]
and esi, 0xff
xor ebx, esi
shr edi, 8
mov esi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor esi, edi
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax + 5]
and edi, 0xff
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor edi, esi
mov esi, edi
mov dword [ecx + 4], edi
mov bl, byte [eax + 6]
and esi, 0xff
xor ebx, esi
shr edi, 8
mov esi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor esi, edi
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax + 7]
and edi, 0xff
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor edi, esi
mov esi, edi
mov dword [ecx + 4], edi
mov bl, byte [eax + 8]
and esi, 0xff
xor ebx, esi
shr edi, 8
mov esi, dword [ebx*4 + 0x4c64c8]
xor esi, edi
xor ebx, ebx
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax + 9]
and edi, 0xff
add eax, 0x10
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor edi, esi
mov esi, edi
mov dword [ecx + 4], edi
mov bl, byte [eax - 6]
and esi, 0xff
xor ebx, esi
shr edi, 8
mov esi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor esi, edi
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax - 5]
and edi, 0xff
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor edi, esi
mov esi, edi
mov dword [ecx + 4], edi
mov bl, byte [eax - 4]
and esi, 0xff
xor ebx, esi
shr edi, 8
mov esi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor esi, edi
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax - 3]
and edi, 0xff
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor edi, esi
mov esi, edi
mov dword [ecx + 4], edi
mov bl, byte [eax - 2]
and esi, 0xff
xor ebx, esi
shr edi, 8
mov esi, dword [ebx*4 + 0x4c64c8]
xor ebx, ebx
xor esi, edi
mov edi, esi
mov dword [ecx + 4], esi
mov bl, byte [eax - 1]
and edi, 0xff
xor ebx, edi
shr esi, 8
mov edi, dword [ebx*4 + 0x4c64c8]
xor edi, esi
dec ebp
mov dword [ecx + 4], edi
jne 0x45cf83
pop ebp
mov esi, edx
dec edx
test esi, esi
je 0x45d19e
lea edi, [edx + 1]
mov esi, dword [ecx + 4]
xor ebx, ebx
mov bl, byte [eax]
mov edx, esi
and edx, 0xff
xor edx, ebx
shr esi, 8
mov edx, dword [edx*4 + 0x4c64c8]
xor edx, esi
inc eax
dec edi
mov dword [ecx + 4], edx
jne 0x45d17a
pop edi
pop esi
pop ebx
ret 8