Function at 0x765861
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
and dword [ebp - 4], 0
and dword [ebp - 8], 0
push ebx
push esi
push edi
push 0x3f
mov dword [ebp - 0x10], 0x19
pop esi
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xc], 8
lea edi, [eax + 8]
mov ecx, dword [ebp - 8]
mov eax, dword [edi - 8]
shr ecx, 0x10
xor ecx, dword [ebp - 8]
mov edx, ecx
and ecx, dword [ebp + 0x18]
and edx, dword [ebp + 0x14]
mov ebx, edx
shl ebx, 0x10
xor eax, ebx
mov ebx, ecx
xor eax, edx
mov edx, dword [edi - 4]
shl ebx, 0x10
xor edx, ebx
xor eax, dword [ebp - 8]
xor edx, ecx
xor edx, dword [ebp - 8]
mov ecx, edx
shl ecx, 0x1c
shr edx, 4
or ecx, edx
mov edx, ecx
mov ebx, ecx
shr edx, 0x18
and edx, esi
shr ebx, 0x10
mov edx, dword [edx*4 + 0x280b95c8]
and ebx, esi
or edx, dword [ebx*4 + 0x280b93c8]
mov ebx, eax
shr ebx, 0x18
and ebx, esi
or edx, dword [ebx*4 + 0x280b94c8]
mov ebx, ecx
shr ebx, 8
and ebx, esi
and ecx, esi
or edx, dword [ebx*4 + 0x280b91c8]
mov ebx, eax
shr ebx, 0x10
and ebx, esi
or edx, dword [ebx*4 + 0x280b92c8]
mov ebx, eax
shr ebx, 8
and ebx, esi
and eax, esi
or edx, dword [ebx*4 + 0x280b90c8]
or edx, dword [ecx*4 + 0x280b8fc8]
or edx, dword [eax*4 + 0x280b8ec8]
xor dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
shr ecx, 0x10
xor ecx, dword [ebp - 4]
mov edx, ecx
and ecx, dword [ebp + 0x18]
and edx, dword [ebp + 0x14]
mov ebx, ecx
mov eax, edx
shl eax, 0x10
xor eax, dword [edi]
shl ebx, 0x10
xor eax, edx
mov edx, dword [edi + 4]
xor edx, ebx
xor eax, dword [ebp - 4]
xor edx, ecx
xor edx, dword [ebp - 4]
mov ecx, edx
shl ecx, 0x1c
shr edx, 4
or ecx, edx
mov edx, ecx
mov ebx, ecx
shr edx, 0x18
and edx, esi
shr ebx, 0x10
mov edx, dword [edx*4 + 0x280b95c8]
and ebx, esi
or edx, dword [ebx*4 + 0x280b93c8]
mov ebx, eax
shr ebx, 0x18
and ebx, esi
add edi, 0x10
or edx, dword [ebx*4 + 0x280b94c8]
mov ebx, ecx
shr ebx, 8
and ebx, esi
and ecx, esi
or edx, dword [ebx*4 + 0x280b91c8]
mov ebx, eax
shr ebx, 0x10
and ebx, esi
or edx, dword [ebx*4 + 0x280b92c8]
mov ebx, eax
shr ebx, 8
and ebx, esi
and eax, esi
or edx, dword [ebx*4 + 0x280b90c8]
or edx, dword [ecx*4 + 0x280b8fc8]
or edx, dword [eax*4 + 0x280b8ec8]
xor dword [ebp - 8], edx
dec dword [ebp - 0xc]
jne 0x765889
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
dec dword [ebp - 0x10]
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
jne 0x76587c
mov ecx, edx
mov esi, 0x55555555
shl ecx, 0x1f
shr edx, 1
or ecx, edx
mov edx, eax
shl edx, 0x1f
shr eax, 1
or edx, eax
mov eax, ecx
shr eax, 1
mov edi, edx
and eax, esi
and edi, esi
mov esi, 0xff00ff
xor eax, edi
xor edx, eax
add eax, eax
xor ecx, eax
mov eax, edx
shr eax, 8
mov edi, ecx
and eax, esi
and edi, esi
mov esi, 0x33333333
xor eax, edi
xor ecx, eax
shl eax, 8
xor edx, eax
mov eax, ecx
shr eax, 2
mov edi, edx
and eax, esi
and edi, esi
xor eax, edi
xor edx, eax
shl eax, 2
xor ecx, eax
mov eax, edx
mov esi, ecx
shr eax, 0x10
and esi, 0xffff
xor eax, esi
mov esi, 0xf0f0f0f
xor ecx, eax
shl eax, 0x10
xor edx, eax
mov eax, ecx
shr eax, 4
mov edi, edx
and eax, esi
and edi, esi
xor eax, edi
pop edi
mov esi, eax
shl eax, 4
xor esi, edx
mov edx, dword [ebp + 8]
xor eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [edx], esi
pop esi
mov dword [ecx], eax
xor eax, eax
pop ebx
leave
ret