Function at 0x180022520
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 0x18002257e
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 0x1800225c5
lea r8, [r12 + 8]
mov r9d, r13d
lea rcx, [rsi + 1]
lea rdx, [rsp + 0xb8]
call fcn.180022350
test eax, eax
js 0x180022b89
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 0x1800228b1
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 0x18002261f
inc rbx
cmp byte [rbx], 0x20
je 0x180022617
movzx eax, byte [rbx]
test al, al
je 0x180022845
sub al, 0x30
cmp al, 9
jbe 0x1800226a1
lea r9, [rsp + 0x44]
mov qword [rsp + 0x20], 4
lea r8, [rsp + 0x40]
mov rcx, rbx
lea rdx, [rsp + 0x3c]
call fcn.180012f80
test eax, eax
js 0x1800227a7
mov esi, dword [rsp + 0x3c]
test esi, esi
je 0x18002277c
lea eax, [rsi - 8]
cmp eax, 2
jbe 0x18002277c
cmp esi, 0xb
je 0x18002277c
mov edx, 0x3a
mov rcx, rbx
call qword [sym.imp.VCRUNTIME140.dll_strchr]
mov qword [rsp + 0x50], rax
test rax, rax
je 0x180022751
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 0x180022821
test eax, eax
je 0x1800227fd
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 0x18002271c
lea r8, [rdi + 8]
inc rcx
mov r9d, r13d
lea rdx, [rsp + 0x50]
call fcn.180022350
test eax, eax
js 0x180022872
mov rcx, qword [rsp + 0x50]
lea eax, [r14 + 2]
cmp eax, 0x80
jae 0x1800227d2
mov edi, dword [rsp + 0x38]
inc r14d
inc edi
mov rbx, rcx
mov dword [rsp + 0x38], edi
cmp byte [rcx], bpl
je 0x180022845
mov r12, qword [rsp + 0xb0]
jmp 0x1800225f0
test r13d, r13d
je 0x180022866
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.18000e2a0
jmp 0x180022866
test r13d, r13d
je 0x180022866
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.18000e2a0
jmp 0x180022866
test r13d, r13d
je 0x180022866
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.18000e2a0
jmp 0x180022866
test r13d, r13d
je 0x180022866
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.18000e2a0
jmp 0x180022866
test r13d, r13d
je 0x180022866
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.18000e2a0
jmp 0x180022866
test r13d, r13d
je 0x180022866
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.18000e2a0
jmp 0x180022866
test edi, edi
jne 0x1800228a6
test r13d, r13d
je 0x180022866
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.18000e2a0
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 0x180022b7c
inc ebp
add rbx, 0x40
cmp ebp, 0x80
jb 0x180022880
jmp 0x180022b7c
mov r12, qword [rsp + 0xb0]
mov r14d, ebp
lea esi, [rdi - 1]
mov r8d, 2
mov r9d, esi
test esi, esi
je 0x180022b53
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 0x180022910
cmp edx, 0xffffffff
je 0x18002291e
cmp edx, 6
je 0x180022919
test r13d, r13d
je 0x180022b70
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 0x180022b68
cmp edx, 6
je 0x180022b3c
cmp edx, 0xffffffff
jne 0x18002296e
cmp r9d, esi
jne 0x18002292a
mov edx, 6
jmp case.default.0x18002294a
lea ecx, [r9 + 1]
shl rcx, 6
mov eax, dword [rcx + r12 + 0x10]
dec eax
cmp eax, 6
ja case.default.0x18002294a
cdqe
mov ecx, dword [rbx + rax*4 + 0x22b98]
add rcx, rbx
jmp rcx
mov edx, 5
jmp case.default.0x18002294a
mov edx, 4
jmp case.default.0x18002294a
mov edx, 3
jmp case.default.0x18002294a
mov edx, r8d
jmp case.default.0x18002294a
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 0x1800229cf
sub edx, 1
je 0x1800229c1
sub edx, r8d
je 0x1800229b8
sub edx, r8d
je 0x1800229a9
cmp edx, 1
mov edx, dword [rsp + 0x30]
jne 0x1800229d9
inc ecx
mov dword [rsp + 0xc0], ecx
jmp 0x1800229d9
mov edx, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0xc8], eax
jmp 0x1800229d9
mov edx, dword [rsp + 0x30]
inc r14d
jmp 0x1800229d9
mov edx, dword [rsp + 0x30]
inc r11d
mov dword [rsp + 0x34], r11d
jmp 0x1800229d9
mov edx, dword [rsp + 0x30]
inc edx
mov dword [rsp + 0x30], edx
sub r10, 0x40
add r9d, 0xffffffff
jne 0x1800228e0
test eax, eax
je 0x180022b53
cmp eax, 1
jle 0x180022a12
test r13d, r13d
je 0x180022b70
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 0x180022b68
cmp r11d, 1
jle 0x180022a36
test r13d, r13d
je 0x180022b70
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 0x180022b68
cmp edx, 1
jle 0x180022a59
test r13d, r13d
je 0x180022b70
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 0x180022b68
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 0x180022b1b
lea rbx, [r12 + 0x14]
mov eax, dword [rbx - 4]
cmp eax, 7
jne 0x180022a9c
cmp dword [rbx], 0xffffffff
jne 0x180022af8
mov dword [rbx], ecx
dec ecx
mov dword [rsp + 0xc0], ecx
jmp 0x180022af8
cmp eax, 4
jne 0x180022ae5
cmp dword [rbx], 0xffffffff
jne 0x180022aac
mov dword [rbx], r14d
dec r14d
cmp dword [rbx + 4], 0xffffffff
jne 0x180022abd
cmp dword [rbx], 1
mov eax, ebp
sete al
mov dword [rbx + 4], eax
cmp qword [rbx + 0xc], rbp
jne 0x180022af8
mov ecx, dword [rbx]
cmp ecx, 1
jne 0x180022ad4
mov qword [rbx + 0xc], 0x8000
jmp 0x180022af8
mov eax, 0x40000
add ecx, ecx
shl eax, cl
cdqe
mov qword [rbx + 0xc], rax
jmp 0x180022af8
cmp eax, 2
jne 0x180022af8
cmp qword [rbx + 0xc], rbp
jne 0x180022af8
mov qword [rbx + 0xc], 0x40000000
mov r8d, r13d
mov edx, edi
mov rcx, r12
call fcn.180021990
mov ecx, dword [rsp + 0xc0]
inc edi
add rbx, 0x40
cmp edi, r15d
jb 0x180022a82
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 0x180022b7f
test r13d, r13d
je 0x180022b70
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 0x180022b68
test r13d, r13d
je 0x180022b70
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.18000e2a0
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