Function at 0x426410
Capabilities:
Check for time delay via queryperformancecounter
Print debug messages

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404bd0
xor eax, eax
push ebp
push 0x4266de
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4a5a0d], 3
je 0x4266bb
push 0x4266ec
call sub.user32.dll_GetDesktopWindow
push eax
call sub.user32.dll_GetPropA
mov ebx, eax
inc ebx
push ebx
push 0x4266ec
call sub.user32.dll_GetDesktopWindow
push eax
call sub.user32.dll_SetPropA
push 0x426704
lea edx, [ebp - 0xc]
mov eax, ebx
call fcn.00408e74
push dword [ebp - 0xc]
push 0x426710
push dword [ebp - 4]
lea eax, [ebp - 4]
mov edx, 4
call fcn.00404aa0
push 0x426714
mov eax, dword [0x4a5a14]
push eax
call sub.user32.dll_GetPropA
cmp eax, 1
sete byte [0x4a2530]
cmp byte [0x4a2530], 0
je 0x4265e9
mov byte [0x4a2534], 1
push 0x4a5a20
call sub.kernel32.dll_QueryPerformanceCounter_1
push dword [0x4a5a1c]
push dword [0x4a5a18]
push 0
push 0x3e8
mov eax, dword [0x4a5a20]
mov edx, dword [0x4a5a24]
call fcn.004057c0
call fcn.004057e4
mov dword [ebp - 8], eax
call sub.kernel32.dll_GetCurrentThreadId_1
mov esi, eax
or ebx, 0xffffffff
mov eax, dword [0x4a5bf4]
call fcn.00405b0c
mov edx, eax
dec edx
test edx, edx
jl 0x426526
inc edx
xor eax, eax
mov ecx, dword [0x4a5bf4]
mov ecx, dword [ecx + eax*4]
cmp esi, dword [ecx + 4]
jne 0x426522
mov ebx, eax
jmp 0x426526
inc eax
dec edx
jne 0x426510
cmp ebx, 0xffffffff
jne 0x426576
mov eax, dword [0x4a5bf4]
call fcn.00405b0c
mov ebx, eax
lea eax, [ebx + 1]
push eax
mov eax, 0x4a5bf4
mov ecx, 1
mov edx, dword [0x426250]
call fcn.00405cc8
add esp, 4
mov dl, 1
mov eax, dword [0x4261d4]
call fcn.00403840
mov edi, eax
mov eax, dword [0x4a5bf4]
mov dword [eax + ebx*4], edi
mov dword [edi + 4], esi
xor eax, eax
mov dword [edi + 8], eax
xor eax, eax
mov dword [edi + 0xc], eax
mov dl, 1
mov eax, dword [0x42616c]
call fcn.00403840
mov esi, eax
mov eax, dword [0x4a5bf4]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0xc]
mov dword [esi + 8], eax
mov eax, dword [0x4a5bf4]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4265a4
mov dword [eax + 0xc], esi
mov eax, dword [0x4a5bf4]
mov eax, dword [eax + ebx*4]
mov dword [eax + 0xc], esi
cmp dword [eax + 8], 0
jne 0x4265b8
mov dword [eax + 8], esi
push 0x426728
mov eax, dword [ebp - 8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x10]
call fcn.00408f60
push dword [ebp - 0x10]
push 0x426710
push dword [ebp - 4]
lea eax, [esi + 4]
mov edx, 4
call fcn.00404aa0
jmp 0x4266bb
cmp byte [0x4a2534], 0
je 0x426638
call sub.kernel32.dll_GetCurrentThreadId_1
mov esi, eax
or ebx, 0xffffffff
mov eax, dword [0x4a5bf4]
call fcn.00405b0c
mov edx, eax
dec edx
test edx, edx
jl 0x426626
inc edx
xor eax, eax
mov ecx, dword [0x4a5bf4]
mov ecx, dword [ecx + eax*4]
cmp esi, dword [ecx + 4]
jne 0x426622
mov ebx, eax
jmp 0x426626
inc eax
dec edx
jne 0x426610
cmp ebx, 0xffffffff
jle 0x426638
mov eax, dword [0x4a5bf4]
mov eax, dword [eax + ebx*4]
call fcn.004263a4
push 0x4a5a20
call sub.kernel32.dll_QueryPerformanceCounter_1
push dword [0x4a5a1c]
push dword [0x4a5a18]
push 0
push 0x3e8
mov eax, dword [0x4a5a20]
mov edx, dword [0x4a5a24]
call fcn.004057c0
call fcn.004057e4
mov dword [ebp - 8], eax
push 0x426728
mov eax, dword [ebp - 8]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x14]
call fcn.00408f60
push dword [ebp - 0x14]
push 0x426710
push dword [ebp - 4]
lea eax, [ebp - 4]
mov edx, 4
call fcn.00404aa0
cmp byte [0x4a5a0d], 2
je 0x4266b3
mov eax, dword [ebp - 4]
call fcn.00404be0
push eax
call sub.kernel32.dll_OutputDebugStringA
jmp 0x4266bb
mov eax, dword [ebp - 4]
call fcn.00426270
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4266e5
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00404734
lea eax, [ebp - 4]
call fcn.00404710
ret