Function at 0x512648
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff4
mov dword [esp], eax
mov dword [esp + 4], 0xd
mov ebx, dword [esp]
add ebx, 0x10
mov edx, dword [ebx]
mov ecx, edx
and ecx, 0x80808080
mov eax, ecx
shr eax, 7
push eax
mov eax, ecx
pop ecx
sub eax, ecx
and eax, 0x1b1b1b1b
mov ecx, edx
and ecx, 0x7f7f7f7f
add ecx, ecx
xor eax, ecx
mov ecx, eax
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, eax
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, dword [esp + 8]
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
xor edx, ecx
mov esi, edx
xor esi, eax
shl esi, 0x18
mov edi, edx
xor edi, eax
shr edi, 8
or esi, edi
xor eax, dword [esp + 8]
xor ecx, eax
xor esi, ecx
mov eax, dword [esp + 8]
xor eax, edx
shl eax, 0x10
mov ecx, dword [esp + 8]
xor ecx, edx
shr ecx, 0x10
or eax, ecx
xor esi, eax
mov eax, edx
shl eax, 8
shr edx, 0x18
or eax, edx
xor esi, eax
mov dword [ebx], esi
mov edx, dword [ebx + 4]
mov ecx, edx
and ecx, 0x80808080
mov eax, ecx
shr eax, 7
push eax
mov eax, ecx
pop ecx
sub eax, ecx
and eax, 0x1b1b1b1b
mov ecx, edx
and ecx, 0x7f7f7f7f
add ecx, ecx
xor eax, ecx
mov ecx, eax
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, eax
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, dword [esp + 8]
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
xor edx, ecx
mov esi, edx
xor esi, eax
shl esi, 0x18
mov edi, edx
xor edi, eax
shr edi, 8
or esi, edi
xor eax, dword [esp + 8]
xor ecx, eax
xor esi, ecx
mov eax, dword [esp + 8]
xor eax, edx
shl eax, 0x10
mov ecx, dword [esp + 8]
xor ecx, edx
shr ecx, 0x10
or eax, ecx
xor esi, eax
mov eax, edx
shl eax, 8
shr edx, 0x18
or eax, edx
xor esi, eax
mov dword [ebx + 4], esi
mov edx, dword [ebx + 8]
mov ecx, edx
and ecx, 0x80808080
mov eax, ecx
shr eax, 7
push eax
mov eax, ecx
pop ecx
sub eax, ecx
and eax, 0x1b1b1b1b
mov ecx, edx
and ecx, 0x7f7f7f7f
add ecx, ecx
xor eax, ecx
mov ecx, eax
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, eax
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, dword [esp + 8]
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
xor edx, ecx
mov esi, edx
xor esi, eax
shl esi, 0x18
mov edi, edx
xor edi, eax
shr edi, 8
or esi, edi
xor eax, dword [esp + 8]
xor ecx, eax
xor esi, ecx
mov eax, dword [esp + 8]
xor eax, edx
shl eax, 0x10
mov ecx, dword [esp + 8]
xor ecx, edx
shr ecx, 0x10
or eax, ecx
xor esi, eax
mov eax, edx
shl eax, 8
shr edx, 0x18
or eax, edx
xor esi, eax
mov dword [ebx + 8], esi
mov edx, dword [ebx + 0xc]
mov ecx, edx
and ecx, 0x80808080
mov eax, ecx
shr eax, 7
push eax
mov eax, ecx
pop ecx
sub eax, ecx
and eax, 0x1b1b1b1b
mov ecx, edx
and ecx, 0x7f7f7f7f
add ecx, ecx
xor eax, ecx
mov ecx, eax
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, eax
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
and ecx, 0x80808080
mov esi, ecx
shr esi, 7
sub ecx, esi
and ecx, 0x1b1b1b1b
mov esi, dword [esp + 8]
and esi, 0x7f7f7f7f
add esi, esi
xor ecx, esi
xor edx, ecx
mov esi, edx
xor esi, eax
shl esi, 0x18
mov edi, edx
xor edi, eax
shr edi, 8
or esi, edi
xor eax, dword [esp + 8]
xor ecx, eax
xor esi, ecx
mov eax, dword [esp + 8]
xor eax, edx
shl eax, 0x10
mov ecx, dword [esp + 8]
xor ecx, edx
shr ecx, 0x10
or eax, ecx
xor esi, eax
mov eax, edx
shl eax, 8
shr edx, 0x18
or eax, edx
xor esi, eax
mov dword [ebx + 0xc], esi
add ebx, 0x10
dec dword [esp + 4]
jne 0x51265f
add esp, 0xc
pop edi
pop esi
pop ebx
ret