Function at 0x4d8a3f
Capabilities:
Encode data using xor

Disassembly:
push ebx
push ebp
mov ebp, dword [esp + 0xc]
mov ebx, edx
mov eax, ebp
push esi
mov esi, ecx
sub eax, 0x80
je 0x4d8a75
sub eax, 0x40
je 0x4d8a6d
sub eax, 0x40
je 0x4d8a65
push 0xffffffffffffffe0
pop eax
jmp 0x4d8cae
mov dword [esi], 0xe
jmp 0x4d8a7b
mov dword [esi], 0xc
jmp 0x4d8a7b
mov dword [esi], 0xa
cmp dword [0x893e4c], 0
jne 0x4d8a93
call fcn.004d87e0
mov dword [0x893e4c], 1
push edi
shr ebp, 5
lea edx, [esi + 8]
xor edi, edi
mov dword [esi + 4], edx
test ebp, ebp
je 0x4d8ad1
add ebx, 2
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx]
lea ebx, [ebx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx - 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx - 6]
shl ecx, 8
or ecx, eax
mov dword [edx + edi*4], ecx
inc edi
cmp edi, ebp
jb 0x4d8aa6
xor edi, edi
mov eax, dword [esi]
sub eax, 0xa
je 0x4d8c3e
dec eax
sub eax, 1
je 0x4d8bbf
dec eax
sub eax, 1
jne 0x4d8cab
mov esi, dword [edx]
add edx, 0x1e
movzx eax, byte [edx + 1]
movzx ecx, byte [eax + 0x893e90]
movzx eax, byte [edx - 2]
movzx eax, byte [eax + 0x893e90]
shl eax, 8
xor ecx, eax
movzx eax, byte [edx]
shl ecx, 8
lea edx, [edx + 0x20]
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
movzx eax, byte [edx - 0x21]
shl ecx, 8
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
mov eax, dword [edx - 0x3a]
xor ecx, dword [edi + 0x894490]
add edi, 4
xor esi, ecx
mov ecx, dword [edx - 0x36]
xor eax, esi
mov dword [edx - 0x1e], esi
xor ecx, eax
mov dword [edx - 0x1a], eax
mov eax, dword [edx - 0x32]
xor eax, ecx
mov dword [edx - 0x16], ecx
mov dword [edx - 0x12], eax
movzx eax, byte [edx - 0xf]
movzx ecx, byte [eax + 0x893e90]
movzx eax, byte [edx - 0x10]
shl ecx, 8
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
movzx eax, byte [edx - 0x11]
shl ecx, 8
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
movzx eax, byte [edx - 0x12]
shl ecx, 8
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
mov eax, dword [edx - 0x2a]
xor ecx, dword [edx - 0x2e]
xor eax, ecx
mov dword [edx - 0xe], ecx
mov ecx, dword [edx - 0x26]
xor ecx, eax
mov dword [edx - 0xa], eax
mov eax, dword [edx - 0x22]
xor eax, ecx
mov dword [edx - 6], ecx
mov dword [edx - 2], eax
cmp edi, 0x1c
jb 0x4d8af5
jmp 0x4d8cab
mov esi, dword [edx]
add edx, 0x16
movzx eax, byte [edx + 1]
movzx ecx, byte [eax + 0x893e90]
movzx eax, byte [edx - 2]
movzx eax, byte [eax + 0x893e90]
shl eax, 8
xor ecx, eax
movzx eax, byte [edx]
shl ecx, 8
lea edx, [edx + 0x18]
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
movzx eax, byte [edx - 0x19]
shl ecx, 8
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
mov eax, dword [edx - 0x2a]
xor ecx, dword [edi + 0x894490]
add edi, 4
xor esi, ecx
mov ecx, dword [edx - 0x26]
xor eax, esi
mov dword [edx - 0x16], esi
xor ecx, eax
mov dword [edx - 0x12], eax
mov eax, dword [edx - 0x22]
xor eax, ecx
mov dword [edx - 0xe], ecx
mov ecx, dword [edx - 0x1e]
xor ecx, eax
mov dword [edx - 0xa], eax
mov eax, dword [edx - 0x1a]
xor eax, ecx
mov dword [edx - 6], ecx
mov dword [edx - 2], eax
cmp edi, 0x20
jb 0x4d8bc4
jmp 0x4d8cab
mov esi, dword [edx]
add edx, 0xe
movzx eax, byte [edx + 1]
movzx ecx, byte [eax + 0x893e90]
movzx eax, byte [edx - 2]
movzx eax, byte [eax + 0x893e90]
shl eax, 8
xor ecx, eax
movzx eax, byte [edx]
shl ecx, 8
lea edx, [edx + 0x10]
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
movzx eax, byte [edx - 0x11]
shl ecx, 8
movzx eax, byte [eax + 0x893e90]
xor ecx, eax
mov eax, dword [edx - 0x1a]
xor ecx, dword [edi + 0x894490]
add edi, 4
xor esi, ecx
mov ecx, dword [edx - 0x16]
xor eax, esi
mov dword [edx - 0xe], esi
xor ecx, eax
mov dword [edx - 0xa], eax
mov eax, dword [edx - 0x12]
xor eax, ecx
mov dword [edx - 6], ecx
mov dword [edx - 2], eax
cmp edi, 0x28
jb 0x4d8c43
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret