Function at 0x401000
Capabilities:
Execute anti-debugging instructions

Disassembly:
mov ecx, fcn.00401889
sub ecx, 0x4017f8
add ecx, 4
mov dword [0x404a50], ecx
mov ecx, 0x4017a9
sub ecx, 0x401720
add ecx, 2
mov dword [0x404a48], ecx
push 0x1f4
call sub.kernel32.dll_Sleep
mov dword [0x403008], 0xf4240
call sub.kernel32.dll_GetCurrentProcess
push 0x80
push eax
call sub.kernel32.dll_SetPriorityClass
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
lea esp, [esp]
lea esp, [esp]
sub dword [0x40300c], 1
jne 0x401070
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
push edx
push eax
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
lea ecx, [ecx]
mov eax, 0xf83e0ff0
mov edx, 0x403a00
call 0x401720
mov edx, edx
mov eax, 0xf83e0ff
mov edx, 0x403a00
call 0x401720
mov edx, edx
sub dword [0x40300c], 1
jne 0x4010a0
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
mov dword [section..data], eax
mov dword [0x403004], edx
call sub.kernel32.dll_GetCurrentProcess
push 0x20
push eax
call sub.kernel32.dll_SetPriorityClass
wait
fninit
fild qword [section..data]
fild dword [0x403008]
fdivp st(1)
fistp qword [section..data]
mov eax, dword [section..data]
mov dword [0x404a34], eax
push 0x403010
push eax
call fcn.00401920
push 0x403010
call fcn.00401988
push str._cycles_timing_BIN_______t
call fcn.00401988
push 0x40303f
push dword [0x404a48]
call fcn.00401920
push 0x40303f
call fcn.00401988
push 0x403054
call fcn.00401988
ffree st(7)
mov eax, dword [0x404a48]
or eax, eax
jne 0x401169
add eax, 0xc8
push eax
fild dword [esp]
pop eax
fsqrt
push dword [0x404a34]
fild dword [esp]
fmul st(1)
fistp dword [esp]
pop eax
push 0x4039f0
push eax
call fcn.00401920
push 0x4039f0
call fcn.00401988
push 0x40305c
call fcn.00401988
mov dword [0x403008], 0xf4240
call sub.kernel32.dll_GetCurrentProcess
push 0x80
push eax
call sub.kernel32.dll_SetPriorityClass
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
mov edi, edi
sub dword [0x40300c], 1
jne 0x4011d0
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
push edx
push eax
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
lea ecx, [ecx]
push 0x403a00
push 0xf83e0ff0
call fcn.00401889
push 0x403a00
push 0xf83e0ff
call fcn.00401889
sub dword [0x40300c], 1
jne 0x401200
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
mov dword [section..data], eax
mov dword [0x403004], edx
call sub.kernel32.dll_GetCurrentProcess
push 0x20
push eax
call sub.kernel32.dll_SetPriorityClass
wait
fninit
fild qword [section..data]
fild dword [0x403008]
fdivp st(1)
fistp qword [section..data]
mov eax, dword [section..data]
mov dword [0x404a3c], eax
push 0x403065
push eax
call fcn.00401920
push 0x403065
call fcn.00401988
push str._cycles_timing_pbin______t
call fcn.00401988
push 0x403097
push dword [0x404a50]
call fcn.00401920
push 0x403097
call fcn.00401988
push 0x4030ac
call fcn.00401988
ffree st(7)
mov eax, dword [0x404a50]
or eax, eax
jne 0x4012c5
add eax, 0xc8
push eax
fild dword [esp]
pop eax
fsqrt
push dword [0x404a3c]
fild dword [esp]
fmul st(1)
fistp dword [esp]
pop eax
push 0x4039f0
push eax
call fcn.00401920
push 0x4039f0
call fcn.00401988
push 0x4030b4
call fcn.00401988
mov dword [0x403008], 0xf4240
call sub.kernel32.dll_GetCurrentProcess
push 0x80
push eax
call sub.kernel32.dll_SetPriorityClass
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
lea ebx, [ebx]
sub dword [0x40300c], 1
jne 0x401330
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
push edx
push eax
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
lea ecx, [ecx]
push 0x403a00
push 0xf83e0ff0
call fcn.00401889
push 0x403a00
push 0xf83e0ff
call fcn.00401889
sub dword [0x40300c], 1
jne 0x401360
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
mov dword [section..data], eax
mov dword [0x403004], edx
call sub.kernel32.dll_GetCurrentProcess
push 0x20
push eax
call sub.kernel32.dll_SetPriorityClass
wait
fninit
fild qword [section..data]
fild dword [0x403008]
fdivp st(1)
fistp qword [section..data]
mov eax, dword [section..data]
mov dword [0x404a40], eax
mov ecx, 0x401918
sub ecx, fcn.00401889
add ecx, 4
mov dword [0x404a54], ecx
push 0x4030bd
push eax
call fcn.00401920
push 0x4030bd
call fcn.00401988
push str._cycles_timing_pbin2______t
call fcn.00401988
push 0x4030f0
push dword [0x404a54]
call fcn.00401920
push 0x4030f0
call fcn.00401988
push str._bytes_t
call fcn.00401988
ffree st(7)
mov eax, dword [0x404a54]
or eax, eax
jne 0x401439
add eax, 0xc8
push eax
fild dword [esp]
pop eax
fsqrt
push dword [0x404a40]
fild dword [esp]
fmul st(1)
fistp dword [esp]
pop eax
push 0x4039f0
push eax
call fcn.00401920
push 0x4039f0
call fcn.00401988
push 0x40310c
call fcn.00401988
mov dword [0x403008], 0xf4240
call sub.kernel32.dll_GetCurrentProcess
push 0x80
push eax
call sub.kernel32.dll_SetPriorityClass
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
mov edi, edi
sub dword [0x40300c], 1
jne 0x4014a0
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
push edx
push eax
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
lea ecx, [ecx]
push 0x403a00
push 0xf83e0ff0
call fcn.004019f0
push 0x403a00
push 0xf83e0ff
call fcn.004019f0
sub dword [0x40300c], 1
jne 0x4014d0
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
mov dword [section..data], eax
mov dword [0x403004], edx
call sub.kernel32.dll_GetCurrentProcess
push 0x20
push eax
call sub.kernel32.dll_SetPriorityClass
wait
fninit
fild qword [section..data]
fild dword [0x403008]
fdivp st(1)
fistp qword [section..data]
mov eax, dword [section..data]
mov dword [0x404a30], eax
mov dword [0x404a44], 0x85c
push 0x403115
push eax
call fcn.00401920
push 0x403115
call fcn.00401988
push str._cycles_timing_dw2bin_ex_t_2140_bytes_t
call fcn.00401988
ffree st(7)
mov eax, dword [0x404a44]
or eax, eax
jne 0x40157b
add eax, 0xc8
push eax
fild dword [esp]
pop eax
fsqrt
push dword [0x404a30]
fild dword [esp]
fmul st(1)
fistp dword [esp]
pop eax
push 0x4039f0
push eax
call fcn.00401920
push 0x4039f0
call fcn.00401988
push 0x403152
call fcn.00401988
mov dword [0x403008], 0xf4240
call sub.kernel32.dll_GetCurrentProcess
push 0x80
push eax
call sub.kernel32.dll_SetPriorityClass
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
sub dword [0x40300c], 1
jne 0x4015e0
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
push edx
push eax
xor eax, eax
cpuid
rdtsc
push edx
push eax
mov dword [0x40300c], 0xf4240
xor eax, eax
cpuid
lea ecx, [ecx]
mov eax, 0xf83e0ff0
call fcn.004017ac
mov eax, 0xf83e0ff
call fcn.004017ac
sub dword [0x40300c], 1
jne 0x401610
xor eax, eax
cpuid
rdtsc
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
pop ecx
sub eax, ecx
pop ecx
sbb edx, ecx
mov dword [section..data], eax
mov dword [0x403004], edx
call sub.kernel32.dll_GetCurrentProcess
push 0x20
push eax
call sub.kernel32.dll_SetPriorityClass
wait
fninit
fild qword [section..data]
fild dword [0x403008]
fdivp st(1)
fistp qword [section..data]
mov eax, dword [section..data]
mov dword [0x404a38], eax
push 0x40315b
push eax
call fcn.00401920
push 0x40315b
call fcn.00401988
push str._cycles_timing_Dword2Bin2_t
call fcn.00401988
push 0x40318c
push dword [0x404a4c]
call fcn.00401920
push 0x40318c
call fcn.00401988
push str._bytes__t
call fcn.00401988
ffree st(7)
mov eax, dword [0x404a4c]
or eax, eax
jne 0x4016cb
add eax, 0xc8
push eax
fild dword [esp]
pop eax
fsqrt
push dword [0x404a38]
fild dword [esp]
fmul st(1)
fistp dword [esp]
pop eax
push 0x4039f0
push eax
call fcn.00401920
push 0x4039f0
call fcn.00401988
push str._LAMPs_r_n
call fcn.00401988
push 0x4031b2
call fcn.00401988
push str.LAMPs__Lean_And_Mean_Points__cycles__sqrt_size__r_n
call fcn.00401988
call fcn.004019c0
push 0
call sub.kernel32.dll_ExitProcess
push ebx
push esi
push edi
mov edi, 0x403a24
mov ecx, dword [edi]
or ecx, ecx
jne 0x401760
push eax
push edx
mov edx, 0x404224
mov esi, 0x3f
mov edi, 0xfcfdfeff
mov eax, edi
sub edi, 0x4040404
mov ecx, 0x1f
xor ebx, ebx
dec edx
sar eax, 1
adc ebx, 0x30
mov byte [edx], bl
dec ecx
jge 0x40174c
dec esi
jge 0x40173f
mov edi, edx
pop edx
pop eax
movzx ecx, al
mov ebx, dword [edi + ecx*8]
mov esi, dword [edi + ecx*8 + 4]
mov dword [edx + 0x18], ebx
mov dword [edx + 0x1c], esi
movzx ecx, ah
mov ebx, dword [edi + ecx*8]
mov esi, dword [edi + ecx*8 + 4]
shr eax, 0x10
mov dword [edx + 0x10], ebx
mov dword [edx + 0x14], esi
movzx ecx, al
mov ebx, dword [edi + ecx*8]
mov esi, dword [edi + ecx*8 + 4]
mov dword [edx + 8], ebx
mov dword [edx + 0xc], esi
movzx ecx, ah
mov ebx, dword [edi + ecx*8]
mov esi, dword [edi + ecx*8 + 4]
mov dword [edx], ebx
mov dword [edx + 4], esi
mov byte [edx + 0x20], ch
pop edi
pop esi
pop ebx
ret