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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 8], eax
mov ecx, 7
lea eax, [ebp - 0x2c]
mov edx, 0x40107c
call fcn.00403980
xor eax, eax
push ebp
push 0x495ee6
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x49b474], 0
je 0x495648
xor eax, eax
call fcn.0047cdec
mov byte [ebp - 1], 0
mov eax, dword [0x49b38c]
shr eax, 0x10
cmp eax, 0x600
setge byte [0x49b385]
xor edx, edx
push ebp
push 0x495e43
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x49b484], 0
je 0x495683
mov dl, 1
mov eax, dword [0x49b484]
call fcn.0045643c
cmp byte [0x49b472], 0
je 0x4956f0
xor eax, eax
push ebp
push 0x4956c3
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x49b478], 0
jne 0x4956af
mov eax, 0x495efc
call fcn.00456de4
jmp 0x4956b9
mov eax, dword [0x49b478]
call fcn.00456f9c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4956f0
mov eax, 0x495f38
call fcn.00456ff8
mov edx, 0x495f6c
lea eax, [ebp - 0x30]
call fcn.00403494
lea eax, [ebp - 0x30]
mov edx, dword [0x49b45c]
call fcn.0040357c
mov eax, dword [ebp - 0x30]
call fcn.00456ff8
mov edx, 0x495f90
lea eax, [ebp - 0x30]
call fcn.00403494
lea eax, [ebp - 0x30]
mov edx, dword [0x49b460]
call fcn.0040357c
mov eax, dword [ebp - 0x30]
call fcn.00456ff8
mov edx, 0x495fa8
lea eax, [ebp - 0x30]
call fcn.00403494
lea eax, [ebp - 0x34]
call fcn.0042d2f8
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
call fcn.0040357c
mov eax, dword [ebp - 0x30]
call fcn.00456ff8
call fcn.0047ce88
xor eax, eax
call fcn.00494fdc
mov dword [0x49b468], eax
mov dl, 1
mov eax, 0x494578
call fcn.00459958
mov dword [0x49909c], eax
mov ecx, dword [0x49b460]
mov edx, dword [0x49b468]
mov eax, dword [0x49909c]
call fcn.0045bf58
lea ecx, [ebp - 0x30]
mov eax, dword [0x49909c]
mov edx, dword [eax + 0x18]
mov al, 0xab
call fcn.00450ab8
mov edx, dword [ebp - 0x30]
mov eax, 0x49b46c
call fcn.00403450
mov eax, dword [0x49909c]
test byte [eax + 0x1d], 0x20
je 0x4957fc
cmp byte [0x49b37c], 0
jne 0x4957fc
push 1
push 1
mov eax, dword [0x49b46c]
call fcn.00403738
push eax
mov eax, dword [0x49aefc]
call fcn.00403738
mov ecx, 0x30
pop edx
call fcn.0047d578
call fcn.00408be8
mov eax, dword [0x49909c]
test byte [eax + 0x1d], 1
je 0x495839
call fcn.0042e1e0
test al, al
jne 0x495839
push 1
push 1
mov eax, dword [0x49b46c]
call fcn.00403738
push eax
mov eax, dword [0x49adec]
call fcn.00403738
mov ecx, 0x30
pop edx
call fcn.0047d578
call fcn.00408be8
mov eax, 0x49b468
call fcn.0042e2ac
mov al, 2
call fcn.00494fdc
mov dword [0x49b468], eax
lea eax, [ebp - 0x2c]
push eax
push 6
mov ecx, 0x5040200
mov dx, 0x20
mov eax, dword [0x49909c]
call fcn.00459e38
test al, al
jne 0x495876
mov eax, 0x495fcc
call fcn.004529a4
cmp dword [0x49b484], 0
je 0x49588f
lea eax, [ebp - 8]
mov edx, dword [0x49afb8]
call fcn.00403494
jmp 0x49589a
lea edx, [ebp - 8]
mov eax, dword [ebp - 0x2c]
call fcn.004955b4
mov eax, dword [ebp - 0x28]
call fcn.00403574
cmp eax, 0x20
je 0x4958b1
mov eax, 0x49601c
call fcn.004529a4
mov edx, 0x49b48c
mov eax, dword [ebp - 0x28]
mov ecx, 0x20
call fcn.00402738
mov dword [0x498784], 0x49b48c
mov eax, dword [0x49909c]
cmp byte [eax + 0x10], 0
je 0x4958f4
cmp byte [0x49b37c], 0
jne 0x4958eb
mov eax, 0x496044
call fcn.004529a4
mov al, 1
call fcn.0047d9d0
jmp 0x4958fb
xor eax, eax
call fcn.0047d9d0
call fcn.0047b70c
cmp dword [ebp - 8], 0
je 0x4959e1
call fcn.0047b2b0
call fcn.0047ba38
mov eax, 0x49b15c
mov edx, dword [0x49b45c]
call fcn.00403450
mov eax, 0x49b160
mov edx, dword [0x49909c]
mov edx, dword [edx + 0x14]
call fcn.00403450
mov al, byte [0x49b473]
or al, byte [0x49b474]
mov byte [0x49b174], al
mov eax, 0x49b164
mov edx, dword [ebp - 0x24]
call fcn.00403450
mov eax, 0x49b168
mov edx, dword [ebp - 0x20]
call fcn.00403450
mov eax, 0x49b16c
mov edx, dword [ebp - 0x1c]
call fcn.00403450
mov eax, 0x49b170
mov edx, dword [ebp - 0x18]
call fcn.00403450
mov eax, dword [ebp - 0x14]
call fcn.00403574
mov edx, eax
mov eax, dword [ebp - 0x14]
call fcn.00495504
mov dl, 1
mov eax, 0x492b94
call fcn.0049312c
mov dword [0x49b3c4], eax
mov eax, dword [0x49b3c4]
mov dword [eax + 0xc], 0x47c8f8
mov eax, dword [0x49b3c4]
mov dword [eax + 0x10], 0x47cadc
mov eax, dword [0x49b3c4]
mov dword [eax + 0x14], 0x47cae8
mov eax, dword [0x49b3c4]
mov dword [eax + 0x18], 0x47caf4
mov ecx, dword [0x49afbc]
mov edx, dword [ebp - 8]
mov eax, dword [0x49b3c4]
call fcn.004931e4
xor edx, edx
push ebp
push 0x495e03
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x495d4a
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x49b3c4], 0
je 0x495a6d
xor edx, edx
push ebp
push 0x495a41
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 0
push 1
xor eax, eax
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
lea ecx, [ebp - 0x3c]
mov edx, 0x496090
mov eax, dword [0x49b3c4]
call fcn.0049337c
pop dword fs:[0]
add esp, 8
jmp 0x495a5a
test al, al
jne 0x495a6d
mov eax, 0x4960e8
call fcn.00456ff8
call fcn.00408be8
cmp byte [0x49b473], 0
jne 0x495aa7
cmp byte [0x49b474], 0
jne 0x495aa7
push 0x124
push 1
push 6
mov eax, dword [0x49909c]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49b46c]
mov al, 0x22
call fcn.0049485c
cmp eax, 6
je 0x495aa7
call fcn.00408be8
xor edx, edx
xor eax, eax
call fcn.00494ec0
jmp 0x495ad5
push 0x31
push 1
push 2
mov eax, dword [0x49909c]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49b46c]
mov al, 0xb1
call fcn.0049485c
dec eax
je 0x495ad5
call fcn.00408be8
mov eax, dword [0x49909c]
call fcn.00459e74
test al, al
jne 0x495ab2
jmp 0x495b04
push 0
push 0
mov eax, dword [0x49b46c]
call fcn.00403738
mov edx, eax
mov eax, 0x496118
mov ecx, 0x10
call fcn.0047d578
cmp byte [0x49b386], 0
jne 0x495ae5
mov byte [0x49b385], 0
lea ecx, [ebp - 0x30]
mov eax, dword [0x49909c]
mov edx, dword [eax + 0x18]
mov al, 0xb5
call fcn.00450ab8
mov edx, dword [ebp - 0x30]
mov eax, dword [0x49a628]
mov eax, dword [eax + 0x20]
call fcn.0042e91c
call fcn.004946f4
xor edx, edx
mov al, 1
call fcn.00494ec0
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x10], eax
mov eax, dword [0x49909c]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x24], edx
mov ecx, 0x494acc
mov dl, 1
mov eax, dword [0x49909c]
call fcn.0045a984
mov byte [ebp - 9], al
xor eax, eax
mov al, byte [ebp - 9]
mov eax, dword [eax*4 + 0x498adc]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
lea edx, [ebp - 0x3c]
xor ecx, ecx
mov eax, 0x49617c
call fcn.00457204
mov eax, dword [0x49909c]
cmp byte [eax + 0x1c], 0
jne 0x495ba7
mov eax, dword [0x49909c]
test byte [eax + 0x1d], 8
jne 0x495ba7
xor eax, eax
jmp 0x495ba9
mov al, 1
mov byte [ebp - 0xa], al
cmp dword [0x49b3c4], 0
je 0x495c42
mov edx, 0x496194
mov eax, dword [0x49b3c4]
call fcn.0049326c
test al, al
je 0x495c42
cmp byte [ebp - 0xa], 0
jne 0x495c38
xor eax, eax
push ebp
push 0x495c1d
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
xor eax, eax
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
lea ecx, [ebp - 0x3c]
mov edx, 0x496194
mov eax, dword [0x49b3c4]
call fcn.0049337c
test al, al
je 0x495c13
mov byte [ebp - 0xa], 1
mov eax, 0x4961b4
call fcn.00456ff8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x495c42
mov eax, 0x49622c
call fcn.00456ff8
xor eax, eax
mov al, byte [ebp - 0xa]
mov eax, dword [eax*4 + 0x498adc]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
lea edx, [ebp - 0x3c]
xor ecx, ecx
mov eax, 0x49628c
call fcn.00457204
cmp byte [0x49b474], 0
jne 0x495c9a
mov eax, dword [0x49a628]
call fcn.004244bc
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x10]
cmp eax, 0x3e8
jae 0x495c9a
push 0xff
push 0xa
push 0
push 0
push 0
call sub.user32.dll_MsgWaitForMultipleObjects
jmp 0x495c6d
mov eax, 0x49b448
call fcn.0042e2ac
mov dl, 1
mov al, 2
call fcn.00494ec0
cmp byte [ebp - 0xa], 0
jne 0x495cee
cmp byte [0x49b473], 0
jne 0x495d37
cmp byte [0x49b474], 0
jne 0x495d37
push 0x10040
push 1
push 1
mov eax, dword [0x49909c]
mov edx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ebp - 9]
mov al, byte [eax + 0x4990a8]
mov ecx, dword [0x49b46c]
call fcn.0049485c
jmp 0x495d37
cmp byte [0x49b475], 0
jne 0x495d27
cmp byte [0x49b474], 0
jne 0x495d23
push 0x10044
push 1
push 6
mov eax, dword [0x49909c]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49b46c]
mov al, 0xaf
call fcn.0049485c
cmp eax, 6
jne 0x495d27
mov byte [ebp - 1], 1
cmp byte [ebp - 1], 0
jne 0x495d37
mov eax, 0x4962b0
call fcn.00456ff8
mov dl, 1
mov al, 3
call fcn.00494ec0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x495d5e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x495e0d
xor eax, eax
push ebp
push 0x495d8d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x49b448
call fcn.0042e2ac
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x495d9c
cmp dword [0x49b3c4], 0
je 0x495df5
xor eax, eax
push ebp
push 0x495ddc
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
xor eax, eax
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
lea ecx, [ebp - 0x3c]
mov edx, 0x4962e0
mov eax, dword [0x49b3c4]
call fcn.004932c8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x495df5
mov eax, dword [0x49a628]
mov eax, dword [eax + 0x20]
call fcn.0042e9c8
ret