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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x11
push 0
push 0
dec ecx
jne 0x49a3e9
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x49ab5d
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 4], 0xffffffff
je 0x49aaea
cmp dword [ebp + 0x18], 0
jne 0x49a427
cmp dword [ebp + 0x14], 0
jbe 0x49aaea
jmp 0x49a42d
jle 0x49aaea
mov eax, dword [ebp + 8]
mov byte [eax], 0
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404e6c
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
mov byte [ebx + 0x4b9], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
xor eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], 0xffffffff
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x4b4]
call fcn.004910dc
push dword [ebp + 0x18]
push dword [ebp + 0x14]
mov eax, dword [ebx + 0x4b4]
call fcn.00490ee0
push 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x44]
push eax
mov ecx, 0x49ab78
mov edx, 0x49ab98
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov eax, dword [ebp - 0x44]
push eax
push 0
push 0x200
mov eax, dword [ebx + 0x4b4]
mov edx, dword [eax + 0x1bc]
mov eax, dword [eax + 0x1b8]
call fcn.00405e08
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], edx
lea eax, [ebp - 0x54]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0x10
lea ecx, [ebp - 0x4c]
mov eax, ebx
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x40]
mov eax, dword [ebx + 0x3ec]
call fcn.0044cdd0
mov eax, dword [ebx + 0x4b4]
push dword [eax + 0x1bc]
push dword [eax + 0x1b8]
xor ecx, ecx
mov edx, esi
mov eax, 0x100000
call fcn.00491440
xor edx, edx
push edx
push eax
mov eax, ebx
call fcn.0049d524
mov edi, eax
mov eax, edi
call fcn.00402d34
mov dword [ebp - 0x34], eax
cmp byte [ebp + 0x10], 0
je 0x49a761
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 0x38]
mov dword [eax], edx
mov eax, dword [ebx + 0x4b4]
call fcn.00490ff8
push 0
push 0x20000
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
call fcn.00405e08
mov edx, eax
add edx, edx
mov eax, dword [ebx + 0x3bc]
call fcn.00484260
mov esi, dword [ebx + 0x3bc]
mov eax, esi
call fcn.00484050
mov edx, eax
mov eax, esi
call fcn.00484270
lea eax, [ebp - 0x58]
push eax
mov ecx, 0x49abb0
mov edx, 0x49abc0
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov edx, dword [ebp - 0x58]
mov eax, dword [ebx + 0x3f0]
call fcn.0044cdd0
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
call fcn.0046b39c
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004099e8
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov eax, edi
xor edx, edx
push edx
push eax
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
push edx
push eax
mov eax, ebx
call fcn.0049d524
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
call sub.kernel32.dll_GetTickCount
mov esi, eax
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.00409990
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call sub.kernel32.dll_GetTickCount
mov edx, eax
sub edx, esi
mov ecx, 1
mov eax, ebx
call fcn.0049d570
mov esi, eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], eax
adc dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49a6cf
cmp eax, dword [ebp - 0x18]
jne 0x49a6cf
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 0x30], eax
adc dword [ebp - 0x2c], edx
add dword [ebp - 0x3c], esi
fild qword [ebp - 0x30]
fdiv dword [0x49abcc]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x48], eax
fild qword [ebp - 0x4c]
fdiv dword [0x49abd0]
fdivp st(1)
fstp qword [ebx + 0x4c8]
wait
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x34]
mov eax, ebx
call fcn.0049a388
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebx + 0x4b4]
call fcn.00490d04
mov edx, 0xff0000
call fcn.00490210
jmp 0x49a6ea
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebx + 0x4b4]
call fcn.00490d04
mov edx, 0xff
call fcn.00490210
push 0
push 0x20000
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00405e08
mov edx, eax
add edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x3bc]
call fcn.00484270
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
call fcn.0046b39c
mov eax, edi
xor edx, edx
cmp edx, dword [ebp - 0x14]
jne 0x49a728
cmp eax, dword [ebp - 0x18]
ja 0x49a747
jmp 0x49a72a
jg 0x49a747
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49a747
cmp eax, dword [ebp - 0x18]
jne 0x49a747
cmp byte [ebx + 0x4b9], 0
je 0x49a5f5
push 0
push 0x20000
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00405e08
add dword [ebp - 0x28], eax
adc dword [ebp - 0x24], edx
jmp 0x49a7ad
mov eax, dword [ebx + 0x4b4]
call fcn.00490ff8
push 0
push 0x20000
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
call fcn.00405e08
mov edx, eax
mov eax, dword [ebx + 0x3bc]
call fcn.00484260
mov esi, dword [ebx + 0x3bc]
mov eax, esi
call fcn.00484050
mov edx, eax
mov eax, esi
call fcn.00484270
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
call fcn.0046b39c
cmp byte [ebx + 0x4b9], 0
jne 0x49a984
mov eax, dword [ebp + 8]
cmp byte [eax], 0
jne 0x49a984
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49a984
cmp eax, dword [ebp - 0x18]
jne 0x49a984
mov eax, dword [ebx + 0x4b4]
call fcn.00490ff8
lea eax, [ebp - 0x5c]
push eax
mov ecx, 0x49abdc
mov edx, 0x49abf0
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebx + 0x3f0]
call fcn.0044cdd0
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
call fcn.0046b39c
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.004099e8
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
push edx
push eax
mov eax, edi
xor edx, edx
push edx
push eax
mov eax, ebx
call fcn.0049d524
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
call sub.kernel32.dll_GetTickCount
mov esi, eax
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.00409990
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call sub.kernel32.dll_GetTickCount
mov edx, eax
sub edx, esi
mov ecx, 1
mov eax, ebx
call fcn.0049d570
mov esi, eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], eax
adc dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49a90c
cmp eax, dword [ebp - 0x18]
jne 0x49a90c
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 0x30], eax
adc dword [ebp - 0x2c], edx
add dword [ebp - 0x3c], esi
fild qword [ebp - 0x30]
fdiv dword [0x49abcc]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x4c], eax
xor eax, eax
mov dword [ebp - 0x48], eax
fild qword [ebp - 0x4c]
fdiv dword [0x49abd0]
fdivp st(1)
fstp qword [ebx + 0x4c8]
wait
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x34]
mov eax, ebx
call fcn.0049a388
mov dword [ebp - 0x38], eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebx + 0x4b4]
call fcn.00490d04
mov edx, 0x8000
call fcn.00490210
jmp 0x49a927
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebx + 0x4b4]
call fcn.00490d04
mov edx, 0xff
call fcn.00490210
push 0
push 0x20000
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00405e08
mov edx, eax
add edx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x3bc]
call fcn.00484270
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
call fcn.0046b39c
mov eax, edi
xor edx, edx
cmp edx, dword [ebp - 0x14]
jne 0x49a965
cmp eax, dword [ebp - 0x18]
ja 0x49a984
jmp 0x49a967
jg 0x49a984
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49a984
cmp eax, dword [ebp - 0x18]
jne 0x49a984
cmp byte [ebx + 0x4b9], 0
je 0x49a836
mov edx, edi
mov eax, dword [ebp - 0x34]
call fcn.00402d50
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49a99c
cmp eax, dword [ebp - 0x18]
je 0x49aa65
mov eax, dword [ebp + 8]
mov byte [eax], 3
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x49a9b2
cmp dword [ebp - 0x20], 0xffffffff
je 0x49aa0a
push 1
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x64]
push eax
mov ecx, 0x49ac08
mov edx, 0x49ac44
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov edx, dword [ebp - 0x64]
lea eax, [ebp - 0x20]
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x70], 0x10
lea eax, [ebp - 0x18]
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x68], 0x10
lea ecx, [ebp - 0x74]
mov eax, ebx
call fcn.0049edf0
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00405138
mov eax, dword [ebp + 8]
jmp 0x49ab25
push 0
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x7c]
push eax
mov ecx, 0x49ac5c
mov edx, 0x49ac7c
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov eax, dword [ebp - 0x7c]
push eax
call sub.kernel32.dll_GetLastError_1
lea edx, [ebp - 0x80]
call fcn.0040c608
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0xb
lea ecx, [ebp - 0x4c]
mov eax, ebx
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x78]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00405138
mov eax, dword [ebp + 8]
jmp 0x49ab25
cmp byte [ebx + 0x4b9], 0
je 0x49aa79
mov eax, dword [ebp + 8]
mov byte [eax], 4
jmp 0x49ab25
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x38]
je 0x49ab25
lea eax, [ebp - 0x84]
push eax
mov ecx, 0x49ac98
mov edx, 0x49acb4
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov edx, dword [ebp - 0x84]
mov ecx, 0xff
mov eax, ebx
call fcn.0049e98c
mov eax, dword [ebp + 8]
inc dword [eax + 4]
lea eax, [ebp - 0x88]
push eax
mov ecx, 0x49acc8
mov edx, 0x49acec
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
jmp 0x49ab25
mov eax, dword [ebp + 8]
mov byte [eax], 1
lea eax, [ebp - 0x8c]
push eax
mov ecx, 0x49ad04
mov edx, 0x49ad1c
mov eax, dword [ebx + 0x4d8]
call fcn.00492f6c
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49ab64
lea eax, [ebp - 0x8c]
mov edx, 6
call fcn.00404e90
lea eax, [ebp - 0x64]
mov edx, 4
call fcn.00404e90
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.00404e90
ret