Function at 0x4d3e3e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x308
mov eax, dword [0x667710]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor edx, edx
xor eax, eax
push esi
inc edx
push edi
mov ebx, edx
mov edi, 0x11b
mov byte [ebp + eax - 0x304], bl
mov byte [ebp + eax - 0x205], bl
mov byte [ebp + ebx - 0x104], al
inc eax
mov dword [ebp - 0x308], eax
mov eax, ebx
and al, 0x80
movzx ecx, al
lea eax, [ebx + ebx]
neg ecx
sbb ecx, ecx
and ecx, edi
xor ecx, eax
mov eax, dword [ebp - 0x308]
xor ebx, ecx
cmp ebx, edx
jne 0x4d3e60
xor esi, esi
mov eax, edx
mov byte [esi + 0x66dd90], dl
and al, 0x80
movzx ecx, al
neg ecx
sbb ecx, ecx
add edx, edx
and ecx, edi
xor edx, ecx
inc esi
cmp esi, 0x1e
jb 0x4d3e9c
xor edx, edx
test dl, dl
je 0x4d3ed7
movzx esi, dl
lea ecx, [ebp - 0x205]
movzx eax, byte [ebp + esi - 0x104]
sub ecx, eax
movzx ebx, byte [ecx]
jmp 0x4d3edb
xor ebx, ebx
xor esi, esi
lea eax, [ebx + ebx]
xor eax, ebx
add eax, eax
xor eax, ebx
add eax, eax
xor eax, ebx
add eax, eax
xor ebx, eax
mov ecx, ebx
shr ecx, 8
xor cl, bl
xor cl, 0x63
mov byte [edx + 0x66db90], cl
mov byte [edx*4 + 0x66e9b1], cl
mov byte [edx*4 + 0x66e9b0], cl
mov byte [edx*4 + 0x66e5b3], cl
mov byte [edx*4 + 0x66e5b0], cl
mov byte [edx*4 + 0x66e1b3], cl
mov byte [edx*4 + 0x66e1b2], cl
mov byte [edx*4 + 0x66ddb2], cl
mov byte [edx*4 + 0x66ddb1], cl
je 0x4d3f4a
movzx edi, cl
movzx eax, byte [ebp + edi - 0x104]
mov al, byte [ebp + eax - 0x2eb]
jmp 0x4d3f4e
xor edi, edi
xor al, al
mov byte [edx*4 + 0x66e9b3], al
mov byte [edx*4 + 0x66e5b2], al
mov byte [edx*4 + 0x66e1b1], al
mov byte [edx*4 + 0x66ddb0], al
test cl, cl
je 0x4d3f7f
movzx eax, byte [ebp + edi - 0x104]
mov al, byte [ebp + eax - 0x303]
jmp 0x4d3f81
xor al, al
mov byte [edx*4 + 0x66e9b2], al
mov byte [edx*4 + 0x66e5b1], al
mov byte [edx*4 + 0x66e1b0], al
mov byte [edx*4 + 0x66ddb3], al
mov eax, esi
shl eax, 3
xor eax, esi
shl eax, 2
xor eax, esi
lea ebx, [eax + eax]
mov ecx, ebx
shr ecx, 8
mov al, cl
xor al, bl
cmp al, 5
je 0x4d3fd5
movzx eax, bl
xor eax, 5
xor eax, ecx
lea ecx, [ebp - 0x205]
movzx eax, byte [ebp + eax - 0x104]
sub ecx, eax
mov bl, byte [ecx]
jmp 0x4d3fd7
xor bl, bl
mov byte [edx + 0x66dc90], bl
test bl, bl
je 0x4d3ff5
movzx ecx, bl
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x29c]
jmp 0x4d3ff9
xor ecx, ecx
xor al, al
mov byte [edx*4 + 0x66f9b2], al
mov byte [edx*4 + 0x66f5b1], al
mov byte [edx*4 + 0x66f1b0], al
mov byte [edx*4 + 0x66edb3], al
mov byte [ecx*4 + 0x6709b2], al
mov byte [ecx*4 + 0x6705b1], al
mov byte [ecx*4 + 0x6701b0], al
mov byte [ecx*4 + 0x66fdb3], al
test bl, bl
je 0x4d4046
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x23d]
jmp 0x4d4048
xor al, al
mov byte [edx*4 + 0x66f9b0], al
mov byte [edx*4 + 0x66f5b3], al
mov byte [edx*4 + 0x66f1b2], al
mov byte [edx*4 + 0x66edb1], al
mov byte [ecx*4 + 0x6709b0], al
mov byte [ecx*4 + 0x6705b3], al
mov byte [ecx*4 + 0x6701b2], al
mov byte [ecx*4 + 0x66fdb1], al
test bl, bl
je 0x4d4095
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x216]
jmp 0x4d4097
xor al, al
mov byte [edx*4 + 0x66f9b1], al
mov byte [edx*4 + 0x66f5b0], al
mov byte [edx*4 + 0x66f1b3], al
mov byte [edx*4 + 0x66edb2], al
mov byte [ecx*4 + 0x6709b1], al
mov byte [ecx*4 + 0x6705b0], al
mov byte [ecx*4 + 0x6701b3], al
mov byte [ecx*4 + 0x66fdb2], al
test bl, bl
je 0x4d40e4
movzx eax, byte [ebp + ecx - 0x104]
mov al, byte [ebp + eax - 0x225]
jmp 0x4d40e6
xor al, al
mov byte [edx*4 + 0x66f9b3], al
mov byte [edx*4 + 0x66f5b2], al
mov byte [edx*4 + 0x66f1b1], al
mov byte [edx*4 + 0x66edb0], al
inc edx
mov byte [ecx*4 + 0x6709b3], al
mov byte [ecx*4 + 0x6705b2], al
mov byte [ecx*4 + 0x6701b1], al
mov byte [ecx*4 + 0x66fdb0], al
cmp edx, 0x100
jl 0x4d3ebb
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004da623
leave
ret