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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3c
lea eax, [ebp - 0x20]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
sub esp, 4
test eax, eax
je 0x4c80c0
mov dword [esp], str.User32
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
sub esp, 4
test eax, eax
mov esi, eax
mov dword [0x5b25dc], eax
je 0x4c82a2
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 4], str.GetMessageA
mov dword [esp], eax
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d8], eax
je 0x4c82ca
mov esi, dword [0x5b25dc]
mov dword [esp + 4], str.PeekMessageA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d4], eax
je 0x4c8268
mov esi, dword [0x5b25dc]
mov dword [esp + 4], str.PostThreadMessageA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d0], eax
je 0x4c8317
mov esi, dword [ebp - 0x20]
mov edi, dword [ebp - 0x1c]
mov dword [esp], 0xd4a51000
mov dword [esp + 4], 0xe8
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
mov dword [0x5b25e8], esi
mov dword [0x5b25ec], edi
call fcn.004d7090
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], str.hires_timer_available__Frequency:__llu_Hz_
mov dword [esp + 8], str.windows_init_clock
mov dword [esp + 4], 4
mov dword [esp], 0
mov dword [0x5b25f4], edx
mov dword [0x5b25f0], eax
call fcn.004b6600
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea edx, [ebp - 0x24]
mov dword [esp + 8], edx
lea edx, [ebp - 0x28]
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcessAffinityMask]
sub esp, 0xc
test eax, eax
je 0x4c8230
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x4c8230
xor ecx, ecx
test dl, 1
mov ebx, 1
mov eax, 1
jne 0x4c7fac
add ecx, 1
mov eax, ebx
shl eax, cl
test eax, edx
je 0x4c7fa1
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.timer_thread_will_run_on_core__d
mov dword [esp + 8], str.windows_init_clock
mov dword [esp + 4], 4
mov dword [esp], 0
mov dword [ebp - 0x28], eax
call fcn.004b6600
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
sub esp, 0x10
test eax, eax
mov ebx, eax
je 0x4c837e
mov dword [esp + 0x14], 0x5b25e0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x4c7270
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll__beginthreadex]
test eax, eax
mov dword [0x5b25e4], eax
je 0x4c839b
mov edx, dword [ebp - 0x28]
mov dword [esp], eax
mov dword [esp + 4], edx
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
sub esp, 8
test eax, eax
je 0x4c8356
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub esp, 8
test eax, eax
je 0x4c8306
mov dword [esp + 0xc], str.failed_to_wait_for_timer_thread_to_become_ready___aborting
mov eax, dword [ebp + 8]
mov dword [esp + 8], str.windows_init_clock
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004b6600
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
call fcn.004c7db0
mov eax, 0xfffffff5
jmp 0x4c813a
mov dword [esp + 0xc], str.no_hires_timer_available_on_this_platform
mov dword [esp + 8], str.windows_init_clock
mov dword [esp + 4], 4
mov dword [esp], 0
call fcn.004b6600
mov dword [0x5b25e8], 0
mov dword [0x5b25ec], 0
mov dword [0x5b25f0], 0
mov dword [0x5b25f4], 0
mov eax, dword [0x5b25cc]
test eax, eax
je 0x4c8142
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], str.hash_table_already_allocated
mov dword [esp + 8], str.htab_create
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004b6600
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x5b25c8
mov ebx, 0x3fd
mov esi, 0xaaaaaaab
call fcn.004bd6d0
cmp ebx, 9
jbe 0x4c819c
lea esi, [esi]
mov eax, ebx
mul esi
shr edx, 1
lea eax, [edx + edx*2]
cmp ebx, eax
je 0x4c8194
mov ecx, 3
jmp 0x4c817e
xor edx, edx
mov eax, ebx
div ecx
test edx, edx
je 0x4c8194
add ecx, 2
mov eax, ecx
imul eax, ecx
cmp ebx, eax
ja 0x4c8174
xor edx, edx
mov eax, ebx
div ecx
test edx, edx
jne 0x4c81ab
add ebx, 2
cmp ebx, 9
ja 0x4c8160
xor edx, edx
mov ecx, 3
mov eax, ebx
div ecx
test edx, edx
je 0x4c8194
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.using__lu_entries_hash_table
mov dword [esp + 8], str.htab_create
mov dword [esp + 4], 4
mov dword [esp], 0
mov dword [0x5b25c4], ebx
call fcn.004b6600
mov eax, dword [0x5b25c4]
mov dword [esp + 4], 8
mov dword [0x5b25c0], 0
add eax, 1
mov dword [esp], eax
call sub.msvcrt.dll_calloc
test eax, eax
mov dword [0x5b25cc], eax
jne 0x4c8138
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], str.could_not_allocate_space_for_hash_table
mov dword [esp + 8], str.htab_create
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004b6600
jmp 0x4c80ad
mov dword [esp], 0
call fcn.004c7070
mov dword [esp + 0xc], str.could_not_get_process_affinity:__s
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], str.windows_init_clock
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004b6600
jmp 0x4c80ad
mov dword [esp + 4], str.PeekMessageAA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d4], eax
jne 0x4c7ed5
mov dword [esp + 4], str.PeekMessageAW
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d4], eax
jne 0x4c7ed5
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], str.could_not_resolve_DLL_functions
mov dword [esp + 8], str.windows_init_clock
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.004b6600
jmp 0x4c80ad
mov dword [esp + 4], str.GetMessageAA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d8], eax
jne 0x4c7eb2
mov dword [esp + 4], str.GetMessageAW
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d8], eax
jne 0x4c7eb2
jmp 0x4c82a2
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
jmp 0x4c810c
mov dword [esp + 4], str.PostThreadMessageAA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d0], eax
jne 0x4c7ef8
mov dword [esp + 4], str.PostThreadMessageAW
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5b25d0], eax
jne 0x4c7ef8
jmp 0x4c82a2
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], str.unable_to_set_timer_thread_affinity__timer_discrepancies_may_arise
mov dword [esp + 8], str.windows_init_clock
mov dword [esp + 4], 2
mov dword [esp], eax
call fcn.004b6600
jmp 0x4c8062
mov dword [esp], 0
call fcn.004c7070
mov dword [esp + 0xc], str.could_not_create_event:__s
mov dword [esp + 0x10], eax
jmp 0x4c8248
mov dword [esp + 0xc], str.unable_to_create_timer_thread___aborting
jmp 0x4c8086