Function at 0x439209
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [0x492fb4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
xor ebx, ebx
push ebx
mov ecx, esi
call fcn.00439120
push 1
mov ecx, esi
call fcn.00439120
push 2
mov ecx, esi
call fcn.00439120
lea eax, [esi + 0x1980]
push 0x491068
push eax
call fcn.004390ac
lea eax, [esi + 0x2180]
push 0x4910a8
push eax
call fcn.004390ac
mov edi, 0x80
push edi
push ebx
push esi
call fcn.00458bb0
push edi
lea eax, [esi + 0x80]
push ebx
push eax
call fcn.00458bb0
push edi
lea eax, [esi + 0x100]
push ebx
push eax
call fcn.00458bb0
add esp, 0x40
xor ecx, ecx
movsx eax, byte [ecx + 0x4910e8]
mov ebx, dword [ebp + 0xc]
dec eax
mov edx, eax
sar edx, 3
movsx edx, byte [edx + ebx]
and eax, 7
test dword [eax*4 + 0x491380], edx
setne al
mov byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0x38
jl 0x43928b
and dword [ebp - 0x78], 0
mov eax, dword [ebp - 0x78]
movsx eax, byte [eax + 0x491120]
xor ecx, ecx
xor edx, edx
cmp ecx, 0x1c
setge dl
dec edx
and edx, 0xffffffe4
add edx, 0x38
cmp eax, edx
mov edx, eax
jl 0x4392de
lea edx, [eax - 0x1c]
mov dl, byte [ebp + edx - 0x3c]
mov byte [ebp + ecx - 0x74], dl
inc ecx
inc eax
cmp ecx, 0x38
jl 0x4392c6
xor ecx, ecx
movsx eax, byte [ecx + 0x491130]
cmp byte [ebp + eax - 0x75], 0
je 0x439319
mov eax, ecx
cdq
push 6
pop ebx
idiv ebx
mov ebx, dword [ebp - 0x78]
mov edx, dword [edx*4 + 0x491380]
lea eax, [eax + ebx*8]
add eax, esi
sar edx, 2
or byte [eax], dl
inc ecx
cmp ecx, 0x30
jl 0x4392ef
inc dword [ebp - 0x78]
cmp dword [ebp - 0x78], 0x10
jl 0x4392ba
xor ecx, ecx
movsx eax, byte [ecx + 0x4910e8]
mov ebx, dword [ebp + 0xc]
dec eax
mov edx, eax
sar edx, 3
movsx edx, byte [edx + ebx + 8]
and eax, 7
test dword [eax*4 + 0x491380], edx
setne al
mov byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0x38
jl 0x43932a
and dword [ebp - 0x78], 0
mov ebx, edi
mov eax, dword [ebp - 0x78]
movsx eax, byte [eax + 0x491120]
xor ecx, ecx
xor edx, edx
cmp ecx, 0x1c
setge dl
mov edi, eax
dec edx
and edx, 0xffffffe4
add edx, 0x38
cmp eax, edx
jl 0x439380
lea edi, [eax - 0x1c]
mov dl, byte [ebp + edi - 0x3c]
mov byte [ebp + ecx - 0x74], dl
inc ecx
inc eax
cmp ecx, 0x38
jl 0x439368
xor ecx, ecx
movsx eax, byte [ecx + 0x491130]
cmp byte [ebp + eax - 0x75], 0
je 0x4393b7
mov eax, ecx
cdq
push 6
pop edi
idiv edi
mov edx, dword [edx*4 + 0x491380]
add eax, ebx
add eax, esi
sar edx, 2
or byte [eax], dl
inc ecx
cmp ecx, 0x30
jl 0x439391
inc dword [ebp - 0x78]
add ebx, 8
cmp ebx, 0x100
jl 0x43935c
xor ecx, ecx
movsx eax, byte [ecx + 0x4910e8]
mov edi, dword [ebp + 0xc]
dec eax
mov edx, eax
sar edx, 3
movsx edx, byte [edx + edi + 0x10]
and eax, 7
test dword [eax*4 + 0x491380], edx
setne al
mov byte [ebp + ecx - 0x3c], al
inc ecx
cmp ecx, 0x38
jl 0x4393cd
and dword [ebp - 0x78], 0
mov ebx, 0x100
mov eax, dword [ebp - 0x78]
movsx eax, byte [eax + 0x491120]
xor ecx, ecx
xor edx, edx
cmp ecx, 0x1c
setge dl
mov edi, eax
dec edx
and edx, 0xffffffe4
add edx, 0x38
cmp eax, edx
jl 0x439426
lea edi, [eax - 0x1c]
mov dl, byte [ebp + edi - 0x3c]
mov byte [ebp + ecx - 0x74], dl
inc ecx
inc eax
cmp ecx, 0x38
jl 0x43940e
xor ecx, ecx
movsx eax, byte [ecx + 0x491130]
cmp byte [ebp + eax - 0x75], 0
je 0x43945d
mov eax, ecx
cdq
push 6
pop edi
idiv edi
mov edx, dword [edx*4 + 0x491380]
add eax, ebx
add eax, esi
sar edx, 2
or byte [eax], dl
inc ecx
cmp ecx, 0x30
jl 0x439437
inc dword [ebp - 0x78]
add ebx, 8
cmp ebx, 0x180
jl 0x439402
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00458424
leave
ret