Function at 0x402700
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0xf4
push ebx
push ebp
push esi
mov esi, eax
push edi
xor eax, eax
mov edi, edi
movzx ecx, byte [eax + 0x410520]
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4104a0]
and ecx, edx
cmp ecx, edx
movzx ecx, byte [eax + 0x410521]
sete dl
mov byte [esp + eax + 0x4c], dl
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4104a0]
and ecx, edx
cmp ecx, edx
movzx ecx, byte [eax + 0x410522]
sete dl
mov byte [esp + eax + 0x4d], dl
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4104a0]
and ecx, edx
cmp ecx, edx
movzx ecx, byte [eax + 0x410523]
sete dl
mov byte [esp + eax + 0x4e], dl
mov edx, ecx
shr ecx, 3
movzx ecx, byte [ecx + esi]
and edx, 7
mov edx, dword [edx*4 + 0x4104a0]
and ecx, edx
cmp ecx, edx
sete dl
mov byte [esp + eax + 0x4f], dl
add eax, 4
cmp eax, 0x38
jb 0x402710
xor ecx, ecx
mov dword [esp + 0x10], ecx
jmp 0x4027c0
cmp word [esp + 0x108], 1
jne 0x4027d6
mov eax, 0xf
sub eax, ecx
add eax, eax
jmp 0x4027d9
lea eax, [ecx + ecx]
movzx edi, byte [ecx + 0x410558]
lea ebp, [esp + eax*4 + 0x88]
lea edx, [esp + eax*4 + 0x84]
mov dword [ebp], 0
mov dword [edx], 0
xor eax, eax
lea esi, [edi + 3]
lea ecx, [edi + 2]
lea ebx, [esi - 3]
cmp ebx, 0x1c
jae 0x402811
mov bl, byte [esp + ecx + 0x4a]
jmp 0x402815
mov bl, byte [esp + esi + 0x2d]
mov byte [esp + eax + 0x14], bl
lea ebx, [esi - 2]
cmp ebx, 0x1c
jae 0x402827
mov bl, byte [esp + ecx + 0x4b]
jmp 0x40282b
mov bl, byte [esp + esi + 0x2e]
mov byte [esp + eax + 0x15], bl
cmp ecx, 0x1c
jae 0x40283a
mov bl, byte [esp + ecx + 0x4c]
jmp 0x40283e
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x16], bl
cmp esi, 0x1c
jae 0x40284d
mov bl, byte [esp + ecx + 0x4d]
jmp 0x402851
mov bl, byte [esp + esi + 0x30]
mov byte [esp + eax + 0x17], bl
add eax, 4
add ecx, 4
add esi, 4
cmp eax, 0x1c
jb 0x402803
cmp eax, 0x38
jae 0x40288a
lea ecx, [edi + eax]
jmp 0x402870
cmp ecx, 0x38
jae 0x40287b
mov bl, byte [esp + ecx + 0x4c]
jmp 0x40287f
mov bl, byte [esp + ecx + 0x30]
mov byte [esp + eax + 0x14], bl
inc eax
inc ecx
cmp eax, 0x38
jb 0x402870
xor eax, eax
lea esp, [esp]
movzx ecx, byte [eax + 0x410568]
cmp byte [esp + ecx + 0x14], 0
je 0x4028a7
mov ecx, dword [eax*4 + 0x4104c0]
or dword [edx], ecx
movzx ecx, byte [eax + 0x410580]
cmp byte [esp + ecx + 0x14], 0
je 0x4028bf
mov ecx, dword [eax*4 + 0x4104c0]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x410569]
cmp byte [esp + ecx + 0x14], 0
je 0x4028d6
mov ecx, dword [eax*4 + 0x4104c4]
or dword [edx], ecx
movzx ecx, byte [eax + 0x410581]
cmp byte [esp + ecx + 0x14], 0
je 0x4028ee
mov ecx, dword [eax*4 + 0x4104c4]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x41056a]
cmp byte [esp + ecx + 0x14], 0
je 0x402905
mov ecx, dword [eax*4 + 0x4104c8]
or dword [edx], ecx
movzx ecx, byte [eax + 0x410582]
cmp byte [esp + ecx + 0x14], 0
je 0x40291d
mov ecx, dword [eax*4 + 0x4104c8]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x41056b]
cmp byte [esp + ecx + 0x14], 0
je 0x402934
mov ecx, dword [eax*4 + 0x4104cc]
or dword [edx], ecx
movzx ecx, byte [eax + 0x410583]
cmp byte [esp + ecx + 0x14], 0
je 0x40294c
mov ecx, dword [eax*4 + 0x4104cc]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x41056c]
cmp byte [esp + ecx + 0x14], 0
je 0x402963
mov ecx, dword [eax*4 + 0x4104d0]
or dword [edx], ecx
movzx ecx, byte [eax + 0x410584]
cmp byte [esp + ecx + 0x14], 0
je 0x40297b
mov ecx, dword [eax*4 + 0x4104d0]
or dword [ebp], ecx
movzx ecx, byte [eax + 0x41056d]
cmp byte [esp + ecx + 0x14], 0
je 0x402992
mov ecx, dword [eax*4 + 0x4104d4]
or dword [edx], ecx
movzx ecx, byte [eax + 0x410585]
cmp byte [esp + ecx + 0x14], 0
je 0x4029aa
mov ecx, dword [eax*4 + 0x4104d4]
or dword [ebp], ecx
add eax, 6
cmp eax, 0x18
jb 0x402890
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 0x10
jb 0x4027c0
mov edx, dword [esp + 0x10c]
push edx
lea ecx, [esp + 0x88]
call fcn.00401000
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf4
ret