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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd0
lea eax, [ebp - 4]
push eax
push str.nttimesources
call fcn.00403000
add esp, 8
test eax, eax
jne 0x40213a
cmp dword [ebp + 8], 1
jle 0x401b64
push str.Syntax_error__no_arguments_expected
push dword [ebp - 4]
call fcn.00402f10
push dword [ebp - 4]
call fcn.004033f0
add esp, 0xc
mov esp, ebp
pop ebp
ret
push esi
push str.Guess_MHz
push dword [ebp - 4]
call fcn.004031a0
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
lea ecx, [ecx]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, esi
je 0x401b80
push ebx
push edi
lea esp, [esp]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
xor eax, eax
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
lea ebx, [ebp - 0xa0]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
rdtsc
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, edi
jne 0x401b90
push 0x100
push edi
call fcn.00401ad0
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x18], eax
xor eax, eax
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
lea ebx, [ebp - 0xb0]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
rdtsc
mov ebx, eax
mov esi, edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x18]
cmp eax, ecx
jne 0x401bd3
sub ecx, edi
mov dword [ebp - 0x1c], ecx
fild dword [ebp - 0x1c]
jns 0x401c1a
fadd qword [0x4212d0]
sub ebx, dword [ebp - 8]
fstp qword [ebp - 0x48]
sbb esi, dword [ebp - 0xc]
xor edi, edi
fld qword [ebp - 0x48]
mov eax, esi
fdiv qword [0x4212c0]
and esi, 0x7fffffff
mov dword [ebp - 0x1c], esi
and eax, 0x80000000
mov dword [ebp - 0x20], ebx
xor esi, esi
fild qword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], 0
fild qword [ebp - 0x20]
fchs
faddp st(1)
fstp qword [ebp - 0x48]
fdivr qword [ebp - 0x48]
fld qword [0x4212d8]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x401c81
fsub st(1), st(0)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x401c83
add esi, esi
adc edi, 0x80000000
jmp 0x401c83
fstp st(0)
call fcn.00401092
mov ebx, eax
add ebx, esi
mov ecx, ebx
mov dword [ebp - 0x18], ebx
adc edx, edi
add ecx, 0xffcfffff
mov eax, edx
mov dword [ebp - 0x24], edx
adc eax, 0xffffffff
cmp eax, 0xff
ja 0x401cc8
jb 0x401cb2
cmp ecx, 0xffcffffe
ja 0x401cc8
push edx
push ebx
push str.u64TscHz_llu
push 1
push dword [ebp - 4]
call fcn.00403060
add esp, 0x14
jmp 0x401ce8
push edx
push ebx
push str.u64TscHz_llu___out_of_range
push dword [ebp - 4]
call fcn.00402f10
add esp, 0x10
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x24], 0
xor eax, eax
lea ebx, [ebx]
inc eax
push eax
push str.The_whole_bunch___pass__u
push dword [ebp - 4]
mov dword [ebp - 0x1c], eax
call fcn.004032a0
add esp, 0xc
lea eax, [ebp - 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x402118
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, esi
je 0x401d22
mov eax, 0x7ffe000c
mov ecx, 0x7ffe0008
mov eax, dword [eax]
mov dword [ebp - 8], eax
mov eax, dword [ecx]
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
lea eax, [ebp - 0x58]
push eax
mov dword [ebp - 0x30], edi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x40210a
xor eax, eax
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
lea ebx, [ebp - 0xc0]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
rdtsc
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 8]
cmp dword [0x7ffe0010], ecx
mov ecx, 0x7ffe0008
lea eax, [ecx + 4]
jne 0x401d36
mov ecx, dword [ebp - 0xc]
mov eax, 0x7ffe0008
cmp dword [eax], ecx
mov ecx, eax
lea eax, [ecx + 4]
jne 0x401d36
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x7ffe0008
cmp eax, edi
lea eax, [ecx + 4]
jne 0x401d36
push 0x100
push edi
call fcn.00401ad0
add esp, 8
mov eax, 0x7ffe000c
mov ecx, 0x7ffe0008
mov edi, edi
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ecx]
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x40210a
xor eax, eax
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
lea ebx, [ebp - 0xd0]
mov dword [ebx], eax
mov dword [ebx + 4], esi
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
rdtsc
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x40], edx
mov ebx, dword [ebp - 0x28]
mov eax, 0x7ffe0010
cmp dword [eax], ebx
lea ecx, [eax - 8]
lea eax, [ecx + 4]
jne 0x401dd0
mov esi, dword [ebp - 0x2c]
cmp dword [ecx], esi
jne 0x401dd0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, 0x7ffe0008
cmp eax, edi
lea eax, [ecx + 4]
jne 0x401dd0
sub esi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x50]
sbb ebx, dword [ebp - 8]
sub ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x4c]
sbb eax, dword [ebp - 0x54]
sub edi, dword [ebp - 0x30]
mov dword [ebp - 0x48], ecx
mov ecx, 0x3e8
mov dword [ebp - 0x44], eax
mov eax, edi
mov edi, dword [ebp - 0x18]
mul ecx
mov ecx, edi
or ecx, dword [ebp - 0x24]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0xc], edx
je 0x401ee9
mov eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x40]
sbb ecx, dword [ebp - 0x10]
mov dword [ebp - 0x60], eax
mov eax, ecx
and ecx, 0x7fffffff
mov dword [ebp - 0x68], 0
and eax, 0x80000000
mov dword [ebp - 0x5c], ecx
fild qword [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x24]
mov ecx, eax
and eax, 0x7fffffff
mov dword [ebp - 0x70], edi
fild qword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
and ecx, 0x80000000
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x78], 0
fchs
faddp st(1)
fstp qword [ebp - 0x14]
fld qword [ebp - 0x14]
fild qword [ebp - 0x70]
fild qword [ebp - 0x78]
fchs
faddp st(1)
fstp qword [ebp - 0x14]
fdiv qword [ebp - 0x14]
fld qword [0x4212c8]
fmul st(1), st(0)
jmp 0x401f21
mov dword [ebp - 0x80], eax
mov eax, edx
mov ecx, edx
mov dword [ebp - 0x88], 0
and eax, 0x7fffffff
and ecx, 0x80000000
mov dword [ebp - 0x7c], eax
fild qword [ebp - 0x80]
mov dword [ebp - 0x84], ecx
fild qword [ebp - 0x88]
fchs
faddp st(1)
fld qword [0x4212c8]
fld qword [0x4212d8]
xor ecx, ecx
fcom st(2)
mov dword [ebp - 8], ecx
fnstsw ax
xor edi, edi
test ah, 0x41
jp 0x401f4d
fsub st(2), st(0)
fcom st(2)
fnstsw ax
test ah, 0x41
jne 0x401f4d
add edi, ecx
adc ecx, 0x80000000
mov dword [ebp - 8], ecx
fxch st(2)
call fcn.00401092
fild qword [ebp - 0x90]
add eax, edi
mov dword [ebp - 0x10], eax
adc edx, dword [ebp - 8]
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x40], edx
fstp qword [ebp - 0x3c]
fld qword [ebp - 0x3c]
fild qword [ebp - 0x48]
mov dword [ebp - 8], ecx
fstp qword [ebp - 0x3c]
fdivr qword [ebp - 0x3c]
fmulp st(1)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x401fa0
fsub st(1)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x401fa2
add edi, ecx
adc ecx, 0x80000000
mov dword [ebp - 8], ecx
jmp 0x401fa2
fstp st(1)
call fcn.00401092
push 0
add eax, edi
push 0xa
adc edx, dword [ebp - 8]
push ebx
push esi
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
call fcn.00401000
mov edi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x30]
push 0
push edi
push ebx
push str.__9llu____7lld_us___GetTickCount_n
push 1
push dword [ebp - 4]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], edx
call fcn.00403060
mov ecx, dword [ebp - 0x10]
mov eax, ecx
sub eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x40]
mov esi, eax
sbb esi, edi
mov edi, dword [ebp - 0x10]
push esi
push edi
push eax
push ecx
push str.__9llu____7lld_us___TSC_n
push 1
push dword [ebp - 4]
call fcn.00403060
mov eax, esi
add esp, 0x34
cdq
xor eax, edx
xor edi, edx
sub edi, edx
sbb eax, edx
mov dword [ebp - 0x10], eax
js 0x40203a
jg 0x402020
cmp edi, 0xc350
jb 0x40203a
push str.RT_ABS_off____50000
push 0xe9
push str.line__u:__s
push dword [ebp - 4]
call fcn.00402f10
add esp, 0x10
mov eax, dword [ebp - 0x38]
mov edi, eax
mov ecx, dword [ebp - 0x34]
sub edi, ebx
mov esi, ecx
sbb esi, dword [ebp - 0xc]
push esi
push edi
push ecx
push eax
push str.__9llu____7lld_us___InterruptTime_n
push 1
push dword [ebp - 4]
call fcn.00403060
mov eax, esi
add esp, 0x1c
cdq
xor eax, edx
xor edi, edx
sub edi, edx
sbb eax, edx
mov dword [ebp - 0x10], eax
js 0x402093
jg 0x402079
cmp edi, 0x61a8
jb 0x402093
push str.RT_ABS_off____25000
push 0xed
push str.line__u:__s
push dword [ebp - 4]
call fcn.00402f10
add esp, 0x10
mov eax, dword [ebp - 0x2c]
mov edi, eax
mov ecx, dword [ebp - 0x28]
sub edi, ebx
mov esi, ecx
sbb esi, dword [ebp - 0xc]
push esi
push edi
push ecx
push eax
push str.__9llu____7lld_us___QueryPerformanceCounter_n
push 1
push dword [ebp - 4]
call fcn.00403060
mov eax, esi
add esp, 0x1c
cdq
xor eax, edx
xor edi, edx
sub edi, edx
sbb eax, edx
mov dword [ebp - 0x10], eax
js 0x4020ec
jg 0x4020d2
cmp edi, 0x61a8
jb 0x4020ec
push str.RT_ABS_off____25000
push 0xf1
push str.line__u:__s
push dword [ebp - 4]
call fcn.00402f10
add esp, 0x10
mov eax, dword [ebp - 0x1c]
cmp eax, 7
jb 0x401cf0
push dword [ebp - 4]
call fcn.004033f0
add esp, 4
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.QueryPerformanceCounter_failed___u_
jmp 0x402124
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.QueryPerformanceFrequency_failed___u_
push dword [ebp - 4]
call fcn.00402f10
push dword [ebp - 4]
call fcn.004033f0
add esp, 0x10
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret