Function at 0x491a28
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov edx, dword [eax]
rol edx, 4
push ebx
push esi
mov esi, ecx
mov ecx, dword [eax + 4]
mov eax, edx
xor eax, ecx
and eax, 0xf0f0f0f0
xor edx, eax
xor eax, ecx
rol eax, 0x14
mov ecx, edx
xor ecx, eax
and ecx, 0xfff0000f
xor edx, ecx
xor ecx, eax
rol ecx, 0xe
mov eax, edx
xor eax, ecx
and eax, 0x33333333
xor ecx, eax
xor eax, edx
rol eax, 0x16
mov edx, eax
xor edx, ecx
and edx, 0x3fc03fc
xor ecx, edx
xor edx, eax
rol edx, 9
mov eax, edx
xor eax, ecx
and eax, 0xaaaaaaaa
xor edx, eax
xor eax, ecx
rol eax, 1
cmp dword [ebp + 0xc], 0
mov dword [ebp - 4], eax
push edi
mov eax, 0xfc
je 0x491ba0
lea ecx, [esi + 8]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 8], 8
mov esi, dword [ecx - 8]
mov ecx, dword [ecx - 4]
xor ecx, edx
xor esi, edx
ror ecx, 4
mov edi, ecx
shr edi, 0x18
and edi, eax
mov edi, dword [edi + 0x4a00b0]
mov ebx, ecx
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49feb0]
mov ebx, ecx
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fcb0]
mov ebx, esi
shr ebx, 0x18
and ebx, eax
xor edi, dword [ebx + 0x49ffb0]
mov ebx, esi
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49fdb0]
mov ebx, esi
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fbb0]
and ecx, eax
xor edi, dword [ecx + 0x49fab0]
mov ecx, dword [ebp + 0xc]
and esi, eax
xor edi, dword [esi + 0x49f9b0]
mov esi, dword [ecx]
xor dword [ebp - 4], edi
mov ecx, dword [ecx + 4]
xor ecx, dword [ebp - 4]
xor esi, dword [ebp - 4]
ror ecx, 4
mov edi, ecx
shr edi, 0x18
and edi, eax
mov edi, dword [edi + 0x4a00b0]
mov ebx, ecx
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49feb0]
mov ebx, ecx
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fcb0]
mov ebx, esi
shr ebx, 0x18
and ebx, eax
xor edi, dword [ebx + 0x49ffb0]
mov ebx, esi
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49fdb0]
mov ebx, esi
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fbb0]
and ecx, eax
xor edi, dword [ecx + 0x49fab0]
mov ecx, dword [ebp + 0xc]
and esi, eax
xor edi, dword [esi + 0x49f9b0]
add ecx, 0x10
xor edx, edi
dec dword [ebp - 8]
mov dword [ebp + 0xc], ecx
jne 0x491aaa
jmp 0x491c9e
lea ecx, [esi + 0x7c]
mov dword [ebp + 0xc], ecx
mov dword [ebp - 8], 8
mov esi, dword [ecx - 4]
mov ecx, dword [ecx]
xor ecx, edx
xor esi, edx
ror ecx, 4
mov edi, ecx
shr edi, 0x18
and edi, eax
mov edi, dword [edi + 0x4a00b0]
mov ebx, ecx
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49feb0]
mov ebx, ecx
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fcb0]
mov ebx, esi
shr ebx, 0x18
and ebx, eax
xor edi, dword [ebx + 0x49ffb0]
mov ebx, esi
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49fdb0]
mov ebx, esi
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fbb0]
and ecx, eax
xor edi, dword [ecx + 0x49fab0]
mov ecx, dword [ebp + 0xc]
and esi, eax
xor edi, dword [esi + 0x49f9b0]
mov esi, dword [ecx - 0xc]
xor dword [ebp - 4], edi
mov ecx, dword [ecx - 8]
xor ecx, dword [ebp - 4]
xor esi, dword [ebp - 4]
ror ecx, 4
mov edi, ecx
shr edi, 0x18
and edi, eax
mov edi, dword [edi + 0x4a00b0]
mov ebx, ecx
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49feb0]
mov ebx, ecx
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fcb0]
mov ebx, esi
shr ebx, 0x18
and ebx, eax
xor edi, dword [ebx + 0x49ffb0]
mov ebx, esi
shr ebx, 0x10
and ebx, eax
xor edi, dword [ebx + 0x49fdb0]
mov ebx, esi
shr ebx, 8
and ebx, eax
xor edi, dword [ebx + 0x49fbb0]
and ecx, eax
xor edi, dword [ecx + 0x49fab0]
mov ecx, dword [ebp + 0xc]
and esi, eax
xor edi, dword [esi + 0x49f9b0]
sub ecx, 0x10
xor edx, edi
dec dword [ebp - 8]
mov dword [ebp + 0xc], ecx
jne 0x491bad
ror edx, 1
mov eax, edx
xor eax, dword [ebp - 4]
pop edi
and eax, 0xaaaaaaaa
xor edx, eax
xor eax, dword [ebp - 4]
mov ecx, edx
ror eax, 9
xor ecx, eax
and ecx, 0x3fc03fc
xor edx, ecx
xor ecx, eax
ror ecx, 0x16
mov eax, edx
xor eax, ecx
and eax, 0x33333333
xor ecx, eax
xor eax, edx
ror eax, 0xe
mov edx, eax
xor edx, ecx
and edx, 0xfff0000f
xor ecx, edx
xor edx, eax
ror edx, 0x14
mov eax, edx
xor eax, ecx
and eax, 0xf0f0f0f0
mov esi, eax
xor esi, ecx
mov ecx, dword [ebp + 8]
ror esi, 4
mov dword [ecx], esi
xor eax, edx
pop esi
mov dword [ecx + 4], eax
pop ebx
leave
ret