Function at 0x401504
Capabilities:
Encrypt data using des

Disassembly:
test dword [0x4b63ec], 0xffffff80
jne 0x40152c
test dword [0x4b63ec], 0xffffffff
jne 0x4016c0
call fcn.00490ee4
jmp fcn.00401504
push edi
push esi
push ebp
push ebx
sub esp, 0x100
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x118]
xor ecx, ecx
mov ebp, eax
movzx edi, byte [ecx + str.80_]
mov eax, edi
and eax, 7
sar edi, 3
movzx edi, byte [edi + ebp]
movzx eax, word [eax*2 + 0x49f978]
and edi, eax
mov eax, 0
mov edi, 1
cmovne eax, edi
mov byte [esp + ecx + 0x90], al
inc ecx
cmp ecx, 0x38
jl 0x401548
xor ecx, ecx
mov eax, 0xf
mov esi, ecx
mov edx, dword [esp + 0x118]
cmp edx, 1
je 0x4016b6
lea ebx, [esi + esi]
mov dword [esp + 0x84], ebx
lea ecx, [ebx + 1]
xor edx, edx
mov dword [esp + ebx*4 + 8], edx
xor edi, edi
mov dword [esp + ebx*4 + 4], edx
movzx edx, byte [esi + 0x49f988]
mov ebp, edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
lea eax, [esp + 0xc8]
lea ebx, [eax + edi]
cmp ebp, 0x1c
jge 0x4015e3
movzx eax, byte [esp + ebp + 0x90]
mov byte [ebx], al
jmp 0x4015ea
movzx eax, byte [esp + ebp + 0x74]
mov byte [ebx], al
inc ebp
inc edi
cmp edi, 0x1c
jl 0x4015c8
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x88], eax
mov ebp, 0x1c
add edx, 0x1c
mov dword [esp + 0x8c], esi
lea eax, [esp + 0xc8]
lea esi, [eax + ebp]
cmp edx, 0x38
jge 0x401637
movzx eax, byte [esp + edx + 0x90]
mov byte [esi], al
jmp 0x40163e
movzx eax, byte [esp + edx + 0x74]
mov byte [esi], al
inc edx
inc ebp
cmp ebp, 0x38
jl 0x40161c
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
xor edx, edx
movzx ebp, byte [edx + 0x49f998]
movzx edi, byte [esp + ebp + 0xc8]
inc edx
test edi, edi
je 0x401674
mov ebp, dword [edx*4 + 0x49f0dc]
or dword [esp + ebx*4 + 4], ebp
movzx ebp, byte [edx + 0x49f9af]
movzx edi, byte [esp + ebp + 0xc8]
test edi, edi
je 0x401692
mov ebp, dword [edx*4 + 0x49f0dc]
or dword [esp + ecx*4 + 4], ebp
cmp edx, 0x18
jl 0x401655
dec eax
inc esi
cmp esi, 0x10
jl 0x401588
lea eax, [esp + 4]
call fcn.00401850
add esp, 0x100
pop ebx
pop ebp
pop esi
pop edi
ret
lea ebx, [eax + eax]
jmp 0x40159b
push edi
push esi
push ebp
push ebx
sub esp, 0x100
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x118]
xor ecx, ecx
mov ebp, eax
movzx eax, byte [ecx + str.80_]
mov edi, eax
and edi, 7
sar eax, 3
movzx eax, byte [eax + ebp]
movzx edi, word [edi*2 + 0x49f978]
test edi, eax
je 0x401702
mov eax, 1
jmp 0x401704
xor eax, eax
mov byte [esp + ecx + 0x90], al
inc ecx
cmp ecx, 0x38
jl 0x4016dc
xor ecx, ecx
mov eax, 0xf
mov esi, ecx
mov edx, dword [esp + 0x118]
cmp edx, 1
je 0x401848
lea ebx, [esi + esi]
lea ecx, [ebx + 1]
xor edx, edx
mov dword [esp + ebx*4 + 8], edx
mov dword [esp + ebx*4 + 4], edx
xor edi, edi
movzx edx, byte [esi + 0x49f988]
mov ebp, edx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
lea eax, [esp + 0xc8]
lea ebx, [eax + edi]
cmp ebp, 0x1c
jge 0x401775
movzx eax, byte [esp + ebp + 0x90]
mov byte [ebx], al
jmp 0x40177c
movzx eax, byte [esp + ebp + 0x74]
mov byte [ebx], al
inc ebp
inc edi
cmp edi, 0x1c
jl 0x40175a
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
mov ebp, 0x1c
add edx, 0x1c
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], esi
lea eax, [esp + 0xc8]
lea esi, [eax + ebp]
cmp edx, 0x38
jge 0x4017c9
movzx eax, byte [esp + edx + 0x90]
mov byte [esi], al
jmp 0x4017d0
movzx eax, byte [esp + edx + 0x74]
mov byte [esi], al
inc edx
inc ebp
cmp ebp, 0x38
jl 0x4017ae
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
xor edx, edx
movzx ebp, byte [edx + 0x49f998]
movzx edi, byte [esp + ebp + 0xc8]
inc edx
test edi, edi
je 0x401806
mov ebp, dword [edx*4 + 0x49f0dc]
or dword [esp + ebx*4 + 4], ebp
movzx ebp, byte [edx + 0x49f9af]
movzx edi, byte [esp + ebp + 0xc8]
test edi, edi
je 0x401824
mov ebp, dword [edx*4 + 0x49f0dc]
or dword [esp + ecx*4 + 4], ebp
cmp edx, 0x18
jl 0x4017e7
dec eax
inc esi
cmp esi, 0x10
jl 0x40171a
lea eax, [esp + 4]
call fcn.00401850
add esp, 0x100
pop ebx
pop ebp
pop esi
pop edi
ret
lea ebx, [eax + eax]
jmp 0x40172d