Function at 0x1400dac70
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov r14, rcx
lea rcx, str.HWLOC_MEMTIERS_GUESS
call sub.msvcrt.dll_getenv
mov rbx, rax
test rax, rax
je 0x1400dacf0
lea rdx, [0x1402a3493]
mov rcx, rax
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400daeaa
lea rdx, [0x1402a3498]
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400dacf0
lea rdx, str.spm_is_hbm
mov rcx, rbx
call sub.msvcrt.dll_strcmp
mov dword [rsp + 0x30], 1
test eax, eax
je 0x1400dacf8
call fcn.1400ce690
cmp eax, 1
jle 0x1400db184
nop word [rax + rax]
mov dword [rsp + 0x30], 0xffffffff
mov rax, qword [r14 + 0x2d8]
mov qword [rsp + 0x28], rax
test byte [rax + 0x4c], 2
je 0x1400db150
mov edx, 0xfffffffd
mov rcx, r14
call fcn.1400d4750
mov dword [rsp + 0x34], eax
mov edi, eax
mov eax, eax
mov qword [rsp + 0x20], rax
lea rax, [rax + rax*2]
lea r12, [rax*8]
test edi, edi
je 0x1400dae5b
mov rcx, r12
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x1400db1a6
mov qword [rsp + 0x38], r13
mov r15d, dword [rsp + 0x34]
mov rbp, r13
xor r12d, r12d
mov r8d, r12d
mov edx, 0xfffffffd
mov rcx, r14
call fcn.1400d4790
mov rsi, rax
test rax, rax
je 0x1400daec0
mov dword [rbp + 0x10], 0
mov eax, dword [rsi + 0xe0]
mov qword [rbp], rsi
mov r8, qword [rsi + 0xd8]
mov qword [rbp + 8], 0
test eax, eax
je 0x1400dae16
sub eax, 1
mov r13, r8
lea rbx, str.DAXType
shl rax, 4
lea rdi, [r8 + rax + 0x10]
jmp 0x1400dadc9
add r13, 0x10
cmp r13, rdi
je 0x1400dae16
mov rcx, qword [r13]
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x1400dadc0
mov rbx, qword [r13 + 8]
test rbx, rbx
je 0x1400dae16
lea rdx, [0x1402a347a]
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x1400dadfc
mov dword [rbp + 0x10], 4
lea rdx, [0x1402a3476]
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x1400dae16
mov dword [rbp + 0x10], 3
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x1400dae36
lea rdx, str.GPUMemory
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x1400dae36
mov dword [rbp + 0x10], 5
cmp dword [rsp + 0x30], 0xffffffff
je 0x1400daee0
lea esi, [r12 + 1]
add rbp, 0x18
cmp r15d, esi
je 0x1400dafa0
mov r12d, esi
jmp 0x1400dad60
mov r8d, 0x502
lea rdx, str.memattrs.c
lea rcx, [0x1402a34ab]
call qword [sym.imp.msvcrt.dll__assert]
mov rcx, r12
call sub.msvcrt.dll_malloc
mov r13, rax
test rax, rax
je 0x1400db1a6
lea r9, [0x1400d9030]
mov r8d, 0x18
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll_qsort
mov rcx, r13
call fcn.140124a98
xor eax, eax
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 0x510
lea rdx, str.memattrs.c
lea rcx, [0x1402a34ad]
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x1400dad7c
mov rdi, qword [rsp + 0x28]
mov eax, dword [rdi + 0x50]
test eax, eax
je 0x1400dae41
sub eax, 1
mov rbx, qword [rdi + 0x58]
lea rax, [rax + rax*2]
shl rax, 4
lea rax, [rbx + rax + 0x30]
jmp 0x1400daf1d
add rbx, 0x30
cmp rbx, rax
je 0x1400dae41
cmp qword [rbx], rsi
jne 0x1400daf10
mov rdi, qword [rsi + 0xb8]
mov rcx, rdi
call fcn.1400e0cf0
test eax, eax
jne 0x1400dae41
mov eax, dword [rbx + 0x20]
test eax, eax
je 0x1400dae41
mov rsi, qword [rbx + 0x28]
sub eax, 1
lea rax, [rax + rax*4]
lea rbx, [rsi + rax*8 + 0x28]
jmp 0x1400daf6d
add rsi, 0x28
cmp rbx, rsi
je 0x1400dae41
cmp dword [rsi], 1
jne 0x1400daf60
mov rdx, qword [rsi + 8]
mov rcx, rdi
call fcn.1400e0f70
test eax, eax
je 0x1400daf60
mov rax, qword [rsi + 0x20]
lea esi, [r12 + 1]
add rbp, 0x18
mov qword [rbp - 0x10], rax
cmp r15d, esi
jne 0x1400dae53
nop dword [rax]
mov r13, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov r8d, 0x18
xor ebx, ebx
lea r9, [0x1400d9030]
mov rcx, r13
call sub.msvcrt.dll_qsort
lea rcx, [r13 + 0x10]
mov rax, rcx
jmp 0x1400dafe2
lea edx, [rbx + 1]
add rax, 0x18
cmp ebx, r12d
je 0x1400db0fb
mov ebx, edx
mov edx, dword [rax]
test edx, edx
je 0x1400dafd0
xor r8d, r8d
test ebx, ebx
jne 0x1400db0ed
mov eax, ebx
jmp 0x1400db007
add eax, 1
cmp eax, esi
jae 0x1400db015
mov edx, eax
lea rdx, [rdx + rdx*2]
cmp dword [r13 + rdx*8 + 0x10], 3
jbe 0x1400db000
cmp ebx, eax
jae 0x1400db12f
lea edx, [rax - 1]
cmp dword [rsp + 0x30], 0xffffffff
lea rdx, [rdx + rdx*2]
mov rdx, qword [r13 + rdx*8 + 8]
je 0x1400db161
test ebx, ebx
je 0x1400db051
xor edx, edx
nop word [rax + rax]
add edx, 1
mov dword [rcx], 1
add rcx, 0x18
cmp edx, ebx
jb 0x1400db040
cmp eax, ebx
jbe 0x1400db087
sub eax, 1
mov ecx, ebx
sub eax, ebx
lea rdx, [rcx + rcx*2]
add rax, rcx
lea rdx, [r13 + rdx*8 + 0x10]
lea rax, [rax + rax*2]
lea rax, [r13 + rax*8 + 0x28]
nop dword [rax]
mov dword [rdx], 2
add rdx, 0x18
cmp rax, rdx
jne 0x1400db078
mov rax, qword [rsp + 0x20]
mov rbp, qword [sym.imp.msvcrt.dll__strdup_1]
mov r12, r13
lea r15, [0x1402a3476]
lea rdi, [0x1402a347a]
lea rax, [rax + rax*2]
lea r14, [r13 + rax*8]
jmp 0x1400db0bd
add r12, 0x18
cmp r14, r12
je 0x1400daea0
mov rsi, qword [r12]
cmp qword [rsi + 8], 0
jne 0x1400db0b0
mov eax, dword [r12 + 0x10]
cmp eax, 3
je 0x1400db11a
ja 0x1400db110
cmp eax, 1
je 0x1400db120
cmp eax, 2
jne 0x1400db0b0
lea rcx, [0x1402a3472]
call rbp
mov qword [rsi + 8], rax
jmp 0x1400db0b0
mov r8, qword [r13 + 8]
cmp ebx, esi
jb 0x1400daff3
mov esi, ebx
cmp dword [rsp + 0x30], 0xffffffff
mov ebx, esi
je 0x1400db087
mov eax, esi
jmp 0x1400db038
mov rcx, rdi
cmp eax, 4
je 0x1400db0e5
jmp 0x1400db0b0
mov rcx, r15
jmp 0x1400db0e5
lea rcx, str.DRAM
cmp dword [rsp + 0x34], ebx
jne 0x1400db0e5
jmp 0x1400db0b0
cmp dword [rsp + 0x30], 0xffffffff
je 0x1400db087
test ebx, ebx
jne 0x1400db038
jmp 0x1400db087
lea rdx, [rax + 0x40]
mov rcx, r14
call fcn.1400d91b0
jmp 0x1400dad0e
test r8, r8
je 0x1400db087
test rdx, rdx
je 0x1400db087
add r8, r8
cmp r8, rdx
jb 0x1400db034
jmp 0x1400db087
mov ecx, 2
call qword [fcn.140124330]
mov r8, rbx
lea rdx, str.hwloc:_Failed_to_recognize_HWLOC_MEMTIERS_GUESS_value__s_n
mov rcx, rax
call fcn.1400d9060
jmp 0x1400dacf0
or eax, 0xffffffff
jmp 0x1400daeaa