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

Disassembly:
push rdi
sub rsp, 0x390
mov rax, qword [0x1403b8550]
xor rax, rsp
mov qword [rsp + 0x360], rax
mov r8d, 0x200
lea rdx, [rsp + 0x160]
lea rcx, str._WINDIR__System32_nvml.dll
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
lea rcx, [rsp + 0x160]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
jne 0x1400e4b9b
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x30]
call fcn.1400ca290
lea rdx, str.Failed_to_obtain_all_required_NVML_function_pointers
lea rcx, [rsp + 0x40]
call fcn.14004d670
lea rcx, [rsp + 0x30]
call fcn.140043a10
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x30]
call fcn.1400ca290
lea rdx, str.NVIDIA_hardware_monitoring_disabled
lea rcx, [rsp + 0x40]
call fcn.14004d670
lea rcx, [rsp + 0x30]
call fcn.140043a10
xor eax, eax
jmp 0x1400e4e97
mov qword [rsp + 0x3a0], rbx
mov edx, 0x78
mov qword [rsp + 0x3a8], rbp
mov qword [rsp + 0x3b0], rsi
mov qword [rsp + 0x388], r12
mov qword [rsp + 0x380], r13
lea ecx, [rdx - 0x77]
mov qword [rsp + 0x378], r14
mov qword [rsp + 0x370], r15
call fcn.1402805d0
lea rdx, str.nvmlInit
mov rcx, rdi
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetCount_v2
mov rcx, rdi
mov qword [rsp + 0x20], rax
mov qword [rbx + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetHandleByIndex_v2
mov rcx, rdi
mov rsi, rax
mov qword [rbx + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetPciInfo
mov rcx, rdi
mov rbp, rax
mov qword [rbx + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetName
mov rcx, rdi
mov r14, rax
mov qword [rbx + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetTemperature
mov rcx, rdi
mov r15, rax
mov qword [rbx + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetFanSpeed
mov rcx, rdi
mov r13, rax
mov qword [rbx + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlDeviceGetPowerUsage
mov rcx, rdi
mov qword [rsp + 0x28], rax
mov qword [rbx + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.nvmlShutdown
mov rcx, rdi
mov r12, rax
mov qword [rbx + 0x68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x20]
mov qword [rbx + 0x70], rax
test rcx, rcx
je 0x1400e4df4
test rax, rax
je 0x1400e4df4
test rsi, rsi
je 0x1400e4df4
test rbp, rbp
je 0x1400e4df4
test r14, r14
je 0x1400e4df4
test r15, r15
je 0x1400e4df4
test r13, r13
je 0x1400e4df4
cmp qword [rsp + 0x28], 0
je 0x1400e4df4
test r12, r12
je 0x1400e4df4
call rcx
lea rcx, [rbx + 8]
call qword [rbx + 0x38]
movsxd rcx, dword [rbx + 8]
mov edx, 8
call fcn.1402805d0
movsxd rcx, dword [rbx + 8]
mov edx, 4
mov qword [rbx + 0x28], rax
call fcn.1402805d0
movsxd rcx, dword [rbx + 8]
mov edx, 4
mov qword [rbx + 0x10], rax
call fcn.1402805d0
movsxd rcx, dword [rbx + 8]
mov edx, 4
mov qword [rbx + 0x18], rax
call fcn.1402805d0
xor esi, esi
mov qword [rbx + 0x20], rax
mov eax, dword [rbx + 8]
mov edi, esi
test eax, eax
jle 0x1400e4def
nop
mov rax, qword [rbx + 0x28]
movsxd rcx, edi
lea rdx, [rax + rcx*8]
mov ecx, edi
call qword [rbx + 0x40]
mov eax, dword [rbx + 8]
inc edi
cmp edi, eax
jl 0x1400e4d70
test eax, eax
jle 0x1400e4def
mov rdi, rsi
mov r14, rsi
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rbx + 0x28]
lea rdx, [rsp + 0x128]
mov rcx, qword [r14 + rcx]
call qword [rbx + 0x48]
mov rcx, qword [rbx + 0x10]
lea r14, [r14 + 8]
mov eax, dword [rsp + 0x138]
lea rdi, [rdi + 4]
inc esi
mov dword [rdi + rcx - 4], eax
mov rcx, qword [rbx + 0x18]
mov eax, dword [rsp + 0x13c]
mov dword [rdi + rcx - 4], eax
mov rcx, qword [rbx + 0x20]
mov eax, dword [rsp + 0x140]
mov dword [rdi + rcx - 4], eax
cmp esi, dword [rbx + 8]
jl 0x1400e4da0
mov rax, rbx
jmp 0x1400e4e5f
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x30]
call fcn.1400ca290
lea rdx, str.Failed_to_obtain_all_required_NVML_function_pointers
lea rcx, [rsp + 0x40]
call fcn.14004d670
lea rcx, [rsp + 0x30]
call fcn.140043a10
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x30]
call fcn.1400ca290
lea rdx, str.NVIDIA_hardware_monitoring_disabled
lea rcx, [rsp + 0x40]
call fcn.14004d670
lea rcx, [rsp + 0x30]
call fcn.140043a10
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rbx
call fcn.140285f7c
xor eax, eax
mov r14, qword [rsp + 0x378]
mov r13, qword [rsp + 0x380]
mov r12, qword [rsp + 0x388]
mov rsi, qword [rsp + 0x3b0]
mov rbp, qword [rsp + 0x3a8]
mov rbx, qword [rsp + 0x3a0]
mov r15, qword [rsp + 0x370]
mov rcx, qword [rsp + 0x360]
xor rcx, rsp
call fcn.140250db0
add rsp, 0x390
pop rdi
ret