Function at 0x4d06d0
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 0x4d0940
mov dword [esp], str.User32
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
sub esp, 4
test eax, eax
mov esi, eax
mov dword [0x5bd51c], eax
je 0x4d0b22
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 [0x5bd518], eax
je 0x4d0b4a
mov esi, dword [0x5bd51c]
mov dword [esp + 4], str.PeekMessageA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd514], eax
je 0x4d0ae8
mov esi, dword [0x5bd51c]
mov dword [esp + 4], str.PostThreadMessageA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd510], eax
je 0x4d0b97
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 [0x5bd528], esi
mov dword [0x5bd52c], edi
call dbg.__udivdi3
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 [0x5bd534], edx
mov dword [0x5bd530], eax
call dbg.usbi_log
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 0x4d0ab0
mov edx, dword [ebp - 0x28]
test edx, edx
je 0x4d0ab0
xor ecx, ecx
test dl, 1
mov ebx, 1
mov eax, 1
jne 0x4d082c
add ecx, 1
mov eax, ebx
shl eax, cl
test eax, edx
je 0x4d0821
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 dbg.usbi_log
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 0x4d0bfe
mov dword [esp + 0x14], 0x5bd520
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], dbg.windows_clock_gettime_threaded
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.msvcrt.dll__beginthreadex]
test eax, eax
mov dword [0x5bd524], eax
je 0x4d0c1b
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 0x4d0bd6
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
sub esp, 8
test eax, eax
je 0x4d0b86
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 dbg.usbi_log
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
call dbg.windows_common_exit
mov eax, 0xfffffff5
jmp 0x4d09ba
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 dbg.usbi_log
mov dword [0x5bd528], 0
mov dword [0x5bd52c], 0
mov dword [0x5bd530], 0
mov dword [0x5bd534], 0
mov eax, dword [0x5bd50c]
test eax, eax
je 0x4d09c2
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 dbg.usbi_log
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x5bd508
mov ebx, 0x3fd
mov esi, 0xaaaaaaab
call dbg.usbi_mutex_init
cmp ebx, 9
jbe 0x4d0a1c
lea esi, [esi]
mov eax, ebx
mul esi
shr edx, 1
lea eax, [edx + edx*2]
cmp ebx, eax
je 0x4d0a14
mov ecx, 3
jmp 0x4d09fe
xor edx, edx
mov eax, ebx
div ecx
test edx, edx
je 0x4d0a14
add ecx, 2
mov eax, ecx
imul eax, ecx
cmp ebx, eax
ja 0x4d09f4
xor edx, edx
mov eax, ebx
div ecx
test edx, edx
jne 0x4d0a2b
add ebx, 2
cmp ebx, 9
ja 0x4d09e0
xor edx, edx
mov ecx, 3
mov eax, ebx
div ecx
test edx, edx
je 0x4d0a14
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 [0x5bd504], ebx
call dbg.usbi_log
mov eax, dword [0x5bd504]
mov dword [esp + 4], 8
mov dword [0x5bd500], 0
add eax, 1
mov dword [esp], eax
call sym._calloc
test eax, eax
mov dword [0x5bd50c], eax
jne 0x4d09b8
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 dbg.usbi_log
jmp 0x4d092d
mov dword [esp], 0
call dbg.windows_error_str
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 dbg.usbi_log
jmp 0x4d092d
mov dword [esp + 4], str.PeekMessageAA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd514], eax
jne 0x4d0755
mov dword [esp + 4], str.PeekMessageAW
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd514], eax
jne 0x4d0755
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 dbg.usbi_log
jmp 0x4d092d
mov dword [esp + 4], str.GetMessageAA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd518], eax
jne 0x4d0732
mov dword [esp + 4], str.GetMessageAW
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd518], eax
jne 0x4d0732
jmp 0x4d0b22
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
jmp 0x4d098c
mov dword [esp + 4], str.PostThreadMessageAA
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd510], eax
jne 0x4d0778
mov dword [esp + 4], str.PostThreadMessageAW
mov dword [esp], esi
call ebx
sub esp, 8
test eax, eax
mov dword [0x5bd510], eax
jne 0x4d0778
jmp 0x4d0b22
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 dbg.usbi_log
jmp 0x4d08e2
mov dword [esp], 0
call dbg.windows_error_str
mov dword [esp + 0xc], str.could_not_create_event:__s
mov dword [esp + 0x10], eax
jmp 0x4d0ac8
mov dword [esp + 0xc], str.unable_to_create_timer_thread___aborting
jmp 0x4d0906