Function at 0x47f6d0
Capabilities:
Check for time delay via gettickcount

Disassembly:
mov eax, 0x10024
call fcn.004ac150
push ebx
push ebp
push esi
mov ebx, edx
push edi
mov edi, ecx
test ebx, ebx
jne 0x47f6fb
push 0x4d1428
call fcn.00429450
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10024
ret
cmp dword [esp + 0x10044], 1
lea eax, [esp + 0x20]
push eax
push 0x7d0
push 2
push 0
push 0
mov ecx, 0x32
mov ebp, 1
cmovge ecx, dword [esp + 0x10058]
cmp dword [esp + 0x1004c], ebp
push 0x406
cmovge ebp, dword [esp + 0x10050]
push ebx
mov dword [esp + 0x48], ecx
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
test eax, eax
je 0x47f7a9
cmp ebp, dword [esp + 0x20]
jle 0x47f765
push str.Parameter_1_invalid.
mov ecx, edi
call fcn.00429450
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10024
ret
lea eax, [esp + 0x24]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push dword [esp + 0x24]
push 0
push 0x38
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov esi, eax
test esi, esi
je 0x47f7a9
push 4
push 0x3000
push 0x10000
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x47f7c0
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.An_internal_function_call_failed.
mov ecx, edi
call fcn.00429450
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10024
ret
dec ebp
xor eax, eax
mov dword [esp + 0x1c], ebp
mov word [esp + 0x30], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x18]
push eax
push 0x7d0
push 2
push 0
push ebp
push 0x40c
push ebx
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
test eax, eax
je 0x47f89e
mov eax, 0x7fff
cmp word [esp + 0x18], ax
ja 0x47f903
mov ebp, dword [esp + 0x14]
lea eax, [esp + 0x18]
push eax
push 0x7d0
push 2
push ebp
push dword [esp + 0x2c]
push 0x40d
push ebx
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
test eax, eax
je 0x47f8a2
movzx eax, word [esp + 0x18]
push 0
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x38]
push eax
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x47f8fc
mov eax, dword [esp + 0x1003c]
test eax, eax
je 0x47f903
mov edx, eax
lea ecx, [esp + 0x30]
call fcn.0047e8e0
test al, al
je 0x47f8a2
mov dword [edi], 1
push 0x8000
push 0
push ebp
push esi
mov dword [edi + 4], 0
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10024
ret
mov ebp, dword [esp + 0x14]
cmp dword [esp + 0x1003c], 0
je 0x47f903
push ebx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x47f984
cmp dword [esp + 0x10040], 0
jl 0x47f8e5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x10040]
add ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x14]
sub ecx, eax
cmp ecx, 5
jle 0x47f984
mov ecx, dword [esp + 0x2c]
mov edx, 1
call fcn.00401950
mov ebp, dword [esp + 0x1c]
jmp 0x47f7d6
xor eax, eax
mov word [esp + 0x30], ax
mov eax, dword [esp + 0x14]
push 0x8000
push 0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFreeEx]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [esp + 0x1003c], 0
jne 0x47f7b5
lea esi, [esp + 0x30]
mov dword [edi + 8], 0
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x47f940
sub esi, ecx
sar esi, 1
lea ebx, [esi + esi]
cmp esi, 0xff
ja 0x47f98f
mov eax, dword [edi + 0x10]
push ebx
lea ecx, [esp + 0x34]
mov dword [edi], eax
push ecx
push eax
call fcn.00497340
mov eax, dword [edi]
add esp, 0xc
xor ecx, ecx
mov word [ebx + eax], cx
mov dword [edi + 4], esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10024
ret
mov dword [edi], 0
jmp 0x47f876
lea eax, [ebx + 2]
push eax
call fcn.00497ab4
add esp, 4
mov dword [edi + 0x14], eax
test eax, eax
jne 0x47f95d
push str.Out_of_memory.
mov ecx, edi
call fcn.00429450
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10024
ret