Function at 0x42acf0
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x8c
push ebx
push ebp
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
push esi
lea eax, [esp + 0xf]
mov ebx, 1
add dword [0x59b528], ebx
push edi
xor edi, edi
mov dword [0x587b60], eax
xor eax, eax
mov byte [esp + 0x13], 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea ecx, [esp + 0x90]
push ecx
call esi
fild qword [esp + 0x90]
push ebx
push edi
push edi
fstp qword [esp + 0x54]
push edi
lea edx, [esp + 0x38]
push edx
call ebp
test eax, eax
je 0x42aec3
mov eax, dword [0x58b10c]
cmp eax, edi
je 0x42ad8e
cmp dword [esp + 0x2c], 0x100
jne 0x42ad8e
lea ecx, [esp + 0x28]
push ecx
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x42aeb0
cmp dword [esp + 0x2c], 0x200
jne 0x42adb7
jmp 0x42ada0
push ebx
push 0x200
push 0x200
push edi
lea edx, [esp + 0x38]
push edx
call ebp
test eax, eax
jne 0x42ada0
mov eax, dword [0x587b8c]
cmp eax, edi
je 0x42ade1
cmp dword [esp + 0x28], edi
je 0x42ade1
mov edx, dword [0x59b4d0]
lea ecx, [esp + 0x28]
push ecx
push eax
push edx
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x42aeb0
cmp dword [0x59b528], ebx
jle 0x42ae3e
cmp dword [esp + 0x2c], 0x10
jne 0x42ae3e
mov eax, dword [0x59b4d0]
cmp eax, edi
je 0x42ae1b
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x42ae1b
mov eax, dword [0x59b4d0]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x42ae1b
mov eax, dword [0x59b4d0]
jmp 0x42ae1d
xor eax, eax
mov ecx, dword [esp + 0x28]
cmp ecx, eax
jne 0x42ae3e
push 0xffffffffffffffeb
push ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
cmp eax, edi
je 0x42ae3e
cmp dword [eax + 0x80], edi
jne 0x42b40a
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageA]
lea eax, [esp + 0x50]
push eax
call esi
fild qword [esp + 0x50]
fstp qword [esp + 0x18]
fldz
fld qword [0x59b480]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x42ae91
lea ecx, [esp + 0x78]
fstp st(0)
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
fild qword [esp + 0x78]
fld1
fdivrp st(1)
fst qword [0x59b480]
fld qword [esp + 0x18]
fsub qword [esp + 0x48]
fmulp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcomp qword [0x568178]
fnstsw ax
test ah, 0x41
je 0x42aec3
push ebx
push edi
push edi
push edi
lea edx, [esp + 0x38]
push edx
call ebp
test eax, eax
jne 0x42ad67
cmp dword [esp + 0x2c], 0x12
je 0x42b447
cmp byte [0x59b496], 0
jne 0x42b447
mov byte [esp + 0x12], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov eax, dword [0x582c18]
cmp eax, edi
je 0x42af05
cmp eax, esi
jne 0x42af05
add dword [0x582c1c], ebx
jmp 0x42af36
cmp byte [0x582c04], 0
je 0x42af1b
push 0x582c20
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x42af2a
mov eax, dword [vtable.ytBaseThread.0]
mov edx, dword [eax + 0x18]
mov ecx, 0x582bf8
call edx
mov dword [0x582c1c], edi
mov dword [0x582c18], esi
lea eax, [esp + 0x20]
call fcn.0042ccf0
cmp dword [0x582c1c], edi
je 0x42af65
cmp dword [0x582c18], edi
je 0x42af65
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x582c18], eax
jne 0x42af65
sub dword [0x582c1c], ebx
jmp 0x42af90
cmp byte [0x582c04], 0
mov dword [0x582c18], edi
je 0x42af81
push 0x582c20
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x42af90
mov eax, dword [vtable.ytBaseThread.0]
mov edx, dword [eax + 0x1c]
mov ecx, 0x582bf8
call edx
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
xor ebx, ebx
shr eax, 1
mov dword [esp + 0x14], eax
je 0x42b2f6
mov esi, dword [edi + ebx*4]
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fild qword [esp + 0x68]
fstp qword [esp + 0x18]
fldz
fld qword [0x59b480]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x42aff0
lea ecx, [esp + 0x88]
fstp st(0)
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
fild qword [esp + 0x88]
fld1
fdivrp st(1)
fst qword [0x59b480]
fld qword [esp + 0x18]
fsub qword [esi + 0x18]
fmulp st(1)
fmul qword [0x567e58]
fild dword [esi + 0x20]
fcompp
fnstsw ax
test ah, 0x41
jp 0x42b2e9
mov esi, dword [edi + ebx*4]
lea edx, [esp + 0x58]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fild qword [esp + 0x58]
fstp qword [esp + 0x18]
fldz
fld qword [0x59b480]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x42b053
lea eax, [esp + 0x60]
fstp st(0)
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
fild qword [esp + 0x60]
fld1
fdivrp st(1)
fst qword [0x59b480]
fld qword [esp + 0x18]
mov edx, dword [esi]
fsub qword [esi + 0x10]
mov eax, dword [edx + 4]
sub esp, 8
mov ecx, esi
fmulp st(1)
fstp qword [esp]
call eax
cmp eax, 0xffffffff
jle 0x42b073
mov dword [esi + 0x20], eax
cmp eax, 0xfffffffe
je 0x42b2f6
cmp eax, 0xffffffff
jne 0x42b3c9
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
mov eax, dword [0x582c18]
test eax, eax
je 0x42b0a3
cmp eax, esi
jne 0x42b0a3
add dword [0x582c1c], 1
jmp 0x42b0d9
cmp byte [0x582c04], 0
je 0x42b0b9
push 0x582c20
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x42b0c9
mov edx, dword [vtable.ytBaseThread.0]
mov eax, dword [edx + 0x18]
mov ecx, 0x582bf8
call eax
mov dword [0x582c1c], 0
mov dword [0x582c18], esi
mov ecx, dword [0x59d534]
xor eax, eax
shr ecx, 1
je 0x42b277
mov edx, dword [edi + ebx*4]
mov ebp, dword [0x59d530]
cmp dword [ebp + eax*4], edx
je 0x42b104
add eax, 1
cmp eax, ecx
jb 0x42b0f2
jmp 0x42b277
test byte [0x59d534], 1
jne 0x42b277
test ecx, ecx
je 0x42b277
add ecx, 0xffffffff
cmp eax, ecx
jae 0x42b140
mov ecx, dword [ebp + eax*4 + 4]
mov dword [ebp + eax*4], ecx
mov edx, dword [0x59d534]
mov ebp, dword [0x59d530]
shr edx, 1
add eax, 1
sub edx, 1
cmp eax, edx
jb 0x42b120
mov ecx, dword [0x59d534]
mov eax, ecx
shr eax, 1
lea edi, [eax - 1]
cmp edi, 0x1fffffff
jbe 0x42b178
test ebp, ebp
je 0x42b162
push ebp
call fcn.0044d390
add esp, 4
and dword [0x59d534], 1
mov dword [0x59d530], 0
jmp 0x42b277
and ecx, 1
cmp edi, eax
je 0x42b277
test ecx, ecx
je 0x42b1b8
test edi, edi
je 0x42b155
lea eax, [edi*4]
push eax
push ebp
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [0x59d530], eax
je 0x42b162
mov edx, dword [0x59d534]
lea ecx, [edi + edi]
and edx, 1
or ecx, edx
jmp 0x42b271
lea ecx, [edi*4]
cmp ecx, 0x100000
jae 0x42b1d8
mov edx, 1
cmp edi, edx
jb 0x42b1e6
add edx, edx
cmp edx, edi
jbe 0x42b1d0
jmp 0x42b1e6
mov edx, edi
and edx, 0xfffffc00
add edx, 0x400
lea ecx, [eax*4]
cmp ecx, 0x100000
jae 0x42b233
cmp eax, 1
jbe 0x42b22d
mov ecx, eax
test ecx, ecx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jge 0x42b20e
fadd dword [0x567d50]
fstp dword [esp + 0x44]
mov esi, 1
mov ecx, dword [esp + 0x44]
shr ecx, 0x17
sub ecx, 0x7f
shl esi, cl
cmp esi, eax
jae 0x42b22f
add esi, esi
mov eax, esi
jmp 0x42b23d
mov esi, eax
mov eax, esi
jmp 0x42b23d
and eax, 0x7ffffc00
add eax, 0x400
cmp eax, edx
je 0x42b264
test edx, edx
je 0x42b155
add edx, edx
add edx, edx
push edx
push ebp
call fcn.0044d0b0
add esp, 8
test eax, eax
mov dword [0x59d530], eax
je 0x42b162
mov eax, dword [0x59d534]
lea ecx, [edi + edi]
and eax, 1
or ecx, eax
mov dword [0x59d534], ecx
cmp dword [0x582c1c], 0
je 0x42b2a0
cmp dword [0x582c18], 0
je 0x42b2a0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x582c18], eax
jne 0x42b2a0
sub dword [0x582c1c], 1
jmp 0x42b2d0
cmp byte [0x582c04], 0
mov dword [0x582c18], 0
je 0x42b2c0
push 0x582c20
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x42b2d0
mov edx, dword [vtable.ytBaseThread.0]
mov eax, dword [edx + 0x1c]
mov ecx, 0x582bf8
call eax
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + ebx*4]
test ecx, ecx
je 0x42b2e3
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov ebp, dword [sym.imp.USER32.dll_PeekMessageA]
invalid