Function at 0x40fcf0
Capabilities:
Encrypt data using des

Disassembly:
push ecx
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov dword [0x490718], ebp
mov dword [0x490714], ebp
mov dword [0x48e488], ebp
mov dword [0x4831f8], ebp
mov dword [0x48a200], 0x45e180
mov dword [0x48a1fc], 0x45e190
xor ecx, ecx
xor eax, eax
mov edx, eax
sar edx, 1
mov esi, eax
and esi, 1
and edx, 0xf
shl esi, 4
or edx, esi
mov esi, eax
and esi, 0x20
or edx, esi
mov dl, byte [edx + ecx + 0x45df50]
mov byte [ecx + eax + 0x47eb40], dl
inc eax
cmp eax, 0x40
jl 0x40fd27
add ecx, 0x40
cmp ecx, 0x200
jl 0x40fd25
mov edi, 0x47eb40
xor esi, esi
mov dword [esp + 0x10], esi
mov cl, byte [edi + esi]
xor eax, eax
shl cl, 4
shl esi, 6
mov dl, byte [edi + eax + 0x40]
or dl, cl
mov ebx, esi
or ebx, eax
inc eax
cmp eax, 0x40
mov byte [ebx + ebp + 0x48a204], dl
jl 0x40fd74
mov esi, dword [esp + 0x10]
inc esi
cmp esi, 0x40
mov dword [esp + 0x10], esi
jl 0x40fd69
add edi, 0x80
add ebp, 0x1000
cmp edi, 0x47ed40
jl 0x40fd63
xor edx, edx
mov ecx, 0x10
or eax, 0xffffffff
mov edi, 0x490da8
rep stosd dword es:[edi], eax
xor eax, eax
mov al, byte [edx + 0x45de98]
dec al
mov byte [edx + 0x47ea00], al
and eax, 0xff
mov byte [eax + 0x47eac0], dl
inc edx
cmp edx, 0x40
jl 0x40fdbe
xor edx, edx
mov ecx, 0xe
or eax, 0xffffffff
mov edi, 0x490958
rep stosd dword es:[edi], eax
xor eax, eax
mov al, byte [edx + 0x45ded8]
mov cl, al
dec cl
mov byte [edx + 0x490920], cl
and eax, 0xff
mov byte [eax + 0x490da7], dl
inc edx
cmp edx, 0x38
jl 0x40fdf0
xor eax, eax
xor edx, edx
mov dl, byte [eax + 0x45df20]
mov byte [edx + 0x490957], al
inc eax
cmp eax, 0x30
jl 0x40fe15
xor ebp, ebp
xor edi, edi
xor esi, esi
mov dword [esp + 0x10], 0x490958
xor ebx, ebx
xor eax, eax
mov dword [esi + 0x47f1f8], eax
mov dword [esi + 0x4811f8], eax
mov dword [esi + 0x4841fc], eax
mov dword [esi + 0x4871fc], eax
xor edx, edx
test byte [edx + 0x45e1f0], bl
je 0x40feb1
xor ecx, ecx
mov cl, byte [edx + ebp + 0x47eac0]
cmp ecx, 0x20
jge 0x40fe7a
mov ecx, dword [ecx*4 + 0x45e170]
or dword [esi + 0x47f1f8], ecx
jmp 0x40fe87
mov ecx, dword [ecx*4 + 0x45e0f0]
or dword [esi + 0x4811f8], ecx
xor ecx, ecx
mov cl, byte [edx + ebp + 0x47ea00]
cmp ecx, 0x20
jge 0x40fea4
mov ecx, dword [ecx*4 + 0x45e170]
or dword [esi + 0x4841fc], ecx
jmp 0x40feb1
mov ecx, dword [ecx*4 + 0x45e0f0]
or dword [esi + 0x4871fc], ecx
inc edx
cmp edx, 8
jl 0x40fe55
inc ebx
add esi, 4
cmp ebx, 0x100
jl 0x40fe39
xor ebx, ebx
mov eax, edi
xor edi, edi
mov dword [eax + 0x4861fc], edi
mov dword [eax + 0x4831fc], edi
xor edx, edx
test byte [edx + 0x45e1f1], bl
je 0x40ff15
xor ecx, ecx
mov cl, byte [edx + ebp + 0x490da8]
cmp ecx, 0xff
je 0x40ff15
cmp ecx, 0x1c
jge 0x40ff08
mov ecx, dword [ecx*4 + 0x45e180]
or dword [eax + 0x4861fc], ecx
jmp 0x40ff15
mov ecx, dword [ecx*4 + 0x45e110]
or dword [eax + 0x4831fc], ecx
inc edx
cmp edx, 7
jl 0x40fedb
mov dword [eax + 0x48f714], edi
mov dword [eax + 0x48e714], edi
xor edx, edx
test byte [edx + 0x45e1f1], bl
je 0x40ff63
mov edi, dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [edi + edx]
cmp ecx, 0xff
je 0x40ff63
cmp ecx, 0x18
jge 0x40ff56
mov ecx, dword [ecx*4 + 0x45e190]
or dword [eax + 0x48f714], ecx
jmp 0x40ff63
mov ecx, dword [ecx*4 + 0x45e130]
or dword [eax + 0x48e714], ecx
inc edx
cmp edx, 7
jl 0x40ff29
inc ebx
add eax, 4
cmp ebx, 0x80
jl 0x40fecb
mov edi, eax
mov eax, dword [esp + 0x10]
add eax, 7
add ebp, 8
cmp eax, 0x490990
mov dword [esp + 0x10], eax
jl 0x40fe37
xor eax, eax
xor edx, edx
mov dl, byte [eax + 0x45e150]
mov byte [edx + 0x48e6f3], al
inc eax
cmp eax, 0x20
jl 0x40ff96
mov esi, 0x48e6f4
mov eax, 0x4891fc
xor edx, edx
mov dword [eax], 0
xor ecx, ecx
test byte [ecx + 0x45e1f0], dl
je 0x40ffd4
xor ebx, ebx
mov bl, byte [esi + ecx]
mov edi, dword [ebx*4 + 0x45e170]
or dword [eax], edi
inc ecx
cmp ecx, 8
jl 0x40ffbe
inc edx
add eax, 4
cmp edx, 0x100
jl 0x40ffb6
add esi, 8
cmp eax, 0x48a1fc
jl 0x40ffb4
pop edi
pop esi
pop ebp
mov dword [0x490ffc], 1
pop ebx
pop ecx
ret