Function at 0x518830
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1cc
push edi
mov edi, eax
xor edx, edx
xor eax, eax
push ebx
movzx ecx, byte [eax + str.80_]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x571bd0], bl
mov ecx, edx
setne cl
mov dword [ebp + eax*4 - 0x1cc], ecx
movzx ecx, byte [eax + 0x571b69]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x571bd0], bl
mov ecx, edx
setne cl
mov dword [ebp + eax*4 - 0x1c8], ecx
movzx ecx, byte [eax + 0x571b6a]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x571bd0], bl
mov ecx, edx
setne cl
mov dword [ebp + eax*4 - 0x1c4], ecx
movzx ecx, byte [eax + 0x571b6b]
mov ebx, ecx
sar ebx, 3
movzx ebx, byte [ebx + edi]
and ecx, 7
test byte [ecx*2 + 0x571bd0], bl
mov ecx, edx
setne cl
add eax, 4
mov dword [ebp + eax*4 - 0x1d0], ecx
cmp eax, 0x38
jl 0x518841
lea eax, [esi + 0x78]
mov dword [ebp - 8], edx
mov ecx, 0x1e
mov dword [ebp - 0xc], eax
pop ebx
mov dword [eax + 4], edx
mov dword [eax], edx
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x571be0]
lea edi, [eax + 2]
mov dword [ebp - 4], edi
lea eax, [ebp + eax*4 - 0x234]
mov edi, dword [ebp - 4]
add edi, 0xfffffffe
cmp edi, 0x1c
jge 0x518920
mov edi, dword [eax + 0x68]
jmp 0x518923
mov edi, dword [eax - 8]
mov dword [ebp + edx*4 - 0xec], edi
mov edi, dword [ebp - 4]
dec edi
cmp edi, 0x1c
jge 0x518938
mov edi, dword [eax + 0x6c]
jmp 0x51893b
mov edi, dword [eax - 4]
cmp dword [ebp - 4], 0x1c
mov dword [ebp + edx*4 - 0xe8], edi
jge 0x51894d
mov edi, dword [eax + 0x70]
jmp 0x51894f
mov edi, dword [eax]
mov dword [ebp + edx*4 - 0xe4], edi
mov edi, dword [ebp - 4]
inc edi
cmp edi, 0x1c
jge 0x518964
mov edi, dword [eax + 0x74]
jmp 0x518967
mov edi, dword [eax + 4]
add dword [ebp - 4], 4
mov dword [ebp + edx*4 - 0xe0], edi
add edx, 4
add eax, 0x10
cmp edx, 0x1c
jl 0x518910
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x571be0]
lea edi, [eax + 0x1e]
mov edx, 0x1c
mov dword [ebp - 4], edi
lea eax, [ebp + eax*4 - 0x1c4]
lea esp, [esp]
mov edi, dword [ebp - 4]
add edi, 0xfffffffe
cmp edi, 0x38
jge 0x5189b0
mov edi, dword [eax + 0x68]
jmp 0x5189b3
mov edi, dword [eax - 8]
mov dword [ebp + edx*4 - 0xec], edi
mov edi, dword [ebp - 4]
dec edi
cmp edi, 0x38
jge 0x5189c8
mov edi, dword [eax + 0x6c]
jmp 0x5189cb
mov edi, dword [eax - 4]
cmp dword [ebp - 4], 0x38
mov dword [ebp + edx*4 - 0xe8], edi
jge 0x5189dd
mov edi, dword [eax + 0x70]
jmp 0x5189df
mov edi, dword [eax]
mov dword [ebp + edx*4 - 0xe4], edi
mov edi, dword [ebp - 4]
inc edi
cmp edi, 0x38
jge 0x5189f4
mov edi, dword [eax + 0x74]
jmp 0x5189f7
mov edi, dword [eax + 4]
add dword [ebp - 4], 4
mov dword [ebp + edx*4 - 0xe0], edi
add edx, 4
add eax, 0x10
cmp edx, 0x38
jl 0x5189a0
xor edx, edx
xor eax, eax
jmp 0x518a20
movzx edi, byte [eax + 0x571ba0]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518a3a
mov edi, dword [eax*4 + 0x571bf0]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x571bb8]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518a55
mov edi, dword [eax*4 + 0x571bf0]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x571ba1]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518a6f
mov edi, dword [eax*4 + 0x571bf4]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x571bb9]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518a8a
mov edi, dword [eax*4 + 0x571bf4]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x571ba2]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518aa4
mov edi, dword [eax*4 + 0x571bf8]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x571bba]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518abf
mov edi, dword [eax*4 + 0x571bf8]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x571ba3]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518ad9
mov edi, dword [eax*4 + 0x571bfc]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x571bbb]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518af4
mov edi, dword [eax*4 + 0x571bfc]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x571ba4]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518b0e
mov edi, dword [eax*4 + 0x571c00]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x571bbc]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518b29
mov edi, dword [eax*4 + 0x571c00]
or dword [esi + ecx*4 + 4], edi
movzx edi, byte [eax + 0x571ba5]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518b43
mov edi, dword [eax*4 + 0x571c04]
or dword [esi + ecx*4], edi
movzx edi, byte [eax + 0x571bbd]
cmp dword [ebp + edi*4 - 0xec], edx
je 0x518b5e
mov edi, dword [eax*4 + 0x571c04]
or dword [esi + ecx*4 + 4], edi
add eax, 6
cmp eax, 0x18
jl 0x518a20
mov eax, dword [ebp - 0xc]
inc dword [ebp - 8]
sub eax, 8
sub ecx, 2
mov dword [ebp - 0xc], eax
cmp ecx, 0xfffffffe
jg 0x5188f4
pop edi
mov esp, ebp
pop ebp
ret