Function at 0x402cc0
Capabilities:
Create process on windows
Self delete

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40aa9d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push esi
push edi
mov edi, ecx
mov esi, edx
push str.DelayLoadProfiler.exe
lea ecx, [ebp - 0x18]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::constructor_wchar_t_const__]
lea eax, [ebp - 0x20]
mov dword [ebp - 4], 0
push esi
push eax
call dword [sym.imp.FineObj.dll_class_FObj::CUnicodeString___cdecl_FObj::FileSystem::GetDrivePath_class_FObj::CUnicodeString_const__]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
push ecx
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.FineObj.dll_class_FObj::CUnicodeString___cdecl_FObj::FileSystem::Merge_class_FObj::CUnicodeString_const___class_FObj::CUnicodeString_const__]
add esp, 0x14
lea ecx, [ebp - 0x20]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea eax, [ebp - 0x14]
push 0xff00ff00
push eax
call dword [sym.imp.FineObj.dll_bool___cdecl_FObj::FileSystem::AccessFile_class_FObj::CUnicodeString_const___unsigned_int_]
add esp, 8
test al, al
je 0x402e1a
push 0x44
lea eax, [ebp - 0x74]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esi]
xorps xmm0, xmm0
mov ecx, dword [edi]
add edx, 0xc
mov eax, dword [ebp - 0x14]
add ecx, 0xc
push edx
push ecx
add eax, 0xc
mov dword [ebp - 0x74], 0x44
push eax
lea eax, [ebp - 0x1c]
push str.__s___NoLogo___s___Create:__s_
push eax
movups xmmword [ebp - 0x30], xmm0
call dword [sym.imp.FineObj.dll_class_FObj::CUnicodeString___cdecl_FObj::Format_wchar_t_const__]
add esp, 0x20
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x10]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::constructor_class_FObj::CUnicodeString_const__]
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x74]
push eax
push 0
push 0
push 0x8000000
push 1
push 0
push 0
lea ecx, [ebp - 0x10]
call dword [sym.imp.FineObj.dll_public:_wchar_t____thiscall_FObj::CUnicodeString::GetBuffer_void_]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x402de4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 8
jne 0x402dda
call dword [sym.imp.FineObj.dll_void___cdecl_FObj::ThrowMemoryException_void_]
push eax
call dword [sym.imp.FineObj.dll_void___cdecl_FObj::GenerateCheckLastError_unsigned_long_int_]
add esp, 4
lea ecx, [ebp - 0x10]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::ReleaseBuffer_void_]
push dword [ebp - 0x2c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push 0xffffffffffffffff
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x30]
call esi
lea ecx, [ebp - 0x10]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
lea ecx, [ebp - 0x14]
call dword [sym.imp.FineObj.dll_public:_void___thiscall_FObj::CUnicodeString::destructor_void_]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret