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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x10
push 0
push 0
dec ecx
jne 0x7d8850
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov esi, dword [0x8a9588]
xor eax, eax
push ebp
push 0x7d9174
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x7d9103
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x546], 0
je 0x7d8899
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d910d
call fcn.0040d838
fstp qword [ebp - 0x10]
wait
lea eax, [ebp - 0x24]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4e4]
call fcn.004052c8
xor edx, edx
push ebp
push 0x7d90f2
push dword fs:[edx]
mov dword fs:[edx], esp
mov byte [ebp - 0x3e], 1
mov eax, dword [esi]
cmp byte [eax + 0x14b4], 0
je 0x7d8d0f
mov eax, dword [esi]
cmp byte [eax + 0x14b5], 0
jne 0x7d8d0f
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.004edde4
movzx eax, ax
mov ecx, 7
xor edx, edx
div ecx
mov edi, edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x354]
call fcn.004a08a8
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
call fcn.007cdbf4
fstp qword [ebp - 0x18]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x358]
call fcn.004a08a8
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
call fcn.007cdbf4
fstp qword [ebp - 0x20]
wait
xor ebx, ebx
mov byte [ebp - 0x3d], 0
fld qword [ebp - 0x20]
fcomp qword [ebp - 0x18]
fnstsw ax
sahf
jbe 0x7d89f9
mov eax, dword [esi]
cmp byte [eax + edi + 0x14b6], 0
jne 0x7d8966
mov bl, 1
jmp 0x7d8aa9
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.007cdd0c
fstp qword [ebp - 0x18]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.007cdd0c
fstp qword [ebp - 0x20]
wait
fld qword [ebp - 0x10]
fcomp qword [ebp - 0x18]
fnstsw ax
sahf
jb 0x7d89ac
fld qword [ebp - 0x10]
fcomp qword [ebp - 0x20]
fnstsw ax
sahf
jbe 0x7d89ae
mov bl, 1
test bl, bl
je 0x7d8aa9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x530], 0
je 0x7d8aa9
fld qword [ebp - 0x10]
fcomp qword [ebp - 0x20]
fnstsw ax
sahf
jbe 0x7d8aa9
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0
push 2
call fcn.004eded0
fcomp qword [ebp - 0x10]
fnstsw ax
sahf
jb 0x7d8aa9
mov byte [ebp - 0x3d], 1
jmp 0x7d8aa9
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push dword [ebp - 0x18]
mov eax, dword [ebp - 4]
call fcn.007cdd0c
fstp qword [ebp - 0x18]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
mov eax, dword [ebp - 4]
call fcn.007cdd0c
fstp qword [ebp - 0x20]
wait
test edi, edi
jne 0x7d8a36
mov dword [ebp - 0x3c], 6
jmp 0x7d8a3c
mov eax, edi
dec eax
mov dword [ebp - 0x3c], eax
fld qword [ebp - 0x10]
fcomp qword [ebp - 0x18]
fnstsw ax
sahf
jb 0x7d8a53
mov eax, dword [esi]
cmp byte [eax + edi + 0x14b6], 0
jne 0x7d8a6f
fld qword [ebp - 0x10]
fcomp qword [ebp - 0x20]
fnstsw ax
sahf
ja 0x7d8a6d
mov eax, dword [esi]
mov edx, dword [ebp - 0x3c]
cmp byte [eax + edx + 0x14b6], 0
jne 0x7d8a6f
mov bl, 1
test bl, bl
je 0x7d8aa9
mov eax, dword [ebp - 4]
cmp byte [eax + 0x530], 0
je 0x7d8aa9
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
push 0
push 2
call fcn.004eded0
fcomp qword [ebp - 0x10]
fnstsw ax
sahf
jb 0x7d8aa9
mov eax, dword [esi]
mov edx, dword [ebp - 0x3c]
cmp byte [eax + edx + 0x14b6], 0
je 0x7d8aa9
mov byte [ebp - 0x3d], 1
test bl, bl
je 0x7d8bde
mov eax, dword [ebp - 4]
cmp byte [eax + 0x530], 0
je 0x7d8b1e
mov eax, dword [ebp - 4]
mov byte [eax + 0x530], 0
xor eax, eax
push ebp
push 0x7d8b14
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp - 0x3d], 0
je 0x7d8b0a
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.007d7cb0
mov eax, dword [ebp - 4]
call fcn.007d6108
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
call fcn.004045a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d910d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d8b1e
push dword [ebp - 0x14]
push dword [ebp - 0x18]
lea edx, [ebp - 0x44]
mov eax, 0x7d918c
call fcn.0040e5a0
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x28]
call fcn.0040544c
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
lea edx, [ebp - 0x48]
mov eax, 0x7d918c
call fcn.0040e5a0
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x2c]
call fcn.0040544c
push 0x7d919c
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 4]
call fcn.007d8654
push dword [ebp - 0x4c]
push 0x7d91a8
lea eax, [ebp - 0x30]
mov edx, 3
call fcn.004055a8
push 0x7d91b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
push dword [eax + 0x64]
push 0x7d91b4
push dword [ebp - 0x30]
push dword [ebp - 0x28]
push 0x7d91bc
push dword [ebp - 0x2c]
push 0x7d91a8
lea eax, [ebp - 0x50]
mov edx, 8
call fcn.004055a8
mov edx, dword [ebp - 0x50]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.007d7cb0
mov eax, dword [ebp - 4]
mov dword [eax + 0x528], 0
mov dword [eax + 0x52c], 0
jmp 0x7d90ae
mov eax, dword [ebp - 4]
cmp dword [eax + 0x52c], 0
jne 0x7d8c24
cmp dword [eax + 0x528], 0
jne 0x7d8c24
mov eax, dword [ebp - 4]
mov byte [eax + 0x530], 0
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.007d7cb0
mov eax, dword [ebp - 4]
call fcn.007d6108
call fcn.004045a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d910d
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x528]
sbb edx, dword [ecx + 0x52c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
fild qword [ebp - 0x58]
fdiv dword [0x7d91c8]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00432518
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x34], 0
jne 0x7d8c6a
cmp dword [ebp - 0x38], 0
jb 0x7d8c83
jmp 0x7d8c6c
jl 0x7d8c83
mov eax, dword [esi]
mov eax, dword [eax + 0x14b0]
cdq
cmp edx, dword [ebp - 0x34]
jne 0x7d8c81
cmp eax, dword [ebp - 0x38]
ja 0x7d8cb4
jmp 0x7d8c83
jg 0x7d8cb4
mov eax, dword [ebp - 4]
mov byte [eax + 0x530], 0
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.007d7cb0
mov eax, dword [ebp - 4]
call fcn.007d6108
call fcn.004045a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d910d
mov eax, dword [ebp - 4]
mov byte [eax + 0x530], 1
push 0
push 0
lea eax, [ebp - 0x5c]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x14b0]
cdq
sub eax, dword [ebp - 0x38]
sbb edx, dword [ebp - 0x34]
push edx
push eax
lea eax, [ebp - 0x64]
call fcn.0040b1e8
mov edx, dword [ebp - 0x64]
lea eax, [ebp - 0x60]
call fcn.0040544c
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
xor ecx, ecx
call fcn.006569a0
mov edx, dword [ebp - 0x5c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.007d7cb0
jmp 0x7d90ae
mov eax, dword [esi]
cmp byte [eax + 0x14b4], 0
je 0x7d8e03
mov eax, dword [esi]
cmp byte [eax + 0x14b5], 0
je 0x7d8e03
fld qword [ebp - 0x10]
mov eax, dword [esi]
fcomp qword [eax + 0x14a0]
fnstsw ax
sahf
jbe 0x7d8e03
fld qword [ebp - 0x10]
mov eax, dword [esi]
fcomp qword [eax + 0x14a0]
fnstsw ax
sahf
jbe 0x7d8da8
mov eax, dword [esi]
push dword [eax + 0x14a4]
push dword [eax + 0x14a0]
push 0
push 2
call fcn.004eded0
fcomp qword [ebp - 0x10]
fnstsw ax
sahf
jb 0x7d8da8
push 0x7d91b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
push dword [eax + 0x78]
push 0x7d91d0
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.004055a8
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.007d7cb0
mov eax, dword [ebp - 4]
call fcn.007d6108
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x47c]
mov edx, dword [eax]
call dword [edx + 0xc4]
mov edx, eax
xor dl, 1
mov eax, dword [ebp - 4]
call fcn.007d76f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x47c]
mov edx, dword [eax]
call dword [edx + 0xc4]
test al, al
je 0x7d8df1
mov eax, dword [ebp - 4]
mov byte [eax + 0x547], 1
mov byte [ebp - 0x3e], 0
mov eax, dword [ebp - 4]
call fcn.0046ddb0
call fcn.004045a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d910d
mov eax, dword [esi]
cmp byte [eax + 0x14b4], 0
je 0x7d8f9a
mov eax, dword [esi]
cmp byte [eax + 0x14b5], 0
je 0x7d8f9a
fld qword [ebp - 0x10]
mov eax, dword [esi]
fcomp qword [eax + 0x1498]
fnstsw ax
sahf
jae 0x7d8f9a
mov eax, dword [esi]
push dword [eax + 0x149c]
push dword [eax + 0x1498]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.007d2a44
test al, al
je 0x7d8e9f
mov eax, dword [esi]
push dword [eax + 0x149c]
push dword [eax + 0x1498]
mov eax, dword [esi]
push dword [eax + 0x14a4]
push dword [eax + 0x14a0]
call fcn.007d2a44
test al, al
je 0x7d8e9f
mov eax, dword [esi]
push dword [eax + 0x149c]
push dword [eax + 0x1498]
lea edx, [ebp - 0x68]
mov eax, 0x7d918c
call fcn.0040e5a0
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x28]
call fcn.0040544c
jmp 0x7d8ec5
mov eax, dword [esi]
push dword [eax + 0x149c]
push dword [eax + 0x1498]
lea edx, [ebp - 0x6c]
mov eax, 0x7d91e4
call fcn.0040e5a0
mov edx, dword [ebp - 0x6c]
lea eax, [ebp - 0x28]
call fcn.0040544c
mov eax, dword [esi]
push dword [eax + 0x149c]
push dword [eax + 0x1498]
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.007d2a44
test al, al
je 0x7d8f2f
mov eax, dword [esi]
push dword [eax + 0x149c]
push dword [eax + 0x1498]
mov eax, dword [esi]
push dword [eax + 0x14a4]
push dword [eax + 0x14a0]
call fcn.007d2a44
test al, al
je 0x7d8f2f
mov eax, dword [esi]
push dword [eax + 0x14a4]
push dword [eax + 0x14a0]
lea edx, [ebp - 0x70]
mov eax, 0x7d918c
call fcn.0040e5a0
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 0x2c]
call fcn.0040544c
jmp 0x7d8f55
mov eax, dword [esi]
push dword [eax + 0x14a4]
push dword [eax + 0x14a0]
mov eax, 0x7d91e4
lea edx, [ebp - 0x74]
call fcn.0040e5a0
mov edx, dword [ebp - 0x74]
lea eax, [ebp - 0x2c]
call fcn.0040544c
push 0x7d91b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x488]
push dword [eax + 0x64]
push 0x7d91b4
push dword [ebp - 0x28]
push 0x7d91bc
push dword [ebp - 0x2c]
push 0x7d91fc
lea eax, [ebp - 0x78]
mov edx, 7
call fcn.004055a8
mov edx, dword [ebp - 0x78]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.007d7cb0
jmp 0x7d90ae
mov eax, dword [ebp - 4]
cmp dword [eax + 0x52c], 0
jne 0x7d8fd6
cmp dword [eax + 0x528], 0
jne 0x7d8fd6
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.007d7cb0
mov eax, dword [ebp - 4]
call fcn.007d6108
call fcn.004045a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d910d
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x528]
sbb edx, dword [ecx + 0x52c]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
fild qword [ebp - 0x58]
fdiv dword [0x7d91c8]
add esp, 0xfffffff4
fstp xword [esp]
wait
call fcn.00432518
cdq
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x34], 0
jne 0x7d901c
cmp dword [ebp - 0x38], 0
jb 0x7d9035
jmp 0x7d901e
jl 0x7d9035
mov eax, dword [esi]
mov eax, dword [eax + 0x14b0]
cdq
cmp edx, dword [ebp - 0x34]
jne 0x7d9033
cmp eax, dword [ebp - 0x38]
ja 0x7d905c
jmp 0x7d9035
jg 0x7d905c
xor ecx, ecx
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.007d7cb0
mov eax, dword [ebp - 4]
call fcn.007d6108
call fcn.004045a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7d910d
push 0
push 0
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x14b0]
cdq
sub eax, dword [ebp - 0x38]
sbb edx, dword [ebp - 0x34]
push edx
push eax
lea eax, [ebp - 0x84]
call fcn.0040b1e8
mov edx, dword [ebp - 0x84]
lea eax, [ebp - 0x80]
call fcn.0040544c
mov edx, dword [ebp - 0x80]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
xor ecx, ecx
call fcn.006569a0
mov edx, dword [ebp - 0x7c]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.007d7cb0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7d90f9
cmp byte [ebp - 0x3e], 0
je 0x7d90f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
inc dword [eax + 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x41c]
cmp dword [eax + 0xc], 4
jl 0x7d90f1
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
call fcn.007d8228
mov eax, dword [ebp - 4]
call fcn.007d8188
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7d917b
lea eax, [ebp - 0x84]
call fcn.00404b34
lea eax, [ebp - 0x80]
mov edx, 3
call fcn.00405280
lea eax, [ebp - 0x74]
mov edx, 5
call fcn.00404b58
lea eax, [ebp - 0x60]
mov edx, 2
call fcn.00405280
lea eax, [ebp - 0x50]
mov edx, 2
call fcn.00405280
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.00404b58
lea eax, [ebp - 0x30]
mov edx, 4
call fcn.00405280
ret