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

Disassembly:
push rdi
sub rsp, 0x360
mov rax, qword [0x1402c94a0]
xor rax, rsp
mov qword [rsp + 0x350], rax
mov r8d, 0x200
lea rdx, [rsp + 0x150]
lea rcx, str._PROGRAMFILES__NVIDIA_Corporation_NVSMI_nvml.dll
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
lea rcx, [rsp + 0x150]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rdi, rax
test rax, rax
jne 0x1400a840b
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x20]
call fcn.140083980
lea rdx, str.Failed_to_obtain_all_required_NVML_function_pointers
lea rcx, [rsp + 0x30]
call fcn.14002e0a0
lea rcx, [rsp + 0x20]
call fcn.140026ca0
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x20]
call fcn.140083980
lea rdx, str.NVIDIA_hardware_monitoring_disabled
lea rcx, [rsp + 0x30]
call fcn.14002e0a0
lea rcx, [rsp + 0x20]
call fcn.140026ca0
xor eax, eax
jmp 0x1400a86d0
mov edx, 0x78
mov qword [rsp + 0x370], rbx
lea ecx, [rdx - 0x77]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
lea rdx, str.nvmlInit
mov rcx, rdi
mov rbx, rax
mov qword [rax], rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlDeviceGetCount_v2
mov qword [rbx + 0x30], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlDeviceGetHandleByIndex_v2
mov qword [rbx + 0x38], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlDeviceGetPciInfo
mov qword [rbx + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlDeviceGetName
mov qword [rbx + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlDeviceGetTemperature
mov qword [rbx + 0x50], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlDeviceGetFanSpeed
mov qword [rbx + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlDeviceGetPowerUsage
mov qword [rbx + 0x60], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.nvmlShutdown
mov qword [rbx + 0x68], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx + 0x30]
mov qword [rbx + 0x70], rax
test rcx, rcx
je 0x1400a865c
test rax, rax
je 0x1400a865c
cmp qword [rbx + 0x38], 0
je 0x1400a865c
cmp qword [rbx + 0x40], 0
je 0x1400a865c
cmp qword [rbx + 0x48], 0
je 0x1400a865c
cmp qword [rbx + 0x50], 0
je 0x1400a865c
cmp qword [rbx + 0x58], 0
je 0x1400a865c
cmp qword [rbx + 0x60], 0
je 0x1400a865c
cmp qword [rbx + 0x68], 0
je 0x1400a865c
mov qword [rsp + 0x378], rsi
mov qword [rsp + 0x388], r15
call rcx
lea rcx, [rbx + 8]
call qword [rbx + gethostname]
movsxd rcx, dword [rbx + 8]
mov edx, 8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
movsxd rcx, dword [rbx + 8]
mov edx, 4
mov qword [rbx + 0x28], rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
movsxd rcx, dword [rbx + 8]
mov edx, 4
mov qword [rbx + 0x10], rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
movsxd rcx, dword [rbx + 8]
mov edx, 4
mov qword [rbx + 0x18], rax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
xor esi, esi
mov qword [rbx + 0x20], rax
mov eax, dword [rbx + 8]
mov edi, esi
test eax, eax
jle 0x1400a8647
nop dword [rax]
nop word [rax + rax]
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 0x1400a85c0
test eax, eax
jle 0x1400a8647
mov qword [rsp + 0x380], r14
mov rdi, rsi
mov r14, rsi
nop dword [rax + rax]
mov rcx, qword [rbx + 0x28]
lea rdx, [rsp + 0x118]
mov rcx, qword [r14 + rcx]
call qword [rbx + 0x48]
mov rcx, qword [rbx + 0x10]
lea r14, [r14 + 8]
mov eax, dword [rsp + 0x128]
lea rdi, [rdi + 4]
inc esi
mov dword [rdi + rcx - 4], eax
mov rcx, qword [rbx + 0x18]
mov eax, dword [rsp + 0x12c]
mov dword [rdi + rcx - 4], eax
mov rcx, qword [rbx + 0x20]
mov eax, dword [rsp + 0x130]
mov dword [rdi + rcx - 4], eax
cmp esi, dword [rbx + 8]
jl 0x1400a85f0
mov r14, qword [rsp + 0x380]
mov r15, qword [rsp + 0x388]
mov rax, rbx
mov rsi, qword [rsp + 0x378]
jmp 0x1400a86c8
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x20]
call fcn.140083980
lea rdx, str.Failed_to_obtain_all_required_NVML_function_pointers
lea rcx, [rsp + 0x30]
call fcn.14002e0a0
lea rcx, [rsp + 0x20]
call fcn.140026ca0
lea rdx, str.e_91m_X
lea rcx, [rsp + 0x20]
call fcn.140083980
lea rdx, str.NVIDIA_hardware_monitoring_disabled
lea rcx, [rsp + 0x30]
call fcn.14002e0a0
lea rcx, [rsp + 0x20]
call fcn.140026ca0
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
mov rbx, qword [rsp + 0x370]
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.1401e4940
add rsp, 0x360
pop rdi
ret