Function at 0x5b6b30
Capabilities:
Hide graphical window
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x134
mov eax, dword [0x867e6c]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 4]
cmp byte [eax + 0x39d], 0
push edi
jne 0x5b6d58
call fcn.005b5fa0
mov ecx, dword [esi + 4]
cmp byte [ecx + 0x67c], 0
je 0x5b6b79
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
mov ecx, esi
call eax
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x5e4]
push 5
push edx
call dword [sym.imp.user32.dll_ShowWindow]
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x5e4]
push ecx
call dword [sym.imp.user32.dll_SetFocus]
push 1
call dword [sym.imp.winmm.dll_timeBeginPeriod]
mov ebx, dword [sym.imp.winmm.dll_timeGetTime]
call ebx
mov edx, dword [esi + 4]
mov byte [edx + 0x631], 1
mov ecx, dword [esi + 4]
mov edi, eax
mov dword [ecx + 0x578], edi
xor eax, eax
mov dword [ecx + 0x57c], eax
mov ecx, dword [esi + 4]
mov dword [ecx + 0x580], edi
mov dword [ecx + 0x584], eax
mov eax, dword [esi + 4]
mov dword [eax + 0x44c], edi
mov edx, dword [esi]
mov eax, dword [edx + 0x130]
mov ecx, esi
call eax
mov ecx, dword [esi + 4]
push ecx
call fcn.004698f0
mov edx, dword [esi + 4]
mov byte [edx + 0x631], 0
call fcn.005aa390
call ebx
sub eax, edi
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
test eax, eax
jge 0x5b6c1a
fadd qword [0x82dc38]
fdiv qword [0x82dee8]
sub esp, 8
lea eax, [esp + 0x40]
fstp qword [esp]
push str.Seconds_________g_r_n
push eax
call fcn.006456f4
mov edi, dword [sym.imp.kernel32.dll_OutputDebugStringA]
add esp, 0x10
lea ecx, [esp + 0x38]
push ecx
call edi
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x588]
push eax
lea ecx, [esp + 0x3c]
push str.Sleep_Count_____d_r_n
push ecx
call fcn.006456f4
add esp, 0xc
lea edx, [esp + 0x38]
push edx
call edi
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x590]
push ecx
lea edx, [esp + 0x3c]
push str.Update_Count____d_r_n
push edx
call fcn.006456f4
add esp, 0xc
lea eax, [esp + 0x38]
push eax
call edi
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x58c]
push edx
lea eax, [esp + 0x3c]
push str.Draw_Count______d_r_n
push eax
call fcn.006456f4
add esp, 0xc
lea ecx, [esp + 0x38]
push ecx
call edi
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x638]
push eax
lea ecx, [esp + 0x3c]
push str.Draw_Time_______d_r_n
push ecx
call fcn.006456f4
add esp, 0xc
lea edx, [esp + 0x38]
push edx
call edi
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x678]
push ecx
lea edx, [esp + 0x3c]
push str.Screen_Blt______d_r_n
push edx
call fcn.006456f4
add esp, 0xc
lea eax, [esp + 0x38]
push eax
call edi
mov eax, dword [esi + 4]
mov ecx, dword [eax + 0x678]
add ecx, dword [eax + 0x638]
test ecx, ecx
jle 0x5b6d3c
mov ecx, dword [eax + 0x678]
add ecx, dword [eax + 0x638]
mov eax, dword [eax + 0x58c]
imul eax, eax, 0x3e8
cdq
idiv ecx
lea edx, [esp + 0x38]
push eax
push str.Avg_FPS_________d_r_n
push edx
call fcn.006456f4
add esp, 0xc
lea eax, [esp + 0x38]
push eax
call edi
push 1
call dword [sym.imp.winmm.dll_timeEndPeriod]
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
mov ecx, dword [esi + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x48]
call eax
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00643db8
mov esp, ebp
pop ebp
ret