Function at 0x401760
Capabilities:
Check os version
Copy file
Create process on windows
Delete file
Get file attributes
Manipulate boot configuration
Set file attributes

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4020a6
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push esi
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x401986
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x14], 6
jne 0x4017ae
mov esi, 1
push ebp
push edi
lea ecx, [esp + 0xc]
call fcn.00401d82
movsx ecx, byte [0x404078]
push ecx
lea edx, [esp + 0x10]
push str._c:Ghost
push edx
mov dword [esp + 0xc0], 0
call sub.MFC42.DLL_CString::Format
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebp, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
add esp, 0xc
test esi, esi
je 0x40189a
lea ecx, [esp + 0x14]
call fcn.00401d82
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push str._import__sBCDBack
push ecx
mov byte [esp + 0xc0], 1
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x20]
add esp, 0xc
push 0
push 0
push edx
push str.BCDEDIT.EXE
push 0x40434c
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0x320
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0xc]
push str.BCDBack
lea ecx, [esp + 0x14]
push eax
push ecx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push eax
call esi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
push str.C:grldr.mbr
call esi
push str.D:grldr.mbr
call esi
push str.E:grldr.mbr
call esi
push str.C:menu.lst
call esi
lea ecx, [esp + 0x14]
mov byte [esp + 0xb4], 0
call sub.MFC42.DLL_CString::CString
jmp 0x401952
lea edx, [esp + 0xc]
push str._boot.ini
lea eax, [esp + 0x14]
push edx
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push eax
call edi
lea ecx, [esp + 0x10]
mov esi, eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
push str._boot.ini
lea edx, [esp + 0x14]
push ecx
push edx
and esi, 0xfffffffe
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push esi
push eax
call ebp
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
push str.C:_boot.ini
call edi
and esi, 0xfffffffe
push esi
push str.C:_boot.ini
call ebp
lea eax, [esp + 0xc]
push str._boot.ini
lea ecx, [esp + 0x14]
push eax
push ecx
call sub.MFC42.DLL_operator
mov eax, dword [eax]
push 0
push str.C:_boot.ini
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0xc]
push str._boot.ini
lea eax, [esp + 0x14]
push edx
push eax
call sub.MFC42.DLL_operator
mov eax, dword [eax]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push eax
call esi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
push str.C:grldr
call esi
push str.C:OKGFile.
call fcn.004019a0
mov ecx, dword [esp + 0x10]
add esp, 4
push ecx
call edi
mov edx, dword [esp + 0xc]
and al, 0xfd
push eax
push edx
call ebp
lea ecx, [esp + 0xc]
mov dword [esp + 0xb4], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop edi
pop ebp
mov ecx, dword [esp + 0xa4]
pop esi
mov dword fs:[0], ecx
add esp, 0xac
ret