Function at 0x1400ae5c0
Capabilities:
Link many functions at runtime
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x260
mov rax, qword [0x14061da68]
xor rax, rsp
mov qword [rsp + 0x250], rax
lea rcx, str.nvapi64.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
jne 0x1400ae5fd
lea rcx, str.nvapi64.dll_load_failed_n
jmp 0x1400aeb54
lea rdx, str.nvapi_QueryInterface
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671ca8], rax
test rax, rax
jne 0x1400ae625
lea rcx, str.nvapi_QueryInterface_load_failed_n
jmp 0x1400aeb54
mov ecx, 0xf4dae6b
call rax
mov qword [0x140671cd0], rax
mov ecx, 0x34206d86
call qword [0x140671ca8]
mov qword [0x140671cc8], rax
mov ecx, 0x70916171
call qword [0x140671ca8]
mov qword [0x140671cb0], rax
mov ecx, 0xad95f5ed
call qword [0x140671ca8]
mov qword [0x140671c50], rax
mov ecx, 0xa4dfd3f2
call qword [0x140671ca8]
mov ecx, 0xedcf624e
call qword [0x140671ca8]
mov qword [0x140671c60], rax
mov ecx, 0xe3640a56
call qword [0x140671ca8]
mov ecx, 0x189a1fdf
call qword [0x140671ca8]
mov qword [0x140671c30], rax
mov ecx, 0x891fa0ae
call qword [0x140671ca8]
mov qword [0x140671c80], rax
mov ecx, 0x8f6ed0fb
call qword [0x140671ca8]
mov qword [0x140671c18], rax
mov ecx, 0x42aea16a
call qword [0x140671ca8]
mov qword [0x140671be8], rax
mov ecx, 0x65fe3aad
call qword [0x140671ca8]
mov qword [0x140671c68], rax
mov ecx, 0xfb85b01e
call qword [0x140671ca8]
mov qword [0x140671c58], rax
mov ecx, 0x35aed5e8
call qword [0x140671ca8]
mov qword [0x140671bd0], rax
mov ecx, 0x814b209f
call qword [0x140671ca8]
mov qword [0x140671bf0], rax
mov ecx, 0xa58971a5
call qword [0x140671ca8]
mov qword [0x140671c28], rax
mov ecx, 0x21537ad4
call qword [0x140671ca8]
mov qword [0x140671be0], rax
mov ecx, 0x23f1b133
call qword [0x140671ca8]
mov qword [0x140671c88], rax
mov ecx, 0x733e009
call qword [0x140671ca8]
mov qword [0x140671cc0], rax
mov ecx, 0x465f9bcf
call qword [0x140671ca8]
mov qword [0x140671c20], rax
mov ecx, 0x507b4b59
call qword [0x140671ca8]
mov qword [0x140671c10], rax
mov ecx, 0xb4b26b65
call qword [0x140671ca8]
mov qword [0x140671c38], rax
mov ecx, 0xc12eb19e
call qword [0x140671ca8]
mov qword [0x140671cb8], rax
mov ecx, 0xf40238ef
call qword [0x140671ca8]
mov qword [0x140671c08], rax
mov ecx, 0x2eb3c140
call qword [0x140671ca8]
mov qword [0x140671cf0], rax
call fcn.14018a330
test eax, eax
je 0x1400ae7ea
lea rcx, str.nvapi_failed_to_init_n
call fcn.1400ae560
lea rcx, str.nvml.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
jne 0x1400ae93b
mov r8d, 0xe0
lea rdx, [rsp + 0x40]
lea rcx, str.ProgramFiles
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0xde
ja 0x1400aeb59
xor edi, edi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], di
lea rax, [rsp + 0x40]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], di
jne 0x1400ae850
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x20]
call fcn.14005c800
nop
mov r8d, 0x22
lea rdx, str.NVIDIA_CorporationNVSMI_nvml.dll
lea rcx, [rsp + 0x20]
call fcn.14005d0b0
lea rcx, [rsp + 0x20]
cmp qword [rsp + 0x38], 8
cmovae rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rbx, rax
mov rdx, qword [rsp + 0x38]
test rax, rax
jne 0x1400ae8eb
cmp rdx, 8
jb 0x1400aeb59
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400ae8e1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400aeb7a
call fcn.1402bf814
jmp 0x1400aeb59
cmp rdx, 8
jb 0x1400ae928
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400ae923
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400aeb7a
call fcn.1402bf814
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 7
mov word [rsp + 0x20], di
lea rdx, str.nvmlInit_v2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlInitWithFlags
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671d00], rax
lea rdx, str.nvmlShutdown
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671c98], rax
lea rdx, str.nvmlDeviceGetHandleByPciBusId_v2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671ca0], rax
lea rdx, str.nvmlDeviceGetHandleByIndex_v2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetCount_v2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetPowerUsage
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671bb8], rax
lea rdx, str.nvmlDeviceGetPowerManagementLimit
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671cf8], rax
lea rdx, str.nvmlDeviceGetPowerManagementLimitConstraints
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671c90], rax
lea rdx, str.nvmlDeviceGetPowerManagementDefaultLimit
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671ce0], rax
lea rdx, str.nvmlDeviceGetFanSpeed
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671cd8], rax
lea rdx, str.nvmlDeviceGetUUID
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671c70], rax
lea rdx, str.nvmlDeviceGetMemoryInfo
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671c00], rax
lea rdx, str.nvmlDeviceGetPciInfo_v2
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671c48], rax
lea rdx, str.nvmlDeviceGetDisplayMode
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671bc8], rax
lea rdx, str.nvmlSystemGetDriverVersion
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671bc0], rax
lea rdx, str.nvmlDeviceGetCurrentClocksThrottleReasons
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671bd8], rax
lea rdx, str.nvmlDeviceResetGpuLockedClocks
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671bf8], rax
lea rdx, str.nvmlDeviceSetGpuLockedClocks
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671ce8], rax
lea rdx, str.nvmlDeviceGetClock
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671c40], rax
lea rdx, str.nvmlDeviceGetPowerManagementMode
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140671c78], rax
lea rdx, str.nvmlDeviceGetSupportedGraphicsClocks
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetSupportedMemoryClocks
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceSetApplicationsClocks
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rax, qword [0x140671d00]
test rax, rax
je 0x1400aeb59
xor ecx, ecx
call rax
test eax, eax
je 0x1400aeb59
lea rcx, str.error_init_nvml.dll_n
call fcn.1400ae560
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.1402bf7f0
mov rbx, qword [rsp + 0x270]
add rsp, 0x260
pop rdi
ret
call fcn.1402d3d9c
int3