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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x490470
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
sub eax, 0x34
jae 0x4902f1
cmp byte [0x5f3788], 0
je 0x4900ca
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5f37cc]
cmp eax, 0x1388
jbe 0x4900ca
mov byte [0x5f3788], 0
cmp byte [0x5f3788], 0
jne 0x49044d
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x5f1eb0], 0
je 0x49044d
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x5f1ebf], 3
ja 0x49044d
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
lea esi, [eax*4 + 0x5f1eb0]
mov edi, 0x5f3788
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
mov byte [eax*4 + 0x5f1eb0], 0
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x5f1ebf], 4
jne 0x490296
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x5f1ec0], 0x64
jae 0x490296
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
cmp byte [eax*4 + 0x5f1ec0], 0x32
jae 0x49020c
mov edx, 0x490480
lea eax, [ebp - 0x1c]
call fcn.00403814
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
lea edx, [eax*4 + 0x5f1eb0]
lea eax, [ebp - 0x1c]
mov cl, 0xf
call fcn.004037e4
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x40]
call fcn.00403814
mov edx, 0x490484
lea eax, [ebp - 0x40]
mov cl, 0x23
call fcn.004037e4
lea edx, [ebp - 0x40]
lea eax, [ebp - 0xc]
call fcn.0040525c
mov edx, dword [ebp - 0xc]
mov eax, dword [0x568bc8]
mov eax, dword [eax]
mov cx, word [0x49049c]
call fcn.004b6bdc
cmp eax, 6
je 0x490296
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
lea edi, [eax*4 + 0x5f1eb0]
mov esi, 0x5f3788
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
jmp 0x49044d
mov edx, 0x490480
lea eax, [ebp - 0x1c]
call fcn.00403814
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
lea edx, [eax*4 + 0x5f1eb0]
lea eax, [ebp - 0x1c]
mov cl, 0xf
call fcn.004037e4
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x40]
call fcn.00403814
mov edx, 0x490484
lea eax, [ebp - 0x40]
mov cl, 0x23
call fcn.004037e4
lea edx, [ebp - 0x40]
lea eax, [ebp - 0x44]
call fcn.0040525c
mov edx, dword [ebp - 0x44]
mov eax, dword [0x568bc8]
mov eax, dword [eax]
mov cx, word [0x49049c]
call fcn.004b6bdc
cmp eax, 6
je 0x490296
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
lea edi, [eax*4 + 0x5f1eb0]
mov esi, 0x5f3788
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
jmp 0x49044d
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5f37cc], eax
lea eax, [ebp - 0x48]
mov edx, dword [ebp - 8]
mov ecx, edx
shl edx, 4
add edx, ecx
lea edx, [edx*4 + 0x5f1eb0]
call fcn.0040525c
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
mov edx, dword [eax*4 + 0x5f1eec]
mov eax, dword [ebp - 4]
call fcn.00493320
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 4
add eax, edx
movzx eax, byte [eax*4 + 0x5f1ebf]
call fcn.004c8458
jmp 0x49044d
cmp dword [ebp - 8], 0xffffffff
sete al
and al, byte [0x5f36f4]
je 0x49044d
mov byte [0x5f36f4], 0
mov esi, 0x5f36fc
mov edi, 0x5f3788
mov ecx, 0x11
rep movsd dword es:[edi], dword [esi]
mov byte [0x5f36fc], 0
cmp byte [0x5f3797], 4
jne 0x490419
cmp byte [0x5f3798], 0x64
jae 0x490419
cmp byte [0x5f3798], 0x32
jae 0x4903b1
mov edx, 0x490480
lea eax, [ebp - 0x1c]
call fcn.00403814
mov edx, 0x5f3788
lea eax, [ebp - 0x1c]
mov cl, 0xf
call fcn.004037e4
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x40]
call fcn.00403814
mov edx, 0x490484
lea eax, [ebp - 0x40]
mov cl, 0x23
call fcn.004037e4
lea edx, [ebp - 0x40]
lea eax, [ebp - 0x4c]
call fcn.0040525c
mov edx, dword [ebp - 0x4c]
mov eax, dword [0x568bc8]
mov eax, dword [eax]
mov cx, word [0x49049c]
call fcn.004b6bdc
cmp eax, 6
je 0x490419
mov eax, 0x5f3788
call fcn.004d29ec
jmp 0x49044d
mov edx, 0x490480
lea eax, [ebp - 0x1c]
call fcn.00403814
mov edx, 0x5f3788
lea eax, [ebp - 0x1c]
mov cl, 0xf
call fcn.004037e4
lea edx, [ebp - 0x1c]
lea eax, [ebp - 0x40]
call fcn.00403814
mov edx, 0x490484
lea eax, [ebp - 0x40]
mov cl, 0x23
call fcn.004037e4
lea edx, [ebp - 0x40]
lea eax, [ebp - 0x50]
call fcn.0040525c
mov edx, dword [ebp - 0x50]
mov eax, dword [0x568bc8]
mov eax, dword [eax]
mov cx, word [0x49049c]
call fcn.004b6bdc
cmp eax, 6
je 0x490419
mov eax, 0x5f3788
call fcn.004d29ec
jmp 0x49044d
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5f37cc], eax
lea eax, [ebp - 0x54]
mov edx, 0x5f3788
call fcn.0040525c
mov ecx, dword [ebp - 0x54]
mov edx, dword [0x5f37c4]
mov eax, dword [ebp - 4]
call fcn.00493320
xor eax, eax
mov al, byte [0x5f3797]
call fcn.004c8458
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x490477
lea eax, [ebp - 0x54]
mov edx, 5
call fcn.0040501c
lea eax, [ebp - 0xc]
call fcn.00404ff8
ret