Function at 0x40cab0
Capabilities:
Encrypt data using des

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
push edi
xor eax, eax
mov ecx, 0x4abf5a
nop
mov dl, byte [eax + esi]
and dl, 1
mov byte [ecx - 2], dl
mov dl, byte [eax + esi]
sar dl, 1
and dl, 1
mov byte [ecx - 1], dl
mov dl, byte [eax + esi]
sar dl, 2
and dl, 1
mov byte [ecx], dl
mov dl, byte [eax + esi]
sar dl, 3
and dl, 1
mov byte [ecx + 1], dl
mov dl, byte [eax + esi]
sar dl, 4
and dl, 1
mov byte [ecx + 2], dl
mov dl, byte [eax + esi]
sar dl, 5
and dl, 1
mov byte [ecx + 3], dl
mov dl, byte [eax + esi]
sar dl, 6
and dl, 1
mov byte [ecx + 4], dl
mov dl, byte [eax + esi]
sar dl, 7
and dl, 1
mov byte [ecx + 5], dl
inc eax
add ecx, 8
cmp eax, 8
jb 0x40cac0
xor eax, eax
jmp 0x40cb30
movsx ecx, byte [eax + str.91__]
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c359]
mov byte [eax + 0x4abdd8], dl
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c35a]
mov byte [eax + 0x4abdd9], dl
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c35b]
mov byte [eax + 0x4abdda], dl
mov dl, byte [ecx + 0x4abf57]
mov byte [eax + 0x4abddb], dl
add eax, 4
cmp eax, 0x38
jb 0x40cb30
mov eax, dword [esp + 0x14]
mov ebp, dword [0x4a9418]
mov ecx, 0xe
mov esi, 0x4abdd8
mov edi, 0x4abf58
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov dword [esp + 0x18], eax
jmp 0x40cbb0
movsx eax, byte [ebx + 0x48c3c0]
xor edx, edx
mov ecx, 0x1c
div ecx
cmp edx, 0x100
ja 0x40cc13
mov ecx, edx
mov eax, ecx
shr ecx, 2
mov esi, ebp
mov edi, 0x4abe58
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x1c
sub ecx, edx
mov eax, ecx
shr ecx, 2
lea esi, [edx + ebp]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
sub edi, edx
mov ecx, edx
shr ecx, 2
add edi, 0x1c
mov esi, 0x4abe58
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movsx eax, byte [ebx + 0x48c3c0]
xor edx, edx
mov ecx, 0x1c
div ecx
cmp edx, 0x100
ja 0x40cc82
mov esi, dword [0x4a9414]
mov ecx, edx
mov eax, ecx
shr ecx, 2
mov edi, 0x4abe58
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x4a9414]
mov ecx, 0x1c
sub ecx, edx
mov eax, ecx
shr ecx, 2
lea esi, [edi + edx]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [0x4a9414]
sub edi, edx
mov ecx, edx
shr ecx, 2
add edi, 0x1c
mov esi, 0x4abe58
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
jmp 0x40cc90
movsx ecx, byte [eax + 0x48c390]
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c391]
mov byte [eax + 0x4abdd8], dl
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c392]
mov byte [eax + 0x4abdd9], dl
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c393]
mov byte [eax + 0x4abdda], dl
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c394]
mov byte [eax + 0x4abddb], dl
mov dl, byte [ecx + 0x4abf57]
movsx ecx, byte [eax + 0x48c395]
mov byte [eax + 0x4abddc], dl
mov dl, byte [ecx + 0x4abf57]
mov byte [eax + 0x4abddd], dl
add eax, 6
cmp eax, 0x30
jb 0x40cc90
mov edi, dword [esp + 0x18]
mov ecx, 0xc
mov esi, 0x4abdd8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18]
inc ebx
add ecx, 0x30
cmp ebx, 0x10
mov dword [esp + 0x18], ecx
jl 0x40cbb0
pop edi
pop esi
pop ebp
pop ebx
ret 8