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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
push edi
mov dword [ebp - 8], 0
call esi
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
test eax, eax
je 0x402904
call esi
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
lea esi, [eax + ecx - 0x20]
call fcn.0040d480
cdq
mov ecx, 0x1537
idiv ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], 0x33cc9a8
mov eax, dword [ebp - 8]
test eax, eax
mov eax, dword [ebp - 0xc]
jne 0x402932
mov eax, dword [ebp - 8]
mov dword [ebp - 8], eax
lea ebx, [esi + 4]
call fcn.0040d480
cdq
mov ecx, 0x33cf0b9
idiv ecx
mov dword [ebp - 8], edx
call fcn.0040d480
cdq
mov ecx, 0x1538
idiv ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 8]
push dword [esi]
imul eax, ecx
push 0x1c
mov dword [ebp - 8], eax
push ebx
call fcn.004027ed
add esp, 0xc
call fcn.0040d480
cdq
mov ecx, 0x1539
idiv ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], 0x33d17ca
mov eax, dword [ebp - 8]
test eax, eax
mov eax, dword [ebp - 0xc]
jne 0x402998
mov eax, dword [ebp - 8]
mov edi, dword [esi]
mov dword [ebp - 8], eax
push 0x1c
mov eax, ebx
call fcn.00408cc1
xor eax, edi
pop ecx
je 0x4029ed
push edi
push 0x1c
push ebx
call fcn.004027ed
add esp, 0xc
call fcn.0040d480
cdq
mov ecx, 0x33d65ec
idiv ecx
mov dword [ebp + 8], edx
call fcn.0040d480
cdq
mov ecx, 0x153b
idiv ecx
mov dword [ebp + 0xc], edx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 8]
mov ecx, dword [ebp + 8]
imul eax, ecx
mov dword [ebp + 8], eax
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
mov eax, dword [ebp + 0xc]
sub eax, dword [esi + 0xc]
add dword [ebp + 8], eax
call fcn.0040d480
cdq
mov ecx, 0x153d
idiv ecx
mov dword [ebp - 0xc], edx
mov dword [ebp + 0xc], 0x33db40e
mov eax, dword [ebp + 0xc]
test eax, eax
mov eax, dword [ebp - 0xc]
jne 0x402a1a
mov eax, dword [ebp + 0xc]
push dword [esi]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 0xc]
sub eax, 0x20
push eax
push dword [ebp + 8]
call fcn.004027ed
xor eax, eax
mov byte [ebp - 4], 0
lea edi, [ebp - 3]
stosb byte es:[edi], al
mov al, byte [0x41a401]
mov byte [ebp - 4], al
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 0xfffffff0
add esp, 0xc
cmp ecx, 0xb16b00b0
jne 0x4029e6
mov edi, dword [ebp + 8]
test al, 1
jne 0x402a71
mov eax, dword [esi + 0xc]
sub eax, 0x20
push eax
mov eax, edi
call fcn.00408cc1
xor eax, dword [ebx]
pop ecx
jne 0x4029e6
xor ebx, ebx
mov dword [ebp + 0xc], ebx
mov eax, dword [ebp + 0xc]
je 0x402a90
push str.windows5441XP
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x402a90
mov dword [ebp + 0xc], ebx
mov eax, dword [esi + 0x10]
cmp eax, ebx
je 0x402a9c
add eax, edi
mov dword [esi + 0x10], eax
call fcn.0040d480
cdq
mov ecx, 0x1543
idiv ecx
mov dword [ebp - 0xc], edx
mov dword [ebp + 0xc], 0x33e9e74
mov eax, dword [ebp + 0xc]
test eax, eax
mov eax, dword [ebp - 0xc]
jne 0x402ac0
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], eax
mov dword [ebp + 0xc], ebx
mov dword [ebp - 0xc], 0x1544
mov dword [ebp + 0xc], ebx
jmp 0x402ade
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xc], eax
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, 2
jl 0x402ad2
mov eax, dword [esi + 0x18]
cmp eax, ebx
je 0x402af2
add eax, edi
mov dword [esi + 0x18], eax
call fcn.0040d480
cdq
mov ecx, 0x33eec96
idiv ecx
mov dword [ebp + 0xc], edx
call fcn.0040d480
cdq
mov ecx, 0x1545
idiv ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
mov edi, dword [esi + 0x10]
imul eax, ecx
mov dword [ebp + 0xc], eax
cmp edi, ebx
je 0x402be8
mov eax, dword [edi + 0xc]
mov ebx, dword [ebp + 8]
test eax, eax
je 0x402b3b
add eax, ebx
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0x14]
test eax, eax
je 0x402b47
add eax, ebx
mov dword [edi + 0x14], eax
call fcn.0040d480
cdq
mov ecx, 0x33f88da
idiv ecx
mov dword [ebp + 0xc], edx
call fcn.0040d480
cdq
mov ecx, 0x1549
idiv ecx
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
imul eax, ecx
mov dword [ebp + 0xc], eax
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x402b82
add eax, ebx
mov dword [edi + 0x1c], eax
mov dword [ebp + 0xc], 0
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x402ba9
push str.windows5450XP
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x402ba9
mov dword [ebp + 0xc], 0
mov eax, dword [edi + 0x24]
test eax, eax
je 0x402bb5
add eax, ebx
mov dword [edi + 0x24], eax
mov dword [ebp + 0xc], 0
mov eax, dword [ebp + 0xc]
add eax, 0x154b
je 0x402bc9
inc dword [ebp + 0xc]
mov dword [ebp + 0xc], 0
mov eax, dword [ebp + 0xc]
add eax, 0x154c
je 0x402bdd
inc dword [ebp + 0xc]
mov edi, dword [edi + 0xc]
test edi, edi
jne 0x402b2c
push 8
call fcn.0040d4fd
pop ecx
test eax, eax
je 0x4029e6
mov ecx, dword [esi + 0x10]
mov dword [eax], esi
mov dword [eax + 4], ecx
jmp 0x4029e8