Function at 0x100788a0
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 [0x100badbc], eax
cmp dword [esi + 4], 0
je 0x10079336
cmp dword [esi + 8], 0
je 0x10079336
cmp dword [esi + 0x10], 0
je 0x10079336
cmp dword [esi + 0x14], 0
je 0x10079336
cmp dword [esi + 0xc], 0
je 0x10079336
mov eax, dword [0x100ba9a8]
test eax, eax
je 0x10078ddc
cmp dword [eax + 0x7c], 0
je 0x10078ddc
mov ecx, dword [0x100ba9ac]
mov dword [esp + 0x1c], ecx
test ecx, ecx
je 0x10078ddc
cmp byte [0x100ba9ba], 0
je 0x10078966
mov ecx, 0xd78c9c
call fcn.10018420
mov ebx, eax
test ebx, ebx
je 0x1007895d
push 4
push ebx
call edi
test eax, eax
jne 0x1007895d
push 4
add ebx, 0xb7c
push ebx
call edi
test eax, eax
jne 0x1007895d
mov ecx, dword [esp + 0x1c]
mov al, byte [ebx]
mov byte [ecx + 0x3a], al
jmp 0x10078961
mov ecx, dword [esp + 0x1c]
mov eax, dword [0x100ba9a8]
mov eax, dword [eax + 0x7c]
mov al, byte [eax + 0x2c]
cmp al, byte [ecx + 0x3a]
jne 0x10078ddc
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x100789cb
push 4
push ebx
call edi
test eax, eax
jne 0x100789cb
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x100789cb
cmp byte [ebx], al
je 0x100789cb
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10078aa8
push 4
push ebx
call edi
test eax, eax
jne 0x10078aa8
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10078aa8
cmp byte [ebx], al
je 0x10078aa8
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10078ba4
push 4
push ebx
call edi
test eax, eax
jne 0x10078ba4
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10078ba4
cmp byte [ebx], al
je 0x10078ba4
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10078ba4
push 4
push ebx
call edi
test eax, eax
jne 0x10078ba4
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10078ba4
cmp byte [ebx], al
je 0x10078ba4
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 0x10078a66
push 4
push eax
call edi
test eax, eax
jne 0x10078a62
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
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 0x10078a99
push 4
push eax
call edi
test eax, eax
jne 0x10078a99
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
mov eax, dword [esp + 0x10]
add eax, 0x1d
cmp ebx, eax
jne 0x10078ba4
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10078ad5
push 4
push ebx
call edi
test eax, eax
jne 0x10078ad5
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10078b02
push 4
push ebx
call edi
test eax, eax
jne 0x10078b02
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10078b26
push 4
push ebx
call edi
test eax, eax
jne 0x10078b26
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x1d
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10078b53
push 4
push ebx
call edi
test eax, eax
jne 0x10078b53
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10078b80
push 4
push ebx
call edi
test eax, eax
jne 0x10078b80
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10078ba4
push 4
push ebx
call edi
test eax, eax
jne 0x10078ba4
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x3a
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10078cfa
push 4
push ebx
call edi
test eax, eax
jne 0x10078cfa
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10078cfa
cmp byte [ebx], al
je 0x10078cfa
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10078bfe
push 4
push ebx
call edi
test eax, eax
jne 0x10078bfe
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10078bfe
cmp byte [ebx], al
jne 0x10078cfa
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10078c2b
push 4
push ebx
call edi
test eax, eax
jne 0x10078c2b
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10078c58
push 4
push ebx
call edi
test eax, eax
jne 0x10078c58
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10078c7c
push 4
push ebx
call edi
test eax, eax
jne 0x10078c7c
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x1d
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10078ca9
push 4
push ebx
call edi
test eax, eax
jne 0x10078ca9
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10078cd6
push 4
push ebx
call edi
test eax, eax
jne 0x10078cd6
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10079336
push 4
push ebx
call edi
test eax, eax
jne 0x10079336
mov eax, dword [esp + 0x1c]
add eax, 0x3a
jmp 0x10079329
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10079336
push 4
push ebx
call edi
test eax, eax
jne 0x10079336
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10079336
cmp byte [ebx], al
je 0x10079336
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10079336
push 4
push ebx
call edi
test eax, eax
jne 0x10079336
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10079336
cmp byte [ebx], al
je 0x10079336
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 0x10078d95
push 4
push eax
call edi
test eax, eax
jne 0x10078d91
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
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 0x10078dc8
push 4
push eax
call edi
test eax, eax
jne 0x10078dc8
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
mov eax, dword [esp + 0x10]
add eax, 0x1d
cmp ebx, eax
jne 0x10079336
jmp 0x10078bfe
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10078e32
push 4
push ebx
call edi
test eax, eax
jne 0x10078e32
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10078e32
cmp byte [ebx], al
je 0x10078e32
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10078f0f
push 4
push ebx
call edi
test eax, eax
jne 0x10078f0f
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10078f0f
cmp byte [ebx], al
je 0x10078f0f
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10079089
push 4
push ebx
call edi
test eax, eax
jne 0x10079089
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10079089
cmp byte [ebx], al
je 0x10079089
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10079089
push 4
push ebx
call edi
test eax, eax
jne 0x10079089
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10079089
cmp byte [ebx], al
je 0x10079089
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 0x10078ecd
push 4
push eax
call edi
test eax, eax
jne 0x10078ec9
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
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 0x10078f00
push 4
push eax
call edi
test eax, eax
jne 0x10078f00
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
mov eax, dword [esp + 0x10]
add eax, 0x1d
cmp ebx, eax
jne 0x10079089
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10078f3c
push 4
push ebx
call edi
test eax, eax
jne 0x10078f3c
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10078f69
push 4
push ebx
call edi
test eax, eax
jne 0x10078f69
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10078f8d
push 4
push ebx
call edi
test eax, eax
jne 0x10078f8d
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x1d
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10078fba
push 4
push ebx
call edi
test eax, eax
jne 0x10078fba
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10078fe7
push 4
push ebx
call edi
test eax, eax
jne 0x10078fe7
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1007900b
push 4
push ebx
call edi
test eax, eax
jne 0x1007900b
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x3a
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10079038
push 4
push ebx
call edi
test eax, eax
jne 0x10079038
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10079065
push 4
push ebx
call edi
test eax, eax
jne 0x10079065
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10079089
push 4
push ebx
call edi
test eax, eax
jne 0x10079089
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x57
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x100790df
push 4
push ebx
call edi
test eax, eax
jne 0x100790df
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x100790df
cmp byte [ebx], al
je 0x100790df
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x100791bc
push 4
push ebx
call edi
test eax, eax
jne 0x100791bc
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x100791bc
cmp byte [ebx], al
je 0x100791bc
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x10079336
push 4
push ebx
call edi
test eax, eax
jne 0x10079336
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10079336
cmp byte [ebx], al
je 0x10079336
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x10079336
push 4
push ebx
call edi
test eax, eax
jne 0x10079336
push 4
add ebx, 0xfc
push ebx
call edi
test eax, eax
jne 0x10079336
cmp byte [ebx], al
je 0x10079336
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 0x1007917a
push 4
push eax
call edi
test eax, eax
jne 0x10079176
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
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 0x100791ad
push 4
push eax
call edi
test eax, eax
jne 0x100791ad
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x10]
push eax
call dword [0x100ae508]
mov eax, dword [esp + 0x10]
add eax, 0x1d
cmp ebx, eax
jne 0x10079336
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x100791e9
push 4
push ebx
call edi
test eax, eax
jne 0x100791e9
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10079216
push 4
push ebx
call edi
test eax, eax
jne 0x10079216
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x10]
test ebx, ebx
je 0x1007923a
push 4
push ebx
call edi
test eax, eax
jne 0x1007923a
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x1d
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x10079267
push 4
push ebx
call edi
test eax, eax
jne 0x10079267
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10079294
push 4
push ebx
call edi
test eax, eax
jne 0x10079294
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x100792b8
push 4
push ebx
call edi
test eax, eax
jne 0x100792b8
mov eax, dword [esp + 0x1c]
mov ecx, ebx
push dword [esp + 0x14]
add eax, 0x3a
push eax
call dword [0x100ae50c]
mov ebx, dword [esi + 8]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
test ebx, ebx
je 0x100792e5
push 4
push ebx
call edi
test eax, eax
jne 0x100792e5
lea eax, [esp + 0x10]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
test ebx, ebx
je 0x10079312
push 4
push ebx
call edi
test eax, eax
jne 0x10079312
lea eax, [esp + 0x1c]
mov ecx, ebx
push eax
call dword [0x100ae508]
mov ebx, dword [esi + 0x14]
test ebx, ebx
je 0x10079336
push 4
push ebx
call edi
test eax, eax
jne 0x10079336
mov eax, dword [esp + 0x1c]
add eax, 0x57
push dword [esp + 0x14]
mov ecx, ebx
push eax
call dword [0x100ae50c]
cmp byte [esi + 0x19], 0
jne 0x1007948d
cmp byte [esi + 0x18], 0
je 0x1007948d
cmp dword [esi + 8], 0
je 0x1007948d
cmp byte [0x100bae65], 0
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jne 0x10079398
push 0x100bae80
call ebx
cmp eax, 1
jne 0x10079388
push 0x100bae88
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov al, 1
mov byte [0x100bae64], al
mov byte [0x100bae65], al
jmp 0x1007939d
xor al, al
mov byte [0x100bae65], 1
mov byte [0x100bae64], al
jmp 0x1007939d
mov al, byte [0x100bae64]
test al, al
je 0x100793e0
push 0x100bae80
call ebx
mov edx, dword [0x100bae84]
mov ecx, dword [0x100bae80]
call fcn.1009aeb0
mov edx, dword [0x100bae8c]
mov ecx, dword [0x100bae88]
movsd qword [esp + 0x10], xmm0
call fcn.1009aeb0
movsd xmm1, qword [esp + 0x10]
divsd xmm1, xmm0
cvtpd2ps xmm2, xmm1
jmp 0x100793fe
call dword [sym.imp.WINMM.dll_timeGetTime]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100af2e0]
cvtpd2ps xmm2, xmm0
movss xmm0, dword [0x100ae8ec]
movaps xmm1, xmm2
subss xmm1, dword [esi + 0x1c]
comiss xmm0, xmm1
jae 0x1007948d
mov ebx, dword [esi + 8]
movss dword [esi + 0x1c], xmm2
test ebx, ebx
je 0x10079451
push 4
push ebx
call edi
test eax, eax
jne 0x10079451
lea ecx, [ebx + 0xd0]
call fcn.100183b0
mov ebx, dword [esi + 8]
cmp al, 2
jne 0x10079454
test ebx, ebx
je 0x1007948d
push 4
push ebx
call edi
test eax, eax
jne 0x1007948d
lea ecx, [ebx + 0xd0]
mov dl, 6
jmp 0x10079488
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x1007948d
push 4
push ebx
call edi
test eax, eax
jne 0x1007948d
lea ecx, [ebx + 0xd0]
call fcn.100183b0
cmp al, 6
jne 0x1007948d
mov esi, dword [esi + 8]
test esi, esi
je 0x1007948d
push 4
push esi
call edi
test eax, eax
jne 0x1007948d
lea ecx, [esi + 0xd0]
mov dl, 2
call fcn.10018350
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10081075
mov esp, ebp
pop ebp
ret