Function at 0x497180
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 0x497a54
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x49c54c], 0
je 0x4971c4
xor eax, eax
call fcn.0047e8ac
mov byte [ebp - 1], 0
mov eax, dword [0x49c44c]
shr eax, 0x10
cmp eax, 0x600
setge byte [0x49c443]
xor edx, edx
push ebp
push 0x4979b1
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x49c55c], 0
je 0x4971ff
mov dl, 1
mov eax, dword [0x49c55c]
call fcn.00457154
cmp byte [0x49c54a], 0
je 0x49726c
xor eax, eax
push ebp
push 0x49723f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x49c550], 0
jne 0x49722b
mov eax, 0x497a6c
call fcn.00457afc
jmp 0x497235
mov eax, dword [0x49c550]
call fcn.00457cb4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x49726c
mov eax, 0x497aa8
call fcn.00457d10
mov edx, 0x497adc
lea eax, [ebp - 0x30]
call fcn.00403494
lea eax, [ebp - 0x30]
mov edx, dword [0x49c534]
call fcn.0040357c
mov eax, dword [ebp - 0x30]
call fcn.00457d10
mov edx, 0x497b00
lea eax, [ebp - 0x30]
call fcn.00403494
lea eax, [ebp - 0x30]
mov edx, dword [0x49c538]
call fcn.0040357c
mov eax, dword [ebp - 0x30]
call fcn.00457d10
mov edx, 0x497b18
lea eax, [ebp - 0x30]
call fcn.00403494
lea eax, [ebp - 0x34]
call fcn.0042d32c
mov edx, dword [ebp - 0x34]
lea eax, [ebp - 0x30]
call fcn.0040357c
mov eax, dword [ebp - 0x30]
call fcn.00457d10
call fcn.0047e948
xor eax, eax
call fcn.00496b58
mov dword [0x49c540], eax
mov dl, 1
mov eax, 0x4960f4
call fcn.0045a148
mov dword [0x49a0ec], eax
mov ecx, dword [0x49c538]
mov edx, dword [0x49c540]
mov eax, dword [0x49a0ec]
call fcn.0045c748
lea ecx, [ebp - 0x30]
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov al, 0xb7
call fcn.00451458
mov edx, dword [ebp - 0x30]
mov eax, 0x49c544
call fcn.00403450
mov eax, dword [0x49a0ec]
test byte [eax + 0x1d], 0x20
je 0x497378
cmp byte [0x49c43a], 0
jne 0x497378
push 1
push 1
mov eax, dword [0x49c544]
call fcn.00403738
push eax
mov eax, dword [0x49bf4c]
call fcn.00403738
mov ecx, 0x30
pop edx
call fcn.0047f038
call fcn.00408be0
mov eax, dword [0x49a0ec]
test byte [eax + 0x1d], 1
je 0x4973b5
call fcn.0042e2b8
test al, al
jne 0x4973b5
push 1
push 1
mov eax, dword [0x49c544]
call fcn.00403738
push eax
mov eax, dword [0x49be2c]
call fcn.00403738
mov ecx, 0x30
pop edx
call fcn.0047f038
call fcn.00408be0
mov eax, 0x49c540
call fcn.0042e384
mov al, 2
call fcn.00496b58
mov dword [0x49c540], eax
lea eax, [ebp - 0x2c]
push eax
push 6
mov ecx, 0x5050400
mov dx, 0x20
mov eax, dword [0x49a0ec]
call fcn.0045a628
test al, al
jne 0x4973f2
mov eax, 0x497b3c
call fcn.00453344
cmp dword [0x49c55c], 0
je 0x49740b
lea eax, [ebp - 8]
mov edx, dword [0x49c010]
call fcn.00403494
jmp 0x497416
lea edx, [ebp - 8]
mov eax, dword [ebp - 0x2c]
call fcn.00497130
mov eax, dword [ebp - 0x28]
call fcn.00403574
cmp eax, 0x20
je 0x49742d
mov eax, 0x497b8c
call fcn.00453344
mov edx, 0x49c564
mov eax, dword [ebp - 0x28]
mov ecx, 0x20
call fcn.00402738
mov dword [0x499784], 0x49c564
mov eax, dword [0x49a0ec]
cmp byte [eax + 0x10], 0
je 0x497470
cmp byte [0x49c43a], 0
jne 0x497467
mov eax, 0x497bb4
call fcn.00453344
mov al, 1
call fcn.0047f490
jmp 0x497477
xor eax, eax
call fcn.0047f490
call fcn.0047cce8
cmp dword [ebp - 8], 0
je 0x49755d
call fcn.0047c7c0
call fcn.0047cfcc
mov eax, 0x49c1c4
mov edx, dword [0x49c534]
call fcn.00403450
mov eax, 0x49c1c8
mov edx, dword [0x49a0ec]
mov edx, dword [edx + 0x14]
call fcn.00403450
mov al, byte [0x49c54b]
or al, byte [0x49c54c]
mov byte [0x49c1dc], al
mov eax, 0x49c1cc
mov edx, dword [ebp - 0x24]
call fcn.00403450
mov eax, 0x49c1d0
mov edx, dword [ebp - 0x20]
call fcn.00403450
mov eax, 0x49c1d4
mov edx, dword [ebp - 0x1c]
call fcn.00403450
mov eax, 0x49c1d8
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.00497080
mov dl, 1
mov eax, 0x49470c
call fcn.00494ca4
mov dword [0x49c484], eax
mov eax, dword [0x49c484]
mov dword [eax + 0xc], 0x47e3b8
mov eax, dword [0x49c484]
mov dword [eax + 0x10], 0x47e59c
mov eax, dword [0x49c484]
mov dword [eax + 0x14], 0x47e5a8
mov eax, dword [0x49c484]
mov dword [eax + 0x18], 0x47e5b4
mov ecx, dword [0x49c014]
mov edx, dword [ebp - 8]
mov eax, dword [0x49c484]
call fcn.00494d5c
xor edx, edx
push ebp
push 0x497971
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x4978b8
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x49c484], 0
je 0x4975e9
xor edx, edx
push ebp
push 0x4975bd
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, 0x497c00
mov eax, dword [0x49c484]
call fcn.00494ef4
pop dword fs:[0]
add esp, 8
jmp 0x4975d6
test al, al
jne 0x4975e9
mov eax, 0x497c58
call fcn.00457d10
call fcn.00408be0
cmp byte [0x49c54b], 0
jne 0x497623
cmp byte [0x49c54c], 0
jne 0x497623
push 0x124
push 1
push 6
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49c544]
mov al, 0x27
call fcn.004963d8
cmp eax, 6
je 0x497623
call fcn.00408be0
xor edx, edx
xor eax, eax
call fcn.00496a3c
jmp 0x497651
push 0x31
push 1
push 2
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49c544]
mov al, 0xbd
call fcn.004963d8
dec eax
je 0x497651
call fcn.00408be0
mov eax, dword [0x49a0ec]
call fcn.0045a664
test al, al
jne 0x49762e
jmp 0x497672
push 0xa
call sub.kernel32.dll_Sleep
mov eax, dword [0x49b628]
call fcn.004244ac
cmp byte [0x49c444], 0
jne 0x497661
mov byte [0x49c443], 0
lea ecx, [ebp - 0x30]
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov al, 0xa7
call fcn.00451458
mov edx, dword [ebp - 0x30]
mov eax, dword [0x49b628]
mov eax, dword [eax + 0x20]
call fcn.0042eaa8
call fcn.00496270
xor edx, edx
mov al, 1
call fcn.00496a3c
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x10], eax
mov eax, dword [0x49a0ec]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x24], edx
mov ecx, 0x496648
mov dl, 1
mov eax, dword [0x49a0ec]
call fcn.0045b174
mov byte [ebp - 9], al
xor eax, eax
mov al, byte [ebp - 9]
mov eax, dword [eax*4 + 0x499b10]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
lea edx, [ebp - 0x3c]
xor ecx, ecx
mov eax, 0x497c90
call fcn.00457f1c
mov eax, dword [0x49a0ec]
cmp byte [eax + 0x1c], 0
jne 0x497715
mov eax, dword [0x49a0ec]
test byte [eax + 0x1d], 8
jne 0x497715
xor eax, eax
jmp 0x497717
mov al, 1
mov byte [ebp - 0xa], al
cmp dword [0x49c484], 0
je 0x4977b0
mov edx, 0x497ca8
mov eax, dword [0x49c484]
call fcn.00494de4
test al, al
je 0x4977b0
cmp byte [ebp - 0xa], 0
jne 0x4977a6
xor eax, eax
push ebp
push 0x49778b
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, 0x497ca8
mov eax, dword [0x49c484]
call fcn.00494ef4
test al, al
je 0x497781
mov byte [ebp - 0xa], 1
mov eax, 0x497cc8
call fcn.00457d10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4977b0
mov eax, 0x497d40
call fcn.00457d10
xor eax, eax
mov al, byte [ebp - 0xa]
mov eax, dword [eax*4 + 0x499b10]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0xb
lea edx, [ebp - 0x3c]
xor ecx, ecx
mov eax, 0x497da0
call fcn.00457f1c
cmp byte [0x49c54c], 0
jne 0x497808
mov eax, dword [0x49b628]
call fcn.004244ac
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x10]
cmp eax, 0x3e8
jae 0x497808
push 0xff
push 0xa
push 0
push 0
push 0
call sub.user32.dll_MsgWaitForMultipleObjects
jmp 0x4977db
mov eax, 0x49c520
call fcn.0042e384
mov dl, 1
mov al, 2
call fcn.00496a3c
cmp byte [ebp - 0xa], 0
jne 0x49785c
cmp byte [0x49c54b], 0
jne 0x4978a5
cmp byte [0x49c54c], 0
jne 0x4978a5
push 0x10040
push 1
push 1
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
xor eax, eax
mov al, byte [ebp - 9]
mov al, byte [eax + 0x49a0f8]
mov ecx, dword [0x49c544]
call fcn.004963d8
jmp 0x4978a5
cmp byte [0x49c54d], 0
jne 0x497895
cmp byte [0x49c54c], 0
jne 0x497891
push 0x10044
push 1
push 6
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49c544]
mov al, 0xbb
call fcn.004963d8
cmp eax, 6
jne 0x497895
mov byte [ebp - 1], 1
cmp byte [ebp - 1], 0
jne 0x4978a5
mov eax, 0x497dc4
call fcn.00457d10
mov dl, 1
mov al, 3
call fcn.00496a3c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4978cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49797b
xor eax, eax
push ebp
push 0x4978fb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x49c520
call fcn.0042e384
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x49790a
cmp dword [0x49c484], 0
je 0x497963
xor eax, eax
push ebp
push 0x49794a
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, 0x497df4
mov eax, dword [0x49c484]
call fcn.00494e40
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x497963
mov eax, dword [0x49b628]
mov eax, dword [eax + 0x20]
call fcn.0042eb54
ret