Function at 0x47720d
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.00455652
mov ebx, eax
xor esi, esi
cmp ebx, esi
jne 0x47725f
push esi
call fcn.004771f1
test eax, eax
je 0x477c0f
cmp dword [ebp + 0x6c], 0xffffffff
jne 0x477245
call fcn.00454087
jmp 0x47724d
mov ecx, dword [ebp + 0x6c]
call fcn.00455652
mov ebx, eax
cmp ebx, esi
jne 0x47725f
push 0x17
call fcn.00451100
jmp 0x477c0f
push edi
mov edi, dword [ebp + 0x70]
cmp edi, esi
jne 0x47726e
push 6
jmp 0x477c43
call fcn.00455731
cmp dword [ebx + 0x44], esi
je 0x477284
call fcn.0045573d
push 0xe
jmp 0x477c43
or dword [ebx + 0x44], 0xffffffff
call fcn.0045573d
mov ecx, dword [ebp + 0x78]
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x60], eax
cmp ecx, esi
je 0x47729f
mov dword [ebp + 0x78], ecx
jmp 0x4772ab
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 0x4773e4
test al, 2
push 0
pop eax
sete al
mov dword [ebx + 0x8c], edi
inc eax
mov dword [ebx + 0x84], eax
mov eax, dword [0x57da80]
imul eax, edi
mov dword [ebp + 0x74], eax
fild dword [ebp + 0x74]
test eax, eax
jns 0x4772e7
fadd qword [0x5c3998]
fmul qword [0x5c3bd0]
call fcn.0047d082
mov dword [ebx + 0xb4], eax
fild dword [ebx + 0xb4]
mov dword [ebx + 0xb0], eax
test eax, eax
jns 0x47730e
fadd dword [0x5c39a4]
fmul dword [0x5c39a0]
mov eax, edi
fild dword [ebp + 0x70]
test eax, eax
jns 0x477323
fadd dword [0x5c39a4]
fdivp st(1)
push ecx
push ecx
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
call fcn.0047d04c
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 0x477356
fadd dword [0x5c39a4]
mov eax, dword [ebx + 0x8c]
fmul dword [0x5c39a0]
fild dword [ebx + 0x8c]
test eax, eax
jns 0x477372
fadd dword [0x5c39a4]
fdivp st(1)
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
call fcn.0047d04c
mov dword [ebx + 0x74], eax
mov eax, dword [ebx + 0xb0]
add eax, 0x20
mov dword [ebp + 0x70], eax
fild dword [ebp + 0x70]
jns 0x47739c
fadd dword [0x5c39a4]
mov eax, dword [ebx + 0x8c]
fmul dword [0x5c39a0]
fild dword [ebx + 0x8c]
test eax, eax
jns 0x4773b8
fadd dword [0x5c39a4]
fdivp st(1)
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
pop ecx
pop ecx
call fcn.0047d04c
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 0x477b04
mov ecx, 0x40000
cmp dword [0x59ac60], esi
je 0x4773f6
or eax, ecx
mov dword [ebp + 0x60], eax
test dword [ebp + 0x60], ecx
jne 0x477433
mov eax, dword [0x57da7c]
imul eax, eax, 0x2710
mov dword [ebx + 0x94], esi
mov esi, ebx
mov dword [ebx + 0x90], eax
call fcn.0045297d
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x477427
mov esi, eax
jmp 0x477c37
mov dword [ebx + 0x5c], 9
jmp 0x477b04
mov edi, dword [ebp + 0x7c]
cmp edi, esi
jne 0x477479
cmp dword [0x59ac2c], esi
je 0x47747d
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
cmp eax, 1
jne 0x477454
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0
lea esi, [ebx + 0x48]
push esi
lea eax, [ebx + 4]
push eax
call dword [0x59ac2c]
test eax, eax
jns 0x477470
push 3
pop esi
jmp 0x477c3b
mov dword [ebx + 0x5c], 8
jmp 0x4774ce
mov eax, edi
jmp 0x477482
mov eax, 0x5c0034
push 0x5c0074
push eax
call fcn.004511aa
lea esi, [ebx + 0x48]
mov dword [esi], eax
test eax, eax
jne 0x4774b4
mov eax, edi
test edi, edi
jne 0x4774a1
mov eax, 0x5c0024
push 0x5c0064
push eax
call fcn.004511aa
mov dword [esi], eax
test eax, eax
jne 0x4774bb
jmp 0x477468
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 0x477468
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 0x4774f8
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 0x477525
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 0x477554
cmp eax, 0x8878001e
jne 0x477c18
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 0x477c18
cmp dword [ebp + 0x34], 0
je 0x477574
mov eax, dword [edi]
push 0x5c0084
call fcn.004511fc
mov dword [ebx + 0x4c], eax
test eax, eax
jne 0x477574
push 0x15
jmp 0x47746a
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.0046cdf3
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 0x4775b0
push 6
jmp 0x47746a
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.00452f74
test eax, eax
je 0x4775e4
mov dword [ebx + 0x5c], 9
call fcn.00451218
cmp dword [ebx + 0x5c], 8
jge 0x477642
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x40], 0x40000
call fcn.00452f74
test eax, eax
je 0x477607
mov dword [ebx + 0x5c], 7
jmp 0x47763d
and dword [ebp + 0x40], 0
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], 0x14
call fcn.00452f74
mov edi, eax
test edi, edi
je 0x477642
push 0x5c00b4
call fcn.004511fc
test eax, eax
je 0x47763b
mov dword [ebx + 0x5c], 5
call fcn.00451218
mov eax, edi
call fcn.00451218
mov edi, dword [ebx + 0x18]
lea eax, [ebx + 0x64]
push eax
mov dword [ebx + 0x84], 2
call fcn.00451ad5
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x477674
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 0x47780a
test dword [ebp + 0x60], 0x800
je 0x47768d
cmp dword [ebx + 0x28], edi
jne 0x4776c8
test dword [ebp + 0x60], 0x400
je 0x4776f1
mov esi, dword [esi]
mov eax, dword [esi]
lea ecx, [ebp + 0x70]
push ecx
push esi
call dword [eax + 0x20]
test eax, eax
js 0x47780a
mov al, byte [ebp + 0x70]
cmp al, 3
je 0x4776e2
cmp al, 4
jbe 0x47780a
push 6
pop ecx
cmp al, cl
jbe 0x4776d7
cmp al, 8
ja 0x47780a
mov dword [ebx + 0x84], 8
jmp 0x47780a
mov dword [ebx + 0x84], ecx
jmp 0x47780a
mov dword [ebx + 0x84], 4
jmp 0x47780a
cmp dword [ebx + 0x28], edi
je 0x47780a
push str.._sysaudio
call fcn.00452505
mov dword [ebp + 0x70], eax
cmp eax, 0xffffffff
je 0x47780a
movzx ecx, byte [ebx + 0x13]
push eax
mov dword [0x57db4c], ecx
call fcn.00452520
cmp eax, edi
je 0x4777ff
add eax, 2
push 0x5c
push eax
call dword [sym.imp.msvcrt.dll_strchr]
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x4777ff
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.00452505
mov dword [ebp + 0x70], eax
cmp eax, 0xffffffff
je 0x4777ff
and dword [0x57db6c], edi
jmp 0x4777c9
push 4
pop ecx
mov edi, 0x5c38fc
lea esi, [ebp - 0x74]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x4777c3
push eax
lea eax, [ebp + 0x78]
push eax
push 0x68
lea eax, [ebp - 0x74]
push eax
push pe_nt_image_headers32
push 0x57db54
push 0x2f0003
push dword [ebp + 0x70]
mov dword [0x57db64], 4
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x4777c3
movzx eax, word [ebp - 0x32]
cmp dword [ebx + 0x84], eax
jge 0x4777c3
mov dword [ebx + 0x84], eax
inc dword [0x57db6c]
push 0
lea eax, [ebp + 0x74]
push eax
push 0x68
lea eax, [ebp - 0x74]
push eax
push pe_nt_image_headers32
push 0x57db54
push 0x2f0003
push dword [ebp + 0x70]
mov dword [0x57db64], 0xb
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x47776f
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 0x477826
or esi, 0xffffffff
jmp 0x477c3b
cmp dword [ebx + 0x28], edi
je 0x477899
push 1
push 0x64
push 4
pop ecx
lea eax, [ebp - 0xc]
call fcn.0046cdf3
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x40], 0x8028
mov dword [ebp + 0x44], 0x3e8
call fcn.00452f74
mov dword [ebx + 0x54], eax
cmp eax, edi
je 0x477893
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 0x477893
push dword [ebp + 0x70]
push edi
push dword [ebp + 0x74]
call sub.msvcrt.dll_memset
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 0x477a8f
cmp dword [ebx + 0x60], 0
mov dword [ebp + 0x40], 0x10080
je 0x4778cb
cmp dword [0x57da84], 0
je 0x4778cb
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.00452f74
mov edi, eax
test edi, edi
je 0x477a8f
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.00451b93
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 0x477a62
cmp dword [ebp + 0x70], 0
jl 0x4779aa
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 0x477a41
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, esi
sub ecx, eax
js 0x477a41
cmp dword [ebp + 0x2c], 0
je 0x477946
call fcn.00451b93
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 0x4779a0
fadd dword [ebp + 0x7c]
inc dword [ebp + 0x70]
fstp dword [ebp + 0x7c]
jmp 0x4779a2
fstp st(0)
inc dword [ebp + 0x78]
jmp 0x477a31
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 0x477a22
cmp dword [ebp + 0x30], 0
je 0x477a0b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x477a0b
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 0x477a0b
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x38], eax
jg 0x477a0b
sub eax, dword [ebp + 0x38]
cmp dword [ebp + 0x74], eax
jae 0x4779f5
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 0x4779bc
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x477a22
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 0x47791a
cmp dword [ebp + 0x70], 0
jle 0x477a76
fld dword [ebp + 0x7c]
push ecx
fmul dword [0x5c39a0]
push ecx
fidiv dword [ebp + 0x70]
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
pop ecx
pop ecx
jmp 0x477a78
push 1
call dword [sym.imp.WINMM.DLL_timeEndPeriod]
mov eax, edi
call fcn.00451218
jmp 0x47781e
fld1
call fcn.0047d04c
push 1
mov dword [ebx + 0x74], eax
call dword [sym.imp.WINMM.DLL_timeEndPeriod]
mov eax, edi
call fcn.00451218
xor esi, esi
cmp dword [ebp + 0x34], esi
je 0x477afb
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], 0x14
mov dword [ebp + 0x40], 0x8014
mov dword [ebp + 0x44], 0x3e8
call fcn.00452f74
mov edi, eax
cmp edi, esi
je 0x477afb
push 0x5c00b4
call fcn.004511fc
mov dword [ebx + 0x58], eax
cmp eax, esi
je 0x477ae9
mov ecx, dword [eax]
lea edx, [ebp + 0x6c]
push edx
push esi
push 0x5c025c
push eax
call dword [ecx + 0x14]
test eax, eax
jne 0x477ae9
mov eax, dword [ebp + 0x6c]
and eax, 3
cmp al, 3
je 0x477af4
mov eax, dword [ebx + 0x58]
call fcn.00451218
mov dword [ebx + 0x58], esi
mov eax, edi
call fcn.00451218
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 0x477ba2
test al, 4
je 0x477b47
fld1
fst dword [ebx + 0xf0]
fst dword [ebx + 0xec]
fst dword [ebx + 0xe8]
fld dword [0x5c3bf4]
fstp dword [ebx + 0x10c]
fst dword [ebx + 0x12c]
fstp dword [ebx + 0x11c]
cmp dword [ebx + 0x18], 0
mov dword [ebx + 0x44], 1
mov eax, 0x452655
jne 0x477b5e
mov eax, 0x47a2b6
push 0xf
push ebx
push eax
lea esi, [ebx + 0xd8]
call fcn.00451239
mov edi, ebx
call fcn.00452eb1
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x477ba2
cmp byte [eax], 0
jne 0x477ba2
push 0x5c389c
push 0x5c388c
call fcn.004511aa
mov esi, eax
mov eax, dword [esi]
push 0x57dc1c
push esi
call dword [eax + 0x18]
mov eax, dword [esi]
push esi
call dword [eax + 8]
call fcn.00451a0f
call fcn.00455731
xor edi, edi
cmp dword [0x597cbc], edi
jne 0x477bfc
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push edi
push edi
push 1
push edi
call esi
mov dword [0x597cbc], eax
call fcn.00451b27
push edi
push edi
push edi
push edi
call esi
push 2
push edi
push 0x46d7d9
mov esi, 0x59bd24
mov dword [0x59ac5c], eax
call fcn.00451239
push 0xf
push edi
push 0x451d95
mov esi, 0x59bd1c
call fcn.00451239
call fcn.0045573d
call fcn.004555e9
mov dword [eax + 4], ebx
call fcn.00451110
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x14
cmp eax, 0x8007000e
je 0x477c34
xor ecx, ecx
cmp eax, 0x88780064
sete cl
lea esi, [ecx - 1]
and esi, 0xfffffff9
add esi, 6
jmp 0x477c3b
xor esi, esi
inc esi
test esi, esi
je 0x477c01
mov eax, ebx
call fcn.00476f92
push esi
call fcn.00451100
jmp 0x477c0e