Function at 0x406880
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 [0x446fcc], eax
test eax, eax
je 0x406bb8
push str.ntdll.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov dword [0x44700c], eax
test eax, eax
je 0x406bb8
push esi
push 0x11c
push 0
push 0x446eb0
call sym.rdtsc.exe_nocrt_memset
add esp, 0xc
mov dword [0x446eb0], 0x11c
push str.RtlGetVersion
push dword [0x44700c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x406901
push 0x446eb0
mov ecx, esi
call dword [section..rdata]
call esi
test eax, eax
je 0x406a03
push 0x11c
push 0
push 0x446eb0
call sym.rdtsc.exe_nocrt_memset
add esp, 0xc
mov dword [0x446eb0], 0x11c
push str.GetVersionExW
push dword [0x446fcc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x40694d
push 0x446eb0
mov ecx, esi
call dword [section..rdata]
call esi
test eax, eax
jne 0x406a03
push 0x11c
push 0
push 0x446eb0
call sym.rdtsc.exe_nocrt_memset
add esp, 0xc
mov dword [0x446eb0], 0x114
test esi, esi
je 0x406982
push 0x446eb0
mov ecx, esi
call dword [section..rdata]
call esi
test eax, eax
jne 0x4069d5
push 0x11c
push 0
push 0x446eb0
call sym.rdtsc.exe_nocrt_memset
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx ecx, al
mov dword [0x446eb4], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [0x446eb8], ecx
test eax, eax
js 0x4069c1
shr eax, 0x10
mov dword [0x446ebc], eax
jmp 0x4069cb
mov dword [0x446ebc], 0x1ff
mov dword [0x446ec0], 2
lea eax, [ebp - 4]
mov dword [0x446eb0], 0x11c
push eax
mov byte [0x446fca], 1
mov dword [ebp - 4], 1
call dword [sym.imp.ntdll.dll_RtlGetNtProductType]
test al, al
je 0x406a03
mov al, byte [ebp - 4]
mov byte [0x446fca], al
cmp dword [0x446eb0], 0
je 0x406a1e
push 0x446eb0
call fcn.00406d20
add esp, 4
mov dword [0x446ea8], eax
mov eax, dword [ebp + 8]
xor esi, esi
test al, 8
jne 0x406a32
push eax
call fcn.00406be0
add esp, 4
mov esi, eax
push str.GetSystemWindowsDirectoryW
push dword [0x446fcc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x446fd0], eax
test eax, eax
je 0x406a62
push str.GetWindowsDirectoryW
push dword [0x446fcc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x446fd0], eax
push str.SystemTimeToTzSpecificLocalTime
push dword [0x446fcc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateWaitableTimerExW
push dword [0x446fcc]
mov dword [0x446fd8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetHandleInformation
push dword [0x446fcc]
mov dword [0x446fd4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetHandleInformation
push dword [0x446fcc]
mov dword [0x446fdc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.IsDebuggerPresent
push dword [0x446fcc]
mov dword [0x446fe0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetSystemTimeAsFileTime
push dword [0x446fcc]
mov dword [0x446fe4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetProcessAffinityMask
push dword [0x446fcc]
mov dword [0x446fe8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.SetThreadAffinityMask
push dword [0x446fcc]
mov dword [0x446fec], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CreateIoCompletionPort
push dword [0x446fcc]
mov dword [0x446ff0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetQueuedCompletionStatus
push dword [0x446fcc]
mov dword [0x446ff4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.PostQueuedCompletionStatus
push dword [0x446fcc]
mov dword [0x446ff8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.IsProcessorFeaturePresent
push dword [0x446fcc]
mov dword [0x446ffc], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.NtQueryFullAttributesFile
push dword [0x44700c]
mov dword [0x447008], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.NtDuplicateToken
push dword [0x44700c]
mov dword [0x447010], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.NtAlertThread
push dword [0x44700c]
mov dword [0x447014], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x447018], eax
call fcn.00406f60
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0xffffff1e
mov esp, ebp
pop ebp
ret