Function at 0x8d1e90
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov edx, dword [edi]
mov edi, dword [edi + 4]
mov eax, edx
mov ebx, edx
shr ebx, 0x10
and eax, 0xff0000
or eax, ebx
mov ebx, edx
and ebx, 0xff00
shl edx, 0x10
or ebx, edx
shl ebx, 8
shr eax, 8
or eax, ebx
xor eax, dword [ecx + 0x1000]
mov edx, edi
mov ebx, edi
shr ebx, 0x10
and edx, 0xff0000
or edx, ebx
mov ebx, edi
and ebx, 0xff00
shl edi, 0x10
lea esi, [ecx + 0x1000]
or ebx, edi
shr edx, 8
shl ebx, 8
add esi, 4
or edx, ebx
mov dword [ebp - 4], 2
lea esp, [esp]
mov edi, eax
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, eax
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, ah
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, eax
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
xor edi, dword [esi]
xor edx, edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, edx
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, dh
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, edx
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
xor edi, dword [esi + 4]
xor eax, edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, eax
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, ah
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, eax
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
xor edi, dword [esi + 8]
xor edx, edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, edx
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, dh
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, edx
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
xor edi, dword [esi + 0xc]
xor eax, edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, eax
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, ah
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, eax
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
xor edi, dword [esi + 0x10]
xor edx, edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, edx
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, dh
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, edx
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
add esi, 0x20
xor edi, dword [esi - 0xc]
xor eax, edi
mov edi, eax
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, eax
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, ah
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, eax
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
xor edi, dword [esi - 8]
xor edx, edi
mov edi, edx
shr edi, 0x10
and edi, 0xff
mov edi, dword [ecx + edi*4 + 0x400]
mov ebx, edx
shr ebx, 0x18
add edi, dword [ecx + ebx*4]
movzx ebx, dh
xor edi, dword [ecx + ebx*4 + 0x800]
mov ebx, edx
and ebx, 0xff
add edi, dword [ecx + ebx*4 + 0xc00]
xor edi, dword [esi - 4]
xor eax, edi
sub dword [ebp - 4], 1
jne 0x8d1f00
mov esi, dword [esi]
xor esi, edx
mov edx, esi
mov ecx, esi
and edx, 0xff0000
shr ecx, 0x10
or edx, ecx
mov ecx, esi
shl esi, 0x10
and ecx, 0xff00
or ecx, esi
shr edx, 8
shl ecx, 8
or edx, ecx
mov ecx, dword [ebp + 8]
mov dword [ecx], edx
mov edx, eax
mov esi, eax
shr esi, 0x10
and edx, 0xff0000
or edx, esi
mov esi, eax
and esi, 0xff00
shl eax, 0x10
or esi, eax
shl esi, 8
shr edx, 8
pop edi
or edx, esi
pop esi
mov dword [ecx + 4], edx
pop ebx
mov esp, ebp
pop ebp
ret 4