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

Disassembly:
mov eax, 0x200a1e1f
call fcn.2007d394
sub esp, 0x3e8
mov eax, dword [0x200cc84c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov esi, ecx
xor edi, edi
mov dword [ebp - 4], edi
wait
mov eax, dword [esi + 0x20038]
cmp eax, edi
je 0x20069533
mov dword [ebp - 0x328], eax
push edi
mov ecx, eax
call fcn.20020a19
mov ecx, dword [esi + 0x20038]
mov dword [ebp - 0x39c], ecx
push edi
call fcn.20020954
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [ebp - 0x270], eax
mov edi, 0x1d4c0
mov dword [ebp - 0x278], edi
xor ecx, ecx
cmp dword [esi + 0x20058], ecx
jne 0x200689e6
mov edi, dword [esi + 0x20068]
neg edi
sbb edi, edi
and edi, 0x2710
add edi, 0x4e20
mov dword [ebp - 0x278], edi
mov eax, dword [esi + 0x20038]
cmp eax, ecx
je 0x20068a95
mov dword [ebp - 0x3a4], eax
cmp dword [eax + 0x8c], ecx
je 0x20068a44
mov dword [ebp - 0x3d8], eax
cmp byte [eax + 0xc0], 0
jne 0x20068a2a
mov edx, dword [esi + 0x20044]
cmp dword [edx + 0x10fe8], ecx
jne 0x20068a2a
mov edi, 0x7530
mov dword [ebp - 0x278], edi
mov dword [ebp - 0x3d4], eax
cmp byte [eax + 0xc0], 0x12
jne 0x20068a44
mov edi, 0x493e0
mov dword [ebp - 0x278], edi
cmp eax, ecx
je 0x20068a95
mov dword [ebp - 0x2d8], eax
cmp dword [eax + 0x78], ecx
jne 0x20068a95
call ebx
sub eax, dword [esi + 0x20048]
cmp eax, 0x1388
jbe 0x20068a95
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x350], eax
cmp byte [eax + 0xcd], 0
jne 0x20068a86
mov dword [ebp - 0x2e0], eax
cmp byte [eax + 0xf9], 0
je 0x20068a95
mov dword [esi + 0x20060], 4
jmp 0x2006954a
push 0x1f4
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x294]
call fcn.200030b0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x28c], eax
mov byte [eax], 0
cmp dword [esi + 0x20038], 0
je 0x20069506
lea eax, [ebp - 0x294]
push eax
mov ecx, esi
call fcn.20065045
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x3a8], eax
mov ebx, dword [ebp - 0x270]
cmp ebx, dword [eax + 0x210]
jbe 0x20068b2c
mov dword [ebp - 0x2e8], eax
mov ecx, ebx
sub ecx, dword [eax + 0x210]
cmp ecx, edi
jb 0x20068b2c
mov dword [esi + 0x20060], 1
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x294]
call fcn.200030f4
wait
jmp 0x2006951a
mov ecx, ebx
sub ecx, dword [esi + 0x20050]
cmp ecx, 0xbb8
jbe 0x20068c1e
mov dword [ebp - 0x358], eax
cmp dword [eax + 0x8c], 0
je 0x20068c1e
mov eax, dword [esi + 0x20044]
test eax, eax
je 0x20068c1e
push 0
lea ecx, [eax + 0x688]
call fcn.2001c76a
mov dword [ebp - 0x2f0], eax
test eax, eax
je 0x20068c1e
push eax
mov ecx, dword [esi + 0x20044]
add ecx, 0x688
call fcn.2001bb16
mov edi, eax
mov dword [ebp - 0x2cc], edi
test edi, edi
je 0x20068c1e
push edi
lea eax, [ebp - 0x294]
push eax
mov ecx, esi
call fcn.20067c5f
test eax, eax
je 0x20068c1e
mov eax, dword [esi + 0x20044]
cmp dword [eax + 0x2a0], 0
jne 0x20068c1e
mov eax, dword [eax + 0x548]
mov dword [ebp - 0x390], eax
test eax, eax
jne 0x20068c1e
and dword [ebp - 0x274], eax
cmp dword [ebp - 0x274], 2
jge 0x20068c1e
push edi
mov ecx, dword [esi + 0x20044]
add ecx, 0x688
call fcn.2001be8e
mov edi, eax
mov dword [ebp - 0x2cc], edi
test edi, edi
je 0x20068c1e
cmp dword [edi + 0x74], 0
jle 0x20068c1e
push edi
lea eax, [ebp - 0x294]
push eax
mov ecx, esi
call fcn.20064e7d
test eax, eax
je 0x20068c1e
inc dword [ebp - 0x274]
jmp 0x20068bd6
mov ecx, dword [esi + 0x20044]
xor edx, edx
cmp ecx, edx
je 0x20068eed
cmp dword [ecx + 0x2a0], edx
jne 0x20068eed
mov dword [ebp - 0x2a0], edx
mov ebx, dword [ecx + 0x548]
mov dword [ebp - 0x2bc], ebx
cmp ebx, edx
je 0x20068c7d
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x2f8], eax
cmp byte [eax + 0xbf], 3
je 0x20068c73
mov dword [ebp - 0x360], eax
cmp byte [eax + 0xc0], dl
jne 0x20068c7d
mov dword [ebp - 0x2a0], 1
mov dword [ebp - 0x2c4], ebx
cmp ebx, edx
jne 0x20068c91
mov dword [ebp - 0x2a0], 1
lea edi, [esi + 0x20038]
mov eax, dword [edi]
mov dword [ebp - 0x300], eax
cmp dword [eax + 0x108], edx
jne 0x20068d51
mov dword [ebp - 0x3d0], eax
cmp byte [eax + 0xfc], 5
jae 0x20068ec7
mov ebx, eax
mov dword [ebp - 0x308], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0x100]
cmp eax, 0x7d0
jbe 0x20068ec7
mov ecx, dword [esi + 0x20044]
cmp dword [ecx + 0x2a0], 0
jne 0x20068ec7
mov eax, dword [ecx + 0x548]
mov dword [ebp - 0x368], eax
test eax, eax
jne 0x20068ec7
push dword [ecx + 0x19244]
call fcn.2003b5e2
test eax, eax
jne 0x20068ec7
and dword [ebp - 0x2a8], eax
push 0xfa0
lea eax, [ebp - 0x2a8]
push eax
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x310], esp
push edi
call fcn.20020cb6
mov byte [ebp - 4], 2
mov byte [ebp - 4], 1
mov ecx, dword [esi + 0x20044]
call fcn.20044576
jmp 0x20068ec7
mov dword [ebp - 0x398], eax
cmp byte [eax + 0xfd], 0
jne 0x20068ec7
mov dword [ebp - 0x318], eax
cmp dword [eax + 0x108], edx
je 0x20068ec7
mov dword [ebp - 0x370], eax
mov edx, dword [ecx + 0x19244]
cmp dword [eax + 0x108], edx
je 0x20068dba
mov dword [ebp - 0x320], eax
cmp byte [eax + 0xc0], 0
je 0x20068dba
mov dword [ebp - 0x3c8], eax
cmp byte [eax + 0xbf], 3
jne 0x20068ec7
mov dword [ebp - 0x2d0], ebx
test ebx, ebx
jne 0x20068ec7
push edx
call fcn.2003b5e2
test eax, eax
jne 0x20068ec7
mov ecx, dword [esi + 0x20044]
add ecx, 0x688
call fcn.2001a47b
test eax, eax
je 0x20068ec7
mov eax, dword [edi]
mov dword [ebp - 0x378], eax
inc byte [eax + 0xfc]
mov ebx, dword [edi]
mov dword [ebp - 0x330], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + 0x100], eax
push 5
lea ecx, [ebp - 0x294]
call fcn.2000133b
push 0x1a
lea ecx, [ebp - 0x294]
call fcn.20001294
mov eax, dword [esi + 0x20044]
push dword [eax + 0x19244]
lea ecx, [ebp - 0x294]
call fcn.2000133b
and dword [ebp - 0x2b0], 0
push 0xfa0
lea eax, [ebp - 0x2b0]
push eax
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x3a0], esp
push edi
call fcn.20020cb6
mov byte [ebp - 4], 3
mov byte [ebp - 4], 1
mov ecx, dword [esi + 0x20044]
call fcn.20044576
lea eax, [ebp - 0x3f4]
push eax
lea ecx, [esi + 0x20030]
call fcn.20034401
mov dword [ebp - 0x338], eax
mov byte [ebp - 4], 4
cmp dword [eax + 0x18], 0x10
jb 0x20068e91
mov eax, dword [eax + 4]
jmp 0x20068e94
add eax, 4
push eax
mov eax, dword [esi + 0x20044]
push dword [eax + 0x19244]
push 0x200aa78c
call fcn.2002eb98
push eax
call fcn.2002ebe0
add esp, 0x10
mov byte [ebp - 4], 1
push 0
push 1
lea ecx, [ebp - 0x3f4]
call fcn.2000275e
mov eax, dword [ebp - 0x270]
sub eax, dword [esi + 0x2004c]
cmp eax, 0x2710
jb 0x20068ee7
push 0
lea ecx, [ebp - 0x294]
call fcn.2000133b
mov ebx, dword [ebp - 0x270]
mov ecx, dword [esi + 0x20044]
test ecx, ecx
je 0x20068f7d
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x380], eax
cmp byte [eax + 0xc0], 0x12
jne 0x20068f7d
mov dword [ebp - 0x340], eax
sub ebx, dword [eax + 0x210]
cmp ebx, 0xbb8
jb 0x20068f7d
lea eax, [ecx + 0x284]
mov dword [ebp - 0x3cc], eax
inc dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x20044]
lea ecx, [ebp - 0x294]
push 1
cmp dword [eax + 0x10fe8], 0
jne 0x20068f5a
call fcn.2000133b
push 0x62
jmp 0x20068f61
call fcn.2000133b
push 0x64
lea ecx, [ebp - 0x294]
call fcn.20001294
mov ecx, dword [esi + 0x20044]
add ecx, 0x284
call fcn.200011b1
mov eax, dword [esi + 0x20044]
test eax, eax
je 0x200694e9
cmp dword [eax + 0x2a0], 0
jne 0x200694e9
mov eax, dword [eax + 0x548]
mov dword [ebp - 0x348], eax
test eax, eax
jne 0x200694e9
mov edi, dword [esi + 0x20038]
mov dword [ebp - 0x388], edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
sub eax, dword [edi + 0x18]
cmp eax, 0xea60
jbe 0x20069019
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x2d4], eax
cmp byte [eax + 0xc0], 0
je 0x20069019
mov dword [ebp - 0x2dc], eax
cmp byte [eax + 0xbf], 3
je 0x20069019
push 1
lea ecx, [ebp - 0x294]
call fcn.2000133b
push 8
lea ecx, [ebp - 0x294]
call fcn.20001294
mov edi, dword [esi + 0x20038]
mov dword [ebp - 0x2e4], edi
call ebx
mov dword [edi + 0x18], eax
mov eax, dword [esi + 0x20044]
mov eax, dword [eax + 0x2a4]
xor ebx, ebx
inc ebx
test eax, eax
je 0x20069034
cmp eax, ebx
jne 0x200690d6
cmp dword [esi + 0x20068], 0
jne 0x200690d6
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x2ec], eax
fld dword [eax + 0xe4]
fcomp dword [0x200aa788]
fnstsw ax
test ah, 0x41
jne 0x200690d6
lea edi, [esi + 0x20030]
mov ecx, edi
call fcn.200342ea
test eax, eax
je 0x200690d6
mov ecx, dword [esi + 0x20044]
add ecx, 0x300
call fcn.20034302
mov ecx, edi
mov dword [ebp - 0x2c0], eax
call fcn.20034302
mov ecx, dword [ebp - 0x2c0]
cmp ecx, eax
jne 0x200690d6
mov eax, dword [esi + 0x20044]
push 2
pop ecx
mov dword [eax + 0x2a4], ecx
mov eax, dword [esi + 0x20044]
cmp dword [eax + 0x2ac], ebx
jne 0x200690bc
mov dword [eax + 0x2a4], ebx
mov eax, dword [esi + 0x20044]
cmp dword [eax + 0x2a4], ecx
jne 0x200690d6
mov eax, dword [eax + 0x2c4]
mov dword [eax + 0x2c8], ebx
cmp byte [esi + 0x200b4], 0
jne 0x2006910d
mov eax, dword [esi + 0x20044]
mov eax, dword [eax + 0x2a4]
cmp eax, 2
je 0x200690f5
cmp eax, 3
jne 0x2006910d
cmp dword [esi + 0x20068], 0
je 0x2006910d
push ebx
lea eax, [ebp - 0x294]
push eax
mov ecx, esi
call fcn.200654e0
and dword [ebp - 0x2b8], 0
mov eax, dword [esi + 0x20044]
mov ebx, 0x10e10
add eax, ebx
mov dword [ebp - 0x2f4], eax
inc dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x20044]
mov edi, dword [eax + 0x10e48]
mov dword [ebp - 0x2fc], edi
mov dword [ebp - 0x2b8], edi
lea ecx, [eax + 0x10e10]
call fcn.200011b1
mov eax, dword [esi + 0x20044]
mov ecx, dword [eax + 0x2a4]
test ecx, ecx
je 0x20069171
cmp ecx, 1
je 0x20069171
test edi, edi
jne 0x200692fa
cmp byte [eax + 0x10e58], 0
jne 0x200692fa
add eax, 0x10e10
mov dword [ebp - 0x304], eax
inc dword [eax + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x20044]
cmp dword [eax + 0x10e2c], 5
jge 0x200692ed
cmp dword [eax + 0x10e30], 0x28
jge 0x200692ed
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x30c], eax
add eax, 0xb4
mov dword [ebp - 0x314], eax
mov ecx, dword [eax]
mov dword [ebp - 0x29c], ecx
mov ax, word [eax + 4]
mov word [ebp - 0x298], ax
lea ecx, [ebp - 0x29c]
call fcn.200342ea
test eax, eax
je 0x200692ed
lea ecx, [ebp - 0x29c]
call fcn.20034302
test eax, eax
jne 0x200692ed
and dword [ebp - 0x2a4], eax
mov eax, dword [esi + 0x20044]
lea ecx, [eax + 0x10e34]
mov eax, ecx
mov dword [ebp - 0x31c], eax
mov edi, dword [eax + 4]
mov dword [ebp - 0x324], edi
mov dword [ebp - 0x32c], edi
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x334]
push eax
call fcn.2003e789
mov dword [ebp - 0x33c], eax
cmp dword [eax], edi
je 0x20069253
mov dword [ebp - 0x2a4], 1
cmp dword [esi + 0x200a8], 5
jge 0x200692ed
cmp dword [ebp - 0x2a4], 0
jne 0x200692ed
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov eax, dword [esi + 0x20044]
sub edi, dword [eax + 0x19248]
mov dword [ebp - 0x344], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x200ac]
mov dword [ebp - 0x34c], eax
cmp edi, 0x1f4
jbe 0x200692ed
cmp eax, 0x1388
jbe 0x200692ed
inc dword [esi + 0x200a8]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [esi + 0x200ac], eax
call edi
mov ecx, dword [esi + 0x20044]
mov dword [ecx + 0x19248], eax
push dword [ebp - 0x298]
push dword [ebp - 0x29c]
mov ecx, dword [esi + 0x20044]
call fcn.2003b057
mov eax, dword [esi + 0x20044]
inc dword [eax + 0x10e30]
mov ecx, dword [esi + 0x20044]
add ecx, ebx
call fcn.200011b1
mov eax, dword [esi + 0x20044]
mov ecx, dword [eax + 0x2a4]
test ecx, ecx
je 0x20069313
cmp ecx, 1
jne 0x200693be
cmp byte [eax + 0x10e58], 1
jne 0x200693be
lea eax, [esi + 0x200b0]
cmp dword [eax], 0
jne 0x200693be
mov dword [eax], 1
push 5
lea ecx, [ebp - 0x294]
call fcn.2000133b
push 0x15
lea ecx, [ebp - 0x294]
call fcn.20001294
lea eax, [ebp - 0x2b4]
push eax
lea eax, [ebp - 0x2c8]
push eax
mov ecx, dword [esi + 0x20044]
call fcn.2003e3b0
push dword [ebp - 0x2c8]
lea ecx, [ebp - 0x294]
call fcn.200012d7
mov eax, dword [esi + 0x20044]
movzx eax, byte [eax + 0x2a4]
push eax
lea ecx, [ebp - 0x294]
call fcn.20001294
mov eax, dword [esi + 0x20044]
movzx eax, byte [eax + 0x10e58]
push eax
lea ecx, [ebp - 0x294]
call fcn.20001294
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x354], eax
and dword [eax + 0x258], 0
and dword [ebp - 0x2ac], 0
cmp dword [esi + 0x20068], 0
je 0x200694e9
mov eax, dword [esi + 0x20038]
mov dword [ebp - 0x35c], eax
cmp byte [eax + 0xbf], 2
jne 0x200694e9
mov dword [ebp - 0x364], eax
cmp byte [eax + 0xc0], 0
je 0x200694e9
mov edi, eax
mov dword [ebp - 0x36c], edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
sub eax, dword [edi + 0x258]
cmp eax, 0x4e20
jbe 0x200694e9
mov dword [ebp - 0x2ac], 1
push 0x64
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x3c4]
call fcn.200030b0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x3c0]
mov dword [ebp - 0x3bc], eax
mov byte [eax], 0
lea eax, [ebp - 0x3c4]
push eax
mov ecx, dword [esi + 0x20044]
call fcn.2003b6ac
test eax, eax
je 0x200694da
mov eax, dword [esi + 0x20038]
mov edx, eax
mov dword [ebp - 0x374], edx
mov edi, eax
mov dword [ebp - 0x37c], edi
mov eax, dword [ebp - 0x3bc]
mov ecx, dword [ebp - 0x3c0]
sub eax, ecx
mov dword [ebp - 0x384], eax
mov dword [ebp - 0x38c], ecx
movzx edx, word [edx + 0xb8]
push edx
push dword [edi + 0xb4]
push eax
push ecx
mov ecx, dword [esi + 0x20044]
add ecx, 0x10b5c
call fcn.2007625c
test eax, eax
je 0x200694da
mov edi, dword [esi + 0x20038]
mov dword [ebp - 0x394], edi
call ebx
mov dword [edi + 0x258], eax
call ebx
mov ecx, dword [esi + 0x20044]
mov dword [ecx + 0x192f0], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c4]
call fcn.200030f4
mov eax, dword [ebp - 0x28c]
sub eax, dword [ebp - 0x290]
je 0x20069506
mov edx, dword [esi]
push eax
lea eax, [ebp - 0x26c]
push eax
mov ecx, esi
call dword [edx + 4]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x294]
call fcn.200030f4
wait
or dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.2007c9ae
leave
ret
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x20048]
cmp eax, 0x2710
jbe 0x20068b26
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
jmp 0x20068b26