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

Disassembly:
push 0x20
mov eax, 0x46240a
call fcn.00450d5a
mov esi, dword [ebp + 0xc]
mov ebx, ecx
and dword [ebp - 4], 0
mov dword [ebp - 0x2c], vtable.CPCCSAutoWait.0
lea eax, [ebx + 0x18]
mov dword [ebp - 0x28], eax
mov byte [ebp - 4], 1
push dword [ebp + 0x10]
lea edi, [ebp - 0x2c]
call fcn.0040b2bc
mov dword [ebp - 0x14], eax
test eax, eax
jge 0x412b7d
call fcn.0040426a
cmp dword [ebx + 0x28], 0xffffffff
jne 0x412b8a
mov eax, 0x80100014
jmp 0x412b78
mov eax, dword [ebx + 0x80]
test eax, eax
je 0x412b9b
push eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push dword [ebx + 0x28]
push ebx
call fcn.00411554
and dword [ebp + 0xc], 0
and dword [ebp - 0x1c], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x20], eax
mov edi, dword [ebp + 8]
mov dword [edi + 8], eax
mov dword [ebp + 0xc], 0x20
lea edx, [ebx + 0x40]
push dword [ebp + 0x10]
push edi
push dword [ebx + 0x28]
push ebx
lea ecx, [ebp + 0xc]
call fcn.00412986
mov dword [ebp - 0x14], eax
test eax, eax
jl 0x412d1d
mov eax, dword [edi + 0x14]
test eax, eax
je 0x412c03
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 0x20]
push dword [ebp + 0x10]
push eax
push dword [ebx + 0x28]
push ebx
lea ecx, [ebp + 0xc]
lea edx, [ebx + 0x40]
call fcn.00412986
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x412d1d
test esi, esi
je 0x412c19
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c], eax
jmp 0x412c1b
mov esi, edi
and dword [ebp - 0x18], 0
cmp dword [ebp - 0x18], 3
jge 0x412cfb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 8], eax
push 0x20
pop edi
push edi
push 0
push esi
call fcn.0044c8f0
add esp, 0xc
mov byte [esi], 1
mov dword [ebp + 0xc], edi
lea edx, [ebx + 0x2c]
push dword [ebp + 0x10]
push esi
push dword [ebx + 0x28]
push ebx
lea ecx, [ebp + 0xc]
call fcn.0041162d
mov dword [ebp - 0x14], eax
test eax, eax
jl 0x412d1d
mov edi, dword [esi + 0x14]
test edi, edi
je 0x412cc7
mov dword [ebp + 0xc], edi
cmp edi, 0x4c4b40
jbe 0x412c93
xor edi, edi
call fcn.00411a2b
push dword [ebx + 0x28]
push ebx
call fcn.00411554
mov dword [ebp - 0x14], 0x80100026
jmp 0x412d1d
call fcn.00411a2b
test eax, eax
jne 0x412cb7
mov eax, dword [esi + 0x20]
push dword [ebp + 0x10]
push eax
push dword [ebx + 0x28]
push ebx
lea ecx, [ebp + 0xc]
lea edx, [ebx + 0x2c]
call fcn.0041162d
mov dword [ebp - 0x14], eax
jmp 0x412cc7
push dword [ebx + 0x28]
push ebx
call fcn.00411554
mov dword [ebp - 0x14], 0x80100015
cmp dword [ebp - 0x14], 0
jl 0x412d1d
mov eax, dword [ebp - 0x20]
cmp eax, dword [esi + 8]
je 0x412cfb
mov dword [ebp - 0x14], 0x80100026
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 8]
cmp eax, dword [ebp + 0x10]
jbe 0x412cf0
and dword [ebp + 0x10], 0
jmp 0x412cf3
sub dword [ebp + 0x10], eax
inc dword [ebp - 0x18]
jmp 0x412c1f
cmp dword [ebp - 0x14], 0
jl 0x412d1d
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x412d17
cmp eax, dword [esi + 4]
je 0x412d17
mov eax, 0x80100026
jmp 0x412b78
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call fcn.0040b338
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x14]
call fcn.00450dff
ret 0xc