Function at 0x40ee50
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ecx
push str.kernel32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x45029c], eax
test eax, eax
je 0x40f188
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x4502dc], eax
test eax, eax
je 0x40f188
push esi
push 0x11c
push 0
push 0x450180
call sym.exceptionsR3.exe_nocrt_memset
add esp, 0xc
mov dword [0x450180], 0x11c
push str.RtlGetVersion
push dword [0x4502dc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x40eed1
push 0x450180
mov ecx, esi
call dword [section..rdata]
call esi
test eax, eax
je 0x40efd3
push 0x11c
push 0
push 0x450180
call sym.exceptionsR3.exe_nocrt_memset
add esp, 0xc
mov dword [0x450180], 0x11c
push str.GetVersionExW
push dword [0x45029c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x40ef1d
push 0x450180
mov ecx, esi
call dword [section..rdata]
call esi
test eax, eax
jne 0x40efd3
push 0x11c
push 0
push 0x450180
call sym.exceptionsR3.exe_nocrt_memset
add esp, 0xc
mov dword [0x450180], 0x114
test esi, esi
je 0x40ef52
push 0x450180
mov ecx, esi
call dword [section..rdata]
call esi
test eax, eax
jne 0x40efa5
push 0x11c
push 0
push 0x450180
call sym.exceptionsR3.exe_nocrt_memset
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx ecx, al
mov dword [0x450184], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [0x450188], ecx
test eax, eax
js 0x40ef91
shr eax, 0x10
mov dword [0x45018c], eax
jmp 0x40ef9b
mov dword [0x45018c], 0x1ff
mov dword [0x450190], 2
lea eax, [ebp - 4]
mov dword [0x450180], 0x11c
push eax
mov byte [0x45029a], 1
mov dword [ebp - 4], 1
call dword [sym.imp.ntdll.dll_RtlGetNtProductType]
test al, al
je 0x40efd3
mov al, byte [ebp - 4]
mov byte [0x45029a], al
cmp dword [0x450180], 0
je 0x40efee
push 0x450180
call fcn.0040f2f0
add esp, 4
mov dword [0x45017c], eax
mov eax, dword [ebp + 8]
xor esi, esi
test al, 8
jne 0x40f002
push eax
call fcn.0040f1b0
add esp, 4
mov esi, eax
push str.GetSystemWindowsDirectoryW
push dword [0x45029c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4502a0], eax
test eax, eax
je 0x40f032
push str.GetWindowsDirectoryW
push dword [0x45029c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4502a0], eax
push str.SystemTimeToTzSpecificLocalTime
push dword [0x45029c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateWaitableTimerExW
push dword [0x45029c]
mov dword [0x4502a8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetHandleInformation
push dword [0x45029c]
mov dword [0x4502a4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetHandleInformation
push dword [0x45029c]
mov dword [0x4502ac], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.IsDebuggerPresent
push dword [0x45029c]
mov dword [0x4502b0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetSystemTimeAsFileTime
push dword [0x45029c]
mov dword [0x4502b4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetProcessAffinityMask
push dword [0x45029c]
mov dword [0x4502b8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetThreadAffinityMask
push dword [0x45029c]
mov dword [0x4502bc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateIoCompletionPort
push dword [0x45029c]
mov dword [0x4502c0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetQueuedCompletionStatus
push dword [0x45029c]
mov dword [0x4502c4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.PostQueuedCompletionStatus
push dword [0x45029c]
mov dword [0x4502c8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.IsProcessorFeaturePresent
push dword [0x45029c]
mov dword [0x4502cc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.NtQueryFullAttributesFile
push dword [0x4502dc]
mov dword [0x4502d8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.NtDuplicateToken
push dword [0x4502dc]
mov dword [0x4502e0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.NtAlertThread
push dword [0x4502dc]
mov dword [0x4502e4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4502e8], eax
call fcn.0040f530
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0xffffff1e
mov esp, ebp
pop ebp
ret