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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d0d43
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x50d4cc]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x5c], ebx
cmp byte [ebx + 0x815], 0
jne 0x46ef68
push 0x10
push 0x4e1488
push 0x4e7170
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x46f28b
mov ecx, dword [ebx + 0x5f8]
lea eax, [ebp - 0x1c]
xorps xmm0, xmm0
push eax
movq qword [ebp - 0x1c], xmm0
call fcn.004496a0
mov dword [ebp - 4], 0
or edi, 0xffffffff
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46efef
lea eax, [ebp - 0x64]
mov ecx, ebx
push eax
call fcn.00437d20
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.00420090
mov byte [ebp - 4], 0
mov esi, dword [ebp - 0x60]
test esi, esi
je 0x46efd6
lea eax, [esi + 4]
mov ecx, edi
lock xadd dword [eax], ecx
jne 0x46efd6
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lea eax, [esi + 8]
mov ecx, edi
lock xadd dword [eax], ecx
jne 0x46efd6
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x46efef
push 0x4e714c
call fcn.00424d30
add esp, 4
jmp 0x46f254
mov eax, dword [eax + 0x3c]
test eax, eax
je 0x46f107
add eax, 0x28
cmp dword [eax + 0x14], 0x10
jb 0x46f005
mov eax, dword [eax]
push 0x4e892c
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
je 0x46f107
mov eax, dword [ebp - 0x1c]
xorps xmm0, xmm0
movq qword [ebp - 0x24], xmm0
mov eax, dword [eax + 0x3c]
add eax, 0x58
cmp dword [eax + 0x14], 0x10
jb 0x46f032
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebx + 0x620]
call fcn.0042ac90
mov byte [ebp - 4], 2
mov esi, dword [ebp - 0x24]
test esi, esi
je 0x46f0fb
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
push 0x7f02
movq qword [ebp - 0x38], xmm0
push 0
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x30], 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
mov dword [ebp - 0x38], eax
call dword [sym.imp.USER32.dll_SetCursor]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 1
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 3
push eax
mov ecx, esi
call fcn.00428780
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 0x10
jb 0x46f0a4
mov eax, dword [eax]
mov ecx, eax
call fcn.0046df20
test eax, eax
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x7c]
sete bl
call fcn.004071d0
test bl, bl
je 0x46f0ec
mov ecx, dword [ebp - 0x5c]
push 0x4e714c
call fcn.00437f80
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 2
mov esi, eax
call fcn.00426d10
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00420100
jmp 0x46f256
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 2
call fcn.00426d10
mov ebx, dword [ebp - 0x5c]
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call fcn.00420100
mov ecx, dword [ebx + 0x5f8]
add ecx, 0x154
call fcn.00435c60
mov eax, dword [eax + 0x174]
cmp eax, 2
jne 0x46f150
sub esp, 8
lea eax, [ebp - 0x1c]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
mov dword [ecx], 0
mov dword [ecx + 4], 0
call fcn.00420550
mov byte [ebp - 4], 5
mov ecx, ebx
mov byte [ebp - 4], 0
call fcn.0046ee10
mov eax, 0x90b
lea esi, [ebx + 0x650]
cmp ax, word [ebp + 8]
mov edx, 0x90a
mov ecx, 0x8ff
sete al
test al, al
mov byte [ebx + 0x80e], al
push esi
cmovne ecx, edx
mov dword [ebp - 0x5c], ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, dword [ebx + 0x63c]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebx + 0x708]
mov dword [ebx + 0x810], edi
call fcn.00480750
mov dword [esi + 0x18], eax
mov eax, dword [ebx + 0x7f8]
mov eax, dword [eax + 0x5e4]
mov ecx, dword [eax + 0x164]
add ecx, 0x150
call fcn.00441900
mov edx, eax
mov eax, 0x90b
movzx ecx, word [edx + 0x10e]
movzx esi, word [edx + 0x10c]
shl ecx, 0x10
or ecx, 0x90b
mov dword [edx + 0x10c], ecx
cmp si, ax
je 0x46f1f6
mov eax, dword [edx]
mov ecx, edx
push esi
call dword [eax + 0x84]
push 0
mov ecx, ebx
call fcn.00437e80
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [ebx + 0x814], 0
call edi
push dword [ebx + 0x800]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov dword [ebx + 0x808], 0
call fcn.00480bd0
mov esi, eax
test esi, esi
jne 0x46f2a9
mov ecx, dword [ebx + 0x708]
cmp dword [ecx + 0x18], 1
jne 0x46f38c
push 0
push 0x906
push 0x111
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_PostMessageA]
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x18]
test edi, edi
je 0x46f289
or ebx, 0xffffffff
lea eax, [edi + 4]
mov ecx, ebx
lock xadd dword [eax], ecx
jne 0x46f289
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
lea eax, [edi + 8]
lock xadd dword [eax], ebx
dec ebx
jne 0x46f289
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0048b090
mov esp, ebp
pop ebp
ret 0xc
cmp esi, 0x80210006
jne 0x46f2c1
push 0x4e7198
mov ecx, ebx
call fcn.00437f80
mov esi, eax
jmp 0x46f256
cmp esi, 0x80210005
jb 0x46f383
lea eax, [ebp - 0x2c]
xorps xmm0, xmm0
push eax
mov ecx, ebx
movq qword [ebp - 0x2c], xmm0
call fcn.00437d20
mov byte [ebp - 4], 6
cmp dword [ebp - 0x2c], 0
jne 0x46f309
push 0x4e714c
mov ecx, ebx
call fcn.00437f80
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
mov esi, eax
call fcn.00420100
jmp 0x46f256
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00438260
push dword [ebx + 0x800]
mov ecx, dword [ebp - 0x1c]
call fcn.00480bd0
mov esi, eax
test esi, esi
je 0x46f32e
cmp esi, 1
jne 0x46f377
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x40]
xorps xmm0, xmm0
movq qword [ebp - 0x40], xmm0
mov dword [ebp - 0x40], 0
push dword [eax + 0x3c]
mov dword [ebp - 0x3c], 0
call fcn.0046fd40
mov byte [ebp - 4], 7
lea eax, [ebp - 0x40]
mov ecx, dword [ebx + 0x5f8]
push eax
add ecx, 0x1a0
call fcn.00438260
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
call fcn.00420100
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 0
call fcn.00420100
cmp esi, 1
je 0x46f4c1
cmp byte [ebx + 0x814], 0
jne 0x46f4c1
test esi, esi
jns 0x46f254
mov ecx, dword [ebp - 0x1c]
call fcn.00480750
cmp eax, 1
jne 0x46f406
cmp esi, 0x80210000
jb 0x46f406
mov eax, dword [ebx + 0x5f8]
mov ecx, dword [eax + 0x1a0]
call fcn.00483470
test al, al
je 0x46f3db
call edi
sub eax, dword [ebp - 0x20]
cmp eax, 0x7d0
ja 0x46f4dc
cmp esi, 0x80210003
jne 0x46f254
push ecx
mov ecx, dword [ebx + 0x608]
push 0x90b
call fcn.0044ff70
push 5
mov ecx, ebx
call fcn.00437e80
jmp 0x46f254
cmp esi, 0x80210003
je 0x46f4dc
mov eax, dword [ebp - 0x5c]
push 0
movzx eax, ax
push eax
push 0x111
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp esi, 0x80210001
je 0x46f254
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.00481890
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 8
push 0x4df3d0
push eax
call fcn.00420510
add esp, 8
test al, al
je 0x46f477
push esi
push 0x4e1544
call fcn.00424d30
add esp, 8
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x58]
call fcn.004071d0
jmp 0x46f254
mov ecx, dword [ebp - 0x1c]
call fcn.00480750
mov edx, esi
lea ecx, [ebp - 0x94]
call fcn.00481890
mov byte [ebp - 4], 9
cmp dword [eax + 0x14], 0x10
jb 0x46f498
mov eax, dword [eax]
push eax
call fcn.00424d30
add esp, 4
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x94]
call fcn.004071d0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0
call fcn.004071d0
jmp 0x46f254
mov eax, dword [ebx + 0x708]
mov eax, dword [eax + 0x20]
cmp eax, 3
je 0x46f23f
cmp eax, 4
je 0x46f23f
mov eax, dword [ebp - 0x5c]
push 0
movzx eax, ax
push eax
push 0x111
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x46f254