Function at 0x101727a0
Capabilities:
Check for time delay via queryperformancecounter
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov esi, dword [ebp + 8]
mov eax, dword [0x102b0014]
xor eax, ebp
mov dword [esp + 0x38], eax
call dword [sym.imp.kernel32.dll_GetCurrentThread]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x28]
push ecx
push eax
call dword [sym.imp.kernel32.dll_QueryThreadCycleTime]
movsd xmm0, qword [0x102b6028]
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jne 0x10172950
jp 0x10172950
mov edi, dword [sym.imp.kernel32.dll_GetCurrentThread]
call edi
push eax
call dword [sym.imp.kernel32.dll_GetThreadPriority]
mov dword [esp + 0x1c], eax
call edi
push 2
push eax
call dword [sym.imp.kernel32.dll_SetThreadPriority]
mov eax, dword [0x102b6038]
mov ecx, dword [0x102b3718]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x101729d7
mov eax, dword [0x102b6048]
mov ecx, dword [0x102b3718]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x10172a10
rdtsc
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea esi, [esp + 0x30]
push esi
call dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
call dword [sym.imp.kernel32.dll_GetCurrentThread]
push dword [esp + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_SetThreadPriority]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
push esi
call dword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
sub ebx, dword [0x102b6040]
sbb edi, dword [0x102b6044]
movd xmm0, edi
movd xmm2, ebx
punpckldq xmm2, xmm0
punpckldq xmm2, xmmword [0x1025be40]
subpd xmm2, xmmword [0x1025be50]
movapd xmm1, xmm2
unpckhpd xmm1, xmm2
addsd xmm1, xmm2
fild qword [esp + 0x30]
fstp qword [esp + 0x20]
divsd xmm1, qword [esp + 0x20]
pxor xmm0, xmm0
movsd xmm2, qword [0x102656d8]
ucomisd xmm2, xmm1
ja 0x10172949
mov eax, dword [esp + 0x18]
sub eax, dword [0x102b6030]
mov ecx, dword [esp + 0x14]
sbb ecx, dword [0x102b6034]
movd xmm0, ecx
movd xmm2, eax
punpckldq xmm2, xmm0
punpckldq xmm2, xmmword [0x1025be40]
subpd xmm2, xmmword [0x1025be50]
movapd xmm0, xmm2
unpckhpd xmm0, xmm2
addsd xmm0, xmm2
divsd xmm0, xmm1
movsd qword [0x102b6028], xmm0
mov esi, dword [ebp + 8]
xorpd xmm1, xmm1
xor eax, eax
ucomisd xmm0, xmm1
mov ecx, 0
jne 0x1017295f
jnp 0x101729bd
movsd xmm1, qword [esp + 0x28]
unpcklps xmm1, xmmword [0x1025be40]
subpd xmm1, xmmword [0x1025be50]
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
divsd xmm2, xmm0
mulsd xmm2, qword [0x102656e0]
movsd qword [esp + 8], xmm2
fld qword [esp + 8]
fnstcw word [esp + 4]
movzx eax, word [esp + 4]
or eax, 0xc00
mov word [esp + 6], ax
fldcw word [esp + 6]
fistp qword [esp + 8]
fldcw word [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x38]
xor ecx, ebp
call fcn.10205d16
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x102b6038
call fcn.10216dd3
add esp, 4
cmp dword [0x102b6038], 0xffffffff
jne 0x10172837
rdtsc
mov dword [0x102b6030], eax
mov dword [0x102b6034], edx
push 0x102b6038
call fcn.10216dd3
add esp, 4
jmp 0x10172837
push 0x102b6048
call fcn.10216dd3
add esp, 4
cmp dword [0x102b6048], 0xffffffff
jne 0x10172858
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea eax, [esp + 0x30]
push eax
call dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [0x102b6044], ecx
mov dword [0x102b6040], eax
push 0x102b6048
call fcn.10216dd3
add esp, 4
jmp 0x10172858