Function at 0x413f00
Capabilities:
Encrypt data using des

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf4
mov eax, dword [0x45d014]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [0x45def4]
lea eax, [ebp - 0xec]
push edi
mov edi, dword [0x460c5c]
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x38
lea eax, [ebp - 0x3c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x18
xor edx, edx
mov eax, edx
mov ecx, edx
shr eax, 3
and ecx, 7
movsx eax, byte [eax + esi]
shl eax, cl
sar eax, 7
and al, 1
mov byte [ebp + edx - 0xec], al
inc edx
cmp edx, 0x40
jb 0x413f44
xor ecx, ecx
nop dword [eax + eax]
movsx eax, byte [ecx + 0x44bfb0]
movzx eax, byte [ebp + eax - 0xed]
mov byte [ebp + ecx - 0x3c], al
movsx eax, byte [ecx + 0x44bfb1]
movzx eax, byte [ebp + eax - 0xed]
mov byte [ebp + ecx - 0x3b], al
movsx eax, byte [ecx + 0x44bfb2]
movzx eax, byte [ebp + eax - 0xed]
mov byte [ebp + ecx - 0x3a], al
movsx eax, byte [ecx + 0x44bfb3]
movzx eax, byte [ebp + eax - 0xed]
mov byte [ebp + ecx - 0x39], al
add ecx, 4
cmp ecx, 0x38
jl 0x413f70
mov eax, dword [ebp - 0x24]
xorps xmm0, xmm0
movups xmmword [ebp - 0x58], xmm0
xor ecx, ecx
mov dword [ebp - 0x78], eax
movq qword [ebp - 0x48], xmm0
mov eax, dword [ebp - 8]
movups xmmword [ebp - 0x74], xmm0
mov dword [ebp - 0x94], eax
lea eax, [edi + 2]
movq qword [ebp - 0x64], xmm0
movups xmm0, xmmword [ebp - 0x3c]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x5c], 0
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0xf4], ecx
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x80], xmm0
movups xmm0, xmmword [ebp - 0x20]
mov dword [ebp - 0xf0], eax
movups xmmword [ebp - 0xac], xmm0
movq xmm0, qword [ebp - 0x10]
movq qword [ebp - 0x9c], xmm0
nop dword [eax]
nop dword [eax + eax]
movsx ebx, byte [ecx + 0x44bf70]
lea eax, [ebp - 0x90]
mov esi, 0x1c
add eax, ebx
sub esi, ebx
push esi
push eax
lea eax, [ebp - 0x58]
push eax
call sub.VCRUNTIME140.dll_memcpy
push ebx
lea eax, [ebp - 0x90]
mov edi, ebx
push eax
neg edi
lea eax, [ebp - 0x3c]
add eax, edi
push eax
call sub.VCRUNTIME140.dll_memcpy
lea eax, [ebp - 0xac]
add eax, ebx
push esi
push eax
lea eax, [ebp - 0x74]
push eax
call sub.VCRUNTIME140.dll_memcpy
push ebx
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x58]
add eax, edi
push eax
call sub.VCRUNTIME140.dll_memcpy
movups xmm0, xmmword [ebp - 0x58]
mov esi, dword [ebp - 0x40]
add esp, 0x30
movups xmm2, xmmword [ebp - 0x74]
xor eax, eax
mov edi, dword [ebp - 0x5c]
movq xmm1, qword [ebp - 0x48]
movq xmm3, qword [ebp - 0x64]
mov edx, dword [ebp - 0xf0]
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x24], esi
movq qword [ebp - 0x2c], xmm1
movups xmmword [ebp - 0x20], xmm2
mov dword [ebp - 8], edi
movq qword [ebp - 0x10], xmm3
nop dword [eax]
movsx ecx, byte [eax + 0x44bf80]
movzx ecx, byte [ebp + ecx - 0x3d]
mov byte [edx - 2], cl
movsx ecx, byte [eax + 0x44bf81]
movzx ecx, byte [ebp + ecx - 0x3d]
mov byte [edx - 1], cl
movsx ecx, byte [eax + 0x44bf82]
movzx ecx, byte [ebp + ecx - 0x3d]
mov byte [edx], cl
movsx ecx, byte [eax + 0x44bf83]
movzx ecx, byte [ebp + ecx - 0x3d]
mov byte [edx + 1], cl
movsx ecx, byte [eax + 0x44bf84]
movzx ecx, byte [ebp + ecx - 0x3d]
mov byte [edx + 2], cl
movsx ecx, byte [eax + 0x44bf85]
add eax, 6
movzx ecx, byte [ebp + ecx - 0x3d]
mov byte [edx + 3], cl
add edx, 6
cmp eax, 0x30
jl 0x4140e0
mov ecx, dword [ebp - 0xf4]
inc ecx
mov dword [ebp - 0xf0], edx
movq qword [ebp - 0x80], xmm1
mov dword [ebp - 0x78], esi
movq qword [ebp - 0x9c], xmm3
mov dword [ebp - 0x94], edi
mov dword [ebp - 0xf4], ecx
movups xmmword [ebp - 0x90], xmm0
movups xmmword [ebp - 0xac], xmm2
cmp ecx, 0x10
jl 0x414040
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004402b2
mov esp, ebp
pop ebp
ret 4