Function at 0x180016590
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
movaps xmmword [rsp + 0x50], xmm6
mov rbx, rcx
movss xmm6, dword [0x180066450]
mov ecx, 0x18
movaps xmmword [rsp + 0x40], xmm7
mov rsi, r9
movss xmm7, dword [0x180066448]
mov edi, edx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rsp + 0x20], rax
mov r14, rax
test rax, rax
jne 0x1800165f5
xor ebp, ebp
mov qword [rsp + 0x20], rbp
jmp 0x180016630
mov ecx, 0x40
mov dword [rax], 1
mov dword [rax + 4], 0x10
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r14 + 8], rax
test rax, rax
jne 0x180016628
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor ebp, ebp
mov qword [rsp + 0x20], rbp
jmp 0x180016630
xor ebp, ebp
mov dword [rax], ebp
mov dword [r14 + 0x10], ebp
mov ecx, 0x18
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r13, rax
test rax, rax
jne 0x180016648
mov r13, rbp
jmp 0x18001667d
mov ecx, 0x40
mov dword [rax], 1
mov dword [rax + 4], 0x10
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r13 + 8], rax
test rax, rax
jne 0x180016677
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r13, rbp
jmp 0x18001667d
mov dword [rax], ebp
mov dword [r13 + 0x10], ebp
mov ecx, 0x18
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r15, rax
test rax, rax
jne 0x180016695
mov r15, rbp
jmp 0x1800166ca
mov ecx, 0x40
mov dword [rax], 1
mov dword [rax + 4], 0x10
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r15 + 8], rax
test rax, rax
jne 0x1800166c4
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r15, rbp
jmp 0x1800166ca
mov dword [rax], ebp
mov dword [r15 + 0x10], ebp
mov ecx, 0x18
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r12, rax
test rax, rax
jne 0x1800166e2
mov r12, rbp
jmp 0x180016719
mov ecx, 0x40
mov dword [rax], 1
mov dword [rax + 4], 0x10
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [r12 + 8], rax
test rax, rax
jne 0x180016712
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r12, rbp
jmp 0x180016719
mov dword [rax], ebp
mov dword [r12 + 0x10], ebp
test edi, edi
je 0x1800167ac
mov r14, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x20]
nop
mov r8, qword [r14]
mov rdx, rsi
mov rcx, rsi
mov r8, qword [r8 + 0xa0]
call fcn.1800146b0
mov rax, qword [r14]
mov r8, qword [rax + 0xa8]
test r8, r8
je 0x18001675f
mov rdx, r13
mov rcx, r13
call fcn.1800146b0
mov rax, qword [r14]
mov r8, qword [rax + 0xc0]
test r8, r8
je 0x180016779
mov rdx, r15
mov rcx, r15
call fcn.1800146b0
mov rax, qword [r14]
mov r8, qword [rax + 0xc8]
test r8, r8
je 0x180016793
mov rdx, r12
mov rcx, r12
call fcn.1800146b0
add r14, 8
sub rdi, 1
jne 0x180016730
mov edi, dword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0x20]
mov rcx, rbx
call fcn.1800158b0
mov r14, rax
test rax, rax
je 0x180016807
mov rdx, qword [r14 + 0xc0]
mov rcx, r15
call fcn.1800145e0
test eax, eax
je 0x1800167fe
mov rdx, qword [r14 + 0xc8]
mov rcx, r12
call fcn.1800145e0
test eax, eax
je 0x1800167fe
mov rdx, qword [r14 + 0xa8]
mov rcx, r13
call fcn.1800145e0
test eax, eax
jne 0x180016a2f
mov r14, qword [r14 + 0x58]
test r14, r14
jne 0x1800167c1
cmp dword [0x1800759b4], 0
jne 0x18001683b
lea rcx, str.HWLOC_HIDE_ERRORS
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x180016831
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov dword [0x1800759b0], eax
mov dword [0x1800759b4], 1
cmp dword [0x1800759b0], 0
mov r14, qword [rsp + 0x20]
jne 0x1800169ac
mov r8, r14
xor edx, edx
xor ecx, ecx
call fcn.180013ed0
inc eax
movsxd rbx, eax
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, r14
mov rdx, rbx
mov rcx, rax
mov rsi, rax
call fcn.180013ed0
mov r8, r15
xor edx, edx
xor ecx, ecx
call fcn.180013ed0
inc eax
movsxd rbx, eax
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, r15
mov rdx, rbx
mov rcx, rax
mov rdi, rax
call fcn.180013ed0
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str._n
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea r8, str.1.11.7
lea rdx, str._hwloc__s_has_encountered_an_error_when_adding_a_distance_matrix_to_the_topology._n
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, [0x180063700]
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str._hwloc_distances__finalize_logical___could_not_find_any_object_covering_n
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r9, rdi
lea rdx, str._cpuset__s_and_nodeset__s_n
mov rcx, rax
mov r8, rsi
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, [0x180063700]
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str._Please_report_this_error_message_to_the_hwloc_users_mailing_list__n
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str._along_with_any_relevant_topology_information_from_your_platform._n
call fcn.18000dd30
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str._n
call fcn.18000dd30
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r14, r14
je 0x1800169c4
mov rcx, qword [r14 + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r13, r13
je 0x1800169dc
mov rcx, qword [r13 + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r15, r15
je 0x1800169f4
mov rcx, qword [r15 + 8]
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]
test r12, r12
je 0x180016a0d
mov rcx, qword [r12 + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp dword [r14], 8
jne 0x180016a3f
mov r14, qword [r14 + 0x58]
cmp dword [r14], 8
je 0x180016a35
mov rax, qword [rsp + 0x20]
test rax, rax
je 0x180016a5e
mov rcx, qword [rax + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r13, r13
je 0x180016a76
mov rcx, qword [r13 + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
test r15, r15
je 0x180016a8e
mov rcx, qword [r15 + 8]
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]
test r12, r12
je 0x180016aa7
mov rcx, qword [r12 + 8]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, r12
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rdx, qword [rsp + 0xb0]
mov r8d, dword [r14 + 0x38]
mov rax, qword [rdx]
mov r12d, dword [rax + 0x38]
cmp r8d, r12d
jae 0x180016a0d
mov r9d, ebp
mov rcx, rbp
nop dword [rax]
test rcx, rcx
jne 0x180016b4a
cmp r12d, dword [rbx]
jb 0x180016b30
cmp r12d, 0xfffffffb
je 0x180016b1b
cmp r12d, 0xfffffffc
je 0x180016b06
cmp r12d, 0xfffffffd
je 0x180016af1
mov rcx, rbp
jmp 0x180016b54
cmp dword [rbx + 0x688], 0
jbe 0x180016aec
mov rax, qword [rbx + 0x690]
mov rcx, qword [rax]
jmp 0x180016b54
cmp dword [rbx + 0x6a8], 0
jbe 0x180016aec
mov rax, qword [rbx + 0x6b0]
mov rcx, qword [rax]
jmp 0x180016b54
cmp dword [rbx + 0x6c8], 0
jbe 0x180016aec
mov rax, qword [rbx + 0x6d0]
mov rcx, qword [rax]
jmp 0x180016b54
cmp dword [rbx + r12*4 + 8], 0
ja 0x180016b3d
mov rcx, rbp
jmp 0x180016b54
mov rax, qword [rbx + r12*8 + 0x208]
mov rcx, qword [rax]
jmp 0x180016b54
cmp dword [rcx + 0x38], r12d
jne 0x180016b80
mov rcx, qword [rcx + 0x48]
test rcx, rcx
je 0x180016b80
mov rdx, qword [rcx + 0x58]
cmp dword [rdx + 0x38], r8d
jbe 0x180016b6d
mov rdx, qword [rdx + 0x58]
cmp dword [rdx + 0x38], r8d
ja 0x180016b63
lea eax, [r9 + 1]
cmp rdx, r14
cmovne eax, r9d
mov r9d, eax
jmp 0x180016ad0
cmp r9d, edi
jne 0x180016a0d
or r15d, 0xffffffff
test edi, edi
je 0x180016bb6
mov rdx, qword [rsp + 0xb0]
mov r8d, edi
nop dword [rax]
mov rax, qword [rdx]
lea rdx, [rdx + 8]
cmp r15d, dword [rax + 0x3c]
cmova r15d, dword [rax + 0x3c]
sub r8, 1
jne 0x180016ba0
mov r10d, ebp
test edi, edi
je 0x180016c89
mov r8d, ebp
cmp edi, 4
jb 0x180016c42
mov edx, r10d
lea eax, [rdi - 4]
imul edx, edi
shr eax, 2
inc edx
inc eax
mov r9d, eax
lea r8d, [rax*4]
nop dword [rax]
nop dword [rax + rax]
movss xmm3, dword [rsi + rdx*4]
lea eax, [rdx - 1]
movss xmm2, dword [rsi + rax*4]
lea eax, [rdx + 1]
movaps xmm0, xmm2
maxss xmm2, xmm7
minss xmm0, xmm6
movaps xmm1, xmm3
maxss xmm3, xmm2
movss xmm2, dword [rsi + rax*4]
minss xmm1, xmm0
movaps xmm0, xmm2
lea eax, [rdx + 2]
movss xmm7, dword [rsi + rax*4]
lea edx, [rdx + 4]
movaps xmm6, xmm7
maxss xmm2, xmm3
minss xmm0, xmm1
maxss xmm7, xmm2
minss xmm6, xmm0
sub r9, 1
jne 0x180016bf0
cmp r8d, edi
jae 0x180016c6f
mov edx, r10d
imul edx, edi
lea eax, [rdx + r8]
inc r8d
movss xmm1, dword [rsi + rax*4]
movaps xmm0, xmm1
maxss xmm1, xmm7
minss xmm0, xmm6
movaps xmm7, xmm1
movaps xmm6, xmm0
cmp r8d, edi
jb 0x180016c4d
inc r10d
cmp r10d, edi
jb 0x180016bc1
xorps xmm0, xmm0
ucomiss xmm6, xmm0
jp 0x180016c89
je 0x180016a0d
mov edx, dword [r14 + 0xe0]
mov rcx, qword [r14 + 0xd8]
inc edx
shl rdx, 3
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_realloc]
test rax, rax
je 0x180016a0d
movsxd rdx, dword [r14 + 0xe0]
mov ecx, 0x18
mov qword [r14 + 0xd8], rax
mov rbx, rdx
lea eax, [rdx + 1]
mov dword [r14 + 0xe0], eax
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, qword [r14 + 0xd8]
mov qword [rcx + rbx*8], rax
mov rax, qword [r14 + 0xd8]
sub r12d, dword [r14 + 0x38]
mov rcx, qword [rax + rbx*8]
mov dword [rcx], r12d
mov rax, qword [r14 + 0xd8]
mov rcx, qword [rax + rbx*8]
mov dword [rcx + 4], edi
mov ecx, edi
imul ecx, edi
shl rcx, 2
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, qword [r14 + 0xd8]
mov r11, rax
divss xmm7, xmm6
mov rdx, qword [rcx + rbx*8]
mov qword [rdx + 8], rax
mov rcx, qword [r14 + 0xd8]
mov rdx, qword [rcx + rbx*8]
movss dword [rdx + 0x14], xmm6
mov rcx, qword [r14 + 0xd8]
mov rdx, qword [rcx + rbx*8]
movss dword [rdx + 0x10], xmm7
test edi, edi
je 0x180016a0d
mov rdx, qword [rsp + 0xb0]
lea ecx, [rdi + 1]
mov r13, rdx
mov qword [rsp + 0x30], rdx
nop dword [rax]
mov rax, qword [r13]
lea r12d, [rbp + 1]
mov dword [rsp + 0x20], r12d
mov r8d, r12d
mov r10d, dword [rax + 0x3c]
mov eax, ecx
imul eax, ebp
sub r10d, r15d
movss xmm0, dword [rsi + rax*4]
mov eax, ecx
imul eax, r10d
divss xmm0, xmm6
movss dword [r11 + rax*4], xmm0
cmp r12d, edi
jae 0x180016f86
mov eax, edi
sub eax, r12d
cmp eax, 4
jb 0x180016f25
mov rdx, qword [rsp + 0xb0]
lea ebx, [r12 + 1]
mov ecx, ebp
mov r9d, r10d
imul ecx, edi
mov r13d, 1
imul r9d, edi
mov eax, 2
lea rdx, [rdx + r12*8]
add rdx, 0x10
mov qword [rsp + 0x28], rdx
mov r14d, ecx
add ebx, ecx
neg r14d
sub r13d, ecx
sub eax, ecx
mov r12d, eax
nop dword [rax]
mov rax, qword [rdx - 0x10]
mov edx, dword [rax + 0x3c]
lea eax, [rbx - 1]
movss xmm0, dword [rsi + rax*4]
sub edx, r15d
divss xmm0, xmm6
lea eax, [r9 + rdx]
imul edx, edi
movss dword [r11 + rax*4], xmm0
mov eax, r8d
imul eax, edi
add r8d, 4
add edx, r10d
add eax, ebp
movss xmm0, dword [rsi + rax*4]
mov rax, qword [rsp + 0x28]
divss xmm0, xmm6
mov rax, qword [rax - 8]
movss dword [r11 + rdx*4], xmm0
mov edx, dword [rax + 0x3c]
movss xmm0, dword [rsi + rbx*4]
sub edx, r15d
divss xmm0, xmm6
lea eax, [r9 + rdx]
imul edx, edi
movss dword [r11 + rax*4], xmm0
lea eax, [r14 + rbx]
imul eax, edi
add edx, r10d
add eax, ebp
movss xmm0, dword [rsi + rax*4]
mov rax, qword [rsp + 0x28]
divss xmm0, xmm6
mov rax, qword [rax]
movss dword [r11 + rdx*4], xmm0
mov edx, dword [rax + 0x3c]
lea eax, [rbx + 1]
movss xmm0, dword [rsi + rax*4]
sub edx, r15d
divss xmm0, xmm6
lea eax, [r9 + rdx]
imul edx, edi
movss dword [r11 + rax*4], xmm0
lea eax, [rbx + r13]
imul eax, edi
add edx, r10d
add eax, ebp
movss xmm0, dword [rsi + rax*4]
mov rax, qword [rsp + 0x28]
divss xmm0, xmm6
mov rax, qword [rax + 8]
movss dword [r11 + rdx*4], xmm0
mov edx, dword [rax + 0x3c]
lea eax, [rbx + 2]
movss xmm0, dword [rsi + rax*4]
sub edx, r15d
divss xmm0, xmm6
lea eax, [r9 + rdx]
imul edx, edi
movss dword [r11 + rax*4], xmm0
lea eax, [r12 + rbx]
imul eax, edi
lea ebx, [rbx + 4]
add edx, r10d
add eax, ebp
movss xmm0, dword [rsi + rax*4]
lea eax, [rdi - 3]
divss xmm0, xmm6
movss dword [r11 + rdx*4], xmm0
mov rdx, qword [rsp + 0x28]
add rdx, 0x20
mov qword [rsp + 0x28], rdx
cmp r8d, eax
jb 0x180016df0
mov r12d, dword [rsp + 0x20]
mov r13, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xb0]
cmp r8d, edi
jae 0x180016f86
mov eax, r8d
mov ebx, ebp
imul ebx, edi
mov r14d, r10d
imul r14d, edi
lea r9, [rdx + rax*8]
mov rax, qword [r9]
lea r9, [r9 + 8]
mov edx, dword [rax + 0x3c]
lea eax, [rbx + r8]
movss xmm0, dword [rsi + rax*4]
sub edx, r15d
divss xmm0, xmm6
lea eax, [r14 + rdx]
imul edx, edi
movss dword [r11 + rax*4], xmm0
mov eax, r8d
imul eax, edi
inc r8d
add edx, r10d
add eax, ebp
movss xmm0, dword [rsi + rax*4]
divss xmm0, xmm6
movss dword [r11 + rdx*4], xmm0
cmp r8d, edi
jb 0x180016f3d
mov rdx, qword [rsp + 0xb0]
lea ecx, [rdi + 1]
add r13, 8
mov ebp, r12d
mov qword [rsp + 0x30], r13
cmp r12d, edi
jb 0x180016d60
jmp 0x180016a0d