Function at 0x407800
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x104
mov eax, dword [0x42807c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x104], eax
xor eax, eax
mov edi, edi
movzx ecx, byte [eax + str.80_]
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + str.1b6c3a5]
and edx, 7
test byte [edx*2 + 0x4290b0], cl
movzx ecx, byte [eax + 0x429121]
setne dl
mov byte [ebp + eax - 0x74], dl
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + str.1b6c3a5]
and edx, 7
test byte [edx*2 + 0x4290b0], cl
movzx ecx, byte [eax + 0x429122]
setne dl
mov byte [ebp + eax - 0x73], dl
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + str.1b6c3a5]
and edx, 7
test byte [edx*2 + 0x4290b0], cl
movzx ecx, byte [eax + 0x429123]
setne dl
mov byte [ebp + eax - 0x72], dl
mov edx, ecx
sar ecx, 3
movzx ecx, byte [ecx + str.1b6c3a5]
and edx, 7
test byte [edx*2 + 0x4290b0], cl
setne dl
mov byte [ebp + eax - 0x71], dl
add eax, 4
cmp eax, 0x38
jl 0x407820
push ebx
push esi
lea eax, [ebp - 0x7c]
push edi
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0x100], 0x1f
mov dword [ebp - 0xf8], eax
jmp 0x4078e6
mov eax, dword [ebp - 0xf8]
xor edi, edi
mov dword [eax + 4], edi
mov dword [eax], edi
mov eax, dword [ebp - 0xfc]
movzx ebx, byte [eax + 0x429158]
lea ecx, [ebx + 3]
lea eax, [ebx + 2]
lea esi, [ecx - 3]
cmp esi, 0x1c
jge 0x40790e
mov dl, byte [ebp + eax - 0x76]
jmp 0x407915
mov dl, byte [ebp + esi - 0x90]
lea esi, [ecx - 2]
mov byte [ebp + edi - 0x3c], dl
cmp esi, 0x1c
jge 0x407927
mov dl, byte [ebp + eax - 0x75]
jmp 0x40792e
mov dl, byte [ebp + esi - 0x90]
mov byte [ebp + edi - 0x3b], dl
cmp eax, 0x1c
jge 0x40793d
mov dl, byte [ebp + eax - 0x74]
jmp 0x407944
mov dl, byte [ebp + eax - 0x90]
mov byte [ebp + edi - 0x3a], dl
cmp ecx, 0x1c
jge 0x407953
mov dl, byte [ebp + eax - 0x73]
jmp 0x40795a
mov dl, byte [ebp + ecx - 0x90]
mov byte [ebp + edi - 0x39], dl
add edi, 4
add eax, 4
add ecx, 4
cmp edi, 0x1c
jl 0x407900
mov edi, 0x1c
lea edx, [ebx + 0x1f]
lea eax, [ebx + 0x1e]
lea ecx, [edx - 3]
cmp ecx, 0x38
jge 0x407985
mov cl, byte [ebp + eax - 0x76]
jmp 0x40798c
mov cl, byte [ebp + ecx - 0x90]
lea esi, [edx - 2]
mov byte [ebp + edi - 0x3c], cl
cmp esi, 0x38
jge 0x40799e
mov cl, byte [ebp + eax - 0x75]
jmp 0x4079a5
mov cl, byte [ebp + esi - 0x90]
mov byte [ebp + edi - 0x3b], cl
cmp eax, 0x38
jge 0x4079b4
mov cl, byte [ebp + eax - 0x74]
jmp 0x4079bb
mov cl, byte [ebp + eax - 0x90]
mov byte [ebp + edi - 0x3a], cl
cmp edx, 0x38
jge 0x4079ca
mov cl, byte [ebp + eax - 0x73]
jmp 0x4079d1
mov cl, byte [ebp + edx - 0x90]
mov byte [ebp + edi - 0x39], cl
add edi, 4
add eax, 4
add edx, 4
cmp edi, 0x38
jl 0x407977
mov edx, dword [ebp - 0x100]
xor eax, eax
jmp 0x4079f0
movzx ecx, byte [eax + 0x429168]
cmp byte [ebp + ecx - 0x3c], 0
mov ecx, dword [ebp - 0xf8]
je 0x407a0d
mov esi, dword [eax*4 + 0x4290c0]
or dword [ecx], esi
movzx esi, byte [eax + 0x429180]
cmp byte [ebp + esi - 0x3c], 0
je 0x407a29
mov esi, dword [eax*4 + 0x4290c0]
or dword [ebp + edx*4 - 0xf4], esi
movzx esi, byte [eax + 0x429169]
cmp byte [ebp + esi - 0x3c], 0
je 0x407a40
mov esi, dword [eax*4 + 0x4290c4]
or dword [ecx], esi
movzx esi, byte [eax + 0x429181]
cmp byte [ebp + esi - 0x3c], 0
je 0x407a5c
mov esi, dword [eax*4 + 0x4290c4]
or dword [ebp + edx*4 - 0xf4], esi
movzx esi, byte [eax + 0x42916a]
cmp byte [ebp + esi - 0x3c], 0
je 0x407a73
mov esi, dword [eax*4 + 0x4290c8]
or dword [ecx], esi
movzx esi, byte [eax + 0x429182]
cmp byte [ebp + esi - 0x3c], 0
je 0x407a8f
mov esi, dword [eax*4 + 0x4290c8]
or dword [ebp + edx*4 - 0xf4], esi
movzx esi, byte [eax + 0x42916b]
cmp byte [ebp + esi - 0x3c], 0
je 0x407aa6
mov esi, dword [eax*4 + 0x4290cc]
or dword [ecx], esi
movzx esi, byte [eax + 0x429183]
cmp byte [ebp + esi - 0x3c], 0
je 0x407ac2
mov esi, dword [eax*4 + 0x4290cc]
or dword [ebp + edx*4 - 0xf4], esi
movzx esi, byte [eax + 0x42916c]
cmp byte [ebp + esi - 0x3c], 0
je 0x407ad9
mov esi, dword [eax*4 + 0x4290d0]
or dword [ecx], esi
movzx esi, byte [eax + 0x429184]
cmp byte [ebp + esi - 0x3c], 0
je 0x407af5
mov esi, dword [eax*4 + 0x4290d0]
or dword [ebp + edx*4 - 0xf4], esi
movzx esi, byte [eax + 0x42916d]
cmp byte [ebp + esi - 0x3c], 0
je 0x407b0c
mov esi, dword [eax*4 + 0x4290d4]
or dword [ecx], esi
movzx ecx, byte [eax + 0x429185]
cmp byte [ebp + ecx - 0x3c], 0
je 0x407b28
mov ecx, dword [eax*4 + 0x4290d4]
or dword [ebp + edx*4 - 0xf4], ecx
add eax, 6
cmp eax, 0x18
jl 0x4079f0
inc dword [ebp - 0xfc]
sub dword [ebp - 0xf8], 8
sub edx, 2
mov dword [ebp - 0x100], edx
cmp edx, 0xffffffff
jg 0x4078e0
mov edx, dword [ebp - 0x104]
push edx
lea ecx, [ebp - 0xf4]
call fcn.00407b80
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040ed5d
mov esp, ebp
pop ebp
ret 4