Function at 0x438719
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [0x491fb4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor ebx, ebx
push ebx
mov ecx, esi
call fcn.00438630
push 1
mov ecx, esi
call fcn.00438630
push 2
mov ecx, esi
call fcn.00438630
lea eax, [esi + 0x1980]
push 0x490068
push eax
call fcn.004385bc
lea eax, [esi + 0x2180]
push 0x4900a8
push eax
call fcn.004385bc
mov edi, 0x80
push edi
push ebx
push esi
call fcn.00458090
push edi
lea eax, [esi + 0x80]
push ebx
push eax
call fcn.00458090
push edi
lea eax, [esi + 0x100]
push ebx
push eax
call fcn.00458090
add esp, 0x40
xor ecx, ecx
movsx eax, byte [ecx + 0x4900e8]
mov ebx, dword [ebp + 0xc]
dec eax
mov edx, eax
sar edx, 3
movsx edx, byte [edx + ebx]
and eax, 7
test dword [eax*4 + 0x490380], edx
setne al
mov byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0x38
jl 0x43879b
and dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x78]
movsx eax, byte [eax + 0x490120]
xor ecx, ecx
xor edx, edx
cmp ecx, 0x1c
setge dl
dec edx
and edx, 0xffffffe4
add edx, 0x38
cmp eax, edx
mov edx, eax
jl 0x4387ee
lea edx, [eax - 0x1c]
mov dl, byte [ebp + edx - 0x3c]
mov byte [ebp + ecx - 0x74], dl
inc ecx
inc eax
cmp ecx, 0x38
jl 0x4387d6
xor ecx, ecx
movsx eax, byte [ecx + 0x490130]
cmp byte [ebp + eax - 0x75], 0
je 0x438829
mov eax, ecx
cdq
push 6
pop ebx
idiv ebx
mov ebx, dword [ebp - 0x78]
mov edx, dword [edx*4 + 0x490380]
lea eax, [eax + ebx*8]
add eax, esi
sar edx, 2
or byte [eax], dl
inc ecx
cmp ecx, 0x30
jl 0x4387ff
inc dword [ebp - 0x78]
cmp dword [ebp - 0x78], 0x10
jl 0x4387ca
xor ecx, ecx
movsx eax, byte [ecx + 0x4900e8]
mov ebx, dword [ebp + 0xc]
dec eax
mov edx, eax
sar edx, 3
movsx edx, byte [edx + ebx + 8]
and eax, 7
test dword [eax*4 + 0x490380], edx
setne al
mov byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0x38
jl 0x43883a
and dword [ebp - 0x78], 0
mov ebx, edi
mov eax, dword [ebp - 0x78]
movsx eax, byte [eax + 0x490120]
xor ecx, ecx
xor edx, edx
cmp ecx, 0x1c
setge dl
mov edi, eax
dec edx
and edx, 0xffffffe4
add edx, 0x38
cmp eax, edx
jl 0x438890
lea edi, [eax - 0x1c]
mov dl, byte [ebp + edi - 0x3c]
mov byte [ebp + ecx - 0x74], dl
inc ecx
inc eax
cmp ecx, 0x38
jl 0x438878
xor ecx, ecx
movsx eax, byte [ecx + 0x490130]
cmp byte [ebp + eax - 0x75], 0
je 0x4388c7
mov eax, ecx
cdq
push 6
pop edi
idiv edi
mov edx, dword [edx*4 + 0x490380]
add eax, ebx
add eax, esi
sar edx, 2
or byte [eax], dl
inc ecx
cmp ecx, 0x30
jl 0x4388a1
inc dword [ebp - 0x78]
add ebx, 8
cmp ebx, 0x100
jl 0x43886c
xor ecx, ecx
movsx eax, byte [ecx + 0x4900e8]
mov edi, dword [ebp + 0xc]
dec eax
mov edx, eax
sar edx, 3
movsx edx, byte [edx + edi + 0x10]
and eax, 7
test dword [eax*4 + 0x490380], edx
setne al
mov byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0x38
jl 0x4388dd
and dword [ebp - 0x78], 0
mov ebx, 0x100
mov eax, dword [ebp - 0x78]
movsx eax, byte [eax + 0x490120]
xor ecx, ecx
xor edx, edx
cmp ecx, 0x1c
setge dl
mov edi, eax
dec edx
and edx, 0xffffffe4
add edx, 0x38
cmp eax, edx
jl 0x438936
lea edi, [eax - 0x1c]
mov dl, byte [ebp + edi - 0x3c]
mov byte [ebp + ecx - 0x74], dl
inc ecx
inc eax
cmp ecx, 0x38
jl 0x43891e
xor ecx, ecx
movsx eax, byte [ecx + 0x490130]
cmp byte [ebp + eax - 0x75], 0
je 0x43896d
mov eax, ecx
cdq
push 6
pop edi
idiv edi
mov edx, dword [edx*4 + 0x490380]
add eax, ebx
add eax, esi
sar edx, 2
or byte [eax], dl
inc ecx
cmp ecx, 0x30
jl 0x438947
inc dword [ebp - 0x78]
add ebx, 8
cmp ebx, 0x180
jl 0x438912
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00457904
leave
ret