Function at 0x41ef90
Capabilities:
Encrypt data using des

Disassembly:
sub esp, 0x460
mov eax, dword [0x4538c0]
xor eax, esp
mov dword [esp + 0x45c], eax
mov eax, dword [esp + 0x464]
xor ecx, ecx
mov edx, dword [esp + 0x46c]
mov dword [esp + 8], eax
nop dword [eax + eax]
movzx eax, byte [ecx + str.91__]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0xc], al
movzx eax, byte [ecx + 0x447c81]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0xd], al
movzx eax, byte [ecx + 0x447c82]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0xe], al
movzx eax, byte [ecx + 0x447c83]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0xf], al
add ecx, 4
cmp ecx, 0x38
jl 0x41efc0
movups xmm0, xmmword [esp + 0xc]
mov eax, dword [esp + 0x24]
push ebx
movups xmmword [esp + 0x70], xmm0
mov dword [esp + 0x88], eax
movq xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x44]
movq qword [esp + 0x80], xmm0
movups xmm0, xmmword [esp + 0x2c]
push ebp
push esi
movups xmmword [esp + 0x58], xmm0
lea esi, [esp + 0x169]
mov dword [esp + 0x70], eax
movq xmm0, qword [esp + 0x44]
xor eax, eax
push edi
movq qword [esp + 0x6c], xmm0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x1c
movzx ebp, byte [eax + 0x447db8]
xor edi, edi
mov ebx, ebp
lea eax, [esp + 0x9c]
sub ebx, eax
nop word [eax + eax]
lea ecx, [esp + 0x9c]
add ecx, edi
inc edi
lea eax, [ecx + ebx]
cdq
idiv dword [esp + 0x10]
mov al, byte [esp + edx + 0x7c]
mov byte [ecx], al
cmp edi, 0x1c
jl 0x41f080
movups xmm2, xmmword [esp + 0x9c]
lea eax, [esp + 0x9c]
mov ebx, dword [esp + 0xb4]
movq xmm3, qword [esp + 0xac]
xor edi, edi
movups xmmword [esp + 0x7c], xmm2
sub ebp, eax
mov dword [esp + 0x94], ebx
movq qword [esp + 0x8c], xmm3
lea ecx, [esp + 0x9c]
add ecx, edi
inc edi
lea eax, [ecx + ebp]
cdq
idiv dword [esp + 0x10]
mov al, byte [esp + edx + 0x5c]
mov byte [ecx], al
cmp edi, 0x1c
jl 0x41f0d5
movups xmm1, xmmword [esp + 0x9c]
xor ecx, ecx
mov eax, dword [esp + 0xb4]
movq xmm0, qword [esp + 0xac]
movups xmmword [esp + 0x5c], xmm1
mov dword [esp + 0x74], eax
movq qword [esp + 0x6c], xmm0
movups xmmword [esp + 0x1c], xmm2
mov dword [esp + 0x34], ebx
movq qword [esp + 0x2c], xmm3
movups xmmword [esp + 0x38], xmm1
mov dword [esp + 0x50], eax
movq qword [esp + 0x48], xmm0
nop dword [eax]
movzx eax, byte [ecx + 0x447cb8]
movzx eax, byte [esp + eax + 0x1b]
mov byte [esi - 1], al
movzx eax, byte [ecx + 0x447cb9]
movzx eax, byte [esp + eax + 0x1b]
mov byte [esi], al
movzx eax, byte [ecx + 0x447cba]
movzx eax, byte [esp + eax + 0x1b]
mov byte [esi + 1], al
movzx eax, byte [ecx + 0x447cbb]
movzx eax, byte [esp + eax + 0x1b]
mov byte [esi + 2], al
movzx eax, byte [ecx + 0x447cbc]
movzx eax, byte [esp + eax + 0x1b]
mov byte [esi + 3], al
movzx eax, byte [ecx + 0x447cbd]
add ecx, 6
movzx eax, byte [esp + eax + 0x1b]
mov byte [esi + 4], al
add esi, 6
cmp ecx, 0x30
jl 0x41f140
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
cmp eax, 0x10
jl 0x41f063
mov edx, dword [esp + 0x478]
xor ecx, ecx
nop
movzx eax, byte [ecx + 0x447ce8]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0x1c], al
movzx eax, byte [ecx + 0x447ce9]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0x1d], al
movzx eax, byte [ecx + 0x447cea]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0x1e], al
movzx eax, byte [ecx + 0x447ceb]
movzx eax, byte [eax + edx - 1]
mov byte [esp + ecx + 0x1f], al
add ecx, 4
cmp ecx, 0x40
jl 0x41f1c0
movups xmm0, xmmword [esp + 0x1c]
lea ebx, [esp + 0x16c]
mov dword [esp + 0x10], 0x10
mov dword [esp + 0x14], ebx
movups xmmword [esp + 0xdc], xmm0
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esp + 0xec], xmm0
movups xmm0, xmmword [esp + 0x3c]
movups xmmword [esp + 0x5c], xmm0
movups xmm0, xmmword [esp + 0x4c]
movups xmmword [esp + 0x6c], xmm0
nop dword [eax]
xor ecx, ecx
movzx eax, byte [ecx + 0x447d28]
movzx eax, byte [esp + eax + 0x5b]
mov byte [esp + ecx + 0x9c], al
movzx eax, byte [ecx + 0x447d29]
movzx eax, byte [esp + eax + 0x5b]
mov byte [esp + ecx + 0x9d], al
movzx eax, byte [ecx + 0x447d2a]
movzx eax, byte [esp + eax + 0x5b]
mov byte [esp + ecx + 0x9e], al
movzx eax, byte [ecx + 0x447d2b]
movzx eax, byte [esp + eax + 0x5b]
mov byte [esp + ecx + 0x9f], al
movzx eax, byte [ecx + 0x447d2c]
movzx eax, byte [esp + eax + 0x5b]
mov byte [esp + ecx + 0xa0], al
movzx eax, byte [ecx + 0x447d2d]
movzx eax, byte [esp + eax + 0x5b]
mov byte [esp + ecx + 0xa1], al
add ecx, 6
cmp ecx, 0x30
jl 0x41f252
push 0x30
push ebx
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.0041ee30
movups xmm0, xmmword [esp + 0x2c]
add esp, 0x10
lea esi, [esp + 0x11c]
xor edi, edi
movups xmmword [esp + 0x11c], xmm0
movups xmm0, xmmword [esp + 0x2c]
movups xmmword [esp + 0x12c], xmm0
movups xmm0, xmmword [esp + 0x3c]
movups xmmword [esp + 0x13c], xmm0
movsx edx, byte [esi + 1]
lea esi, [esi + 6]
movsx eax, byte [esi - 4]
add edx, edx
movsx ecx, byte [esi - 1]
or edx, eax
movsx eax, byte [esi - 3]
add edx, edx
or edx, eax
movsx eax, byte [esi - 2]
add edx, edx
or edx, eax
movsx eax, byte [esi - 6]
add eax, eax
or ecx, eax
add ecx, edi
add edi, 4
add ecx, ecx
movzx ecx, byte [edx + ecx*8 + 0x447dc8]
mov eax, ecx
shr eax, 3
and al, 1
mov byte [esi - 6], al
mov eax, ecx
shr eax, 2
and al, 1
mov byte [esi - 5], al
mov eax, ecx
shr eax, 1
and cl, 1
and al, 1
mov byte [esi - 3], cl
mov byte [esi - 4], al
cmp edi, 0x20
jl 0x41f314
xor edx, edx
lea ecx, [esp + 0x11d]
lea esi, [esp + 0x7c]
lea edi, [esp + 0x7e]
lea ebx, [esp + 0x7f]
nop dword [eax + eax]
movzx eax, byte [ecx - 1]
lea ecx, [ecx + 6]
mov byte [esi + edx*4], al
movzx eax, byte [ecx - 6]
mov byte [esp + edx*4 + 0x7d], al
movzx eax, byte [ecx - 5]
mov byte [edi + edx*4], al
movzx eax, byte [ecx - 4]
mov byte [ebx + edx*4], al
inc edx
cmp edx, 8
jl 0x41f390
mov ebx, dword [esp + 0x14]
xor eax, eax
nop dword [eax]
movzx ecx, byte [eax + 0x447d58]
movzx ecx, byte [esp + ecx + 0x7b]
mov byte [esp + eax + 0xfc], cl
movzx ecx, byte [eax + 0x447d59]
movzx ecx, byte [esp + ecx + 0x7b]
mov byte [esp + eax + 0xfd], cl
movzx ecx, byte [eax + 0x447d5a]
movzx ecx, byte [esp + ecx + 0x7b]
mov byte [esp + eax + 0xfe], cl
movzx ecx, byte [eax + 0x447d5b]
movzx ecx, byte [esp + ecx + 0x7b]
mov byte [esp + eax + 0xff], cl
add eax, 4
cmp eax, 0x20
jl 0x41f3c0
push 0x20
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x158]
push eax
call fcn.0041ee30
add esp, 0x10
xor ecx, ecx
nop dword [eax + eax]
movzx eax, byte [esp + ecx + 0x5c]
mov byte [esp + ecx + 0xdc], al
movzx eax, byte [esp + ecx + 0x14c]
mov byte [esp + ecx + 0x5c], al
inc ecx
cmp ecx, 0x20
jl 0x41f440
add ebx, 0x30
sub dword [esp + 0x10], 1
mov dword [esp + 0x14], ebx
jne 0x41f250
movups xmm0, xmmword [esp + 0x5c]
mov eax, dword [esp + 0x18]
mov edx, 0x447d79
mov edi, 0x447d78
mov ebx, edx
movups xmmword [esp + 0x1c], xmm0
sub edi, eax
sub ebx, eax
movups xmm0, xmmword [esp + 0x6c]
lea ecx, [eax + 2]
mov esi, 0x10
movups xmmword [esp + 0x2c], xmm0
movups xmm0, xmmword [esp + 0xdc]
movups xmmword [esp + 0x3c], xmm0
movups xmm0, xmmword [esp + 0xec]
movups xmmword [esp + 0x4c], xmm0
nop word [eax + eax]
movzx eax, byte [edx - 1]
lea edx, [edx + 4]
lea ecx, [ecx + 4]
movzx eax, byte [esp + eax + 0x1b]
mov byte [ecx - 6], al
movzx eax, byte [edx - 4]
movzx eax, byte [esp + eax + 0x1b]
mov byte [ecx - 5], al
movzx eax, byte [edi + ecx - 4]
movzx eax, byte [esp + eax + 0x1b]
mov byte [ecx - 4], al
movzx eax, byte [ebx + ecx - 4]
movzx eax, byte [esp + eax + 0x1b]
mov byte [ecx - 3], al
sub esi, 1
jne 0x41f4c0
mov ecx, dword [esp + 0x46c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042255f
add esp, 0x460
ret