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

Disassembly:
push ebp
lea ebp, [esp - 0x64]
mov ecx, dword [ebp + 0x6c]
sub esp, 0xd8
push ebx
push esi
call fcn.004056b6
mov ebx, eax
xor esi, esi
cmp ebx, esi
jne 0x4272c3
push esi
call fcn.00427255
test eax, eax
je 0x427c73
cmp dword [ebp + 0x6c], 0xffffffff
jne 0x4272a9
call fcn.004040eb
jmp 0x4272b1
mov ecx, dword [ebp + 0x6c]
call fcn.004056b6
mov ebx, eax
cmp ebx, esi
jne 0x4272c3
push 0x17
call fcn.00401164
jmp 0x427c73
push edi
mov edi, dword [ebp + 0x70]
cmp edi, esi
jne 0x4272d2
push 6
jmp 0x427ca7
call fcn.00405795
cmp dword [ebx + 0x44], esi
je 0x4272e8
call fcn.004057a1
push 0xe
jmp 0x427ca7
or dword [ebx + 0x44], 0xffffffff
call fcn.004057a1
mov ecx, dword [ebp + 0x78]
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x60], eax
cmp ecx, esi
je 0x427303
mov dword [ebp + 0x78], ecx
jmp 0x42730f
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x74]
mov dword [ebx + 0x88], edi
cmp dword [ebx + 0x18], esi
jne 0x427448
test al, 2
push 0
pop eax
sete al
mov dword [ebx + 0x8c], edi
inc eax
mov dword [ebx + 0x84], eax
mov eax, dword [0xea905c]
imul eax, edi
mov dword [ebp + 0x74], eax
fild dword [ebp + 0x74]
test eax, eax
jns 0x42734b
fadd qword [0x4b9198]
fmul qword [0x4b93d0]
call fcn.0042d0e6
mov dword [ebx + 0xb4], eax
fild dword [ebx + 0xb4]
mov dword [ebx + 0xb0], eax
test eax, eax
jns 0x427372
fadd dword [0x4b91a4]
fmul dword [0x4b91a0]
mov eax, edi
fild dword [ebp + 0x70]
test eax, eax
jns 0x427387
fadd dword [0x4b91a4]
fdivp st(1)
push ecx
push ecx
fstp qword [esp]
call dword [0xea2890]
call fcn.0042d0b0
mov ecx, dword [ebx + 0xb0]
mov dword [ebx + 0x78], eax
mov eax, dword [ebx + 0xb4]
shr eax, 1
sub ecx, eax
mov dword [ebp + 0x70], ecx
fild dword [ebp + 0x70]
jns 0x4273ba
fadd dword [0x4b91a4]
mov eax, dword [ebx + 0x8c]
fmul dword [0x4b91a0]
fild dword [ebx + 0x8c]
test eax, eax
jns 0x4273d6
fadd dword [0x4b91a4]
fdivp st(1)
fstp qword [esp]
call dword [0xea2890]
call fcn.0042d0b0
mov dword [ebx + 0x74], eax
mov eax, dword [ebx + 0xb0]
add eax, 0x20
mov dword [ebp + 0x70], eax
fild dword [ebp + 0x70]
jns 0x427400
fadd dword [0x4b91a4]
mov eax, dword [ebx + 0x8c]
fmul dword [0x4b91a0]
fild dword [ebx + 0x8c]
test eax, eax
jns 0x42741c
fadd dword [0x4b91a4]
fdivp st(1)
fstp qword [esp]
call dword [0xea2890]
pop ecx
pop ecx
call fcn.0042d0b0
mov dword [ebx + 0x7c], eax
xor eax, eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
mov dword [ebx + 0xe0], eax
jmp 0x427b68
mov ecx, 0x40000
cmp dword [0xec623c], esi
je 0x42745a
or eax, ecx
mov dword [ebp + 0x60], eax
test dword [ebp + 0x60], ecx
jne 0x427497
mov eax, dword [0xea9058]
imul eax, eax, 0x2710
mov dword [ebx + 0x94], esi
mov esi, ebx
mov dword [ebx + 0x90], eax
call fcn.004029e1
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x42748b
mov esi, eax
jmp 0x427c9b
mov dword [ebx + 0x5c], 9
jmp 0x427b68
mov edi, dword [ebp + 0x7c]
cmp edi, esi
jne 0x4274dd
cmp dword [0xec6208], esi
je 0x4274e1
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
cmp eax, 1
jne 0x4274b8
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0
lea esi, [ebx + 0x48]
push esi
lea eax, [ebx + 4]
push eax
call dword [0xec6208]
test eax, eax
jns 0x4274d4
push 3
pop esi
jmp 0x427c9f
mov dword [ebx + 0x5c], 8
jmp 0x427532
mov eax, edi
jmp 0x4274e6
mov eax, 0x4b5834
push 0x4b5874
push eax
call fcn.0040120e
lea esi, [ebx + 0x48]
mov dword [esi], eax
test eax, eax
jne 0x427518
mov eax, edi
test edi, edi
jne 0x427505
mov eax, 0x4b5824
push 0x4b5864
push eax
call fcn.0040120e
mov dword [esi], eax
test eax, eax
jne 0x42751f
jmp 0x4274cc
mov dword [ebx + 0x5c], 8
mov eax, dword [esi]
mov ecx, dword [eax]
lea edx, [ebx + 4]
push edx
push eax
call dword [ecx + 0x28]
mov dword [ebp + 0x6c], eax
test eax, eax
jne 0x4274cc
push 9
xor eax, eax
pop ecx
lea edi, [ebp + 0x3c]
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0x60]
and eax, 4
mov dword [ebp + 0x3c], 0x14
mov dword [ebp + 0x40], 0x10081
mov dword [ebp + 0x34], eax
je 0x42755c
mov dword [ebp + 0x40], 0x10091
mov eax, dword [esi]
mov ecx, dword [eax]
push 2
push dword [ebp + 0x78]
push eax
call dword [ecx + 0x18]
mov dword [ebp + 0x6c], eax
test eax, eax
jne 0x427589
mov eax, dword [esi]
mov ecx, dword [eax]
push 0
lea edi, [ebx + 0x50]
push edi
lea edx, [ebp + 0x3c]
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x4275b8
cmp eax, 0x8878001e
jne 0x427c7c
mov eax, dword [esi]
and dword [ebp + 0x40], 0xffffff7f
mov ecx, dword [eax]
push 0
lea edi, [ebx + 0x50]
push edi
lea edx, [ebp + 0x3c]
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp + 0x6c], eax
test eax, eax
jne 0x427c7c
cmp dword [ebp + 0x34], 0
je 0x4275d8
mov eax, dword [edi]
push 0x4b5884
call fcn.00401260
mov dword [ebx + 0x4c], eax
test eax, eax
jne 0x4275d8
push 0x15
jmp 0x4274ce
test byte [ebp + 0x60], 2
push 0
pop eax
sete al
inc eax
test byte [ebp + 0x60], 1
push eax
push 0
pop ecx
push dword [ebp + 0x70]
sete cl
lea eax, [ebp + 0x14]
inc ecx
call fcn.0041ce57
mov edi, dword [edi]
lea ecx, [ebp + 0x14]
push ecx
mov dword [ebp + 0x4c], eax
mov eax, dword [edi]
push edi
call dword [eax + 0x38]
test eax, eax
je 0x427614
push 6
jmp 0x4274ce
mov eax, dword [ebp + 0x1c]
push 5
pop ecx
xor edx, edx
div ecx
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], 0x24
mov dword [ebp + 0x40], 0x220
mov dword [ebp + 0x44], eax
call fcn.00402fd8
test eax, eax
je 0x427648
mov dword [ebx + 0x5c], 9
call fcn.0040127c
cmp dword [ebx + 0x5c], 8
jge 0x4276a6
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x40], 0x40000
call fcn.00402fd8
test eax, eax
je 0x42766b
mov dword [ebx + 0x5c], 7
jmp 0x4276a1
and dword [ebp + 0x40], 0
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], 0x14
call fcn.00402fd8
mov edi, eax
test edi, edi
je 0x4276a6
push 0x4b58b4
call fcn.00401260
test eax, eax
je 0x42769f
mov dword [ebx + 0x5c], 5
call fcn.0040127c
mov eax, edi
call fcn.0040127c
mov edi, dword [ebx + 0x18]
lea eax, [ebx + 0x64]
push eax
mov dword [ebx + 0x84], 2
call fcn.00401b39
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x4276d8
mov ecx, dword [eax]
lea edx, [ebp + 0x70]
push edx
lea edx, [ebx + 0x6c]
push edx
lea edx, [ebx + 0x68]
push edx
push eax
call dword [ecx + 0x50]
xor edi, edi
cmp dword [ebx + 0x60], edi
jne 0x42786e
test dword [ebp + 0x60], 0x800
je 0x4276f1
cmp dword [ebx + 0x28], edi
jne 0x42772c
test dword [ebp + 0x60], 0x400
je 0x427755
mov esi, dword [esi]
mov eax, dword [esi]
lea ecx, [ebp + 0x70]
push ecx
push esi
call dword [eax + 0x20]
test eax, eax
js 0x42786e
mov al, byte [ebp + 0x70]
cmp al, 3
je 0x427746
cmp al, 4
jbe 0x42786e
push 6
pop ecx
cmp al, cl
jbe 0x42773b
cmp al, 8
ja 0x42786e
mov dword [ebx + 0x84], 8
jmp 0x42786e
mov dword [ebx + 0x84], ecx
jmp 0x42786e
mov dword [ebx + 0x84], 4
jmp 0x42786e
cmp dword [ebx + 0x28], edi
je 0x42786e
push str.._sysaudio
call fcn.00402569
mov dword [ebp + 0x70], eax
cmp eax, 0xffffffff
je 0x42786e
movzx ecx, byte [ebx + 0x13]
push eax
mov dword [0xea9128], ecx
call fcn.00402584
cmp eax, edi
je 0x427863
add eax, 2
push 0x5c
push eax
call dword [0xea28a0]
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x427863
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea eax, [esi - 3]
push eax
mov word [esi - 2], 0x2e5c
mov byte [eax], 0x5c
call fcn.00402569
mov dword [ebp + 0x70], eax
cmp eax, 0xffffffff
je 0x427863
and dword [0xea9148], edi
jmp 0x42782d
push 4
pop ecx
mov edi, 0x4b90fc
lea esi, [ebp - 0x74]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x427827
push eax
lea eax, [ebp + 0x78]
push eax
push 0x68
lea eax, [ebp - 0x74]
push eax
push 0x80
push 0xea9130
push 0x2f0003
push dword [ebp + 0x70]
mov dword [0xea9140], 4
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
je 0x427827
movzx eax, word [ebp - 0x32]
cmp dword [ebx + 0x84], eax
jge 0x427827
mov dword [ebx + 0x84], eax
inc dword [0xea9148]
push 0
lea eax, [ebp + 0x74]
push eax
push 0x68
lea eax, [ebp - 0x74]
push eax
push 0x80
push 0xea9130
push 0x2f0003
push dword [ebp + 0x70]
mov dword [0xea9140], 0xb
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
jne 0x4277d3
push dword [ebp + 0x70]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xor edi, edi
mov eax, dword [ebx + 0x50]
mov ecx, dword [eax]
push 1
push edi
push edi
push eax
call dword [ecx + 0x30]
mov dword [ebp + 0x6c], eax
cmp eax, edi
jge 0x42788a
or esi, 0xffffffff
jmp 0x427c9f
cmp dword [ebx + 0x28], edi
je 0x4278fd
push 1
push 0x64
push 4
pop ecx
lea eax, [ebp - 0xc]
call fcn.0041ce57
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x40], 0x8028
mov dword [ebp + 0x44], 0x3e8
call fcn.00402fd8
mov dword [ebx + 0x54], eax
cmp eax, edi
je 0x4278f7
mov ecx, dword [eax]
push 2
push edi
push edi
lea edx, [ebp + 0x70]
push edx
lea edx, [ebp + 0x74]
push edx
push edi
push edi
push eax
call dword [ecx + 0x2c]
test eax, eax
jne 0x4278f7
push dword [ebp + 0x70]
push edi
push dword [ebp + 0x74]
call fcn.0042d320
mov eax, dword [ebx + 0x54]
mov ecx, dword [eax]
add esp, 0xc
push edi
push edi
push dword [ebp + 0x70]
push dword [ebp + 0x74]
push eax
call dword [ecx + 0x4c]
lea eax, [ebp + 0x14]
mov dword [ebp + 0x4c], eax
or dword [ebx + 0x74], 0xffffffff
or dword [ebx + 0x78], 0xffffffff
test dword [ebp + 0x60], 0x100
je 0x427af3
cmp dword [ebx + 0x60], 0
mov dword [ebp + 0x40], 0x10080
je 0x42792f
cmp dword [0xea9060], 0
je 0x42792f
mov dword [ebp + 0x40], 0x90080
mov eax, dword [ebp + 0x1c]
shr eax, 1
and eax, 0x7ffffffc
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x44], eax
call fcn.00402fd8
mov edi, eax
test edi, edi
je 0x427af3
push 1
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov eax, dword [edi]
push 0xffffe3ae
push edi
call dword [eax + 0x3c]
fldz
or dword [ebp + 0x70], 0xffffffff
fstp dword [ebp + 0x7c]
mov dword [ebp + 0x6c], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
and dword [ebp + 0x78], 0
lea esi, [eax + 0x3e8]
mov eax, dword [edi]
push 0
push edi
call dword [eax + 0x34]
mov dword [ebp + 0x6c], eax
call fcn.00401bf7
fstp qword [ebp + 8]
mov ecx, dword [edi]
xor eax, eax
push eax
push eax
push eax
push edi
call dword [ecx + 0x30]
test eax, eax
js 0x427ac6
cmp dword [ebp + 0x70], 0
jl 0x427a0e
push 1
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov eax, dword [edi]
lea ecx, [ebp + 0x10]
push ecx
lea ecx, [ebp + 0x2c]
push ecx
push edi
call dword [eax + 0x10]
test eax, eax
jne 0x427aa5
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, esi
sub ecx, eax
js 0x427aa5
cmp dword [ebp + 0x2c], 0
je 0x4279aa
call fcn.00401bf7
fsub qword [ebp + 8]
fild dword [ebp + 0x2c]
fidiv dword [ebp + 0x1c]
fsubp st(1)
fldz
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x427a04
fadd dword [ebp + 0x7c]
inc dword [ebp + 0x70]
fstp dword [ebp + 0x7c]
jmp 0x427a06
fstp st(0)
inc dword [ebp + 0x78]
jmp 0x427a95
mov eax, dword [edi]
and dword [ebp + 0x74], 0
lea ecx, [ebp + 0x30]
push ecx
push edi
call dword [eax + 0x24]
test eax, eax
jne 0x427a86
cmp dword [ebp + 0x30], 0
je 0x427a6f
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x427a6f
mov eax, dword [edi]
lea ecx, [ebp + 0x28]
push ecx
lea ecx, [ebp + 0x38]
push ecx
push edi
call dword [eax + 0x10]
test eax, eax
jne 0x427a6f
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x38], eax
jg 0x427a6f
sub eax, dword [ebp + 0x38]
cmp dword [ebp + 0x74], eax
jae 0x427a59
mov dword [ebp + 0x74], eax
push 1
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov eax, dword [edi]
lea ecx, [ebp + 0x30]
push ecx
push edi
call dword [eax + 0x24]
test eax, eax
je 0x427a20
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x427a86
dec eax
imul eax, eax, 0x3e8
xor edx, edx
div dword [ebp + 0x1c]
inc eax
mov dword [ebx + 0x78], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
inc dword [ebp + 0x70]
lea esi, [eax + 0x3e8]
mov eax, dword [edi]
push edi
call dword [eax + 0x48]
cmp dword [ebp + 0x78], 0xa
jl 0x42797e
cmp dword [ebp + 0x70], 0
jle 0x427ada
fld dword [ebp + 0x7c]
push ecx
fmul dword [0x4b91a0]
push ecx
fidiv dword [ebp + 0x70]
fstp qword [esp]
call dword [0xea2890]
pop ecx
pop ecx
jmp 0x427adc
push 1
call dword [sym.imp.WINMM.dll_timeEndPeriod]
mov eax, edi
call fcn.0040127c
jmp 0x427882
fld1
call fcn.0042d0b0
push 1
mov dword [ebx + 0x74], eax
call dword [sym.imp.WINMM.dll_timeEndPeriod]
mov eax, edi
call fcn.0040127c
xor esi, esi
cmp dword [ebp + 0x34], esi
je 0x427b5f
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], 0x14
mov dword [ebp + 0x40], 0x8014
mov dword [ebp + 0x44], 0x3e8
call fcn.00402fd8
mov edi, eax
cmp edi, esi
je 0x427b5f
push 0x4b58b4
call fcn.00401260
mov dword [ebx + 0x58], eax
cmp eax, esi
je 0x427b4d
mov ecx, dword [eax]
lea edx, [ebp + 0x6c]
push edx
push esi
push 0x4b5a5c
push eax
call dword [ecx + 0x14]
test eax, eax
jne 0x427b4d
mov eax, dword [ebp + 0x6c]
and eax, 3
cmp al, 3
je 0x427b58
mov eax, dword [ebx + 0x58]
call fcn.0040127c
mov dword [ebx + 0x58], esi
mov eax, edi
call fcn.0040127c
xor eax, eax
inc eax
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x70], eax
cmp dword [ebx + 0x48], 0
mov eax, dword [ebp + 0x60]
mov dword [ebx + 0x80], eax
jne 0x427c06
test al, 4
je 0x427bab
fld1
fst dword [ebx + 0xf0]
fst dword [ebx + 0xec]
fst dword [ebx + 0xe8]
fld dword [0x4b93f4]
fstp dword [ebx + 0x10c]
fst dword [ebx + 0x12c]
fstp dword [ebx + 0x11c]
cmp dword [ebx + 0x18], 0
mov dword [ebx + 0x44], 1
mov eax, 0x4026b9
jne 0x427bc2
mov eax, 0x42a31a
push 0xf
push ebx
push eax
lea esi, [ebx + 0xd8]
call fcn.0040129d
mov edi, ebx
call fcn.00402f15
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x427c06
cmp byte [eax], 0
jne 0x427c06
push 0x4b909c
push 0x4b908c
call fcn.0040120e
mov esi, eax
mov eax, dword [esi]
push 0xea91f8
push esi
call dword [eax + 0x18]
mov eax, dword [esi]
push esi
call dword [eax + 8]
call fcn.00401a73
call fcn.00405795
xor edi, edi
cmp dword [0xec3298], edi
jne 0x427c60
mov esi, dword [sym.imp.KERNEL32.DLL_CreateEventA]
push edi
push edi
push 1
push edi
call esi
mov dword [0xec3298], eax
call fcn.00401b8b
push edi
push edi
push edi
push edi
call esi
push 2
push edi
push 0x41d83d
mov esi, 0xec7300
mov dword [0xec6238], eax
call fcn.0040129d
push 0xf
push edi
push 0x401df9
mov esi, 0xec72f8
call fcn.0040129d
call fcn.004057a1
call fcn.0040564d
mov dword [eax + 4], ebx
call fcn.00401174
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x14
cmp eax, 0x8007000e
je 0x427c98
xor ecx, ecx
cmp eax, 0x88780064
sete cl
lea esi, [ecx - 1]
and esi, 0xfffffff9
add esi, 6
jmp 0x427c9f
xor esi, esi
inc esi
test esi, esi
je 0x427c65
mov eax, ebx
call fcn.00426ff6
push esi
call fcn.00401164
jmp 0x427c72