Function at 0x10040c60
Capabilities:
Create thread
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
lea eax, [esp + 0xc]
push ebx
push esi
push edi
push eax
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x10040ef7
push str.User32
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
mov dword [0x100aa970], edi
test edi, edi
je 0x10040ed9
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.GetMessageA
push edi
call esi
mov dword [0x100aa97c], eax
test eax, eax
jne 0x10040cd9
push str.GetMessageAA
push edi
call esi
mov dword [0x100aa97c], eax
test eax, eax
jne 0x10040cd9
push str.GetMessageAW
push edi
call esi
mov dword [0x100aa97c], eax
test eax, eax
je 0x10040ed9
mov edi, dword [0x100aa970]
push str.PeekMessageA
push edi
call esi
mov dword [0x100aa980], eax
test eax, eax
jne 0x10040d16
push str.PeekMessageAA
push edi
call esi
mov dword [0x100aa980], eax
test eax, eax
jne 0x10040d16
push str.PeekMessageAW
push edi
call esi
mov dword [0x100aa980], eax
test eax, eax
je 0x10040ed9
mov edi, dword [0x100aa970]
push str.PostThreadMessageA
push edi
call esi
mov dword [0x100aa95c], eax
test eax, eax
jne 0x10040d53
push str.PostThreadMessageAA
push edi
call esi
mov dword [0x100aa95c], eax
test eax, eax
jne 0x10040d53
push str.PostThreadMessageAW
push edi
call esi
mov dword [0x100aa95c], eax
test eax, eax
je 0x10040ed9
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
push esi
push edi
push 0xe8
push 0xd4a51000
mov dword [0x100aa968], edi
mov dword [0x100aa96c], esi
call fcn.1006c3b0
push esi
push edi
push str.hires_timer_available__Frequency:__I64u_Hz_
push str.windows_init_clock
push 4
push 0
mov dword [0x100aa960], eax
mov dword [0x100aa964], edx
call fcn.10036f50
add esp, 0x18
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcessAffinityMask]
test eax, eax
je 0x10040eb3
mov edx, dword [esp + 0x10]
test edx, edx
je 0x10040eb3
xor ecx, ecx
test dl, 1
jne 0x10040dd9
mov eax, 1
rol eax, 1
inc ecx
test edx, eax
je 0x10040dd2
push ecx
push str.timer_thread_will_run_on_core__d
push str.windows_init_clock
mov eax, 1
shl eax, cl
push 4
push 0
mov dword [esp + 0x24], eax
call fcn.10036f50
add esp, 0x14
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov esi, eax
test esi, esi
jne 0x10040e21
xor ecx, ecx
call fcn.10040980
push eax
push str.could_not_create_event:__s
jmp 0x10040ec0
push 0x100aa854
push 0
push esi
push 0x10040f30
push 0
push 0
call fcn.10053b61
add esp, 0x18
mov dword [0x100aa974], eax
test eax, eax
jne 0x10040e68
push str.unable_to_create_timer_thread___aborting
push str.windows_init_clock
push 1
push ebx
call fcn.10036f50
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
test eax, eax
jne 0x10040e8c
push str.unable_to_set_timer_thread_affinity__timer_discrepancies_may_arise
push str.windows_init_clock
push 2
push ebx
call fcn.10036f50
add esp, 0x10
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x10040ea0
push str.failed_to_wait_for_timer_thread_to_become_ready___aborting
jmp 0x10040e48
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
call fcn.10040980
push eax
push str.could_not_get_process_affinity:__s
push str.windows_init_clock
push 1
push ebx
call fcn.10036f50
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.could_not_resolve_DLL_functions
push str.windows_init_clock
push 1
push ebx
call fcn.10036f50
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.no_hires_timer_available_on_this_platform
push str.windows_init_clock
push 4
push 0
call fcn.10036f50
add esp, 0x10
xorps xmm0, xmm0
movlpd qword [0x100aa968], xmm0
mov eax, 1
movlpd qword [0x100aa960], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret