Function at 0x10077210
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x100b7040]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
mov eax, dword [esi]
mov dword [0x100badb4], eax
cmp dword [esi + 4], 0
je 0x10077ca6
cmp dword [esi + 8], 0
je 0x10077ca6
cmp dword [esi + 0x10], 0
je 0x10077ca6
cmp dword [esi + 0x14], 0
je 0x10077ca6
cmp dword [esi + 0xc], 0
je 0x10077ca6
mov eax, dword [0x100ba9d8]
test eax, eax
je 0x1007774c
cmp dword [eax + 0x7c], 0
je 0x1007774c
mov ecx, dword [0x100ba9dc]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x1007774c
cmp byte [0x100ba9eb], 0
je 0x100772d6
mov ecx, 0xd78c9c
call fcn.100184a0
mov ebx, eax
test ebx, ebx
je 0x100772cd
push 4
push ebx
call edi
test eax, eax
jne 0x100772cd
push 4
add ebx, 0xb7c
push ebx
call edi
test eax, eax
jne 0x100772cd
mov ecx, dword [esp + 0x1c]
mov al, byte [ebx]
mov byte [ecx + 0x3a], al
jmp 0x100772d1
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x100ba9d8]
mov eax, dword [eax + 0x7c]
mov al, byte [eax + 0x2c]
cmp al, byte [ecx + 0x3a]
jne 0x1007774c
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x1007733b
push 4
push ebx
call edi
test eax, eax
jne 0x1007733b
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x1007733b
cmp byte [ebx], al
je 0x1007733b
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10077418
push 4
push ebx
call edi
test eax, eax
jne 0x10077418
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077418
cmp byte [ebx], al
je 0x10077418
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10077514
push 4
push ebx
call edi
test eax, eax
jne 0x10077514
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077514
cmp byte [ebx], al
je 0x10077514
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10077514
push 4
push ebx
call edi
test eax, eax
jne 0x10077514
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077514
cmp byte [ebx], al
je 0x10077514
mov eax, dword [esi + 0x14]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
test eax, eax
je 0x100773d6
push 4
push eax
call edi
test eax, eax
jne 0x100773d2
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
test eax, eax
je 0x10077409
push 4
push eax
call edi
test eax, eax
jne 0x10077409
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov eax, dword [esp + 0x10]
add eax, 0x2a
cmp ebx, eax
jne 0x10077514
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10077445
push 4
push ebx
call edi
test eax, eax
jne 0x10077445
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10077472
push 4
push ebx
call edi
test eax, eax
jne 0x10077472
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10077496
push 4
push ebx
call edi
test eax, eax
jne 0x10077496
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x2a
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x100774c3
push 4
push ebx
call edi
test eax, eax
jne 0x100774c3
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x100774f0
push 4
push ebx
call edi
test eax, eax
jne 0x100774f0
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10077514
push 4
push ebx
call edi
test eax, eax
jne 0x10077514
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x54
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1007766a
push 4
push ebx
call edi
test eax, eax
jne 0x1007766a
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x1007766a
cmp byte [ebx], al
je 0x1007766a
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x1007756e
push 4
push ebx
call edi
test eax, eax
jne 0x1007756e
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x1007756e
cmp byte [ebx], al
jne 0x1007766a
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x1007759b
push 4
push ebx
call edi
test eax, eax
jne 0x1007759b
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x100775c8
push 4
push ebx
call edi
test eax, eax
jne 0x100775c8
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x100775ec
push 4
push ebx
call edi
test eax, eax
jne 0x100775ec
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x2a
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10077619
push 4
push ebx
call edi
test eax, eax
jne 0x10077619
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10077646
push 4
push ebx
call edi
test eax, eax
jne 0x10077646
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10077ca6
push 4
push ebx
call edi
test eax, eax
jne 0x10077ca6
mov eax, dword [esp + 0x1c]
add eax, 0x54
jmp 0x10077c99
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10077ca6
push 4
push ebx
call edi
test eax, eax
jne 0x10077ca6
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077ca6
cmp byte [ebx], al
je 0x10077ca6
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10077ca6
push 4
push ebx
call edi
test eax, eax
jne 0x10077ca6
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077ca6
cmp byte [ebx], al
je 0x10077ca6
mov eax, dword [esi + 0x10]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
test eax, eax
je 0x10077705
push 4
push eax
call edi
test eax, eax
jne 0x10077701
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
test eax, eax
je 0x10077738
push 4
push eax
call edi
test eax, eax
jne 0x10077738
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov eax, dword [esp + 0x10]
add eax, 0x2a
cmp ebx, eax
jne 0x10077ca6
jmp 0x1007756e
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x100777a2
push 4
push ebx
call edi
test eax, eax
jne 0x100777a2
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x100777a2
cmp byte [ebx], al
je 0x100777a2
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1007787f
push 4
push ebx
call edi
test eax, eax
jne 0x1007787f
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x1007787f
cmp byte [ebx], al
je 0x1007787f
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x100779f9
push 4
push ebx
call edi
test eax, eax
jne 0x100779f9
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x100779f9
cmp byte [ebx], al
je 0x100779f9
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x100779f9
push 4
push ebx
call edi
test eax, eax
jne 0x100779f9
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x100779f9
cmp byte [ebx], al
je 0x100779f9
mov eax, dword [esi + 0xc]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
test eax, eax
je 0x1007783d
push 4
push eax
call edi
test eax, eax
jne 0x10077839
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
test eax, eax
je 0x10077870
push 4
push eax
call edi
test eax, eax
jne 0x10077870
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov eax, dword [esp + 0x10]
add eax, 0x2a
cmp ebx, eax
jne 0x100779f9
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x100778ac
push 4
push ebx
call edi
test eax, eax
jne 0x100778ac
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x100778d9
push 4
push ebx
call edi
test eax, eax
jne 0x100778d9
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x100778fd
push 4
push ebx
call edi
test eax, eax
jne 0x100778fd
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x2a
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x1007792a
push 4
push ebx
call edi
test eax, eax
jne 0x1007792a
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10077957
push 4
push ebx
call edi
test eax, eax
jne 0x10077957
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1007797b
push 4
push ebx
call edi
test eax, eax
jne 0x1007797b
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x54
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x100779a8
push 4
push ebx
call edi
test eax, eax
jne 0x100779a8
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x100779d5
push 4
push ebx
call edi
test eax, eax
jne 0x100779d5
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x100779f9
push 4
push ebx
call edi
test eax, eax
jne 0x100779f9
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x7e
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10077a4f
push 4
push ebx
call edi
test eax, eax
jne 0x10077a4f
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077a4f
cmp byte [ebx], al
je 0x10077a4f
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10077b2c
push 4
push ebx
call edi
test eax, eax
jne 0x10077b2c
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077b2c
cmp byte [ebx], al
je 0x10077b2c
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10077ca6
push 4
push ebx
call edi
test eax, eax
jne 0x10077ca6
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077ca6
cmp byte [ebx], al
je 0x10077ca6
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10077ca6
push 4
push ebx
call edi
test eax, eax
jne 0x10077ca6
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10077ca6
cmp byte [ebx], al
je 0x10077ca6
mov eax, dword [esi + 0x10]
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], ebx
test eax, eax
je 0x10077aea
push 4
push eax
call edi
test eax, eax
jne 0x10077ae6
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov ebx, dword [esp + 0x10]
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
test eax, eax
je 0x10077b1d
push 4
push eax
call edi
test eax, eax
jne 0x10077b1d
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae540]
mov eax, dword [esp + 0x10]
add eax, 0x2a
cmp ebx, eax
jne 0x10077ca6
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10077b59
push 4
push ebx
call edi
test eax, eax
jne 0x10077b59
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10077b86
push 4
push ebx
call edi
test eax, eax
jne 0x10077b86
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10077baa
push 4
push ebx
call edi
test eax, eax
jne 0x10077baa
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x2a
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10077bd7
push 4
push ebx
call edi
test eax, eax
jne 0x10077bd7
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10077c04
push 4
push ebx
call edi
test eax, eax
jne 0x10077c04
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10077c28
push 4
push ebx
call edi
test eax, eax
jne 0x10077c28
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x54
push eax
call dword [0x100ae544]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10077c55
push 4
push ebx
call edi
test eax, eax
jne 0x10077c55
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10077c82
push 4
push ebx
call edi
test eax, eax
jne 0x10077c82
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae540]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10077ca6
push 4
push ebx
call edi
test eax, eax
jne 0x10077ca6
mov eax, dword [esp + 0x1c]
add eax, 0x7e
push dword [esp + 0x14]
mov ecx, ebx
push eax
call dword [0x100ae544]
cmp byte [esi + 0x19], 0
jne 0x10077dfd
cmp byte [esi + 0x18], 0
je 0x10077dfd
cmp dword [esi + 8], 0
je 0x10077dfd
cmp byte [0x100bae45], 0
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jne 0x10077d08
push 0x100bae60
call ebx
cmp eax, 1
jne 0x10077cf8
push 0x100bae68
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov al, 1
mov byte [0x100bae44], al
mov byte [0x100bae45], al
jmp 0x10077d0d
xor al, al
mov byte [0x100bae45], 1
mov byte [0x100bae44], al
jmp 0x10077d0d
mov al, byte [0x100bae44]
test al, al
je 0x10077d50
push 0x100bae60
call ebx
mov edx, dword [0x100bae64]
mov ecx, dword [0x100bae60]
call fcn.1009bc60
mov edx, dword [0x100bae6c]
mov ecx, dword [0x100bae68]
movsd qword [esp + 0x10], xmm0
call fcn.1009bc60
movsd xmm1, qword [esp + 0x10]
divsd xmm1, xmm0
cvtpd2ps xmm2, xmm1
jmp 0x10077d6e
call dword [sym.imp.WINMM.dll_timeGetTime]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100af540]
cvtpd2ps xmm2, xmm0
movss xmm0, dword [0x100ae904]
movaps xmm1, xmm2
subss xmm1, dword [esi + 0x1c]
comiss xmm0, xmm1
jae 0x10077dfd
mov ebx, dword [esi + 8]
movss dword [esi + 0x1c], xmm2
test ebx, ebx
je 0x10077dc1
push 4
push ebx
call edi
test eax, eax
jne 0x10077dc1
lea ecx, [ebx + 0xd0]
call fcn.10018430
mov ebx, dword [esi + 8]
cmp al, 2
jne 0x10077dc4
test ebx, ebx
je 0x10077dfd
push 4
push ebx
call edi
test eax, eax
jne 0x10077dfd
lea ecx, [ebx + 0xd0]
mov dl, 6
jmp 0x10077df8
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x10077dfd
push 4
push ebx
call edi
test eax, eax
jne 0x10077dfd
lea ecx, [ebx + 0xd0]
call fcn.10018430
cmp al, 6
jne 0x10077dfd
mov esi, dword [esi + 8]
test esi, esi
je 0x10077dfd
push 4
push esi
call edi
test eax, eax
jne 0x10077dfd
lea ecx, [esi + 0xd0]
mov dl, 2
call fcn.100183d0
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1007f9e5
mov esp, ebp
pop ebp
ret