Function at 0x493770
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
mov eax, dword [0x639ac0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x4d], 0
mov dword [ebp - 0x14], 0xffffffff
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0x3c], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x4c], xmm0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x5c], 0
xorps xmm0, xmm0
movsd qword [ebp - 0xdc], xmm0
xorps xmm0, xmm0
movsd qword [ebp - 0x94], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x74], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x70], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x6c], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x84], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x80], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0xa0], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x68], xmm0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
xor ecx, ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], ecx
xor edx, edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
xorps xmm0, xmm0
movlpd qword [ebp - 0x58], xmm0
call fcn.00462cc0
movzx ecx, al
test ecx, ecx
je 0x493882
push str.Get_MPERF_APERF
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov edx, dword [ebp + 8]
cmp dword [edx + 0x138], 6
jl 0x493901
lea esi, [ebp - 0x14]
mov eax, 6
xor ecx, ecx
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
push 0
push 0
mov eax, 4
shl eax, 1
mov ecx, dword [ebp + eax - 0x14]
push ecx
call fcn.004598a0
add esp, 0xc
cmp eax, 1
jne 0x4938c8
mov byte [ebp - 0x4d], 1
jmp 0x4938ff
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x4938ff
mov eax, 4
shl eax, 1
mov ecx, dword [ebp + eax - 0x14]
push ecx
push str.CPUID.6.ecx:_0x_0.16lX
push 0x1b2dd00
call fcn.00432fe0
add esp, 0xc
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
jmp 0x493936
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x493936
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x138]
push ecx
push str.CPU_Max_basic_input:__d
push 0x1b2dd00
call fcn.00432fe0
add esp, 0xc
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x20]
and eax, 0x10
je 0x494491
movzx ecx, byte [ebp - 0x4d]
test ecx, ecx
je 0x494491
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x49397c
push str.Get_MPERF_APERF_pCPUInfo__features__0x00000010___bMSR0xE8_supported
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [ebp - 0xa8], eax
lea eax, [ebp - 0x100]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x4939b9
call fcn.00462cc0
movzx ecx, al
test ecx, ecx
je 0x4939b2
push str.CPU___failed_to_get_Performance_frequency.
call fcn.00459dc0
add esp, 4
xor al, al
jmp 0x494535
mov edx, dword [ebp - 0xa8]
push edx
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov dword [ebp - 0xa4], eax
cmp dword [ebp - 0xa4], 0x7fffffff
je 0x4939e7
push 0xf
mov eax, dword [ebp - 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x40], 0
jmp 0x493a00
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 0x5f5e100
jge 0x493a14
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x5c], edx
jmp 0x4939f7
mov eax, dword [ebp - 0x44]
add eax, 1
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 2
jle 0x493a3a
movsd xmm0, qword [ebp - 0xdc]
comisd xmm0, xmmword [0x588c98]
jbe 0x493a3a
jmp 0x4943e4
xor ecx, ecx
mov dword [ebp - 0x58], 0xbebc200
mov dword [ebp - 0x54], ecx
movss xmm0, dword [ebp + 0x20]
comiss xmm0, dword [0x5c4be0]
jbe 0x493ac8
cvtss2sd xmm0, dword [ebp - 0xa0]
cvtss2sd xmm1, dword [ebp + 0x20]
mulsd xmm1, qword [0x592d28]
comisd xmm1, xmm0
jbe 0x493ab3
movzx edx, byte [ebp + 0x1c]
test edx, edx
je 0x493a96
cmp dword [ebp - 0x44], 2
jle 0x493a96
push 0
push 4
mov eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.004f7310
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x493ab3
cmp dword [ebp - 0x44], 1
jle 0x493ab3
push 0
push 2
mov edx, dword [ebp - 0x54]
push edx
mov eax, dword [ebp - 0x58]
push eax
call fcn.004f7310
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
movss xmm0, dword [ebp - 0xa0]
comiss xmm0, dword [ebp + 0x20]
jbe 0x493ac6
jmp 0x4943e4
jmp 0x493b44
movss xmm0, dword [ebp + 0x18]
mulss xmm0, dword [0x588c1c]
comiss xmm0, dword [ebp - 0x6c]
jbe 0x493b0b
movzx ecx, byte [ebp + 0x1c]
test ecx, ecx
je 0x493af7
cmp dword [ebp - 0x44], 2
jle 0x493af7
xor edx, edx
mov dword [ebp - 0x58], 0xb2d05e00
mov dword [ebp - 0x54], edx
jmp 0x493b09
cmp dword [ebp - 0x44], 1
jle 0x493b09
xor eax, eax
mov dword [ebp - 0x58], 0x3b9aca00
mov dword [ebp - 0x54], eax
jmp 0x493b44
movss xmm0, dword [ebp + 0x18]
mulss xmm0, dword [0x588c28]
comiss xmm0, dword [ebp - 0x6c]
jbe 0x493b44
xor ecx, ecx
mov dword [ebp - 0x58], 0x1dcd6500
mov dword [ebp - 0x54], ecx
movzx edx, byte [ebp + 0x1c]
test edx, edx
je 0x493b44
cmp dword [ebp - 0x44], 2
jle 0x493b44
xor eax, eax
mov dword [ebp - 0x58], 0xb2d05e00
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x40], 0
jmp 0x493b5d
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x40]
cdq
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp - 0xd0]
cmp edx, dword [ebp - 0x54]
ja 0x493b90
jb 0x493b85
mov eax, dword [ebp - 0xd4]
cmp eax, dword [ebp - 0x58]
jae 0x493b90
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x5c], ecx
jmp 0x493b54
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x493bbb
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_CLEAR_MSR_iMSR__0xE7_
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov dword [ebp - 0x3c], 0xe7
push 0
lea eax, [ebp - 0x60]
push eax
push 8
lea ecx, [ebp - 0x4c]
push ecx
push 4
lea edx, [ebp - 0x3c]
push edx
push 0x8011e074
mov eax, dword [0x5d19b0]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x3c], 0xe8
call fcn.00462cc0
movzx ecx, al
test ecx, ecx
je 0x493c17
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_CLEAR_MSR_iMSR__0xE8_
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
push 0
lea edx, [ebp - 0x60]
push edx
push 8
lea eax, [ebp - 0x4c]
push eax
push 4
lea ecx, [ebp - 0x3c]
push ecx
push 0x8011e074
mov edx, dword [0x5d19b0]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
lea eax, [ebp - 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x40], 0
jmp 0x493c79
mov eax, dword [ebp - 0x40]
add eax, 1
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0x7a120
jge 0x493c8d
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x5c], ecx
jmp 0x493c70
lea edx, [ebp - 0xc8]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov dword [ebp - 0x3c], 0xe8
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x493ccc
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_iMSR__0xE8_
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
push 0
lea ecx, [ebp - 0x60]
push ecx
push 8
lea edx, [ebp - 0x4c]
push edx
push 4
lea eax, [ebp - 0x3c]
push eax
push 0x8011e060
mov ecx, dword [0x5d19b0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x493d06
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xf8], edx
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0x3c], 0xe7
call fcn.00462cc0
movzx ecx, al
test ecx, ecx
je 0x493d38
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_iMSR__0xE7_
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
push 0
lea edx, [ebp - 0x60]
push edx
push 8
lea eax, [ebp - 0x4c]
push eax
push 4
lea ecx, [ebp - 0x3c]
push ecx
push 0x8011e060
mov edx, dword [0x5d19b0]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x493d72
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0xe4], eax
mov dword [ebp - 0xe0], ecx
mov edx, dword [ebp + 8]
add edx, 0x28
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x88], str.AuthenticAMD
mov eax, dword [ebp - 0x88]
mov cx, word [eax]
mov word [ebp - 0x96], cx
mov edx, dword [ebp - 0x8c]
cmp cx, word [edx]
jne 0x493dee
cmp word [ebp - 0x96], 0
je 0x493de2
mov eax, dword [ebp - 0x88]
mov cx, word [eax + 2]
mov word [ebp - 0x98], cx
mov edx, dword [ebp - 0x8c]
cmp cx, word [edx + 2]
jne 0x493dee
add dword [ebp - 0x88], 4
add dword [ebp - 0x8c], 4
cmp word [ebp - 0x98], 0
jne 0x493d88
mov dword [ebp - 0xac], 0
jmp 0x493df9
sbb eax, eax
or eax, 1
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0xe8], ecx
cmp dword [ebp - 0xe8], 0
jne 0x493e1b
mov edx, dword [ebp + 8]
cmp dword [edx + 0xc], 0x17
jge 0x493eb0
mov eax, dword [ebp + 8]
add eax, 0x28
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x78], str.HygonGenuine
mov ecx, dword [ebp - 0x78]
mov dx, word [ecx]
mov word [ebp - 0x9a], dx
mov eax, dword [ebp - 0x7c]
cmp dx, word [eax]
jne 0x493e7f
cmp word [ebp - 0x9a], 0
je 0x493e73
mov ecx, dword [ebp - 0x78]
mov dx, word [ecx + 2]
mov word [ebp - 0x9c], dx
mov eax, dword [ebp - 0x7c]
cmp dx, word [eax + 2]
jne 0x493e7f
add dword [ebp - 0x78], 4
add dword [ebp - 0x7c], 4
cmp word [ebp - 0x9c], 0
jne 0x493e2b
mov dword [ebp - 0xb0], 0
jmp 0x493e8a
sbb ecx, ecx
or ecx, 1
mov dword [ebp - 0xb0], ecx
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0xec], edx
cmp dword [ebp - 0xec], 0
jne 0x49418d
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], 0x18
jl 0x49418d
call fcn.00462cc0
movzx ecx, al
test ecx, ecx
je 0x493edb
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_AMD_MSR_HW_PSTATE_STATUS
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov dword [ebp - 0x3c], 0xc0010293
push 0
lea edx, [ebp - 0x60]
push edx
push 8
lea eax, [ebp - 0x4c]
push eax
push 4
lea ecx, [ebp - 0x3c]
push ecx
push 0x8011e060
mov edx, dword [0x5d19b0]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x493f68
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x493f41
mov ecx, dword [ebp - 0x48]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x3c]
push eax
push str.MSR_0x_0.8X:__0.16llX
push 0x1b2dd00
call fcn.00432fe0
add esp, 0x14
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
lea ecx, [ebp - 0xb4]
push ecx
lea edx, [ebp - 0xb8]
push edx
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp + 8]
push edx
push 1
call fcn.00491e30
add esp, 0x18
fstp dword [ebp - 0x68]
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x493f93
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_AMD_MSR_PSTATESTAT
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov dword [ebp - 0x3c], 0xc0010063
push 0
lea ecx, [ebp - 0x60]
push ecx
push 8
lea edx, [ebp - 0x4c]
push edx
push 4
lea eax, [ebp - 0x3c]
push eax
push 0x8011e060
mov ecx, dword [0x5d19b0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x493ff9
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x493ff9
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
push str.MSR_0x_0.8X:__0.16llX
push 0x1b2dd00
call fcn.00432fe0
add esp, 0x14
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x494024
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_AMD_MSR_PSTATECTL
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov dword [ebp - 0x3c], 0xc0010062
push 0
lea ecx, [ebp - 0x60]
push ecx
push 8
lea edx, [ebp - 0x4c]
push edx
push 4
lea eax, [ebp - 0x3c]
push eax
push 0x8011e060
mov ecx, dword [0x5d19b0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x49408a
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x49408a
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
push str.MSR_0x_0.8X:__0.16llX
push 0x1b2dd00
call fcn.00432fe0
add esp, 0x14
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x4940b5
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_AMD_MSR_PSTATECURLIM
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov dword [ebp - 0x3c], 0xc0010061
push 0
lea ecx, [ebp - 0x60]
push ecx
push 8
lea edx, [ebp - 0x4c]
push edx
push 4
lea eax, [ebp - 0x3c]
push eax
push 0x8011e060
mov ecx, dword [0x5d19b0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x49415d
push 0
push 2
mov edx, dword [ebp - 0x48]
push edx
mov eax, dword [ebp - 0x4c]
push eax
call fcn.004598c0
add esp, 0x10
mov dword [ebp - 0xcc], eax
push 4
push 6
mov ecx, dword [ebp - 0x48]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
call fcn.004598c0
add esp, 0x10
mov dword [ebp - 0xf0], eax
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x49415d
mov ecx, dword [ebp - 0xf0]
push ecx
mov edx, dword [ebp - 0xcc]
push edx
mov eax, dword [ebp - 0x48]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x3c]
push edx
push str.MSR_0x_0.8X:__0.16llX__CurPState_d__MaxPState_d_
push 0x1b2dd00
call fcn.00432fe0
add esp, 0x1c
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x494188
push str.Get_MPERF_APERF_done_1
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
jmp 0x494239
mov dword [ebp - 0x3c], 0xc0010071
call fcn.00462cc0
movzx ecx, al
test ecx, ecx
je 0x4941bf
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_AMD_MSR_COFVID_STATUS
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
push 0
lea edx, [ebp - 0x60]
push edx
push 8
lea eax, [ebp - 0x4c]
push eax
push 4
lea ecx, [ebp - 0x3c]
push ecx
push 0x8011e060
mov edx, dword [0x5d19b0]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x49420e
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0xb8]
push ecx
mov edx, dword [ebp - 0x48]
push edx
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp + 8]
push ecx
push 0
call fcn.00491e30
add esp, 0x18
fstp dword [ebp - 0x68]
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x494239
push str.Get_MPERF_APERF_IOCTL_DIRECTIO_READMSR_AMD_MSR_COFVID_STATUS_done
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x494264
push str.Get_MPERF_APERF_cacl_values
push 0x1b2dd00
call fcn.00432fe0
add esp, 8
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov ecx, dword [ebp - 0xc8]
sub ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xc4]
sbb edx, dword [ebp - 0xbc]
call fcn.004f7740
movsd qword [ebp - 0x94], xmm0
movsd xmm0, qword [ebp - 0x94]
mulsd xmm0, qword [0x588c88]
movsd qword [ebp - 0x94], xmm0
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x100]
call fcn.004f7740
divsd xmm0, qword [0x588c68]
movsd xmm1, qword [ebp - 0x94]
divsd xmm1, xmm0
movsd qword [ebp - 0x94], xmm1
movsd xmm0, qword [ebp - 0xdc]
addsd xmm0, qword [ebp - 0x94]
movsd qword [ebp - 0xdc], xmm0
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
call fcn.004f76f0
divsd xmm0, qword [ebp - 0x94]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x70], xmm0
mov edx, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xf8]
call fcn.004f76f0
divsd xmm0, qword [ebp - 0x94]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 0x74], xmm0
movss xmm0, dword [ebp - 0x74]
comiss xmm0, dword [ebp - 0x6c]
jbe 0x49434d
movss xmm0, dword [0x588ca4]
comiss xmm0, dword [ebp - 0x74]
jbe 0x49434d
movss xmm0, dword [ebp - 0x74]
movss dword [ebp - 0x6c], xmm0
movss xmm0, dword [ebp - 0x70]
comiss xmm0, dword [ebp - 0x84]
jbe 0x494376
movss xmm0, dword [0x588ca4]
comiss xmm0, dword [ebp - 0x70]
jbe 0x494376
movss xmm0, dword [ebp - 0x70]
movss dword [ebp - 0x84], xmm0
movss xmm0, dword [ebp - 0x68]
comiss xmm0, dword [ebp - 0x80]
jbe 0x49438b
movss xmm0, dword [ebp - 0x68]
movss dword [ebp - 0x80], xmm0
movss xmm0, dword [ebp - 0x68]
movss dword [ebp - 0xa0], xmm0
call fcn.00462cc0
movzx ecx, al
test ecx, ecx
je 0x4943da
cmp dword [ebp - 0x44], 1
jl 0x4943da
cmp dword [ebp - 0x44], 3
jg 0x4943da
mov edx, dword [ebp - 0x44]
movss xmm0, dword [ebp - 0x70]
movss dword [ebp + edx*4 - 0x3c], xmm0
mov eax, dword [ebp - 0x44]
movss xmm0, dword [ebp - 0x74]
movss dword [ebp + eax*4 - 0x30], xmm0
mov ecx, dword [ebp - 0x44]
movss xmm0, dword [ebp - 0x68]
movss dword [ebp + ecx*4 - 0x24], xmm0
cmp dword [ebp - 0x44], 3
jl 0x493a14
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x49446f
mov dword [ebp - 0x64], 0
jmp 0x494402
mov eax, dword [ebp - 0x64]
add eax, 1
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 0x44]
jge 0x49446f
cvtss2sd xmm0, dword [ebp + 0x20]
sub esp, 8
movsd qword [esp], xmm0
mov edx, dword [ebp - 0x64]
cvtss2sd xmm0, dword [ebp + edx*4 - 0x20]
sub esp, 8
movsd qword [esp], xmm0
mov eax, dword [ebp - 0x64]
cvtss2sd xmm0, dword [ebp + eax*4 - 0x2c]
sub esp, 8
movsd qword [esp], xmm0
mov ecx, dword [ebp - 0x64]
cvtss2sd xmm0, dword [ebp + ecx*4 - 0x38]
sub esp, 8
movsd qword [esp], xmm0
mov edx, dword [ebp - 0x64]
push edx
push str.M_A_m__d:__0.1f___0.1f___0.1f__Target:__0.1f_
push 0x1b2dd00
call fcn.00432fe0
add esp, 0x2c
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
jmp 0x4943f9
cmp dword [ebp - 0xa4], 0x7fffffff
je 0x49448f
mov eax, dword [ebp - 0xa4]
push eax
mov ecx, dword [ebp - 0xa8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
jmp 0x4944aa
call fcn.00462cc0
movzx edx, al
test edx, edx
je 0x4944aa
push str.CPU___unable_to_measure_APERF_MPERF.
call fcn.00459dc0
add esp, 4
mov eax, dword [ebp + 0xc]
movss xmm0, dword [ebp - 0x6c]
movss dword [eax], xmm0
mov ecx, dword [ebp + 0x10]
movss xmm0, dword [ebp - 0x84]
movss dword [ecx], xmm0
mov edx, dword [ebp + 0x14]
movss xmm0, dword [ebp - 0x80]
movss dword [edx], xmm0
call fcn.00462cc0
movzx eax, al
test eax, eax
je 0x494533
cvtss2sd xmm0, dword [ebp + 0x20]
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x80]
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x84]
sub esp, 8
movsd qword [esp], xmm0
cvtss2sd xmm0, dword [ebp - 0x6c]
sub esp, 8
movsd qword [esp], xmm0
push str.APERF_MPERF_mult:__0.2f___0.2f___0.2f__Target:__0.2f_
push 0x1b2dd00
call fcn.00432fe0
add esp, 0x28
push 0x1b2dd00
call fcn.00459dc0
add esp, 4
mov al, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004f66cd
mov esp, ebp
pop ebp
ret