Function at 0x461360
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
sub esp, 0x338
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edi
mov eax, dword [edi + 0x108]
cmp eax, 2
je 0x461cb8
cmp eax, 3
je 0x461cb8
xor ebx, ebx
cmp eax, ebx
jne 0x4613a7
push ebx
push 0x536e4c
push 0x5fa8b4
call sub.MFC42.DLL_CWnd::MessageBoxA
pop edi
pop esi
pop ebx
add esp, 0x338
ret
mov ecx, dword [0x71b874]
push ebp
call fcn.00439d50
mov dword [esp + 0x10], ebx
call fcn.004418d0
mov ecx, eax
call fcn.0041d310
push 0x5fa8a8
mov ecx, edi
mov dword [edi + 0x108], 3
call fcn.004537c0
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 8]
push 0x80
push eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov ebp, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov dword [0x71b870], eax
mov esi, 1
cmp dword [0x680aac], ebx
je 0x46141d
cmp dword [0x680b84], ebx
je 0x46141d
push 0x5fd754
push 0x1a
push esi
call fcn.0043faf0
add esp, 0xc
push ebx
push ebx
push ebx
lea eax, [esp + 0x38]
push ebx
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x46149e
push ebx
push ebx
lea ecx, [esp + 0x34]
push ebx
push ecx
call dword [sym.imp.USER32.dll_GetMessageA]
cmp dword [0x6809f0], ebx
je 0x461488
cmp dword [0x680b34], ebx
jne 0x461488
mov eax, dword [0x71b870]
mov ecx, dword [0x71b880]
lea edx, [esp + 0x2c]
mov dword [0x5fa548], ebx
push edx
push eax
push ecx
call dword [sym.imp.USER32.dll_TranslateAccelerator]
cmp eax, ebx
mov dword [0x5fa548], esi
jne 0x46149e
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x2c]
push eax
jmp 0x461498
lea ecx, [esp + 0x2c]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
cmp dword [0x68c568], ebx
jne 0x4614b8
push 0x5fa620
mov ecx, edi
mov dword [edi + 0x108], ebx
call fcn.004537c0
cmp dword [edi + 0x108], 3
jne 0x46150c
push 0x71b868
call ebp
mov dword [edi + 0x108], 2
mov eax, dword [0x68c568]
mov ecx, dword [eax]
push ecx
mov ecx, edi
call fcn.004537c0
cmp dword [0x71b888], ebx
jne 0x4614f4
mov dword [0x71b888], esi
call fcn.00409e90
mov dword [edi + 0x110], ebx
mov dword [edi + 0x10c], ebx
mov dword [0x71b850], ebx
mov dword [0x71b854], ebx
cmp dword [edi + 0x108], 2
jne 0x461bbd
cmp dword [0x680954], ebx
je 0x461529
cmp dword [0x680b34], ebx
je 0x46155e
call fcn.00409f40
test eax, eax
jne 0x46155e
cmp dword [0x680970], ebx
je 0x461549
mov edx, dword [0x71b850]
mov eax, dword [0x71b854]
or edx, eax
jne 0x46155e
mov eax, dword [edi + 0x10c]
cdq
idiv dword [0x680950]
test edx, edx
je 0x461bbd
push 0x71b860
call ebp
call fcn.004203d0
push 0x5fd74c
call fcn.00420450
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, ebx
je 0x461584
call fcn.00441420
call fcn.004204b0
call fcn.00426f90
call fcn.0043de50
cmp dword [0x680b84], ebx
je 0x4615a3
cmp eax, ebx
jne 0x461bdf
call fcn.00409cc0
mov eax, dword [edi + 0x10c]
mov dword [esp + 0x10], ebx
cdq
idiv dword [0x680950]
test edx, edx
jne 0x461610
mov eax, dword [0x680954]
mov edx, dword [0x680b34]
cmp eax, ebx
je 0x4615d0
cmp edx, ebx
je 0x4615fa
mov ecx, dword [0x680970]
cmp ecx, ebx
je 0x4615ee
mov ebp, dword [0x71b850]
or ebp, dword [0x71b854]
mov ebp, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
je 0x4615fa
cmp eax, ebx
je 0x4615f6
cmp edx, ebx
je 0x461610
cmp ecx, ebx
jne 0x461610
call fcn.004418f0
mov eax, dword [edi + 0x110]
mov dword [esp + 0x10], esi
inc eax
mov dword [edi + 0x110], eax
mov ecx, dword [edi + 0x10c]
inc ecx
mov dword [edi + 0x10c], ecx
mov eax, dword [0x680b34]
cmp eax, ebx
je case.default.0x461641
mov eax, dword [0x68c568]
mov eax, dword [eax + 0xa8]
add eax, 0xffffffe3
cmp eax, 3
ja case.default.0x461641
jmp dword [eax*4 + 0x461d18]
mov ecx, dword [0x71b8e8]
mov byte [ecx + 0x8c20], 0xff
mov edx, dword [0x71b8e8]
mov byte [edx + 0x8c21], 0xff
jmp case.default.0x461641
mov eax, dword [0x71b8e8]
mov byte [eax + 0xef4], bl
mov ecx, dword [0x71b8e8]
mov byte [ecx + 0xef5], 1
mov edx, dword [0x71b8e8]
mov byte [edx + 0xf24], bl
mov eax, dword [0x71b8e8]
mov byte [eax + 0xf25], 1
jmp case.default.0x461641
mov ecx, dword [0x71b8e8]
mov byte [ecx + 0x1d8e], 0xb
mov edx, dword [0x71b8e8]
mov byte [edx + 0x1d8f], bl
mov eax, dword [0x71b8e8]
mov byte [eax + 0x1dbe], 0xb
mov ecx, dword [0x71b8e8]
mov byte [ecx + 0x1dbf], bl
jmp case.default.0x461641
mov edx, dword [0x71b8e8]
mov byte [edx + 0x58c7], 7
mov eax, dword [0x68c568]
cmp dword [eax + 0xa8], 0xc
jne 0x4616f1
mov ecx, dword [0x71b8e8]
mov byte [ecx + 0x80ef], 4
cmp dword [0x5383c8], ebx
je 0x461710
push 0x5fd73c
call fcn.00420450
add esp, 4
call fcn.004206b0
call fcn.004204b0
cmp dword [0x680b34], ebx
jne 0x4617eb
push 0x5fd734
call fcn.00420450
mov edx, dword [0x68c568]
add esp, 4
mov ecx, dword [edx + 0xa4]
cmp ecx, ebx
je 0x4617e1
mov eax, dword [0x5fa54c]
cmp eax, 0xffffffff
je 0x4617e1
cmp ecx, 0xff0000
jbe 0x46178d
mov edx, dword [0x71b8e8]
and ecx, 0xffff
mov byte [ecx + edx], al
mov eax, dword [0x68c568]
cmp dword [eax + 0xa8], 0x2e
jne 0x4617e1
mov eax, dword [eax + 0xa4]
mov ecx, dword [0x71b8e8]
mov dl, byte [0x5fa54c]
inc eax
and eax, 0xffff
mov byte [eax + ecx], dl
jmp 0x4617e1
cmp dword [edx + 0x1c], 2
jne 0x46179b
mov edx, dword [0x71b8c4]
jmp 0x4617de
cmp dword [edx + 0xa8], 0x16
jne 0x4617d8
cdq
mov ecx, 6
idiv ecx
mov eax, dword [0x71b8c0]
mov dl, byte [edx + 0x5fa538]
mov byte [eax + 0xf40], dl
mov eax, dword [0x5fa54c]
cdq
idiv ecx
mov eax, dword [0x71b8c0]
mov dl, byte [edx + 0x5fa540]
mov byte [eax + 0xf46], dl
jmp 0x4617e1
mov edx, dword [0x71b8c0]
mov byte [ecx + edx], al
call fcn.00436ff0
call fcn.004204b0
cmp dword [0x680b40], ebx
je 0x4617f8
call fcn.00420520
cmp dword [0x6809fc], ebx
je 0x461870
lea eax, [esp + 0x14]
push eax
call ebp
mov esi, dword [esp + 0x14]
mov edx, dword [0x71b860]
mov ebp, dword [esp + 0x18]
mov eax, dword [0x71b864]
mov ecx, esi
mov ebx, ebp
sub ecx, edx
sbb ebx, eax
mov eax, dword [0x6809fc]
cdq
push edx
push eax
push ebx
push ecx
call fcn.004f7720
xor ebx, ebx
push ebx
push 0x64
push edx
push eax
call fcn.004f7670
add esi, eax
adc ebp, edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
mov ebp, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea edx, [esp + 0x24]
push edx
call ebp
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jl 0x46184f
jg 0x461870
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
cmp ecx, eax
jb 0x46184f
push 0x71b858
call ebp
cmp dword [0x6809bc], ebx
je 0x461938
cmp dword [0x680970], ebx
je 0x46189e
mov edx, dword [0x71b850]
mov eax, dword [0x71b854]
or edx, eax
jne 0x461938
mov eax, dword [edi + 0x110]
mov ecx, dword [0x5fa564]
mov edi, dword [edi + 0x10c]
push ecx
lea eax, [eax + eax*4]
mov ecx, dword [0x5fa560]
push ecx
lea esi, [eax + eax*4]
shl esi, 2
mov eax, esi
cdq
push edx
push eax
call fcn.004f7720
mov ebp, dword [0x71b860]
mov ebx, dword [0x71b868]
mov ecx, ebp
sub ecx, ebx
mov ebx, dword [0x71b864]
sbb ebx, dword [0x71b86c]
add ecx, 1
adc ebx, 0
push ebx
push ecx
push edx
push eax
call fcn.004f7670
push edx
push eax
mov eax, esi
cdq
idiv edi
mov edx, dword [0x71b858]
sub edx, ebp
push eax
mov eax, 0x88888889
push edx
imul edi
add edx, edi
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push 0x5fd710
push 1
push 5
call fcn.0043faf0
mov edi, dword [esp + 0x3c]
mov ebp, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
add esp, 0x20
xor ebx, ebx
cmp dword [0x680970], ebx
je 0x46199d
mov ecx, dword [0x71b858]
mov eax, dword [0x71b860]
mov esi, dword [0x71b864]
mov edx, dword [0x71b854]
sub ecx, eax
mov eax, dword [0x71b85c]
sbb eax, esi
mov esi, dword [0x71b850]
add esi, ecx
mov ecx, dword [0x5fa560]
adc edx, eax
mov eax, dword [0x5fa564]
cmp edx, eax
jg 0x46198d
jl 0x46197f
cmp esi, ecx
jae 0x46198d
mov dword [0x71b850], ebx
mov dword [0x71b854], ebx
jmp 0x46199d
sub esi, ecx
sbb edx, eax
mov dword [0x71b850], esi
mov dword [0x71b854], edx
push 0x5384dc
call fcn.00420450
mov ecx, dword [0x5fa550]
mov eax, dword [0x680ad4]
add esp, 4
cmp ecx, ebx
mov esi, eax
jne 0x4619c7
cmp dword [0x680b34], ebx
jne 0x4619c7
cmp eax, ebx
je 0x4619db
mov ecx, dword [0x71b874]
call fcn.00439d50
mov dword [esp + 0x20], eax
mov eax, dword [0x680ad4]
cmp esi, eax
je 0x461a14
mov ecx, dword [edi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_GetMenu]
push eax
call sub.MFC42.DLL_CMenu::FromHandle
cmp eax, ebx
jne 0x4619f7
xor eax, eax
jmp 0x4619fa
mov eax, dword [eax + 4]
mov edx, dword [0x680ad4]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0x8111
push eax
call dword [sym.imp.USER32.dll_CheckMenuItem]
mov eax, dword [0x71b874]
cmp dword [eax + 0x14], ebx
je 0x461a3f
cmp dword [edi + 0x108], ebx
jne 0x461a3a
push ebx
push 0x536e4c
push 0x5fa8b4
mov ecx, edi
call sub.MFC42.DLL_CWnd::MessageBoxA
jmp 0x461a3f
call fcn.0043de60
cmp dword [0x680b34], ebx
je 0x461b69
cmp dword [esp + 0x20], 0xffffffff
jne 0x461ab1
mov dword [edi + 0x108], 1
mov ecx, dword [0x68c568]
mov esi, dword [sym.imp.msvcrt.dll_sprintf]
lea eax, [esp + 0x248]
mov edx, dword [ecx]
push edx
push 0x5fc988
push eax
call esi
add esp, 0xc
call fcn.00442240
test eax, eax
jne 0x461ab7
lea ecx, [esp + 0x248]
lea edx, [esp + 0x148]
push ecx
push 0x5fa608
push edx
call esi
add esp, 0xc
lea eax, [esp + 0x148]
mov ecx, edi
push eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
jmp 0x461ab7
mov esi, dword [sym.imp.msvcrt.dll_sprintf]
mov ecx, dword [0x71b874]
cmp dword [ecx + 0xc], ebx
je 0x461acf
cmp dword [0x6952e4], ebx
jne 0x461acf
call fcn.0043d3b0
mov edx, dword [0x71b874]
cmp dword [edx + 0x1c], ebx
je 0x461ae1
mov ecx, edi
call fcn.004579a0
mov eax, dword [0x71b874]
cmp dword [eax + 0x18], ebx
je 0x461b2a
cmp dword [0x6952e4], ebx
jne 0x461b2a
call fcn.00442240
test eax, eax
jne 0x461b2a
mov dword [edi + 0x108], 1
mov ecx, dword [0x68c568]
lea eax, [esp + 0x48]
mov edx, dword [ecx]
push edx
push 0x5fc988
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x48]
push ecx
mov ecx, edi
call fcn.004537c0
mov edx, dword [0x71b874]
cmp dword [edx + 0x18], ebx
je 0x461b4d
cmp dword [0x6952e4], ebx
jne 0x461b55
call fcn.00442240
test eax, eax
je 0x461b4d
mov ecx, edi
call fcn.004579a0
cmp dword [0x6952e4], ebx
je 0x461b5a
call fcn.0043d490
cmp dword [0x680b38], ebx
je 0x461bb3
call fcn.0043d3d0
jmp 0x461bb3
cmp dword [0x6809f0], ebx
jne 0x461bb3
mov eax, dword [0x71b874]
cmp dword [eax + 0x18], ebx
je 0x461b93
call fcn.00442240
test eax, eax
je 0x461b8b
mov ecx, edi
call fcn.004579a0
cmp dword [0x6809f0], ebx
jne 0x461bb3
call fcn.00442240
test eax, eax
jne 0x461bb3
mov ecx, dword [0x71b874]
cmp dword [ecx + 0x10], ebx
je 0x461bb3
call fcn.00440190
mov ecx, edi
call fcn.00457ea0
call fcn.004204b0
mov esi, 1
mov eax, dword [edi + 0x108]
cmp eax, 2
je 0x4613fd
cmp eax, 4
je 0x4613fd
cmp eax, 3
jne 0x461c39
jmp 0x4613fd
mov dword [edi + 0x108], esi
mov edx, dword [0x68c568]
mov ebp, dword [sym.imp.msvcrt.dll_sprintf]
lea ecx, [esp + 0x48]
mov eax, dword [edx]
push eax
push 0x5fc988
push ecx
call ebp
add esp, 0xc
call fcn.00442240
test eax, eax
jne 0x461c32
lea edx, [esp + 0x48]
lea eax, [esp + 0x148]
push edx
push 0x5fa608
push eax
call ebp
add esp, 0xc
lea ecx, [esp + 0x148]
push ecx
mov ecx, edi
call sub.MFC42.DLL_CWnd::SetWindowTextA
mov ecx, edi
call fcn.004536a0
mov eax, dword [0x71b888]
pop ebp
cmp eax, ebx
je 0x461c4e
mov dword [0x71b888], ebx
call fcn.00409eb0
cmp dword [edi + 0x108], ebx
je 0x461c84
mov dword [edi + 0x108], esi
mov edx, dword [0x68c568]
lea ecx, [esp + 0x44]
mov eax, dword [edx]
push eax
push 0x5fc988
push ecx
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0xc
lea edx, [esp + 0x44]
mov ecx, edi
push edx
call fcn.004537c0
cmp dword [esp + 0xc], ebx
je 0x461c8f
call fcn.00441420
cmp dword [0x680b34], ebx
je 0x461d0e
call fcn.00441120
call dword [fcn.006952ec]
push 0x5f27c8
mov ecx, edi
call fcn.004537c0
pop edi
pop esi
pop ebx
add esp, 0x338
ret
mov dword [edi + 0x108], 1
mov eax, dword [0x68c568]
mov esi, dword [sym.imp.msvcrt.dll_sprintf]
lea edx, [esp + 0x44]
mov ecx, dword [eax]
push ecx
push 0x5fc988
push edx
call esi
add esp, 0xc
call fcn.00442240
test eax, eax
jne 0x461d0e
lea eax, [esp + 0x44]
lea ecx, [esp + 0x144]
push eax
push 0x5fa608
push ecx
call esi
add esp, 0xc
lea edx, [esp + 0x144]
mov ecx, edi
push edx
call sub.MFC42.DLL_CWnd::SetWindowTextA
pop edi
pop esi
pop ebx
add esp, 0x338
ret