Function at 0x609f62
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov dword [esp + 4], 0x78
lea eax, [ebp - 0x34]
mov dword [esp], eax
call fcn.006acf3c
lea eax, [ebp - 0x34]
mov dword [esp], eax
call fcn.006acfb8
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
add eax, 0x38
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
add eax, 0x38
mov dword [ebp - 0x20], eax
mov ebx, 0
jmp 0x609fe8
mov eax, ebx
mov al, byte [eax + str.91__]
movzx eax, al
lea edi, [eax - 1]
mov eax, edi
and eax, 7
mov dword [ebp - 0x1c], eax
mov eax, ebx
mov edx, eax
add edx, dword [ebp - 0x28]
mov eax, edi
sar eax, 3
add eax, dword [ebp + 0x10]
mov al, byte [eax]
movzx ecx, al
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax*4 + 0x7fbd40]
and eax, ecx
test eax, eax
je 0x609fe3
mov al, 1
jmp 0x609fe5
mov al, 0
mov byte [edx], al
inc ebx
cmp ebx, 0x37
setle al
test al, al
jne 0x609fa5
mov esi, 0
jmp 0x60a166
mov dword [esp + 8], 8
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov ebx, 0
jmp 0x60a057
mov eax, ebx
mov edx, eax
add edx, dword [ebp - 0x24]
mov eax, esi
mov al, byte [eax + 0x7fbcd8]
movzx eax, al
lea edi, [eax + ebx]
cmp ebx, 0x1b
jg 0x60a03f
mov eax, 0x1c
jmp 0x60a044
mov eax, 0x38
cmp edi, eax
jl 0x60a04d
lea eax, [edi - 0x1c]
jmp 0x60a04f
mov eax, edi
add eax, dword [ebp - 0x28]
mov al, byte [eax]
mov byte [edx], al
inc ebx
cmp ebx, 0x37
setle al
test al, al
jne 0x60a01e
mov ebx, 0
jmp 0x60a0b8
mov eax, ebx
mov al, byte [eax + 0x7fbd00]
movzx eax, al
dec eax
add eax, dword [ebp - 0x24]
mov al, byte [eax]
test al, al
je 0x60a0b7
mov edx, 6
mov eax, ebx
mov ecx, edx
cdq
idiv ecx
mov edi, edx
mov edx, 0x2aaaaaab
mov eax, ebx
imul edx
mov eax, ebx
sar eax, 0x1f
sub edx, eax
mov eax, edx
add eax, dword [ebp - 0x20]
add edx, dword [ebp - 0x20]
mov dl, byte [edx]
mov cl, dl
mov edx, edi
mov edx, dword [edx*4 + 0x7fbd40]
sar edx, 2
or edx, ecx
mov byte [eax], dl
inc ebx
cmp ebx, 0x2f
setle al
test al, al
jne 0x60a068
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.006adc00
lea edx, [esi*8]
lea edx, [eax + edx]
mov eax, dword [ebp - 0x20]
mov al, byte [eax]
movzx eax, al
mov ecx, eax
shl ecx, 0x18
mov eax, dword [ebp - 0x20]
add eax, 2
mov al, byte [eax]
movzx eax, al
shl eax, 0x10
or ecx, eax
mov eax, dword [ebp - 0x20]
add eax, 4
mov al, byte [eax]
movzx eax, al
shl eax, 8
or ecx, eax
mov eax, dword [ebp - 0x20]
add eax, 6
mov al, byte [eax]
movzx eax, al
or eax, ecx
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.006adc00
mov edx, esi
shl edx, 1
inc edx
shl edx, 2
add eax, edx
mov edx, dword [ebp - 0x20]
inc edx
mov dl, byte [edx]
movzx edx, dl
mov ecx, edx
shl ecx, 0x18
mov edx, dword [ebp - 0x20]
add edx, 3
mov dl, byte [edx]
movzx edx, dl
shl edx, 0x10
or ecx, edx
mov edx, dword [ebp - 0x20]
add edx, 5
mov dl, byte [edx]
movzx edx, dl
shl edx, 8
or ecx, edx
mov edx, dword [ebp - 0x20]
add edx, 7
mov dl, byte [edx]
movzx edx, dl
or edx, ecx
mov dword [eax], edx
inc esi
cmp esi, 0xf
setle al
test al, al
jne 0x609ffc
cmp dword [ebp + 0xc], 1
jne 0x60a1ff
mov esi, 0
jmp 0x60a1f5
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.006adc00
mov edx, 0x1e
sub edx, esi
shl edx, 2
lea ebx, [eax + edx]
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.006adc00
mov edx, esi
shl edx, 2
add eax, edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0075cbb8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.006adc00
mov edx, 0x1f
sub edx, esi
shl edx, 2
lea ebx, [eax + edx]
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.006adc00
mov edx, esi
inc edx
shl edx, 2
add eax, edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.0075cbb8
add esi, 2
cmp esi, 0xf
setle al
test al, al
jne 0x60a185
lea eax, [ebp - 0x34]
mov dword [esp], eax
call fcn.006acf70
add esp, 0x4c
pop ebx
pop esi
pop edi
leave
ret