Function at 0x4890b0
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
lea esp, [esp - 0x104]
push ebx
push esi
push edi
mov edi, edx
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x104], eax
mov al, byte [ebp + 8]
mov byte [ebp - 0x100], al
lea eax, [ebp - 0xf0]
xor cl, cl
mov edx, pe_nt_image_headers32
call fcn.00402d80
mov edx, 0xffffffff
lea esi, [esi]
add edx, 1
mov al, byte [edx + str.80_]
movzx ecx, al
shr ecx, 3
add ecx, ebx
movzx esi, byte [edi + ecx]
and ax, 7
movsx ecx, ax
mov eax, pe_nt_image_headers32
shr eax, cl
and esi, eax
je 0x489126
mov byte [ebp + edx - 0x38], 1
jmp 0x48912b
mov byte [ebp + edx - 0x38], 0
cmp edx, 0x37
jb 0x4890f8
mov ebx, 0xffffffff
lea esi, [esi]
add ebx, 1
mov al, byte [ebp - 0x100]
test al, al
je 0x489169
mov esi, ebx
xor edi, edi
mov eax, 0xf
sub eax, esi
mov esi, eax
mov eax, 0
sbb eax, edi
mov edi, eax
shld edi, esi, 1
shl esi, 1
mov dword [ebp - 0xfc], esi
jmp 0x489173
mov eax, ebx
shl eax, 1
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xfc]
lea esi, [eax + 1]
mov dword [ebp - 0xf8], esi
mov ecx, 0xffffffff
nop
add ecx, 1
movzx eax, byte [ebx + 0x4efeb0]
lea edx, [eax + ecx]
cmp edx, 0x1c
jae 0x4891a4
mov al, byte [ebp + edx - 0x38]
mov byte [ebp + ecx - 0x70], al
jmp 0x4891ac
mov al, byte [ebp + edx - 0x54]
mov byte [ebp + ecx - 0x70], al
cmp ecx, 0x1b
jb 0x489188
mov ecx, 0x1b
mov esi, esi
add ecx, 1
movzx eax, byte [ebx + 0x4efeb0]
lea edx, [eax + ecx]
cmp edx, 0x38
jae 0x4891d4
mov al, byte [ebp + edx - 0x38]
mov byte [ebp + ecx - 0x70], al
jmp 0x4891dc
mov al, byte [ebp + edx - 0x54]
mov byte [ebp + ecx - 0x70], al
cmp ecx, 0x37
jb 0x4891b8
mov edx, 0x1000000
mov ecx, 0xffffffff
lea esi, [esi]
nop
add ecx, 1
shr edx, 1
movzx eax, byte [ecx + 0x4ed560]
cmp byte [ebp + eax - 0x70], 0
je 0x489224
mov eax, dword [ebp - 0xfc]
mov edi, dword [ebp + eax*4 - 0xf0]
mov esi, edx
or esi, edi
mov eax, dword [ebp - 0xfc]
mov dword [ebp + eax*4 - 0xf0], esi
lea esi, [esi]
movzx eax, byte [ecx + 0x4ed578]
cmp byte [ebp + eax - 0x70], 0
je 0x489250
mov eax, dword [ebp - 0xf8]
mov esi, dword [ebp + eax*4 - 0xf0]
mov edi, edx
or edi, esi
mov eax, dword [ebp - 0xf8]
mov dword [ebp + eax*4 - 0xf0], edi
cmp ecx, 0x17
jb 0x4891f0
cmp ebx, 0xf
jb 0x489138
mov eax, dword [ebp - 0x104]
shl eax, 2
add dword [ebp - 0xf4], eax
mov eax, 0xffffffff
lea esi, [esi]
add eax, 1
mov edx, eax
shl edx, 1
mov dword [ebp - 0xfc], edx
lea ecx, [edx + 1]
mov dword [ebp - 0xf8], ecx
lea edx, [ebp - 0xf0]
mov ecx, dword [ebp - 0xfc]
mov ebx, dword [edx + ecx*4]
mov ecx, ebx
and ecx, 0xfc0000
shl ecx, 6
and ebx, 0xfc0
shl ebx, 0xa
or ecx, ebx
mov ebx, dword [ebp - 0xf8]
mov edx, dword [edx + ebx*4]
mov ebx, edx
and ebx, 0xfc0000
shr ebx, 0xa
or ecx, ebx
and edx, 0xfc0
shr edx, 6
or ecx, edx
mov edx, dword [ebp - 0xf4]
mov dword [edx], ecx
add dword [ebp - 0xf4], 4
lea ecx, [ebp - 0xf0]
mov edx, dword [ebp - 0xfc]
mov esi, dword [ecx + edx*4]
mov ebx, esi
and ebx, 0x3f000
shl ebx, 0xc
and esi, 0x3f
shl esi, 0x10
or ebx, esi
mov edx, dword [ebp - 0xf8]
mov ecx, dword [ecx + edx*4]
mov edx, ecx
and edx, 0x3f000
shr edx, 4
or ebx, edx
mov edx, ecx
and edx, 0x3f
or ebx, edx
mov edx, dword [ebp - 0xf4]
mov dword [edx], ebx
add dword [ebp - 0xf4], 4
cmp eax, 0xf
jb 0x489278
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10