Function at 0x422040
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0x100
push ebx
push ebp
push esi
mov esi, dword [esp + 0x110]
push edi
mov dword [esp + 0x18], ecx
xor eax, eax
jmp 0x422060
movzx edx, byte [eax + str.80_]
mov ecx, edx
and edx, 7
mov bl, byte [edx*2 + 0x494680]
sar ecx, 3
mov cl, byte [ecx + esi]
test bl, cl
setne dl
mov byte [esp + eax + 0x58], dl
movzx edx, byte [eax + 0x4946f1]
mov ecx, edx
and edx, 7
mov bl, byte [edx*2 + 0x494680]
sar ecx, 3
mov cl, byte [ecx + esi]
test bl, cl
setne dl
mov byte [esp + eax + 0x59], dl
movzx edx, byte [eax + 0x4946f2]
mov ecx, edx
and edx, 7
mov bl, byte [edx*2 + 0x494680]
sar ecx, 3
mov cl, byte [ecx + esi]
test bl, cl
setne dl
mov byte [esp + eax + 0x5a], dl
movzx edx, byte [eax + 0x4946f3]
mov ecx, edx
and edx, 7
mov bl, byte [edx*2 + 0x494680]
sar ecx, 3
mov cl, byte [ecx + esi]
test bl, cl
setne dl
mov byte [esp + eax + 0x5b], dl
add eax, 4
cmp eax, 0x38
jl 0x422060
xor ecx, ecx
mov eax, 0x1e
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
cmp dword [esp + 0x118], 1
je 0x422110
lea eax, [ecx + ecx]
movzx ebp, byte [ecx + 0x494728]
lea ebx, [esp + eax*4 + 0x94]
lea eax, [esp + eax*4 + 0x90]
mov dword [ebx], 0
mov dword [esp + 0x54], eax
mov dword [eax], 0
xor esi, esi
lea edx, [ebp + 3]
lea eax, [ebp + 2]
lea ecx, [ecx]
lea edi, [edx - 3]
cmp edi, 0x1c
jge 0x42214e
mov cl, byte [esp + eax + 0x56]
jmp 0x422152
mov cl, byte [esp + edi + 0x3c]
lea edi, [edx - 2]
cmp edi, 0x1c
mov byte [esp + esi + 0x1c], cl
jge 0x422164
mov cl, byte [esp + eax + 0x57]
jmp 0x422168
mov cl, byte [esp + edi + 0x3c]
cmp eax, 0x1c
mov byte [esp + esi + 0x1d], cl
jge 0x422177
mov cl, byte [esp + eax + 0x58]
jmp 0x42217b
mov cl, byte [esp + eax + 0x3c]
cmp edx, 0x1c
mov byte [esp + esi + 0x1e], cl
jge 0x42218a
mov cl, byte [esp + eax + 0x59]
jmp 0x42218e
mov cl, byte [esp + edx + 0x3c]
mov byte [esp + esi + 0x1f], cl
add esi, 4
add eax, 4
add edx, 4
cmp esi, 0x1c
jl 0x422140
mov edi, 0x1c
lea esi, [ebp + 0x1f]
lea eax, [ebp + 0x1e]
jmp 0x4221b0
lea edx, [esi - 3]
cmp edx, 0x38
jge 0x4221c2
mov dl, byte [esp + eax + 0x56]
mov byte [esp + edi + 0x1c], dl
jmp 0x4221ca
mov cl, byte [esp + edx + 0x3c]
mov byte [esp + edi + 0x1c], cl
lea edx, [esi - 2]
cmp edx, 0x38
jge 0x4221dc
mov dl, byte [esp + eax + 0x57]
mov byte [esp + edi + 0x1d], dl
jmp 0x4221e4
mov cl, byte [esp + edx + 0x3c]
mov byte [esp + edi + 0x1d], cl
cmp eax, 0x38
jge 0x4221f3
mov dl, byte [esp + eax + 0x58]
mov byte [esp + edi + 0x1e], dl
jmp 0x4221fb
mov cl, byte [esp + eax + 0x3c]
mov byte [esp + edi + 0x1e], cl
cmp esi, 0x38
jge 0x42220a
mov dl, byte [esp + eax + 0x59]
mov byte [esp + edi + 0x1f], dl
jmp 0x422212
mov cl, byte [esp + esi + 0x3c]
mov byte [esp + edi + 0x1f], cl
add edi, 4
add eax, 4
add esi, 4
cmp edi, 0x38
jl 0x4221b0
mov ecx, dword [esp + 0x54]
xor eax, eax
jmp 0x422230
movzx edx, byte [eax + 0x494738]
cmp byte [esp + edx + 0x1c], 0
je 0x42224b
mov esi, dword [ecx]
mov edx, dword [eax*4 + 0x494690]
or esi, edx
mov dword [ecx], esi
movzx edx, byte [eax + 0x494750]
cmp byte [esp + edx + 0x1c], 0
je 0x422266
mov esi, dword [ebx]
mov edx, dword [eax*4 + 0x494690]
or esi, edx
mov dword [ebx], esi
movzx edx, byte [eax + 0x494739]
cmp byte [esp + edx + 0x1c], 0
je 0x422281
mov esi, dword [ecx]
mov edx, dword [eax*4 + 0x494694]
or esi, edx
mov dword [ecx], esi
movzx edx, byte [eax + 0x494751]
cmp byte [esp + edx + 0x1c], 0
je 0x42229c
mov esi, dword [ebx]
mov edx, dword [eax*4 + 0x494694]
or esi, edx
mov dword [ebx], esi
movzx edx, byte [eax + 0x49473a]
cmp byte [esp + edx + 0x1c], 0
je 0x4222b7
mov esi, dword [ecx]
mov edx, dword [eax*4 + 0x494698]
or esi, edx
mov dword [ecx], esi
movzx edx, byte [eax + 0x494752]
cmp byte [esp + edx + 0x1c], 0
je 0x4222d2
mov esi, dword [ebx]
mov edx, dword [eax*4 + 0x494698]
or esi, edx
mov dword [ebx], esi
movzx edx, byte [eax + 0x49473b]
cmp byte [esp + edx + 0x1c], 0
je 0x4222ed
mov esi, dword [ecx]
mov edx, dword [eax*4 + 0x49469c]
or esi, edx
mov dword [ecx], esi
movzx edx, byte [eax + 0x494753]
cmp byte [esp + edx + 0x1c], 0
je 0x422308
mov esi, dword [ebx]
mov edx, dword [eax*4 + 0x49469c]
or esi, edx
mov dword [ebx], esi
movzx edx, byte [eax + 0x49473c]
cmp byte [esp + edx + 0x1c], 0
je 0x422323
mov esi, dword [ecx]
mov edx, dword [eax*4 + 0x4946a0]
or esi, edx
mov dword [ecx], esi
movzx edx, byte [eax + 0x494754]
cmp byte [esp + edx + 0x1c], 0
je 0x42233e
mov esi, dword [ebx]
mov edx, dword [eax*4 + 0x4946a0]
or esi, edx
mov dword [ebx], esi
movzx edx, byte [eax + 0x49473d]
cmp byte [esp + edx + 0x1c], 0
je 0x422359
mov esi, dword [ecx]
mov edx, dword [eax*4 + 0x4946a4]
or esi, edx
mov dword [ecx], esi
movzx edx, byte [eax + 0x494755]
cmp byte [esp + edx + 0x1c], 0
je 0x422374
mov esi, dword [ebx]
mov edx, dword [eax*4 + 0x4946a4]
or esi, edx
mov dword [ebx], esi
add eax, 6
cmp eax, 0x18
jl 0x422230
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
sub eax, 2
inc ecx
cmp eax, 0xfffffffe
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
jg 0x422103
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x90]
push eax
call fcn.00421e20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x100
ret 8