Function at 0x140102140
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
movaps xmmword [rsp + 0x60], xmm6
mov edx, 0xfffffffd
movss xmm6, dword [0x14013eef8]
mov r12, rcx
movaps xmmword [rsp + 0x50], xmm7
movaps xmm7, xmm6
call fcn.1400fdf50
lea rcx, str.HWLOC_MEMTIERS_BANDWIDTH_THRESHOLD
mov r13d, eax
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x14010219c
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
lea rcx, str.HWLOC_MEMTIERS_LATENCY_THRESHOLD
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x1401021be
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
xorps xmm7, xmm7
cvtsd2ss xmm7, xmm0
mov rax, qword [r12 + 0x2d8]
lea rcx, [rax + 0x40]
test byte [rcx + 0xc], 2
lea rdi, [rax + 0x60]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xd0], rdi
jne 0x1401021ef
mov rdx, rcx
mov rcx, r12
call fcn.140102928
test byte [rdi + 0xc], 2
jne 0x140102200
mov rdx, rdi
mov rcx, r12
call fcn.140102928
mov rcx, r13
shl rcx, 5
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x20], rax
mov r15, rax
test rax, rax
je 0x1401026e6
and dword [rsp + 0xc0], 0
lea r14, [rax + 0x18]
test r13d, r13d
je 0x14010243a
mov r15d, dword [rsp + 0xc0]
mov rbx, r14
mov r8d, r15d
mov edx, 0xfffffffd
mov rcx, r12
call fcn.1400fdf80
and dword [rbx], 0
xor esi, esi
and qword [rbx - 0x10], 0
mov rbp, rax
and qword [rbx - 8], 0
mov qword [rbx - 0x18], rax
cmp dword [rax + 0xe0], esi
jbe 0x140102296
mov edi, esi
lea rdx, str.DAXType
shl rdi, 4
add rdi, qword [rbp + 0xd8]
mov rcx, qword [rdi]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x1401022b9
inc esi
cmp esi, dword [rbp + 0xe0]
jb 0x14010226c
xor edi, edi
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x1401022bf
lea rdx, str.GPUMemory
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x1401022bf
mov dword [rbx], 4
jmp 0x1401022f8
mov rdi, qword [rdi + 8]
jmp 0x140102298
test rdi, rdi
je 0x1401022f8
lea rdx, [0x14013ec18]
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x1401022df
mov dword [rbx], select
jmp 0x1401022f8
lea rdx, [0x14013ec14]
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
jne 0x1401022f8
mov dword [rbx], 8
xor edi, edi
cmp dword [rbp + 0xe0], edi
jbe 0x14010233b
mov esi, edi
lea rdx, str.CXLDevice
shl rsi, 4
add rsi, qword [rbp + 0xd8]
mov rcx, qword [rsi]
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x14010232e
inc edi
cmp edi, dword [rbp + 0xe0]
jb 0x140102302
jmp 0x14010233b
cmp qword [rsi + 8], 0
je 0x14010233b
and dword [rbx], 0x10
or dword [rbx], 0x20
mov r9, qword [rsp + 0xd8]
xor edx, edx
cmp dword [r9 + 0x10], edx
jbe 0x1401023af
mov r8, qword [r9 + 0x18]
lea rdi, [rdx + rdx*2]
shl rdi, 4
add rdi, r8
cmp qword [rdi], rbp
je 0x140102369
inc edx
cmp edx, dword [r9 + 0x10]
jb 0x14010234f
jmp 0x1401023af
test rdi, rdi
je 0x1401023af
mov rcx, qword [rbp + 0xb8]
call fcn.1400fd580
test eax, eax
jne 0x1401023af
mov rax, qword [rbp + 0xb8]
lea rdx, [rsp + 0x28]
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov rcx, rdi
mov dword [rsp + 0x28], 1
call fcn.140102db0
test rax, rax
je 0x1401023af
mov rax, qword [rax + 0x20]
mov qword [rbx - 0x10], rax
mov rdi, qword [rsp + 0xd0]
xor edx, edx
cmp dword [rdi + 0x10], edx
jbe 0x140102425
mov r8, qword [rdi + 0x18]
mov r9, rdi
lea rdi, [rdx + rdx*2]
shl rdi, 4
add rdi, r8
cmp qword [rdi], rbp
je 0x1401023df
inc edx
cmp edx, dword [r9 + 0x10]
jb 0x1401023c5
jmp 0x140102425
test rdi, rdi
je 0x140102425
mov rcx, qword [rbp + 0xb8]
call fcn.1400fd580
test eax, eax
jne 0x140102425
mov rax, qword [rbp + 0xb8]
lea rdx, [rsp + 0x28]
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov rcx, rdi
mov dword [rsp + 0x28], 1
call fcn.140102db0
test rax, rax
je 0x140102425
mov rax, qword [rax + 0x20]
mov qword [rbx - 8], rax
inc r15d
add rbx, 0x20
cmp r15d, r13d
jb 0x14010223e
mov r15, qword [rsp + 0x20]
lea r9, [0x140101d20]
mov r8d, 0x20
mov rdx, r13
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
and dword [r15 + 0x1c], 0
cmp r13d, 1
jbe 0x1401025c3
movss xmm3, dword [0x14013eefc]
lea r8, [r15 + 0x3c]
movsd xmm2, qword [0x1401350f8]
lea r9d, [r13 - 1]
mov eax, dword [r14]
mov r10d, dword [r14 + 4]
mov dword [r8], r10d
cmp dword [r8 - 4], eax
jne 0x1401025aa
mov rcx, qword [r8 - 0x14]
test rcx, rcx
je 0x14010251e
mov rdx, qword [r14 - 0x10]
test rdx, rdx
je 0x14010251e
xorps xmm0, xmm0
test rcx, rcx
js 0x1401024b3
cvtsi2ss xmm0, rcx
jmp 0x1401024c8
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
xorps xmm1, xmm1
test rdx, rdx
js 0x1401024d7
cvtsi2ss xmm1, rdx
jmp 0x1401024ec
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm3, xmm0
jbe 0x140102506
cvtps2pd xmm0, xmm0
movaps xmm1, xmm2
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
cvtps2pd xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
addsd xmm0, xmm2
comisd xmm1, xmm0
ja 0x1401025aa
mov rcx, qword [r8 - 0xc]
test rcx, rcx
je 0x1401025b1
mov rdx, qword [r14 - 8]
test rdx, rdx
je 0x1401025b1
xorps xmm0, xmm0
test rcx, rcx
js 0x140102543
cvtsi2ss xmm0, rcx
jmp 0x140102558
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
xorps xmm1, xmm1
test rdx, rdx
js 0x140102567
cvtsi2ss xmm1, rdx
jmp 0x14010257c
mov rax, rdx
and edx, 1
shr rax, 1
or rax, rdx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm3, xmm0
jbe 0x140102596
cvtps2pd xmm0, xmm0
movaps xmm1, xmm2
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
cvtps2pd xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm7
addsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x1401025b1
lea eax, [r10 + 1]
mov dword [r8], eax
add r14, 0x20
add r8, 0x20
sub r9, 1
jne 0x14010247a
lea ecx, [r13 - 1]
mov edx, 0x30
shl rcx, 5
mov ebp, dword [rcx + r15 + 0x1c]
inc ebp
mov ecx, ebp
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_calloc]
mov rbx, rax
test rax, rax
je 0x1401026dd
xor esi, esi
xor r12d, r12d
test ebp, ebp
je 0x140102627
lea rdi, [rax + 8]
call fcn.1400fca04
mov qword [rdi - 8], rax
test rax, rax
je 0x1401026bd
mov qword [rdi + 8], r12
inc esi
mov qword [rdi], r12
mov qword [rdi + 0x18], r12
mov qword [rdi + 0x10], r12
mov dword [rdi + 0x20], r12d
add rdi, 0x30
cmp esi, ebp
jb 0x1401025f8
test r13d, r13d
je 0x1401026a5
lea rdi, [r15 + 0x10]
mov r14, r13
mov eax, dword [rdi + 0xc]
mov rdx, qword [rdi - 0x10]
lea rsi, [rax + rax*2]
mov edx, dword [rdx + 0x10]
add rsi, rsi
mov rcx, qword [rbx + rsi*8]
call fcn.1400fd97c
mov eax, dword [rdi + 8]
mov dword [rbx + rsi*8 + 0x28], eax
cmp qword [rbx + rsi*8 + 8], r12
jne 0x140102664
mov rax, qword [rdi - 8]
mov qword [rbx + rsi*8 + 8], rax
mov rax, qword [rdi - 8]
mov qword [rbx + rsi*8 + 0x10], rax
mov rax, qword [rbx + rsi*8 + 0x18]
test rax, rax
je 0x14010267c
cmp qword [rdi], rax
jae 0x140102684
mov rax, qword [rdi]
mov qword [rbx + rsi*8 + 0x18], rax
mov rax, qword [rbx + rsi*8 + 0x20]
test rax, rax
je 0x140102693
cmp qword [rdi], rax
jbe 0x14010269b
mov rax, qword [rdi]
mov qword [rbx + rsi*8 + 0x20], rax
add rdi, 0x20
sub r14, 1
jne 0x140102633
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, qword [rsp + 0xc8]
mov dword [rax], ebp
mov rax, rbx
jmp 0x1401026e8
mov rdi, rbx
mov esi, ebp
mov rcx, qword [rdi]
call fcn.1400fd1fc
lea rdi, [rdi + 0x30]
sub rsi, 1
jne 0x1401026c2
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
movaps xmm6, xmmword [rsp + 0x60]
movaps xmm7, xmmword [rsp + 0x50]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret