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

Disassembly:
sub esp, 0xb0
push ebx
push edi
mov edi, dword [esp + 0xcc]
mov eax, 0x8000
push dword [esp + 0xbc]
test edi, edi
xorps xmm0, xmm0
push dword [esp + 0xc8]
cmovne eax, dword [esp + 0xd8]
xor ebx, ebx
push dword [esp + 0xc8]
mov dword [esp + 0x20], eax
test edi, edi
mov eax, 0x42b1f0
movlpd qword [esp + 0x24], xmm0
cmovne eax, edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], eax
call fcn.00403bc6
push dword [esp + 0xc8]
lea eax, [esp + 0x18]
push 8
push eax
call fcn.00403b91
add esp, 0x18
test eax, eax
jne 0x40341f
push 0xfffffffffffffffd
pop eax
or edx, 0xffffffff
jmp 0x4037ce
cmp dword [0x41f150], ebx
je 0x40343b
push 8
lea eax, [esp + 0xc]
push eax
push 0
call fcn.0040735a
mov ebx, eax
mov dword [esp + 0x10], eax
push ebp
mov ebp, dword [esp + 0x10]
xor ecx, ecx
mov edx, ebp
and edx, 0x80000000
or ecx, edx
push esi
je 0x403683
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x41f160
mov dword [esp + 0x2c], eax
call fcn.00408208
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
and ecx, 0x7fffffff
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ecx
jl 0x40348d
jg 0x40349a
test esi, esi
jne 0x40349a
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
jmp 0x4037aa
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
test ecx, ecx
jg 0x4034b0
jl 0x4034b5
cmp esi, 0x4000
jb 0x4034b5
mov esi, 0x4000
push dword [esp + 0xc4]
push esi
push 0x4271f0
call fcn.00403b91
add esp, 0xc
test eax, eax
je 0x403786
cmp dword [0x41f150], 0
je 0x4034f3
mov eax, dword [esp + 0x18]
push esi
push 0x4271f0
push eax
call fcn.0040735a
mov ebp, eax
mov dword [esp + 0x18], ebp
jmp 0x4034f7
mov ebp, dword [esp + 0x18]
mov eax, esi
mov dword [0x41f17c], esi
mov esi, dword [esp + 0x28]
cdq
sub dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
sbb dword [esp + 0x14], edx
mov dword [0x41f178], 0x4271f0
mov ecx, 0x41f160
mov dword [0x41f180], esi
mov dword [0x41f184], eax
call fcn.004073c4
mov dword [esp + 0x20], eax
test eax, eax
js 0x40367c
mov eax, dword [0x41f180]
sub eax, esi
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test byte [0x470eb4], 1
mov esi, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
je 0x4035e3
mov ecx, eax
sub ecx, dword [esp + 0x2c]
cmp ecx, 0xc8
mov ecx, dword [esp + 0x14]
ja 0x403579
mov eax, esi
or eax, ecx
jne 0x4035e7
mov eax, dword [esp + 0x38]
mov edx, eax
sub edx, esi
mov esi, dword [esp + 0x30]
sbb esi, ecx
cmp dword [esp + 0x30], 0
mov ecx, eax
je 0x4035a4
mov eax, dword [esp + 0x30]
shr ecx, 0x18
shl eax, 8
shr edx, 0x18
or ecx, eax
shl esi, 8
or edx, esi
shr ecx, 1
shr edx, 1
push ecx
cmp edx, ecx
push 0x64
cmovb ecx, edx
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
lea eax, [esp + 0x44]
push str....__d__
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [esp + 0x40]
push eax
push 0
call fcn.00406231
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
test eax, eax
je 0x403661
cmp dword [esp + 0xd4], 0
jne 0x403622
mov esi, dword [esp + 0x28]
push eax
push esi
push dword [esp + 0xd8]
call fcn.00406f44
test eax, eax
je 0x403750
mov eax, dword [esp + 0x34]
cdq
add ebx, eax
mov eax, dword [esp + 0x1c]
adc edi, edx
jmp 0x40363d
mov esi, dword [0x41f180]
cdq
add ebx, eax
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x1c]
adc edi, edx
sub eax, dword [esp + 0x34]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x20], 1
jne 0x40351a
cmp dword [0x41f150], 0
je 0x4037c8
cmp ebp, dword [esp + 0xdc]
jmp 0x4037be
test ecx, ecx
jl 0x4037aa
jg 0x4034b0
test esi, esi
je 0x4037aa
jmp 0x4034a2
push 0xfffffffffffffffc
jmp 0x403788
test edi, edi
jne 0x403754
test ebp, ebp
jl 0x40348d
mov esi, dword [esp + 0x10]
jg 0x4036a1
test esi, esi
je 0x40348d
mov ecx, dword [esp + 0x1c]
mov eax, ecx
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
cdq
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
cmp ebp, edx
jg 0x4036c2
jl 0x4036c4
cmp esi, eax
jb 0x4036c4
mov esi, ecx
push dword [esp + 0xc4]
push esi
push 0x4271f0
call fcn.00403b91
add esp, 0xc
test eax, eax
je 0x403786
cmp dword [0x41f150], 0
je 0x4036fe
mov eax, dword [esp + 0x18]
push esi
push 0x4271f0
push eax
call fcn.0040735a
mov dword [esp + 0x18], eax
push esi
push 0x4271f0
push dword [esp + 0xd8]
call fcn.00406f44
test eax, eax
je 0x403750
mov ebp, dword [esp + 0x14]
add ebx, esi
mov ecx, dword [esp + 0x1c]
mov eax, esi
mov esi, dword [esp + 0x10]
adc edi, 0
mov edx, dword [esp + 0x28]
sub esi, eax
mov eax, dword [esp + 0x2c]
sbb ebp, 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebp
test ebp, ebp
jg 0x4036b8
jl 0x4037aa
test esi, esi
jne 0x4036b8
jmp 0x4037aa
push 0xfffffffffffffffe
jmp 0x403788
mov eax, dword [esp + 0xd8]
cdq
cmp ebp, edx
jg 0x40376a
mov esi, dword [esp + 0x10]
jl 0x403771
cmp esi, eax
jb 0x403771
mov esi, dword [esp + 0xd8]
push dword [esp + 0xc4]
push esi
push edi
call fcn.00403b91
add esp, 0xc
test eax, eax
jne 0x40378e
push 0xfffffffffffffffd
pop eax
or edx, 0xffffffff
jmp 0x4037cc
cmp dword [0x41f150], 0
je 0x4037a3
push esi
push edi
push ebx
call fcn.0040735a
mov dword [esp + 0x18], eax
mov eax, esi
cdq
mov ebx, eax
mov edi, edx
cmp dword [0x41f150], 0
je 0x4037c8
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0xdc]
je 0x4037c8
push 0xfffffffffffffffd
or edx, 0xffffffff
pop eax
jmp 0x4037cc
mov edx, edi
mov eax, ebx
pop esi
pop ebp
pop edi
pop ebx
add esp, 0xb0
ret 0x1c