Function at 0x47a4ac
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
add eax, dword [edx]
xor dword cs:[ecx], eax
add byte [eax], al
add byte [eax], al
add eax, dword [eax]
add byte [eax], al
test al, 0xa4
inc edi
add byte [eax], cl
je 0x47a522
popal
dec esp
je 0x47a4d0
je 0x47a4d0
je 0x47a52b
popal
push edx
imul esp, dword [edi + 0x68], 0x62740874
popal
or byte [edx + 0x61], dh
inc esp
outsd dx, dword [esi]
ja 0x47a547
push es
je 0x47a53e
popal
push ebp
jo 0x47a4c5
movsb byte es:[edi], byte [esi]
inc edi
add byte [esi], al
push es
adc eax, 0x41425454
outsb dx, byte [esi]
imul ebp, dword [ebp + 0x61], 0x6e6f6974
inc esp
imul esi, dword [edx + 0x65], 0x6f697463
outsb dx, byte [esi]
add dword [eax + 0x550047a4], ebp
push ebp
mov ebp, esp
cmp byte [0x5aebc0], 0
jne 0x47a52d
push 0x47a530
push 0x47a544
call sub.KERNEL32.DLL_GetModuleHandleA
push eax
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x5aebc4], eax
mov byte [0x5aebc0], 1
invalid
add byte [ecx], al
pop ebp
ret
imul ebp, dword [esi + 0x64], 0x7500776f
jae 0x47a5ac
jb 0x47a57c
xor ch, byte [esi]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [eax], al
push ebp
mov ebp, esp
add esp, 0xffffffc4
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x10]
push eax
call sub.KERNEL32.DLL_QueryPerformanceFrequency
push 0
push 0x3e8
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.0055af0a
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
lea eax, [ebp - 0x18]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
jmp 0x47a6b1
lea eax, [ebp - 0x20]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x18]
sbb edx, dword [ebp - 0x14]
call fcn.0055af0a
mov dword [ebp - 0x28], eax
mov eax, dword [0x5aeb74]
push eax
mov eax, dword [ebp - 0x28]
push eax
push 0xff
call sub.KERNEL32.DLL_MulDiv
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
and eax, 0xfffffff0
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jl 0x47a6be
add byte [ecx + 0x74a1d845], cl
jmp 0x47a60e
cmp dword [ebp - 0x24], 0xff
jge 0x47a6be
mov eax, dword [ebp - 0x28]
cmp eax, dword [0x5aeb74]
jge 0x47a6be
lea eax, [ebp - 0x38]
push eax
call sub.USER32.DLL_GetCursorPos
mov eax, dword [ebp - 0x38]
cmp eax, dword [0x5aeba4]
jne 0x47a615
mov eax, dword [ebp - 0x34]
cmp eax, dword [0x5aeba8]
add eax, 0x5aeba8
je 0x47a63f
push dword [ebp - 0x34]
push dword [ebp - 0x38]
push 0x5aeb8c
call sub.USER32.DLL_PtInRect
test eax, eax
jne 0x47a6be
mov eax, dword [ebp - 0x38]
mov dword [0x5aeba4], eax
mov eax, dword [ebp - 0x34]
mov dword [0x5aeba8], eax
mov eax, dword [ebp - 0x24]
cmp eax, dword [0x5aeb7c]
jle 0x47a67c
mov eax, dword [ebp - 0x24]
mov dword [0x5aeb7c], eax
push 1
push 0x5aebb8
call sub.KERNEL32.DLL_InterlockedExchange
test eax, eax
jne 0x47a6b1
mov eax, dword [0x5aebbc]
push eax
push 0
push 0x955
mov eax, dword [0x5aeb70]
push eax
call sub.USER32.DLL_SendNotifyMessageA
jmp 0x47a6b1
push 0xff
mov eax, dword [0x5aeb74]
push eax
mov eax, dword [0x5aeb7c]
add eax, 0x10
sub eax, dword [ebp - 0x2c]
push eax
call sub.KERNEL32.DLL_MulDiv
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 1
jge 0x47a6a8
mov dword [ebp - 0x30], 1
mov eax, dword [ebp - 0x30]
push eax
call sub.KERNEL32.DLL_Sleep
cmp dword [0x5aebb0], 0
je 0x47a58d
mov dword [0x5aebb4], 0xffffffff
mov eax, dword [0x5aebbc]
push eax
push 0
push 0x955
mov eax, dword [0x5aeb70]
push eax
call sub.USER32.DLL_SendNotifyMessageA
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret