Function at 0x1002bcc0
Capabilities:
Check for time delay via queryperformancecounter
Execute anti-debugging instructions
Get system information on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x198
mov eax, dword [0x10068010]
xor eax, esp
mov dword [esp + 0x194], eax
cmp dword [0x100774e8], 0x28
push esi
push edi
je 0x1002c2c2
xorps xmm0, xmm0
lea eax, [esp + 0x20]
movups xmmword [0x100774e8], xmm0
push eax
movups xmmword [0x100774f8], xmm0
mov dword [0x100774e8], 0x28
movq qword [0x10077508], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
shrd eax, ecx, 5
mov dword [esp + 0x20], eax
lea eax, [esp + 0x18]
sar ecx, 5
push eax
mov dword [esp + 0x28], ecx
call esi
rdtsc
mov edi, eax
mov dword [esp + 0x14], edx
lea eax, [esp + 0x28]
push eax
call esi
mov ecx, dword [esp + 0x28]
sub ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
sbb eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x24]
jl 0x1002bd43
jg 0x1002bd68
cmp ecx, dword [esp + 0x20]
jb 0x1002bd43
rdtsc
mov ecx, eax
mov eax, dword [esp + 0x14]
shld eax, edi, 5
shld edx, ecx, 5
shl edi, 5
shl ecx, 5
sub ecx, edi
sbb edx, eax
mov eax, ecx
or eax, edx
jne 0x1002bd8f
mov ecx, 0x77359400
xor edx, edx
mov dword [0x100774f0], ecx
mov dword [0x100774f4], edx
mov dword [esp + 0x18], 0
call fcn.1002b460
test al, al
jne 0x1002bdb0
mov al, 1
jmp 0x1002bddb
lea eax, [esp + 0x14]
mov ecx, 1
push eax
push eax
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x20]
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002bdd4
mov al, 1
jmp 0x1002bddb
mov eax, dword [esp + 0x18]
shr eax, 0x10
mov byte [0x100774ed], al
xorps xmm0, xmm0
lea eax, [esp + 0x40]
movaps xmmword [esp + 0x40], xmm0
push eax
movaps xmmword [esp + 0x54], xmm0
mov dword [esp + 0x64], 0
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx ecx, byte [0x100774ed]
xor edx, edx
mov eax, dword [esp + 0x54]
div ecx
movzx ecx, byte [0x100774ed]
mov dl, al
movzx eax, dl
imul eax, ecx
mov byte [0x100774ee], dl
mov byte [0x100774ed], al
test dl, dl
jne 0x1002be3a
test al, al
jne 0x1002be3a
mov word [0x100774ed], 0x101
lea eax, [esp + 0x14]
mov ecx, 1
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x2c]
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002be62
xor cl, cl
jmp 0x1002be69
mov ecx, dword [esp + 0x14]
shr ecx, 4
mov al, byte [0x100774ec]
lea edx, [esp + 0x18]
and al, 0xfe
and cl, 1
or al, cl
mov ecx, 1
mov byte [0x100774ec], al
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002bea2
xor cl, cl
jmp 0x1002bea9
mov ecx, dword [esp + 0x14]
shr ecx, 0xf
mov al, byte [0x100774ec]
lea edx, [esp + 0x18]
and cl, 1
and al, 0xfd
add cl, cl
or cl, al
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24]
mov byte [0x100774ec], cl
push eax
lea eax, [esp + 0x30]
mov ecx, 1
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002bee5
xor cl, cl
jmp 0x1002beec
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
mov al, byte [0x100774ec]
lea edx, [esp + 0x18]
and cl, 1
and al, 0xfb
shl cl, 2
or cl, al
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24]
mov byte [0x100774ec], cl
push eax
lea eax, [esp + 0x30]
mov ecx, 1
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002bf29
xor cl, cl
jmp 0x1002bf30
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
mov al, byte [0x100774ec]
and cl, 1
and al, 0xbf
shl cl, 6
or cl, al
lea eax, [esp + 0x7c]
push 0x118
push 0
push eax
mov byte [0x100774ec], cl
call sub.VCRUNTIME140.dll_memset
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [esp + 0x84]
add esp, 0xc
mov dword [esp + 0x78], 0x11c
push eax
call esi
test eax, eax
jne 0x1002bf95
lea eax, [esp + 0x78]
mov dword [esp + 0x78], 0x114
push eax
call esi
test eax, eax
jne 0x1002bf95
push str.IsWin98OrOlder:__Unable_to_get_OS_version_information
call fcn.1002cfd0
add esp, 4
mov eax, dword [esp + 0x88]
sub eax, 0
je 0x1002bfd3
sub eax, 1
je 0x1002bfd3
lea eax, [esp + 0x14]
mov ecx, 1
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x24]
call fcn.1002bc10
add esp, 0xc
test al, al
je 0x1002bfd3
mov ecx, dword [esp + 0x14]
shr ecx, 0x19
jmp 0x1002bfd5
xor cl, cl
mov al, byte [0x100774ec]
lea edx, [esp + 0x18]
and cl, 1
and al, 0xf7
shl cl, 3
or cl, al
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x24]
mov byte [0x100774ec], cl
push eax
lea eax, [esp + 0x30]
mov ecx, 1
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002c012
xor cl, cl
jmp 0x1002c019
mov ecx, dword [esp + 0x14]
shr ecx, 0x1a
mov al, byte [0x100774ec]
lea edx, [esp + 0x18]
and cl, 1
and al, 0xef
shl cl, 4
or cl, al
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
mov byte [0x100774ec], cl
push eax
lea eax, [esp + 0x30]
mov ecx, 1
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002c056
xor cl, cl
jmp 0x1002c05d
mov cl, byte [esp + 0x14]
and cl, 1
mov al, byte [0x100774ef]
lea edx, [esp + 0x18]
and al, 0xfe
or al, cl
mov ecx, 1
mov byte [0x100774ef], al
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002c093
xor cl, cl
jmp 0x1002c09a
mov ecx, dword [esp + 0x14]
shr ecx, 9
mov al, byte [0x100774ef]
and cl, 1
add cl, cl
and al, 0xfd
or cl, al
mov byte [0x100774ef], cl
call fcn.1002b530
mov ecx, str.AuthenticAMD
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002c0de
test dx, dx
je 0x1002c0da
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002c0de
add eax, 4
add ecx, 4
test dx, dx
jne 0x1002c0b8
xor eax, eax
jmp 0x1002c0e3
sbb eax, eax
or eax, 1
test eax, eax
je 0x1002c0eb
xor cl, cl
jmp 0x1002c11a
lea eax, [esp + 0x20]
mov ecx, 0x80000001
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x24]
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002c113
xor cl, cl
jmp 0x1002c11a
mov ecx, dword [esp + 0x14]
shr ecx, 6
mov al, byte [0x100774ef]
lea edx, [esp + 0x18]
and cl, 1
and al, 0xfb
shl cl, 2
or cl, al
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x18]
mov byte [0x100774ef], cl
push eax
lea eax, [esp + 0x30]
mov ecx, 1
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002c157
xor cl, cl
jmp 0x1002c15e
mov ecx, dword [esp + 0x14]
shr ecx, 0x13
mov al, byte [0x100774ef]
and cl, 1
shl cl, 3
and al, 0xf7
or cl, al
mov byte [0x100774ef], cl
call fcn.1002b530
mov ecx, str.GenuineIntel
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x1002c1a6
test dx, dx
je 0x1002c1a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x1002c1a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x1002c180
xor eax, eax
jmp 0x1002c1ab
sbb eax, eax
or eax, 1
test eax, eax
je 0x1002c1b3
xor cl, cl
jmp 0x1002c1e2
lea eax, [esp + 0x20]
mov ecx, 1
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x24]
call fcn.1002bc10
add esp, 0xc
test al, al
jne 0x1002c1db
xor cl, cl
jmp 0x1002c1e2
mov ecx, dword [esp + 0x14]
shr ecx, 0x14
mov al, byte [0x100774ef]
lea edx, [esp + 0x14]
and cl, 1
and al, 0xef
shl cl, 4
or cl, al
lea eax, [esp + 0x18]
push eax
push eax
mov byte [0x100774ef], cl
mov ecx, 0x80000000
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
je 0x1002c244
cmp dword [esp + 0x14], 0x80000000
jbe 0x1002c244
lea eax, [esp + 0x14]
mov ecx, 0x80000001
push eax
lea eax, [esp + 0x1c]
push eax
push eax
mov edx, eax
call fcn.1002bc10
add esp, 0xc
test al, al
je 0x1002c244
mov ecx, dword [esp + 0x14]
shr ecx, 0x1f
jmp 0x1002c246
xor cl, cl
mov al, byte [0x100774ec]
shl cl, 5
and al, 0xdf
or cl, al
mov byte [0x100774ec], cl
call fcn.1002b530
mov dword [0x100774f8], eax
call fcn.1002b460
mov dl, byte [0x100774ec]
mov ecx, 1
shl al, 7
and dl, 0x7f
or al, dl
lea edx, [esp + 0x30]
mov byte [0x100774ec], al
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.1002bc10
add esp, 0xc
test al, al
je 0x1002c2c2
mov eax, dword [esp + 0x30]
mov dword [0x100774fc], eax
mov eax, dword [esp + 0x34]
mov dword [0x10077500], eax
mov eax, dword [esp + 0x38]
mov dword [0x10077504], eax
mov eax, dword [esp + 0x3c]
mov dword [0x10077508], eax
mov ecx, dword [esp + 0x19c]
mov eax, 0x100774e8
pop edi
pop esi
xor ecx, esp
call fcn.10016e69
mov esp, ebp
pop ebp
ret