Function at 0x4d4150
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1a0
mov dword [esp + 4], ecx
mov eax, dword [0x5f3418]
xor eax, ebp
mov dword [esp + 0x198], eax
xor eax, eax
dec eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x100], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], eax
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x20], xmm0
movdqa xmmword [esp + 0x10], xmm0
xor eax, eax
movzx ecx, byte [eax + 0x5e2577]
mov esi, ecx
and esi, 7
shr ecx, 3
movzx ecx, byte [edx + ecx]
test word [esi + esi + 0x5e25b0], cx
setne byte [esp + eax + 0xd0]
inc eax
cmp eax, 0x38
jne 0x4d41ff
xor ecx, ecx
lea esi, [ecx + ecx]
lea eax, [ecx + ecx]
inc eax
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + esi*4 + 0x14], eax
mov dword [esp + ecx*8 + 0x10], eax
mov dword [esp + 0xc], ecx
movzx edx, byte [ecx + 0x5e25c0]
mov eax, 0xffffffe4
mov ecx, edx
mov ebx, ecx
sub ebx, 0x1c
cmovb ebx, ecx
mov bl, byte [esp + ebx + 0xd0]
mov byte [esp + eax + 0xac], bl
inc ecx
inc eax
jne 0x4d4251
lea eax, [edx + 0x1c]
xor ebx, ebx
lea ecx, [eax + ebx]
lea edi, [edx + ebx]
cmp ecx, 0x38
cmovb edi, ecx
mov cl, byte [esp + edi + 0xd0]
mov byte [esp + ebx + 0xac], cl
inc ebx
cmp ebx, 0x1c
jne 0x4d4270
xor ecx, ecx
mov ebx, 0xffffffe8
xor eax, eax
mov edi, dword [esp + 8]
movzx edx, byte [ebx + 0x5e25e8]
cmp byte [esp + edx + 0x90], 0
je 0x4d42b9
or eax, dword [ebx*4 + 0x5e2660]
mov dword [esp + esi*4 + 0x10], eax
movzx edx, byte [ebx + 0x5e2600]
cmp byte [esp + edx + 0x90], 0
je 0x4d42d5
or ecx, dword [ebx*4 + 0x5e2660]
mov dword [esp + edi*4 + 0x10], ecx
inc ebx
jne 0x4d429d
mov ecx, dword [esp + 0xc]
inc ecx
cmp ecx, 0x10
jne 0x4d422a
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x170], xmm0
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x150], xmm0
movdqa xmmword [esp + 0x140], xmm0
movdqa xmmword [esp + 0x130], xmm0
movdqa xmmword [esp + 0x120], xmm0
movdqa xmmword [esp + 0x110], xmm0
xor eax, eax
mov edx, dword [esp + eax*8 + 0x10]
mov ebx, dword [esp + eax*8 + 0x14]
mov esi, edx
shl esi, 6
mov ecx, 0x3f000000
and esi, ecx
mov ecx, edx
shl ecx, 0xa
mov edi, 0x3f0000
and ecx, edi
or ecx, esi
mov esi, ebx
shr esi, 0xa
mov edi, 0x3f00
and esi, edi
or esi, ecx
mov ecx, ebx
shr ecx, 6
and ecx, 0x3f
or ecx, esi
mov dword [esp + eax*8 + 0x110], ecx
mov ecx, edx
shl ecx, 0xc
mov esi, 0x3f000000
and ecx, esi
and edx, 0x3f
shl edx, 0x10
or edx, ecx
mov ecx, ebx
and ebx, 0x3f
or ebx, edx
shr ecx, 4
and ecx, edi
or ebx, ecx
mov dword [esp + eax*8 + 0x114], ebx
inc eax
cmp eax, 0x10
jne 0x4d4334
mov edx, dword [esp + 4]
lea eax, [edx + 0x80]
lea ecx, [edx + 4]
cmp eax, ecx
cmova ecx, eax
mov eax, edx
not eax
add eax, ecx
and eax, 0xfffffffc
add eax, 4
lea ecx, [esp + 0x110]
push eax
push ecx
push edx
call fcn.00518c30
add esp, 0xc
mov ecx, dword [esp + 0x198]
xor ecx, ebp
call fcn.00512ee3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret