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, 0x7a9a28
movlpd qword [esp + 0x24], xmm0
cmovne eax, edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], eax
call fcn.00403bca
push dword [esp + 0xc8]
lea eax, [esp + 0x18]
push 8
push eax
call fcn.00403b95
add esp, 0x18
test eax, eax
jne 0x40341f
push 0xfffffffffffffffd
pop eax
or edx, 0xffffffff
jmp 0x4037d2
cmp dword [0x41f150], ebx
je 0x40343b
push 8
lea eax, [esp + 0xc]
push eax
push 0
call fcn.0040735e
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 0x403687
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0x14]
and dword [0x41f188], 0
and ecx, 0x7fffffff
mov esi, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov byte [0x41f170], 0xb
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], ecx
jl 0x403491
jg 0x40349e
test esi, esi
jne 0x40349e
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
jmp 0x4037ae
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
test ecx, ecx
jg 0x4034b4
jl 0x4034b9
cmp esi, 0x4000
jb 0x4034b9
mov esi, 0x4000
push dword [esp + 0xc4]
push esi
push 0x7a5a28
call fcn.00403b95
add esp, 0xc
test eax, eax
je 0x40378a
cmp dword [0x41f150], 0
je 0x4034f7
mov eax, dword [esp + 0x18]
push esi
push 0x7a5a28
push eax
call fcn.0040735e
mov ebp, eax
mov dword [esp + 0x18], ebp
jmp 0x4034fb
mov ebp, dword [esp + 0x18]
mov eax, esi
mov dword [0x41f164], esi
mov esi, dword [esp + 0x28]
cdq
sub dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
sbb dword [esp + 0x14], edx
mov dword [0x41f160], 0x7a5a28
push 0x41f160
mov dword [0x41f168], esi
mov dword [0x41f16c], eax
call fcn.004073c8
mov dword [esp + 0x20], eax
test eax, eax
js 0x403680
mov eax, dword [0x41f168]
sub eax, esi
mov dword [esp + 0x34], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test byte [0x7ef6f4], 1
mov esi, dword [esp + 0x10]
mov dword [esp + 0x3c], eax
je 0x4035e7
mov ecx, eax
sub ecx, dword [esp + 0x2c]
cmp ecx, 0xc8
mov ecx, dword [esp + 0x14]
ja 0x40357d
mov eax, esi
or eax, ecx
jne 0x4035eb
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 0x4035a8
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.00406235
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 0x403665
cmp dword [esp + 0xd4], 0
jne 0x403626
mov esi, dword [esp + 0x28]
push eax
push esi
push dword [esp + 0xd8]
call fcn.00406f48
test eax, eax
je 0x403754
mov eax, dword [esp + 0x34]
cdq
add ebx, eax
mov eax, dword [esp + 0x1c]
adc edi, edx
jmp 0x403641
mov esi, dword [0x41f168]
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], 4
jne 0x40351e
cmp dword [0x41f150], 0
je 0x4037cc
cmp ebp, dword [esp + 0xdc]
jmp 0x4037c2
test ecx, ecx
jl 0x4037ae
jg 0x4034b4
test esi, esi
je 0x4037ae
jmp 0x4034a6
push 0xfffffffffffffffc
jmp 0x40378c
test edi, edi
jne 0x403758
test ebp, ebp
jl 0x403491
mov esi, dword [esp + 0x10]
jg 0x4036a5
test esi, esi
je 0x403491
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 0x4036c6
jl 0x4036c8
cmp esi, eax
jb 0x4036c8
mov esi, ecx
push dword [esp + 0xc4]
push esi
push 0x7a5a28
call fcn.00403b95
add esp, 0xc
test eax, eax
je 0x40378a
cmp dword [0x41f150], 0
je 0x403702
mov eax, dword [esp + 0x18]
push esi
push 0x7a5a28
push eax
call fcn.0040735e
mov dword [esp + 0x18], eax
push esi
push 0x7a5a28
push dword [esp + 0xd8]
call fcn.00406f48
test eax, eax
je 0x403754
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 0x4036bc
jl 0x4037ae
test esi, esi
jne 0x4036bc
jmp 0x4037ae
push 0xfffffffffffffffe
jmp 0x40378c
mov eax, dword [esp + 0xd8]
cdq
cmp ebp, edx
jg 0x40376e
mov esi, dword [esp + 0x10]
jl 0x403775
cmp esi, eax
jb 0x403775
mov esi, dword [esp + 0xd8]
push dword [esp + 0xc4]
push esi
push edi
call fcn.00403b95
add esp, 0xc
test eax, eax
jne 0x403792
push 0xfffffffffffffffd
pop eax
or edx, 0xffffffff
jmp 0x4037d0
cmp dword [0x41f150], 0
je 0x4037a7
push esi
push edi
push ebx
call fcn.0040735e
mov dword [esp + 0x18], eax
mov eax, esi
cdq
mov ebx, eax
mov edi, edx
cmp dword [0x41f150], 0
je 0x4037cc
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0xdc]
je 0x4037cc
push 0xfffffffffffffffd
or edx, 0xffffffff
pop eax
jmp 0x4037d0
mov edx, edi
mov eax, ebx
pop esi
pop ebp
pop edi
pop ebx
add esp, 0xb0
ret 0x1c