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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
mov eax, dword fs:[0x2c]
push ebx
push esi
push edi
mov ecx, dword [eax]
mov eax, dword [0x5e4bdc]
cmp eax, dword [ecx + 4]
jle 0x401f7b
push 0x5e4bdc
call fcn.0055077c
add esp, 4
cmp dword [0x5e4bdc], 0xffffffff
jne 0x401f7b
call fcn.0040e23c
mov ecx, eax
test ecx, ecx
je 0x402308
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
push 0x57fbd0
mov dword [0x5e49d4], eax
call fcn.00550a8e
add esp, 4
push 0x5e4bdc
call fcn.00550732
add esp, 4
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
cmp dword [eax + 0xe4], 0
jne 0x4022f0
cmp dword [ebx + 8], 0
je 0x401fb2
push 0
call fcn.00555bf7
add esp, 4
cmp edx, dword [ebx + 0x10]
jg 0x4022f0
jl 0x401fb2
cmp eax, dword [ebx + 0xc]
ja 0x4022f0
mov eax, dword [0x5e43cc]
mov edi, dword [ebp + 0xc]
test eax, eax
je 0x401fda
mov ecx, edi
sub ecx, eax
mov dword [0x5e41c0], ecx
je 0x401fe0
mov eax, dword [ebp + 0x10]
xor edx, edx
sub eax, edi
div ecx
mov dword [0x5e43c8], eax
jmp 0x401fe0
mov dword [0x5e41c0], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [0x5e4bd8]
mov ecx, eax
mov dword [0x5e49d0], ecx
test edx, edx
jne 0x402009
mov dword [0x5e4bd8], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, ecx
sub eax, edx
cmp eax, 0x3e8
jb 0x402205
mov edx, dword [ebp + 0x18]
mov dword [0x5e4bd8], ecx
mov dword [0x5e43cc], edi
test edx, edx
je 0x40204d
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402030
sub ecx, esi
sar ecx, 1
push ecx
push edx
mov ecx, 0x5e49d4
call fcn.004029a0
jmp 0x4020a6
mov eax, dword [0x5e49d4]
cmp dword [eax - 0xc], 0
lea edx, [eax - 0x10]
mov esi, dword [edx]
je 0x4020a6
cmp dword [edx + 0xc], 0
lea ecx, [edx + 0xc]
jge 0x402083
cmp dword [eax - 8], 0
jl 0x4022fe
mov dword [eax - 0xc], 0
xor ecx, ecx
mov eax, dword [0x5e49d4]
mov word [eax], cx
jmp 0x4020a6
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x402097
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [0x5e49d4], eax
mov esi, dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
push 0x100
push 0x5e47d0
push 0
push edi
call esi
push 0x100
push 0x5e43d0
push 0
push dword [ebp + 0x10]
call esi
push 0x100
push 0x5e45d0
push 0
push dword [0x5e41c0]
call esi
cmp dword [ebp + 0x10], 0
mov esi, dword [sym.imp.USER32.dll_wsprintfW]
je 0x402210
push dword [0x5e43c8]
push 0x5e47d0
push 0x5b6328
push 0x5e41c8
call esi
push 0x5e45d0
push 0x5b6348
push 0x5e49d8
call esi
mov eax, dword [ebp + 0x10]
add esp, 0x1c
movd xmm1, edi
cvtdq2pd xmm1, xmm1
shr edi, 0x1f
movd xmm0, eax
addsd xmm1, qword [edi*8 + 0x5bc5d0]
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
mulsd xmm1, qword [0x5bc5a0]
addsd xmm0, qword [eax*8 + 0x5bc5d0]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
push eax
push ecx
mov esi, esp
call fcn.0040e23c
mov ecx, eax
test ecx, ecx
je 0x402308
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, 0x5e49d8
test eax, 0xffff0000
jne 0x40218c
movzx eax, ax
mov ecx, esi
push eax
call fcn.00402330
jmp 0x4021b0
mov ecx, 0x5e49d8
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402194
sub ecx, edx
sar ecx, 1
push ecx
push 0x5e49d8
mov ecx, esi
call fcn.004029a0
push ecx
mov esi, esp
call fcn.0040e23c
test eax, eax
je 0x402308
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, 0x5e41c8
test eax, 0xffff0000
je 0x4022b2
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4021e1
sub ecx, edx
sar ecx, 1
push ecx
push 0x5e41c8
mov ecx, esi
call fcn.004029a0
mov ecx, dword [ebx + 4]
call fcn.0040dbb0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0x5e47d0
push 0x5b6360
push 0x5e41c8
call esi
add esp, 0xc
push 0x5b6374
push 0x5e49d8
call esi
add esp, 8
push 0
push ecx
mov esi, esp
call fcn.0040e23c
mov ecx, eax
test ecx, ecx
je 0x402308
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, 0x5e49d8
test eax, 0xffff0000
jne 0x40226a
movzx eax, ax
mov ecx, esi
push eax
call fcn.00402330
jmp 0x40228e
mov ecx, 0x5e49d8
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x402272
sub ecx, edx
sar ecx, 1
push ecx
push 0x5e49d8
mov ecx, esi
call fcn.004029a0
push ecx
mov esi, esp
call fcn.0040e23c
test eax, eax
je 0x402308
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esi], eax
mov eax, 0x5e41c8
test eax, 0xffff0000
jne 0x4022d0
movzx eax, ax
mov ecx, esi
push eax
call fcn.00402330
mov ecx, dword [ebx + 4]
call fcn.0040dbb0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, 0x5e41c8
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4022e0
jmp 0x4021ec
pop edi
pop esi
mov eax, 0x80004004
pop ebx
mov esp, ebp
pop ebp
ret 0x14
push 0x80070057
call fcn.00401ca0
push 0x80004005
call fcn.00401ca0
int3