Function at 0x180021fb0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0x78
xor ebp, ebp
mov r12, rcx
lea rcx, str.HWLOC_SYNTHETIC_VERBOSE
mov dword [rsp + 0xc0], ebp
mov r14d, ebp
mov dword [rsp + 0x30], ebp
mov dword [rsp + 0x34], ebp
mov r13d, ebp
mov dword [rsp + 0xc8], ebp
mov rsi, rdx
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
lea r15d, [rbp + 1]
test rax, rax
je 0x18002200e
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov r13d, eax
mov dword [r12 + 0xc], r15d
mov dword [r12 + 0x10], r15d
mov qword [r12 + 0x28], rbp
mov qword [r12 + 0x38], rbp
mov qword [r12 + 0x20], rbp
cmp byte [rsi], 0x28
jne 0x180022055
lea r8, [r12 + 8]
mov r9d, r13d
lea rcx, [rsi + 1]
lea rdx, [rsp + 0xb8]
call fcn.180021de0
test eax, eax
js 0x180022619
mov rsi, qword [rsp + 0xb8]
mov qword [rsp + 0x70], rbx
mov rbx, rsi
mov qword [rsp + 0x68], rdi
mov edi, r15d
mov dword [rsp + 0x38], edi
cmp byte [rsi], bpl
je 0x180022341
nop dword [rax]
nop word [rax + rax]
or esi, 0xffffffff
mov eax, r14d
shl rax, 6
or ecx, esi
add r12, rax
mov dword [rsp + 0x3c], esi
or edx, esi
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x44], edx
mov dword [r12 + 8], ebp
cmp byte [rbx], 0x20
jne 0x1800220af
inc rbx
cmp byte [rbx], 0x20
je 0x1800220a7
movzx eax, byte [rbx]
test al, al
je 0x1800222d5
sub al, 0x30
cmp al, 9
jbe 0x180022131
lea r9, [rsp + 0x44]
mov qword [rsp + 0x20], 4
lea r8, [rsp + 0x40]
mov rcx, rbx
lea rdx, [rsp + 0x3c]
call fcn.180012a10
test eax, eax
js 0x180022237
mov esi, dword [rsp + 0x3c]
test esi, esi
je 0x18002220c
lea eax, [rsi - 8]
cmp eax, 2
jbe 0x18002220c
cmp esi, 0xb
je 0x18002220c
mov edx, 0x3a
mov rcx, rbx
call qword [sym.imp.VCRUNTIME140.dll_strchr]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1800221e1
mov ecx, dword [rsp + 0x40]
lea rbx, [rax + 1]
mov edx, dword [rsp + 0x44]
shl rdi, 6
xor r8d, r8d
add rdi, qword [rsp + 0xb0]
mov dword [rdi + 0x14], ecx
mov rcx, rbx
mov dword [rdi + 0x18], edx
lea rdx, [rsp + 0x50]
mov dword [rdi + 0x10], esi
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtoul]
mov rcx, qword [rsp + 0x50]
cmp rcx, rbx
je 0x1800222b1
test eax, eax
je 0x18002228d
imul r15d, eax
mov dword [r12 + 8], eax
mov qword [rdi + 0x28], rbp
mov qword [rdi + 0x38], rbp
mov qword [rdi + 0x20], rbp
mov dword [rdi + 0xc], r15d
cmp byte [rcx], 0x28
jne 0x1800221ac
lea r8, [rdi + 8]
inc rcx
mov r9d, r13d
lea rdx, [rsp + 0x50]
call fcn.180021de0
test eax, eax
js 0x180022302
mov rcx, qword [rsp + 0x50]
lea eax, [r14 + 2]
cmp eax, 0x80
jae 0x180022262
mov edi, dword [rsp + 0x38]
inc r14d
inc edi
mov rbx, rcx
mov dword [rsp + 0x38], edi
cmp byte [rcx], bpl
je 0x1800222d5
mov r12, qword [rsp + 0xb0]
jmp 0x180022080
test r13d, r13d
je 0x1800222f6
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rbx
lea rdx, str.Synthetic_string_doesnt_have_a__:_after_object_type_at__s_n
mov rcx, rax
call fcn.18000dd30
jmp 0x1800222f6
test r13d, r13d
je 0x1800222f6
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rbx
lea rdx, str.Synthetic_string_with_disallowed_object_type_at__s_n
mov rcx, rax
call fcn.18000dd30
jmp 0x1800222f6
test r13d, r13d
je 0x1800222f6
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rbx
lea rdx, str.Synthetic_string_with_unknown_object_type_at__s_n
mov rcx, rax
call fcn.18000dd30
jmp 0x1800222f6
test r13d, r13d
je 0x1800222f6
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8d, 0x80
lea rdx, str.Too_many_synthetic_levels__max__d_n
mov rcx, rax
call fcn.18000dd30
jmp 0x1800222f6
test r13d, r13d
je 0x1800222f6
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rbx
lea rdx, str.Synthetic_string_with_disallow_0_number_of_objects_at__s_n
mov rcx, rax
call fcn.18000dd30
jmp 0x1800222f6
test r13d, r13d
je 0x1800222f6
mov ecx, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov r8, rbx
lea rdx, str.Synthetic_string_doesnt_have_a_number_of_objects_at__s_n
mov rcx, rax
call fcn.18000dd30
jmp 0x1800222f6
test edi, edi
jne 0x180022336
test r13d, r13d
je 0x1800222f6
lea ecx, [rdi + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rcx, rax
lea rdx, str.Synthetic_string_doesnt_contain_any_object_n
call fcn.18000dd30
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
mov rbx, qword [rsp + 0xb0]
add rbx, 8
nop
mov rcx, qword [rbx + 0x30]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
cmp dword [rbx], 0
je 0x18002260c
inc ebp
add rbx, 0x40
cmp ebp, 0x80
jb 0x180022310
jmp 0x18002260c
mov r12, qword [rsp + 0xb0]
mov r14d, ebp
lea esi, [rdi - 1]
mov r8d, 2
mov r9d, esi
test esi, esi
je 0x1800225e3
mov eax, r9d
lea r10, [r12 + 0x10]
shl rax, 6
lea rbx, [0x180000000]
add r10, rax
nop dword [rax + rax]
mov edx, dword [r10]
cmp r9d, esi
jne 0x1800223a0
cmp edx, 0xffffffff
je 0x1800223ae
cmp edx, 6
je 0x1800223a9
test r13d, r13d
je 0x180022600
mov ecx, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.Synthetic_string_cannot_use_non_PU_type_for_last_level_n
jmp 0x1800225f8
cmp edx, 6
je 0x1800225cc
cmp edx, 0xffffffff
jne 0x1800223fe
cmp r9d, esi
jne 0x1800223ba
mov edx, 6
jmp case.default.0x1800223da
lea ecx, [r9 + 1]
shl rcx, 6
mov eax, dword [rcx + r12 + 0x10]
dec eax
cmp eax, 6
ja case.default.0x1800223da
cdqe
mov ecx, dword [rbx + rax*4 + 0x22628]
add rcx, rbx
jmp rcx
mov edx, 5
jmp case.default.0x1800223da
mov edx, 4
jmp case.default.0x1800223da
mov edx, 3
jmp case.default.0x1800223da
mov edx, r8d
jmp case.default.0x1800223da
mov edx, 7
mov dword [r10], edx
mov ecx, dword [rsp + 0xc0]
mov eax, dword [rsp + 0xc8]
mov r11d, dword [rsp + 0x34]
sub edx, 1
je 0x18002245f
sub edx, 1
je 0x180022451
sub edx, r8d
je 0x180022448
sub edx, r8d
je 0x180022439
cmp edx, 1
mov edx, dword [rsp + 0x30]
jne 0x180022469
inc ecx
mov dword [rsp + 0xc0], ecx
jmp 0x180022469
mov edx, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0xc8], eax
jmp 0x180022469
mov edx, dword [rsp + 0x30]
inc r14d
jmp 0x180022469
mov edx, dword [rsp + 0x30]
inc r11d
mov dword [rsp + 0x34], r11d
jmp 0x180022469
mov edx, dword [rsp + 0x30]
inc edx
mov dword [rsp + 0x30], edx
sub r10, 0x40
add r9d, 0xffffffff
jne 0x180022370
test eax, eax
je 0x1800225e3
cmp eax, 1
jle 0x1800224a2
test r13d, r13d
je 0x180022600
mov ecx, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.Synthetic_string_can_not_have_several_PU_levels_n
jmp 0x1800225f8
cmp r11d, 1
jle 0x1800224c6
test r13d, r13d
je 0x180022600
mov ecx, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.Synthetic_string_can_not_have_several_NUMA_node_levels_n
jmp 0x1800225f8
cmp edx, 1
jle 0x1800224e9
test r13d, r13d
je 0x180022600
mov ecx, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.Synthetic_string_can_not_have_several_machine_levels_n
jmp 0x1800225f8
mov r15d, dword [rsp + 0x38]
test edx, edx
mov eax, ebp
mov edi, ebp
sete al
cmp r14d, 1
mov dword [r12 + 0x10], eax
cmove r14d, r8d
test r15d, r15d
je 0x1800225ab
lea rbx, [r12 + 0x14]
mov eax, dword [rbx - 4]
cmp eax, 7
jne 0x18002252c
cmp dword [rbx], 0xffffffff
jne 0x180022588
mov dword [rbx], ecx
dec ecx
mov dword [rsp + 0xc0], ecx
jmp 0x180022588
cmp eax, 4
jne 0x180022575
cmp dword [rbx], 0xffffffff
jne 0x18002253c
mov dword [rbx], r14d
dec r14d
cmp dword [rbx + 4], 0xffffffff
jne 0x18002254d
cmp dword [rbx], 1
mov eax, ebp
sete al
mov dword [rbx + 4], eax
cmp qword [rbx + 0xc], rbp
jne 0x180022588
mov ecx, dword [rbx]
cmp ecx, 1
jne 0x180022564
mov qword [rbx + 0xc], 0x8000
jmp 0x180022588
mov eax, 0x40000
add ecx, ecx
shl eax, cl
cdqe
mov qword [rbx + 0xc], rax
jmp 0x180022588
cmp eax, 2
jne 0x180022588
cmp qword [rbx + 0xc], rbp
jne 0x180022588
mov qword [rbx + 0xc], 0x40000000
mov r8d, r13d
mov edx, edi
mov rcx, r12
call fcn.180021420
mov ecx, dword [rsp + 0xc0]
inc edi
add rbx, 0x40
cmp edi, r15d
jb 0x180022512
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strdup]
mov qword [r12], rax
mov eax, esi
shl rax, 6
mov dword [rax + r12 + 8], ebp
xor eax, eax
jmp 0x18002260f
test r13d, r13d
je 0x180022600
mov ecx, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.Synthetic_string_cannot_use_PU_type_for_non_last_level_n
jmp 0x1800225f8
test r13d, r13d
je 0x180022600
mov ecx, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
lea rdx, str.Synthetic_string_missing_ending_number_of_PUs_n
mov rcx, rax
call fcn.18000dd30
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], 0x16
or eax, 0xffffffff
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x68]
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret