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

Disassembly:
mov eax, 0x45da9d
call fcn.0044e550
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 0x1c]
push esi
xor esi, esi
mov dword [ebp - 0x10], ecx
cmp ebx, esi
je 0x425e7a
movzx ecx, word [ebx + 0xe]
xor eax, eax
mov word [ebx + 0x14], ax
movzx eax, word [ebx + 0xc]
cmp ax, cx
mov dword [ebx + 0x10], esi
movzx eax, ax
ja 0x425e63
movzx eax, cx
push ebx
mov word [ebx + 0xe], ax
call fcn.00425a48
pop ecx
test al, al
je 0x425e7a
xor eax, eax
inc eax
jmp 0x4260a8
cmp dword [ebp + 0xc], esi
jge 0x425ea4
mov ecx, dword [ebp - 0x10]
call fcn.00408e73
test al, al
je 0x425e94
mov dword [ebp + 0xc], 1
jmp 0x425ea4
cmp dword [ebp + 0xc], 0xfffffffe
mov dword [ebp + 0xc], 2
je 0x425ea4
mov dword [ebp + 0xc], esi
push edi
lea ecx, [ebp - 0x18]
call fcn.0042d52a
mov dword [ebp - 4], esi
mov edi, dword [ebp + 8]
cmp edi, 0xffffffff
je 0x425ec3
mov eax, 0xffc91180
cmp edi, eax
jb 0x425ec3
mov edi, eax
cmp dword [ebp + 0x14], 2
jge 0x425ecd
mov byte [ebp + 0x18], 0
mov dword [ebp + 0x1c], esi
mov dword [ebp + 8], esi
cmp ebx, esi
je 0x425ee7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp + 0x1c], edi
movzx edi, word [ebx + 0xc]
mov dword [ebp + 8], eax
cmp dword [ebp + 0xc], 0
je 0x425fa1
mov ecx, dword [ebp - 0x10]
call fcn.00425ab3
test al, al
je 0x426045
xor esi, esi
cmp ebx, esi
je 0x425f1c
cmp byte [ebx + 9], 0
je 0x425f1c
push ebx
call fcn.00425a48
pop ecx
test al, al
jne 0x42604a
cmp edi, esi
jne 0x425f25
cmp dword [ebp + 0x14], esi
je 0x425f8f
push edi
lea ecx, [ebp - 0x18]
call fcn.0042d584
cmp byte [ebp + 0x18], 0
mov edi, eax
je 0x425f60
push 0xa
pop eax
cmp edi, eax
jae 0x425f3f
mov eax, edi
push 1
push eax
push 1
push dword [ebp + 0x10]
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjectsEx]
mov esi, eax
cmp esi, 0x102
jne 0x425fc5
test edi, edi
jne 0x425ef1
jmp 0x425f97
xor eax, eax
cmp dword [ebp + 0xc], 2
push 2
setne al
dec eax
and eax, 0xfffffa41
add eax, 0x5ff
push eax
push edi
push dword [ebp + 0x10]
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjectsEx]
mov esi, eax
cmp esi, dword [ebp + 0x14]
je 0x425ef1
cmp esi, 0x102
jne 0x425fc5
cmp dword [ebp + 0x14], 0
jne 0x425fc5
xor esi, esi
jmp 0x425fc5
cmp dword [ebp + 0x14], 0
push 1
push edi
je 0x425fbd
movzx eax, byte [ebp + 0x18]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjectsEx]
jmp 0x425fc3
call dword [sym.imp.KERNEL32.dll_SleepEx]
mov esi, eax
lea ecx, [ebp - 0x18]
call fcn.0042d562
test al, al
je 0x425fd9
mov ecx, dword [ebp - 0x10]
call fcn.004209e0
cmp esi, 0xffffffff
je 0x42604f
cmp esi, 0xc0
jne 0x425ffc
push edi
lea ecx, [ebp - 0x18]
call fcn.0042d584
mov edi, eax
test edi, edi
jne 0x425ee7
add esi, 0x42
test ebx, ebx
je 0x426059
push ebx
call fcn.00425a48
pop ecx
test al, al
jne 0x42604a
cmp dword [ebp + 0x1c], 0xffffffff
je 0x42601f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 8]
cmp eax, dword [ebp + 0x1c]
jae 0x426054
movzx eax, word [ebx + 0xc]
movzx edi, word [ebx + 0xe]
inc eax
cmp eax, edi
jge 0x42602e
mov edi, eax
movzx eax, word [ebx + 0x14]
mov word [ebx + 0xc], di
cmp edi, eax
ja 0x425ee7
mov edi, eax
jmp 0x425ee7
push 0xfffffffffffffffe
pop esi
jmp 0x426099
xor esi, esi
inc esi
jmp 0x426099
or esi, 0xffffffff
jmp 0x426099
mov esi, 0x102
mov edi, 0x80
cmp esi, edi
jb 0x426077
mov eax, dword [ebp + 0x14]
sub eax, 0xffffff80
cmp esi, eax
jae 0x426077
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
sub esi, edi
jmp 0x42607f
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
je 0x426098
cmp esi, dword [ebp + 0x14]
jb 0x426098
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0042d549
xor eax, eax
jmp 0x4260a7
inc esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.0042d549
mov eax, esi
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x18