Function at 0x491900
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 8]
movzx edx, byte [ecx + 2]
xor eax, eax
mov ah, byte [ecx]
push ebx
push ebp
push esi
push edi
movzx edi, byte [ecx + 6]
mov al, byte [ecx + 1]
mov esi, dword [esp + 0x14]
add esi, 4
shl eax, 8
or eax, edx
movzx edx, byte [ecx + 3]
shl eax, 8
or eax, edx
xor edx, edx
mov dh, byte [ecx + 4]
mov dl, byte [ecx + 5]
movzx ecx, byte [ecx + 7]
shl edx, 8
or edx, edi
shl edx, 8
or edx, ecx
mov ecx, eax
shr ecx, 4
xor ecx, edx
and ecx, 0xf0f0f0f
xor edx, ecx
shl ecx, 4
xor eax, ecx
mov ecx, eax
shr ecx, 0x10
xor ecx, edx
and ecx, 0xffff
xor edx, ecx
shl ecx, 0x10
xor eax, ecx
mov ecx, edx
shr ecx, 2
xor ecx, eax
and ecx, 0x33333333
xor eax, ecx
shl ecx, 2
xor edx, ecx
mov ecx, edx
shr ecx, 8
xor ecx, eax
and ecx, 0xff00ff
xor eax, ecx
shl ecx, 8
xor edx, ecx
mov ecx, edx
add edx, edx
shr ecx, 0x1f
or ecx, edx
mov edx, ecx
xor edx, eax
and edx, 0xaaaaaaaa
xor eax, edx
xor ecx, edx
mov edx, eax
shr edx, 0x1f
add eax, eax
or edx, eax
mov edi, 8
mov eax, dword [esi]
xor eax, ecx
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x1003dc30]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003de30]
mov ebp, eax
shr ebp, 8
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003e030]
and eax, 0x3f
xor ebx, dword [eax*4 + 0x1003e230]
mov ebp, dword [esi + 4]
xor edx, ebx
add esi, 4
mov eax, ecx
shl eax, 0x1c
mov ebx, ecx
shr ebx, 4
or eax, ebx
xor eax, ebp
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x1003db30]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003dd30]
mov ebp, eax
shr ebp, 8
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003df30]
and eax, 0x3f
mov ebp, dword [eax*4 + 0x1003e130]
mov eax, dword [esi + 4]
xor ebx, ebp
xor edx, ebx
xor eax, edx
add esi, 4
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x1003dc30]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003de30]
mov ebp, eax
shr ebp, 8
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003e030]
and eax, 0x3f
xor ebx, dword [eax*4 + 0x1003e230]
mov ebp, dword [esi + 4]
xor ecx, ebx
add esi, 4
mov eax, edx
shl eax, 0x1c
mov ebx, edx
shr ebx, 4
or eax, ebx
xor eax, ebp
mov ebx, eax
shr ebx, 0x18
and ebx, 0x3f
mov ebx, dword [ebx*4 + 0x1003db30]
mov ebp, eax
shr ebp, 0x10
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003dd30]
mov ebp, eax
shr ebp, 8
add esi, 4
and ebp, 0x3f
xor ebx, dword [ebp*4 + 0x1003df30]
and eax, 0x3f
xor ebx, dword [eax*4 + 0x1003e130]
xor ecx, ebx
dec edi
jne 0x4919b7
mov eax, ecx
shl eax, 0x1f
shr ecx, 1
or eax, ecx
mov ecx, eax
xor ecx, edx
and ecx, 0xaaaaaaaa
xor edx, ecx
xor eax, ecx
mov ecx, edx
shr edx, 1
shl ecx, 0x1f
or ecx, edx
mov edx, ecx
shr edx, 8
xor edx, eax
and edx, 0xff00ff
xor eax, edx
shl edx, 8
xor ecx, edx
mov edx, ecx
shr edx, 2
xor edx, eax
and edx, 0x33333333
xor eax, edx
shl edx, 2
xor ecx, edx
mov esi, dword [esp + 0x1c]
mov edx, eax
shr edx, 0x10
xor edx, ecx
and edx, 0xffff
xor ecx, edx
shl edx, 0x10
xor eax, edx
mov edx, eax
shr edx, 4
xor edx, ecx
and edx, 0xf0f0f0f
xor ecx, edx
shl edx, 4
xor eax, edx
mov edx, eax
shr edx, 0x18
mov byte [esi], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, eax
mov byte [esi + 3], al
shr edx, 8
mov eax, ecx
shr eax, 0x18
mov byte [esi + 4], al
mov byte [esi + 2], dl
mov edx, ecx
mov eax, ecx
shr eax, 8
pop edi
shr edx, 0x10
mov byte [esi + 6], al
mov byte [esi + 5], dl
mov byte [esi + 7], cl
pop esi
pop ebp
xor eax, eax
pop ebx
ret