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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
mov byte [ebp - 5], cl
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov word [eax + 0x3ac], 0
mov eax, dword [ebp + 0xc]
mov dword [0x5f381c], eax
mov eax, dword [ebp + 8]
mov dword [0x5f3820], eax
mov byte [0x5f3838], 0
cmp byte [ebp - 5], 1
sete al
and al, byte [0x5f36f4]
je 0x490dc2
mov eax, dword [0x568bc8]
mov eax, dword [eax]
call fcn.004b6314
jmp 0x491465
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp + 8]
push eax
mov eax, dword [0x568584]
mov eax, dword [eax]
mov cl, byte [ebp + 0x10]
mov dl, byte [ebp - 5]
call fcn.00480778
test al, al
jne 0x491465
cmp dword [0x5f1b38], 0
je 0x491465
mov eax, dword [0x5f18a0]
mov eax, dword [eax + 0x14]
cmp eax, dword [0x5f18b0]
jne 0x491465
test byte [ebp + 0x10], 0x10
je 0x490f92
mov al, byte [0x49146c]
cmp al, byte [ebp + 0x10]
jne 0x490e1f
inc dword [0x5f3878]
mov eax, dword [0x5f3878]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [0x5f18b0]
call fcn.004a0964
mov dword [ebp - 0x20], eax
mov eax, dword [0x5f3878]
cmp eax, dword [ebp - 0x1c]
je 0x490e4f
xor eax, eax
mov dword [0x5f3878], eax
cmp dword [ebp - 0x20], 0
je 0x490ea9
test byte [ebp + 0x10], 4
je 0x490eb0
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5f36f0]
cmp eax, 0x3e8
jbe 0x490eb0
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0xe], 0
jne 0x490eb0
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x20], 0
jne 0x490eb0
mov eax, dword [ebp - 0x20]
movzx eax, word [eax + 8]
push eax
mov eax, dword [ebp - 0x20]
movzx eax, word [eax + 0xa]
push eax
push 0
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov edx, 0x52
mov eax, dword [ebp - 4]
call fcn.00492248
jmp 0x491465
xor eax, eax
mov dword [0x5f3878], eax
push 0x5f3814
push 0x5f3818
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [0x5f18b0]
call fcn.004a0714
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
sub eax, dword [0x5f3814]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x490f72
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 0xa]
sub eax, dword [0x5f3818]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x490f72
mov eax, dword [0x5f3818]
push eax
mov eax, dword [0x5f1b38]
movzx edx, word [eax + 0xa]
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
mov ecx, dword [0x5f3814]
call fcn.004d3350
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0049477c
test al, al
je 0x490f92
mov eax, dword [ebp - 4]
call fcn.00494738
test al, al
je 0x490f92
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 0xa]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5f1b38]
movzx ecx, word [eax + 8]
mov dx, 0xbc2
mov eax, dword [0x5f1b38]
call fcn.004c912c
jmp 0x490f92
mov byte [0x5f3848], 1
mov eax, dword [0x5f3814]
mov dword [0x5f3824], eax
mov eax, dword [0x5f3818]
mov dword [0x5f3828], eax
jmp 0x491465
test byte [ebp + 0x10], 8
je 0x491465
mov eax, dword [0x5f3878]
push eax
lea eax, [ebp - 0x1c]
push eax
push 1
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [0x5f18b0]
call fcn.004a0964
mov dword [ebp - 0x20], eax
push 0x5f3814
push 0x5f3818
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov eax, dword [0x5f18b0]
call fcn.004a0714
xor eax, eax
mov dword [0x5f382c], eax
cmp byte [0x5f1b80], 0
je 0x4910c4
cmp dword [ebp - 0x20], 0
jne 0x4910c4
cmp byte [0x5f1b90], 0x13
jne 0x4910c4
mov eax, dword [0x5f3818]
push eax
mov eax, dword [0x5f1b38]
movzx edx, word [eax + 0xa]
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
mov ecx, dword [0x5f3814]
call fcn.004d3350
and eax, 0xff
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x14]
push eax
mov eax, dword [0x5f1b38]
movzx edx, word [eax + 0xa]
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
mov ecx, dword [ebp - 0xc]
call fcn.004d35b0
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [0x5f1b34]
call fcn.004d2280
test al, al
je 0x491067
test byte [ebp + 0x10], 1
je 0x4910c4
mov eax, dword [ebp - 4]
call fcn.0049477c
test al, al
je 0x4910b8
mov eax, dword [ebp - 4]
call fcn.00494738
test al, al
je 0x4910b8
mov eax, dword [ebp - 4]
call fcn.004947d8
test al, al
je 0x4910b8
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 0xa]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5f1b38]
movzx ecx, word [eax + 8]
mov dx, 0xbc7
mov eax, dword [0x5f1b38]
call fcn.004c912c
mov byte [0x5f3838], 1
jmp 0x491465
test byte [ebp + 0x10], 2
je 0x4911c5
mov eax, dword [0x5f3818]
push eax
mov eax, dword [0x5f1b38]
movzx edx, word [eax + 0xa]
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
mov ecx, dword [0x5f3814]
call fcn.004d3350
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0049477c
test al, al
je 0x4911b6
mov eax, dword [ebp - 4]
call fcn.00494738
test al, al
je 0x4911b6
mov ecx, dword [0x5f3818]
mov edx, dword [0x5f3814]
mov eax, dword [0x5f18b0]
call fcn.004a1c3c
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x491189
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 4]
push eax
mov ecx, dword [0x5f3818]
mov edx, dword [0x5f3814]
mov eax, dword [ebp - 4]
call fcn.004933c4
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 0xa]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5f1b38]
movzx ecx, word [eax + 8]
mov dx, 0xbc4
mov eax, dword [0x5f1b38]
call fcn.004c912c
jmp 0x491465
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 0xa]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5f1b38]
movzx ecx, word [eax + 8]
mov dx, 0xbc4
mov eax, dword [0x5f1b38]
call fcn.004c912c
mov dword [0x5f3824], 0xffffffff
jmp 0x491465
cmp dword [ebp - 0x20], 0
jne 0x4911d5
test byte [ebp + 0x10], 1
je 0x4913ba
mov dword [0x5f3824], 0xffffffff
cmp dword [ebp - 0x20], 0
je 0x49129c
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5f36f0]
cmp eax, 0x5dc
jbe 0x491222
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0xe], 0x32
jne 0x491222
push 0
push 0
push 0
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 4]
mov edx, 0x3f2
mov eax, dword [ebp - 4]
call fcn.00492248
jmp 0x491465
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x20], 0
jne 0x491465
mov eax, dword [ebp - 0x20]
mov dword [0x5f382c], eax
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0xe], 0
je 0x49126f
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0xe], 0xc
je 0x49126f
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0xe], 0x18
je 0x49126f
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0xe], 0x32
je 0x49126f
mov eax, dword [ebp - 0x20]
mov edx, dword [eax + 0x28]
mov eax, 0x491478
call fcn.004055d4
test eax, eax
je 0x491282
test byte [ebp + 0x10], 1
jne 0x491282
mov eax, dword [ebp - 0x20]
cmp dword [eax + 0x2c], 0x45
jne 0x491465
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.00490b90
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5f37e0], eax
jmp 0x491465
mov eax, dword [0x5f3818]
push eax
mov eax, dword [0x5f1b38]
movzx edx, word [eax + 0xa]
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
mov ecx, dword [0x5f3814]
call fcn.004d3350
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0049477c
test al, al
je 0x4913ab
mov eax, dword [ebp - 4]
call fcn.00494738
test al, al
je 0x4913ab
mov eax, dword [ebp - 4]
call fcn.004947d8
test al, al
je 0x4913ab
mov eax, 3
call fcn.00403324
add eax, 0xbc6
mov dword [ebp - 0x18], eax
cmp byte [0x5f38dd], 0
je 0x491328
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.004904a0
test al, al
je 0x491328
mov dword [ebp - 0x18], 0xbcb
cmp byte [0x5f38de], 0
je 0x491353
mov eax, dword [0x5f1b38]
cmp word [eax + 0x3e], 3
jb 0x491353
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00490544
test al, al
je 0x491353
mov dword [ebp - 0x18], 0xbd0
cmp byte [0x5f38df], 0
je 0x49137e
mov eax, dword [0x5f1b38]
cmp word [eax + 0x3e], 6
jb 0x49137e
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0049069c
test al, al
je 0x49137e
mov dword [ebp - 0x18], 0xbdb
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 0xa]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push 0
push 0
push 0
mov eax, dword [0x5f1b38]
movzx ecx, word [eax + 8]
mov dx, word [ebp - 0x18]
mov eax, dword [0x5f1b38]
call fcn.004c912c
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5f36ec], eax
jmp 0x491465
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
cmp eax, dword [0x5f3814]
jne 0x491429
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 0xa]
cmp eax, dword [0x5f3818]
jne 0x491429
mov eax, dword [0x5f3818]
push eax
mov eax, dword [0x5f1b38]
movzx edx, word [eax + 0xa]
mov eax, dword [0x5f1b38]
movzx eax, word [eax + 8]
mov ecx, dword [0x5f3814]
call fcn.004d3350
and eax, 0xff
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
call fcn.0049477c
test al, al
je 0x491465
mov eax, dword [ebp - 4]
call fcn.00494738
test al, al
je 0x491465
mov eax, dword [ebp - 4]
call fcn.00493158
jmp 0x491465
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5f36ec]
cmp eax, 0x3e8
jbe 0x491465
test byte [ebp + 0x10], 4
je 0x49144a
mov byte [0x5f3848], 1
jmp 0x491451
mov byte [0x5f3848], 0
mov eax, dword [0x5f3814]
mov dword [0x5f3824], eax
mov eax, dword [0x5f3818]
mov dword [0x5f3828], eax
mov esp, ebp
pop ebp
ret 0xc