Function at 0x429180
Capabilities:
Check for time delay via queryperformancecounter
Get disk information
Hide graphical window

Disassembly:
sub esp, 0x48
push ebx
push ebp
mov ebp, ecx
push esi
lea ecx, [esp + 0x28]
push edi
mov al, byte [ebp]
push ecx
mov byte [esp + 0x17], al
mov byte [ebp], 0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
push 0
push 0x3e8
push esi
push edi
call fcn.00575270
push 0
push 0x3c
mov ebx, eax
push esi
push edi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], edx
call fcn.00575270
mov dword [esp + 0x30], edx
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov al, byte [0xaab48c]
mov dword [esp + 0x14], 0
test al, al
jne 0x42956f
call fcn.00542600
call fcn.00531440
call fcn.00490610
mov al, byte [0xaab48c]
test al, al
jne 0x429560
mov al, byte [0x5a027c]
test al, al
jne 0x429245
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00531440
mov al, byte [0x5a027c]
test al, al
je 0x429217
mov al, byte [0xaab48c]
test al, al
je 0x4291f2
mov al, byte [esp + 0x13]
pop edi
mov byte [ebp], al
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov al, byte [0xaab48e]
test al, al
je 0x42925c
call fcn.0043f650
mov al, byte [0xaab48e]
test al, al
jne 0x42922d
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
cmp ecx, eax
mov ecx, dword [esp + 0x24]
ja 0x42928f
jb 0x42927f
cmp ecx, dword [esp + 0x1c]
jae 0x42928f
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
sub eax, ecx
add eax, edx
lea edx, [ebx + ebx*2]
cmp eax, edx
jl 0x4292dc
mov edi, dword [esp + 0x38]
cdq
push edi
push ebx
push edx
push eax
call fcn.00575270
mov esi, eax
sub esi, 2
push esi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, esi
push edi
cdq
push ebx
push edx
push eax
call fcn.00575230
mov ecx, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 0x28]
adc eax, edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
mov ecx, eax
inc eax
cmp ecx, 0x137
mov dword [esp + 0x14], eax
jbe 0x42936a
lea edx, [esp + 0x18]
mov dword [esp + 0x14], 0
push edx
call fcn.00535d00
add esp, 4
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x18]
push 0
push 0
push 0
push 0
push 0
push 0x19
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x42932e
mov edx, dword [0x5a5508]
mov byte [edx], al
jmp 0x42936a
xor ecx, ecx
lea esi, [ecx + 1]
xor edx, edx
mov eax, esi
mov edi, 9
div edi
mov eax, ecx
mov ebx, 9
movsx edi, byte [esp + edx + 0x3c]
xor edx, edx
div ebx
not edi
movsx eax, byte [esp + edx + 0x3c]
not eax
xor edi, edi
mov dword [ecx*4 + 0xab53bc], edi
mov ecx, esi
cmp ecx, ebx
jb 0x429330
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
add ecx, edi
adc eax, esi
mov dword [0xab7528], 0
cmp edx, eax
jb 0x4293dc
ja 0x429398
cmp dword [esp + 0x24], ecx
jbe 0x4293dc
call fcn.00543ae0
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov edi, dword [0xab7528]
add eax, edx
adc ecx, esi
mov dword [esp + 0x1c], eax
inc edi
add eax, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
adc ecx, esi
mov dword [0xab7528], edi
cmp edx, ecx
ja 0x429398
jb 0x4293dc
mov ecx, dword [esp + 0x24]
cmp ecx, eax
ja 0x429398
call fcn.00543b20
mov eax, dword [ebp + 0xc4]
test eax, eax
je 0x42940f
push str._nProfiling.....Start_of_main_loop_n_n
call fcn.00535ef0
mov eax, dword [ebp + 0xc4]
add esp, 4
dec eax
mov dword [ebp + 0xc8], 1
mov dword [ebp + 0xc4], eax
call fcn.00461930
mov ecx, dword [ebp + 0xc8]
test ecx, ecx
setne dl
push edx
lea ecx, [ebp + 0x7c]
call fcn.00406670
mov edi, dword [ebp + 0xc8]
lea ecx, [ebp + 4]
test edi, edi
setne al
push eax
call fcn.00406670
mov eax, dword [0xaab478]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x88]
test eax, eax
jne 0x42946b
call fcn.00461950
call fcn.004fcc00
call fcn.00461940
mov eax, dword [0xaab478]
push eax
mov edx, dword [eax]
call dword [edx + 0x8c]
call fcn.00543ca0
mov dword [ebp + 0xc8], 0
mov al, byte [0xaab48c]
test al, al
je 0x4291f2
mov al, byte [0xb085fc]
test al, al
jne 0x42922d
cmp dword [0x59f120], 0xffffffff
jne 0x42954a
mov eax, dword [0xaab47c]
mov esi, dword [sym.imp.USER32.dll_ShowWindow]
push 0
push eax
call esi
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
test eax, eax
jl 0x4294b1
call fcn.00531440
mov al, byte [0xaab48c]
test al, al
je 0x429512
push 0x1005
push 0x59f17c
push 0x59f148
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 2
je 0x429509
call fcn.00535d30
test al, al
mov byte [0xb085fc], al
jne 0x429500
mov al, byte [0xaab48c]
test al, al
jne 0x4294cb
jmp 0x429512
mov byte [0xaab48c], 0
jmp 0x429512
mov al, byte [0xaab48c]
test al, al
jne 0x429534
mov ecx, dword [0xaab47c]
push 3
push ecx
call esi
mov edx, dword [0xaab47c]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
mov dword [0x59f120], 0
call fcn.00531440
push 0
call dword [sym.imp.USER32.dll_ShowCursor]
test eax, eax
jge 0x429539
jmp 0x42922d
call fcn.00535d30
mov byte [0xb085fc], al
mov byte [0xaab48c], 0
jmp 0x4291f2
mov cl, byte [esp + 0x13]
pop edi
mov byte [ebp], cl
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
mov dl, byte [esp + 0x13]
pop edi
mov byte [ebp], dl
pop esi
pop ebp
pop ebx
add esp, 0x48
ret