Function at 0x4d8170
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov eax, dword [ebx + 0x10b0]
sub eax, 2
je 0x4d83b0
sub eax, 1
je 0x4d82bf
sub eax, 1
jne 0x4d8463
mov edi, dword [ebp + 0xc]
add ebx, 0xb8
mov dword [ebp + 8], eax
movzx edx, al
lea ebx, [ebx + 0x10]
movzx eax, byte [edi + 0xc]
movzx esi, byte [edx + 0x58d4e8]
xor eax, esi
movzx edx, byte [edx + 0x58d3e8]
movzx ecx, byte [eax + 0x58d4e8]
movzx eax, byte [edi + 8]
xor ecx, eax
movzx eax, byte [edi + 4]
movzx ecx, byte [ecx + 0x58d3e8]
xor ecx, eax
movzx eax, byte [edi]
movzx ecx, byte [ecx + 0x58d3e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58d5e8]
mov dword [ebx - 0x18], eax
mov eax, dword [edi + 0xc]
shr eax, 8
movzx eax, al
xor eax, edx
movzx ecx, byte [eax + 0x58d4e8]
mov eax, dword [edi + 8]
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, dword [edi + 4]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x58d4e8]
xor ecx, eax
mov eax, dword [edi]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x58d3e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58d9e8]
mov dword [ebx - 0x14], eax
movzx eax, byte [edi + 0xe]
xor eax, edx
movzx ecx, byte [eax + 0x58d3e8]
movzx eax, byte [edi + 0xa]
xor ecx, eax
movzx eax, byte [edi + 6]
movzx ecx, byte [ecx + 0x58d3e8]
xor ecx, eax
movzx eax, byte [edi + 2]
movzx ecx, byte [ecx + 0x58d4e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58dde8]
mov dword [ebx - 0x10], eax
movzx eax, byte [edi + 0xf]
xor eax, esi
movzx ecx, byte [eax + 0x58d3e8]
movzx eax, byte [edi + 0xb]
xor ecx, eax
movzx eax, byte [edi + 7]
movzx ecx, byte [ecx + 0x58d4e8]
xor ecx, eax
movzx eax, byte [edi + 3]
movzx ecx, byte [ecx + 0x58d4e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58e1e8]
mov dword [ebx - 0xc], eax
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
cmp eax, 0x100
jb 0x4d81a6
pop edi
pop esi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp + 8], eax
add ebx, 0xb8
nop dword [eax]
movzx esi, al
lea ebx, [ebx + 0x10]
movzx eax, byte [edi + 8]
movzx edx, byte [esi + 0x58d4e8]
xor eax, edx
movzx ecx, byte [eax + 0x58d3e8]
movzx eax, byte [edi + 4]
xor ecx, eax
movzx eax, byte [edi]
movzx ecx, byte [ecx + 0x58d3e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58d5e8]
mov dword [ebx - 0x18], eax
mov eax, dword [edi + 8]
shr eax, 8
movzx eax, al
xor eax, edx
movzx edx, byte [esi + 0x58d3e8]
movzx ecx, byte [eax + 0x58d4e8]
mov eax, dword [edi + 4]
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, dword [edi]
shr eax, 8
movzx eax, al
movzx ecx, byte [ecx + 0x58d3e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58d9e8]
mov dword [ebx - 0x14], eax
movzx eax, byte [edi + 0xa]
xor eax, edx
movzx ecx, byte [eax + 0x58d3e8]
movzx eax, byte [edi + 6]
xor ecx, eax
movzx eax, byte [edi + 2]
movzx ecx, byte [ecx + 0x58d4e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58dde8]
mov dword [ebx - 0x10], eax
movzx eax, byte [edi + 0xb]
xor eax, edx
movzx ecx, byte [eax + 0x58d4e8]
movzx eax, byte [edi + 7]
xor ecx, eax
movzx eax, byte [edi + 3]
movzx ecx, byte [ecx + 0x58d4e8]
xor ecx, eax
mov eax, dword [ecx*4 + 0x58e1e8]
mov dword [ebx - 0xc], eax
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
cmp eax, 0x100
jb 0x4d82d0
pop edi
pop esi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp + 8], ecx
add ebx, 0xb8
nop
movzx esi, cl
lea ebx, [ebx + 0x10]
movzx ecx, byte [eax + 4]
movzx edi, byte [esi + 0x58d3e8]
xor ecx, edi
movzx esi, byte [esi + 0x58d4e8]
movzx edx, byte [ecx + 0x58d3e8]
movzx ecx, byte [eax]
xor edx, ecx
mov ecx, dword [edx*4 + 0x58d5e8]
mov dword [ebx - 0x18], ecx
mov ecx, dword [eax + 4]
shr ecx, 8
movzx ecx, cl
xor ecx, esi
movzx edx, byte [ecx + 0x58d3e8]
mov ecx, dword [eax]
shr ecx, 8
movzx ecx, cl
xor edx, ecx
mov ecx, dword [edx*4 + 0x58d9e8]
mov dword [ebx - 0x14], ecx
movzx ecx, byte [eax + 6]
xor ecx, edi
movzx edx, byte [ecx + 0x58d4e8]
movzx ecx, byte [eax + 2]
xor edx, ecx
mov ecx, dword [edx*4 + 0x58dde8]
mov dword [ebx - 0x10], ecx
movzx ecx, byte [eax + 7]
xor ecx, esi
movzx edx, byte [ecx + 0x58d4e8]
movzx ecx, byte [eax + 3]
xor edx, ecx
mov ecx, dword [edx*4 + 0x58e1e8]
mov dword [ebx - 0xc], ecx
mov ecx, dword [ebp + 8]
inc ecx
mov dword [ebp + 8], ecx
cmp ecx, 0x100
jb 0x4d83c0
pop edi
pop esi
pop ebx
pop ebp
ret