Function at 0x4a50ff
Capabilities:
Check for time delay via gettickcount
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
push esi
push edi
mov esi, ecx
call ebx
cmp eax, 0xb
ja 0x4a531a
lahf
mov dh, 0x9d
shl byte [edx], cl
push ebp
xchg byte [esi], al
clc
mov ebp, 0x2f7be2d0
retf
mov byte [esi + 4], 1
call int.004a4854
test eax, eax
jne 0x4a5335
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4a5504
call ebx
push 4
pop esi
push esi
push 2
call fcn.0040d5ca
mov ecx, 0x553e58
mov ebx, eax
mov edx, ecx
mov dword [ebp - 0x20], ebx
call fcn.004a4ed3
mov eax, dword [ebp + 8]
cdq
mov ecx, ebx
shl ecx, 2
idiv ecx
xor ecx, ecx
mov dword [ebp - 0x1c], eax
mov eax, ebx
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00417f6a
mov dword [ebp - 4], eax
pop ecx
xor ecx, ecx
mov eax, ebx
mul esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00417f6a
mov edi, eax
pop ecx
xor ecx, ecx
mov eax, ebx
mul esi
seto cl
mov dword [ebp + 8], edi
neg ecx
or ecx, eax
push ecx
call fcn.00417f6a
pop ecx
mov dword [ebp - 0xc], eax
xor ecx, ecx
push 0x1c
pop edx
mov eax, ebx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00417f6a
pop ecx
mov ecx, eax
xor esi, esi
mov dword [ebp - 8], ecx
test ecx, ecx
je 0x4a53f0
lea edx, [ebx - 1]
test edx, edx
js 0x4a53f5
lea eax, [ecx + 4]
dec edx
mov dword [eax + 8], esi
mov dword [eax], esi
mov dword [eax - 4], esi
mov dword [eax + 4], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x14], esi
mov dword [eax + 0x10], esi
lea eax, [eax + 0x1c]
jns 0x4a53d4
jmp 0x4a53f5
mov ecx, esi
mov dword [ebp - 8], esi
mov edx, dword [ebp - 4]
test edx, edx
je 0x4a5504
test edi, edi
je 0x4a5504
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x4a5504
test ecx, ecx
je 0x4a5504
test ebx, ebx
jle 0x4a5472
mov edx, edi
sub eax, edx
mov dword [ebp - 0x10], edi
lea edi, [ecx + 0x14]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], ebx
push esi
push esi
push 1
push esi
mov dword [edx + eax], 2
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edx, dword [ebp - 0x10]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov dword [edi - 4], eax
mov eax, dword [ebp - 0xc]
add edx, 4
dec dword [ebp - 0x14]
mov dword [edi], eax
mov eax, dword [ebp - 0x18]
mov dword [edi - 8], ebx
mov dword [edi + 4], 2
mov dword [ebp - 0x10], edx
lea edi, [edi + 0x1c]
jne 0x4a542f
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
lea eax, [ebx - 1]
test eax, eax
js 0x4a54ac
mov ebx, eax
mov edi, ebx
imul edi, edi, 0x1c
add edi, ecx
mov eax, dword [ebp - 0x1c]
push esi
push esi
push edi
push 0x4a4ac7
push esi
push esi
mov dword [edi], ebx
mov dword [edi + 4], esi
mov dword [edi + 8], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 4]
sub edi, 0x1c
mov dword [edx + ebx*4], eax
dec ebx
jns 0x4a5482
mov ebx, dword [ebp - 0x20]
push 0xffffffffffffffff
push 1
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
test ebx, ebx
jle 0x4a54da
mov eax, dword [ebp + 8]
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x4a54d5
cmp ecx, 0xffffffff
je 0x4a54d5
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp + 8]
inc esi
cmp esi, ebx
jl 0x4a54bf
push dword [ebp - 8]
call fcn.0041b9c0
pop ecx
push dword [ebp - 0xc]
call fcn.0041b9c0
pop ecx
push dword [ebp + 8]
call fcn.0041b9c0
pop ecx
push dword [ebp - 4]
call fcn.0041b9c0
pop ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
pop edi
pop esi
pop ebx
leave
ret 8