Function at 0x47b6dd
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.00459b22
mov ebx, eax
xor esi, esi
cmp ebx, esi
jne 0x47b72f
push esi
call fcn.0047b6c1
test eax, eax
je 0x47c0df
cmp dword [ebp + 0x6c], 0xffffffff
jne 0x47b715
call fcn.00458557
jmp 0x47b71d
mov ecx, dword [ebp + 0x6c]
call fcn.00459b22
mov ebx, eax
cmp ebx, esi
jne 0x47b72f
push 0x17
call fcn.004555d0
jmp 0x47c0df
push edi
mov edi, dword [ebp + 0x70]
cmp edi, esi
jne 0x47b73e
push 6
jmp 0x47c113
call fcn.00459c01
cmp dword [ebx + 0x44], esi
je 0x47b754
call fcn.00459c0d
push 0xe
jmp 0x47c113
or dword [ebx + 0x44], 0xffffffff
call fcn.00459c0d
mov ecx, dword [ebp + 0x78]
mov eax, dword [ebp + 0x74]
mov dword [ebp + 0x60], eax
cmp ecx, esi
je 0x47b76f
mov dword [ebp + 0x78], ecx
jmp 0x47b77b
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 0x47b8b4
test al, 2
push 0
pop eax
sete al
mov dword [ebx + 0x8c], edi
inc eax
mov dword [ebx + 0x84], eax
mov eax, dword [0x57fb68]
imul eax, edi
mov dword [ebp + 0x74], eax
fild dword [ebp + 0x74]
test eax, eax
jns 0x47b7b7
fadd qword [0x5c5c38]
fmul qword [0x5c5e70]
call fcn.00481552
mov dword [ebx + 0xb4], eax
fild dword [ebx + 0xb4]
mov dword [ebx + 0xb0], eax
test eax, eax
jns 0x47b7de
fadd dword [0x5c5c44]
fmul dword [0x5c5c40]
mov eax, edi
fild dword [ebp + 0x70]
test eax, eax
jns 0x47b7f3
fadd dword [0x5c5c44]
fdivp st(1)
push ecx
push ecx
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
call fcn.0048151c
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 0x47b826
fadd dword [0x5c5c44]
mov eax, dword [ebx + 0x8c]
fmul dword [0x5c5c40]
fild dword [ebx + 0x8c]
test eax, eax
jns 0x47b842
fadd dword [0x5c5c44]
fdivp st(1)
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
call fcn.0048151c
mov dword [ebx + 0x74], eax
mov eax, dword [ebx + 0xb0]
add eax, 0x20
mov dword [ebp + 0x70], eax
fild dword [ebp + 0x70]
jns 0x47b86c
fadd dword [0x5c5c44]
mov eax, dword [ebx + 0x8c]
fmul dword [0x5c5c40]
fild dword [ebx + 0x8c]
test eax, eax
jns 0x47b888
fadd dword [0x5c5c44]
fdivp st(1)
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
pop ecx
pop ecx
call fcn.0048151c
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 0x47bfd4
mov ecx, 0x40000
cmp dword [0x59cd48], esi
je 0x47b8c6
or eax, ecx
mov dword [ebp + 0x60], eax
test dword [ebp + 0x60], ecx
jne 0x47b903
mov eax, dword [0x57fb64]
imul eax, eax, 0x2710
mov dword [ebx + 0x94], esi
mov esi, ebx
mov dword [ebx + 0x90], eax
call fcn.00456e4d
mov dword [ebp + 0x6c], eax
test eax, eax
je 0x47b8f7
mov esi, eax
jmp 0x47c107
mov dword [ebx + 0x5c], 9
jmp 0x47bfd4
mov edi, dword [ebp + 0x7c]
cmp edi, esi
jne 0x47b949
cmp dword [0x59cd14], esi
je 0x47b94d
push esi
call dword [sym.imp.ole32.dll_CoInitialize]
cmp eax, 1
jne 0x47b924
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0
lea esi, [ebx + 0x48]
push esi
lea eax, [ebx + 4]
push eax
call dword [0x59cd14]
test eax, eax
jns 0x47b940
push 3
pop esi
jmp 0x47c10b
mov dword [ebx + 0x5c], 8
jmp 0x47b99e
mov eax, edi
jmp 0x47b952
mov eax, 0x5c22d4
push 0x5c2314
push eax
call fcn.0045567a
lea esi, [ebx + 0x48]
mov dword [esi], eax
test eax, eax
jne 0x47b984
mov eax, edi
test edi, edi
jne 0x47b971
mov eax, 0x5c22c4
push 0x5c2304
push eax
call fcn.0045567a
mov dword [esi], eax
test eax, eax
jne 0x47b98b
jmp 0x47b938
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 0x47b938
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 0x47b9c8
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 0x47b9f5
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 0x47ba24
cmp eax, 0x8878001e
jne 0x47c0e8
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 0x47c0e8
cmp dword [ebp + 0x34], 0
je 0x47ba44
mov eax, dword [edi]
push 0x5c2324
call fcn.004556cc
mov dword [ebx + 0x4c], eax
test eax, eax
jne 0x47ba44
push 0x15
jmp 0x47b93a
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.004712c3
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 0x47ba80
push 6
jmp 0x47b93a
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.00457444
test eax, eax
je 0x47bab4
mov dword [ebx + 0x5c], 9
call fcn.004556e8
cmp dword [ebx + 0x5c], 8
jge 0x47bb12
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x40], 0x40000
call fcn.00457444
test eax, eax
je 0x47bad7
mov dword [ebx + 0x5c], 7
jmp 0x47bb0d
and dword [ebp + 0x40], 0
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], 0x14
call fcn.00457444
mov edi, eax
test edi, edi
je 0x47bb12
push 0x5c2354
call fcn.004556cc
test eax, eax
je 0x47bb0b
mov dword [ebx + 0x5c], 5
call fcn.004556e8
mov eax, edi
call fcn.004556e8
mov edi, dword [ebx + 0x18]
lea eax, [ebx + 0x64]
push eax
mov dword [ebx + 0x84], 2
call fcn.00455fa5
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x47bb44
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 0x47bcda
test dword [ebp + 0x60], 0x800
je 0x47bb5d
cmp dword [ebx + 0x28], edi
jne 0x47bb98
test dword [ebp + 0x60], 0x400
je 0x47bbc1
mov esi, dword [esi]
mov eax, dword [esi]
lea ecx, [ebp + 0x70]
push ecx
push esi
call dword [eax + 0x20]
test eax, eax
js 0x47bcda
mov al, byte [ebp + 0x70]
cmp al, 3
je 0x47bbb2
cmp al, 4
jbe 0x47bcda
push 6
pop ecx
cmp al, cl
jbe 0x47bba7
cmp al, 8
ja 0x47bcda
mov dword [ebx + 0x84], 8
jmp 0x47bcda
mov dword [ebx + 0x84], ecx
jmp 0x47bcda
mov dword [ebx + 0x84], 4
jmp 0x47bcda
cmp dword [ebx + 0x28], edi
je 0x47bcda
push str.._sysaudio
call fcn.004569d5
mov dword [ebp + 0x70], eax
cmp eax, 0xffffffff
je 0x47bcda
movzx ecx, byte [ebx + 0x13]
push eax
mov dword [0x57fc34], ecx
call fcn.004569f0
cmp eax, edi
je 0x47bccf
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 0x47bccf
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.004569d5
mov dword [ebp + 0x70], eax
cmp eax, 0xffffffff
je 0x47bccf
and dword [0x57fc54], edi
jmp 0x47bc99
push 4
pop ecx
mov edi, 0x5c5b9c
lea esi, [ebp - 0x74]
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x47bc93
push eax
lea eax, [ebp + 0x78]
push eax
push 0x68
lea eax, [ebp - 0x74]
push eax
push pe_nt_image_headers32
push 0x57fc3c
push 0x2f0003
push dword [ebp + 0x70]
mov dword [0x57fc4c], 4
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x47bc93
movzx eax, word [ebp - 0x32]
cmp dword [ebx + 0x84], eax
jge 0x47bc93
mov dword [ebx + 0x84], eax
inc dword [0x57fc54]
push 0
lea eax, [ebp + 0x74]
push eax
push 0x68
lea eax, [ebp - 0x74]
push eax
push pe_nt_image_headers32
push 0x57fc3c
push 0x2f0003
push dword [ebp + 0x70]
mov dword [0x57fc4c], 0xb
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x47bc3f
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 0x47bcf6
or esi, 0xffffffff
jmp 0x47c10b
cmp dword [ebx + 0x28], edi
je 0x47bd69
push 1
push 0x64
push 4
pop ecx
lea eax, [ebp - 0xc]
call fcn.004712c3
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x40], 0x8028
mov dword [ebp + 0x44], 0x3e8
call fcn.00457444
mov dword [ebx + 0x54], eax
cmp eax, edi
je 0x47bd63
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 0x47bd63
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 0x47bf5f
cmp dword [ebx + 0x60], 0
mov dword [ebp + 0x40], 0x10080
je 0x47bd9b
cmp dword [0x57fb6c], 0
je 0x47bd9b
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.00457444
mov edi, eax
test edi, edi
je 0x47bf5f
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.00456063
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 0x47bf32
cmp dword [ebp + 0x70], 0
jl 0x47be7a
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 0x47bf11
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, esi
sub ecx, eax
js 0x47bf11
cmp dword [ebp + 0x2c], 0
je 0x47be16
call fcn.00456063
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 0x47be70
fadd dword [ebp + 0x7c]
inc dword [ebp + 0x70]
fstp dword [ebp + 0x7c]
jmp 0x47be72
fstp st(0)
inc dword [ebp + 0x78]
jmp 0x47bf01
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 0x47bef2
cmp dword [ebp + 0x30], 0
je 0x47bedb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x47bedb
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 0x47bedb
mov eax, dword [ebp + 0x28]
cmp dword [ebp + 0x38], eax
jg 0x47bedb
sub eax, dword [ebp + 0x38]
cmp dword [ebp + 0x74], eax
jae 0x47bec5
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 0x47be8c
mov eax, dword [ebp + 0x74]
test eax, eax
je 0x47bef2
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 0x47bdea
cmp dword [ebp + 0x70], 0
jle 0x47bf46
fld dword [ebp + 0x7c]
push ecx
fmul dword [0x5c5c40]
push ecx
fidiv dword [ebp + 0x70]
fstp qword [esp]
call dword [sym.imp.msvcrt.dll_ceil]
pop ecx
pop ecx
jmp 0x47bf48
push 1
call dword [sym.imp.WINMM.DLL_timeEndPeriod]
mov eax, edi
call fcn.004556e8
jmp 0x47bcee
fld1
call fcn.0048151c
push 1
mov dword [ebx + 0x74], eax
call dword [sym.imp.WINMM.DLL_timeEndPeriod]
mov eax, edi
call fcn.004556e8
xor esi, esi
cmp dword [ebp + 0x34], esi
je 0x47bfcb
push ebx
lea ecx, [ebp + 0x3c]
mov dword [ebp + 0x3c], 0x14
mov dword [ebp + 0x40], 0x8014
mov dword [ebp + 0x44], 0x3e8
call fcn.00457444
mov edi, eax
cmp edi, esi
je 0x47bfcb
push 0x5c2354
call fcn.004556cc
mov dword [ebx + 0x58], eax
cmp eax, esi
je 0x47bfb9
mov ecx, dword [eax]
lea edx, [ebp + 0x6c]
push edx
push esi
push 0x5c24fc
push eax
call dword [ecx + 0x14]
test eax, eax
jne 0x47bfb9
mov eax, dword [ebp + 0x6c]
and eax, 3
cmp al, 3
je 0x47bfc4
mov eax, dword [ebx + 0x58]
call fcn.004556e8
mov dword [ebx + 0x58], esi
mov eax, edi
call fcn.004556e8
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 0x47c072
test al, 4
je 0x47c017
fld1
fst dword [ebx + 0xf0]
fst dword [ebx + 0xec]
fst dword [ebx + 0xe8]
fld dword [0x5c5e94]
fstp dword [ebx + 0x10c]
fst dword [ebx + 0x12c]
fstp dword [ebx + 0x11c]
cmp dword [ebx + 0x18], 0
mov dword [ebx + 0x44], 1
mov eax, 0x456b25
jne 0x47c02e
mov eax, 0x47e786
push 0xf
push ebx
push eax
lea esi, [ebx + 0xd8]
call fcn.00455709
mov edi, ebx
call fcn.00457381
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x47c072
cmp byte [eax], 0
jne 0x47c072
push 0x5c5b3c
push 0x5c5b2c
call fcn.0045567a
mov esi, eax
mov eax, dword [esi]
push 0x57fd04
push esi
call dword [eax + 0x18]
mov eax, dword [esi]
push esi
call dword [eax + 8]
call fcn.00455edf
call fcn.00459c01
xor edi, edi
cmp dword [0x599da4], edi
jne 0x47c0cc
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
push edi
push edi
push 1
push edi
call esi
mov dword [0x599da4], eax
call fcn.00455ff7
push edi
push edi
push edi
push edi
call esi
push 2
push edi
push 0x471ca9
mov esi, 0x59de0c
mov dword [0x59cd44], eax
call fcn.00455709
push 0xf
push edi
push 0x456265
mov esi, 0x59de04
call fcn.00455709
call fcn.00459c0d
call fcn.00459ab9
mov dword [eax + 4], ebx
call fcn.004555e0
pop edi
pop esi
pop ebx
add ebp, 0x64
leave
ret 0x14
cmp eax, 0x8007000e
je 0x47c104
xor ecx, ecx
cmp eax, 0x88780064
sete cl
lea esi, [ecx - 1]
and esi, 0xfffffff9
add esi, 6
jmp 0x47c10b
xor esi, esi
inc esi
test esi, esi
je 0x47c0d1
mov eax, ebx
call fcn.0047b462
push esi
call fcn.004555d0
jmp 0x47c0de