Function at 0x49702c
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 0x497900
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x49c54c], 0
je 0x497070
xor eax, eax
call fcn.0047e758
mov byte [ebp - 1], 0
mov eax, dword [0x49c44c]
shr eax, 0x10
cmp eax, 0x600
setge byte [0x49c443]
xor edx, edx
push ebp
push 0x49785d
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x49c55c], 0
je 0x4970ab
mov dl, 1
mov eax, dword [0x49c55c]
call fcn.00457154
cmp byte [0x49c54a], 0
je 0x497118
xor eax, eax
push ebp
push 0x4970eb
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x49c550], 0
jne 0x4970d7
mov eax, 0x497918
call fcn.00457afc
jmp 0x4970e1
mov eax, dword [0x49c550]
call fcn.00457cb4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x497118
mov eax, 0x497954
call fcn.00457d10
mov edx, 0x497988
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, 0x4979ac
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, 0x4979c4
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.0047e7f4
xor eax, eax
call fcn.00496a04
mov dword [0x49c540], eax
mov dl, 1
mov eax, 0x495fa0
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 0x497224
cmp byte [0x49c43a], 0
jne 0x497224
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.0047eee4
call fcn.00408be0
mov eax, dword [0x49a0ec]
test byte [eax + 0x1d], 1
je 0x497261
call fcn.0042e2b8
test al, al
jne 0x497261
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.0047eee4
call fcn.00408be0
mov eax, 0x49c540
call fcn.0042e384
mov al, 2
call fcn.00496a04
mov dword [0x49c540], eax
lea eax, [ebp - 0x2c]
push eax
push 6
mov ecx, 0x5050300
mov dx, 0x20
mov eax, dword [0x49a0ec]
call fcn.0045a628
test al, al
jne 0x49729e
mov eax, 0x4979e8
call fcn.00453344
cmp dword [0x49c55c], 0
je 0x4972b7
lea eax, [ebp - 8]
mov edx, dword [0x49c010]
call fcn.00403494
jmp 0x4972c2
lea edx, [ebp - 8]
mov eax, dword [ebp - 0x2c]
call fcn.00496fdc
mov eax, dword [ebp - 0x28]
call fcn.00403574
cmp eax, 0x20
je 0x4972d9
mov eax, 0x497a38
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 0x49731c
cmp byte [0x49c43a], 0
jne 0x497313
mov eax, 0x497a60
call fcn.00453344
mov al, 1
call fcn.0047f33c
jmp 0x497323
xor eax, eax
call fcn.0047f33c
call fcn.0047cb94
cmp dword [ebp - 8], 0
je 0x497409
call fcn.0047c66c
call fcn.0047ce78
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.00496f2c
mov dl, 1
mov eax, 0x4945b8
call fcn.00494b50
mov dword [0x49c484], eax
mov eax, dword [0x49c484]
mov dword [eax + 0xc], 0x47e264
mov eax, dword [0x49c484]
mov dword [eax + 0x10], 0x47e448
mov eax, dword [0x49c484]
mov dword [eax + 0x14], 0x47e454
mov eax, dword [0x49c484]
mov dword [eax + 0x18], 0x47e460
mov ecx, dword [0x49c014]
mov edx, dword [ebp - 8]
mov eax, dword [0x49c484]
call fcn.00494c08
xor edx, edx
push ebp
push 0x49781d
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x497764
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x49c484], 0
je 0x497495
xor edx, edx
push ebp
push 0x497469
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, 0x497aac
mov eax, dword [0x49c484]
call fcn.00494da0
pop dword fs:[0]
add esp, 8
jmp 0x497482
test al, al
jne 0x497495
mov eax, 0x497b04
call fcn.00457d10
call fcn.00408be0
cmp byte [0x49c54b], 0
jne 0x4974cf
cmp byte [0x49c54c], 0
jne 0x4974cf
push 0x124
push 1
push 6
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49c544]
mov al, 0x27
call fcn.00496284
cmp eax, 6
je 0x4974cf
call fcn.00408be0
xor edx, edx
xor eax, eax
call fcn.004968e8
jmp 0x4974fd
push 0x31
push 1
push 2
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49c544]
mov al, 0xbd
call fcn.00496284
dec eax
je 0x4974fd
call fcn.00408be0
mov eax, dword [0x49a0ec]
call fcn.0045a664
test al, al
jne 0x4974da
jmp 0x49751e
push 0xa
call sub.kernel32.dll_Sleep
mov eax, dword [0x49b628]
call fcn.004244ac
cmp byte [0x49c444], 0
jne 0x49750d
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.0049611c
xor edx, edx
mov al, 1
call fcn.004968e8
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, 0x4964f4
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, 0x497b3c
call fcn.00457f1c
mov eax, dword [0x49a0ec]
cmp byte [eax + 0x1c], 0
jne 0x4975c1
mov eax, dword [0x49a0ec]
test byte [eax + 0x1d], 8
jne 0x4975c1
xor eax, eax
jmp 0x4975c3
mov al, 1
mov byte [ebp - 0xa], al
cmp dword [0x49c484], 0
je 0x49765c
mov edx, 0x497b54
mov eax, dword [0x49c484]
call fcn.00494c90
test al, al
je 0x49765c
cmp byte [ebp - 0xa], 0
jne 0x497652
xor eax, eax
push ebp
push 0x497637
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, 0x497b54
mov eax, dword [0x49c484]
call fcn.00494da0
test al, al
je 0x49762d
mov byte [ebp - 0xa], 1
mov eax, 0x497b74
call fcn.00457d10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x49765c
mov eax, 0x497bec
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, 0x497c4c
call fcn.00457f1c
cmp byte [0x49c54c], 0
jne 0x4976b4
mov eax, dword [0x49b628]
call fcn.004244ac
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebp - 0x10]
cmp eax, 0x3e8
jae 0x4976b4
push 0xff
push 0xa
push 0
push 0
push 0
call sub.user32.dll_MsgWaitForMultipleObjects
jmp 0x497687
mov eax, 0x49c520
call fcn.0042e384
mov dl, 1
mov al, 2
call fcn.004968e8
cmp byte [ebp - 0xa], 0
jne 0x497708
cmp byte [0x49c54b], 0
jne 0x497751
cmp byte [0x49c54c], 0
jne 0x497751
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.00496284
jmp 0x497751
cmp byte [0x49c54d], 0
jne 0x497741
cmp byte [0x49c54c], 0
jne 0x49773d
push 0x10044
push 1
push 6
mov eax, dword [0x49a0ec]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x49c544]
mov al, 0xbb
call fcn.00496284
cmp eax, 6
jne 0x497741
mov byte [ebp - 1], 1
cmp byte [ebp - 1], 0
jne 0x497751
mov eax, 0x497c70
call fcn.00457d10
mov dl, 1
mov al, 3
call fcn.004968e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x497778
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x497827
xor eax, eax
push ebp
push 0x4977a7
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 0x4977b6
cmp dword [0x49c484], 0
je 0x49780f
xor eax, eax
push ebp
push 0x4977f6
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, 0x497ca0
mov eax, dword [0x49c484]
call fcn.00494cec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x49780f
mov eax, dword [0x49b628]
mov eax, dword [eax + 0x20]
call fcn.0042eb54
ret