Function at 0x421cb6
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
push ecx
mov edx, dword [ebp + 8]
movzx eax, byte [edx]
mov dword [ebp - 0x10], eax
movzx eax, byte [edx + 1]
shl eax, 8
or dword [ebp - 0x10], eax
movzx eax, byte [edx + 2]
shl eax, 0x10
or dword [ebp - 0x10], eax
movzx eax, byte [edx + 3]
shl eax, 0x18
or dword [ebp - 0x10], eax
movzx eax, byte [edx + 5]
movzx edi, byte [edx + 4]
shl eax, 8
or edi, eax
movzx eax, byte [edx + 6]
shl eax, 0x10
or edi, eax
movzx eax, byte [edx + 7]
shl eax, 0x18
or edi, eax
mov ebx, edi
shr ebx, 4
xor ebx, dword [ebp - 0x10]
and ebx, 0xf0f0f0f
xor dword [ebp - 0x10], ebx
shl ebx, 4
xor edi, ebx
mov eax, dword [ebp - 0x10]
shr eax, 0x10
xor eax, edi
movzx ebx, ax
xor edi, ebx
shl ebx, 0x10
xor dword [ebp - 0x10], ebx
mov ebx, edi
shr ebx, 2
xor ebx, dword [ebp - 0x10]
and ebx, 0x33333333
lea eax, [ebx*4]
xor dword [ebp - 0x10], ebx
xor edi, eax
mov ebx, dword [ebp - 0x10]
shr ebx, 8
xor ebx, edi
and ebx, 0xff00ff
xor edi, ebx
shl ebx, 8
xor dword [ebp - 0x10], ebx
mov ebx, edi
shr ebx, 1
xor ebx, dword [ebp - 0x10]
mov dword [ebp - 0x14], 0x1e
and ebx, 0x55555555
lea eax, [ebx + ebx]
xor ebx, dword [ebp - 0x10]
xor edi, eax
cmp dword [ebp + 0x14], 0
mov dword [ebp - 0x10], edi
mov edi, ebx
je 0x421eb1
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x14]
mov ebx, edi
mov eax, dword [ebp + 0x10]
rol ebx, 1
mov esi, ebx
xor ebx, dword [eax + edx*4 + 4]
xor esi, dword [eax + edx*4]
rol ebx, 0x1c
mov eax, ebx
shr eax, 8
mov ecx, ebx
and eax, 0x3f
and ecx, 0x3f
mov edx, dword [eax*4 + 0x46b920]
shr ebx, 0x10
or edx, dword [ecx*4 + 0x46b720]
mov eax, ebx
and eax, 0x3f
shr ebx, 8
and ebx, 0x3f
or edx, dword [eax*4 + 0x46bb20]
mov eax, esi
and eax, 0x3f
or edx, dword [ebx*4 + 0x46bd20]
or edx, dword [eax*4 + 0x46b620]
mov eax, esi
shr eax, 8
and eax, 0x3f
shr esi, 0x10
or edx, dword [eax*4 + 0x46b820]
mov eax, esi
and eax, 0x3f
or edx, dword [eax*4 + 0x46ba20]
shr esi, 8
and esi, 0x3f
mov eax, dword [ebp + 0x10]
or edx, dword [esi*4 + 0x46bc20]
xor dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
rol ebx, 1
mov esi, ebx
xor ebx, dword [eax + edx*4 + 0xc]
xor esi, dword [eax + edx*4 + 8]
rol ebx, 0x1c
mov eax, ebx
shr eax, 8
mov ecx, ebx
and eax, 0x3f
mov edx, dword [eax*4 + 0x46b920]
and ecx, 0x3f
or edx, dword [ecx*4 + 0x46b720]
shr ebx, 0x10
mov eax, ebx
add dword [ebp - 0x14], 4
and eax, 0x3f
shr ebx, 8
or edx, dword [eax*4 + 0x46bb20]
and ebx, 0x3f
mov eax, esi
and eax, 0x3f
or edx, dword [ebx*4 + 0x46bd20]
or edx, dword [eax*4 + 0x46b620]
mov eax, esi
shr eax, 8
and eax, 0x3f
shr esi, 0x10
or edx, dword [eax*4 + 0x46b820]
mov eax, esi
and eax, 0x3f
or edx, dword [eax*4 + 0x46ba20]
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x46bc20]
xor edi, edx
cmp dword [ebp - 0x14], 0x1f
jle 0x421d8f
jmp 0x421fca
mov edx, dword [ebp - 0x14]
mov ebx, edi
mov eax, dword [ebp + 0x10]
rol ebx, 1
mov esi, ebx
xor ebx, dword [eax + edx*4 + 4]
xor esi, dword [eax + edx*4]
rol ebx, 0x1c
mov eax, ebx
shr eax, 8
mov ecx, ebx
and eax, 0x3f
and ecx, 0x3f
mov edx, dword [eax*4 + 0x46b920]
shr ebx, 0x10
or edx, dword [ecx*4 + 0x46b720]
mov eax, ebx
and eax, 0x3f
shr ebx, 8
and ebx, 0x3f
or edx, dword [eax*4 + 0x46bb20]
mov eax, esi
and eax, 0x3f
or edx, dword [ebx*4 + 0x46bd20]
or edx, dword [eax*4 + 0x46b620]
mov eax, esi
shr eax, 8
and eax, 0x3f
shr esi, 0x10
or edx, dword [eax*4 + 0x46b820]
mov eax, esi
and eax, 0x3f
or edx, dword [eax*4 + 0x46ba20]
shr esi, 8
and esi, 0x3f
mov eax, dword [ebp + 0x10]
or edx, dword [esi*4 + 0x46bc20]
xor dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x10]
rol ebx, 1
mov esi, ebx
xor ebx, dword [eax + edx*4 - 4]
xor esi, dword [eax + edx*4 - 8]
rol ebx, 0x1c
mov eax, ebx
shr eax, 8
mov ecx, ebx
and eax, 0x3f
mov edx, dword [eax*4 + 0x46b920]
and ecx, 0x3f
or edx, dword [ecx*4 + 0x46b720]
shr ebx, 0x10
mov eax, ebx
and eax, 0x3f
shr ebx, 8
and ebx, 0x3f
or edx, dword [eax*4 + 0x46bb20]
mov eax, esi
and eax, 0x3f
or edx, dword [ebx*4 + 0x46bd20]
or edx, dword [eax*4 + 0x46b620]
mov eax, esi
shr eax, 8
and eax, 0x3f
shr esi, 0x10
or edx, dword [eax*4 + 0x46b820]
mov eax, esi
and eax, 0x3f
or edx, dword [eax*4 + 0x46ba20]
shr esi, 8
and esi, 0x3f
or edx, dword [esi*4 + 0x46bc20]
xor edi, edx
sub dword [ebp - 0x14], 4
jns 0x421eb1
mov ebx, edi
shr ebx, 1
xor ebx, dword [ebp - 0x10]
and ebx, 0x55555555
lea eax, [ebx + ebx]
xor dword [ebp - 0x10], ebx
xor edi, eax
mov ebx, dword [ebp - 0x10]
shr ebx, 8
xor ebx, edi
and ebx, 0xff00ff
xor edi, ebx
shl ebx, 8
xor dword [ebp - 0x10], ebx
mov ebx, edi
shr ebx, 2
xor ebx, dword [ebp - 0x10]
and ebx, 0x33333333
lea eax, [ebx*4]
xor dword [ebp - 0x10], ebx
xor edi, eax
mov eax, dword [ebp - 0x10]
shr eax, 0x10
xor eax, edi
movzx ebx, ax
xor edi, ebx
shl ebx, 0x10
mov eax, dword [ebp + 0xc]
xor dword [ebp - 0x10], ebx
mov ebx, edi
shr ebx, 4
xor ebx, dword [ebp - 0x10]
and ebx, 0xf0f0f0f
xor dword [ebp - 0x10], ebx
shl ebx, 4
xor edi, ebx
movzx edx, byte [ebp - 0x10]
mov byte [eax], dl
shr dword [ebp - 0x10], 8
movzx edx, byte [ebp - 0x10]
mov byte [eax + 1], dl
shr dword [ebp - 0x10], 8
movzx edx, byte [ebp - 0x10]
mov byte [eax + 2], dl
shr dword [ebp - 0x10], 8
movzx edx, byte [ebp - 0x10]
mov byte [eax + 3], dl
mov edx, edi
shr edi, 8
mov byte [eax + 4], dl
mov edx, edi
shr edi, 8
mov byte [eax + 5], dl
mov edx, edi
shr edi, 8
mov byte [eax + 6], dl
mov edx, edi
mov byte [eax + 7], dl
pop eax
pop edx
pop ebx
pop esi
pop edi
pop ebp
ret