Function at 0x704210
Capabilities:
Query environment variable
Write file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rbx, rcx
lea rcx, str.HWLOC_COMPONENTS
call sub.msvcrt.dll_getenv
mov rcx, rax
test rax, rax
je 0x7043d0
call qword [sym.imp.msvcrt.dll__strdup_1]
mov r12, rax
test rax, rax
je 0x7043d0
movzx r15d, byte [rax]
test r15b, r15b
je 0x7043d8
mov r14, rax
lea rsi, [0x0095de3f]
nop dword [rax]
mov rdx, rsi
mov rcx, r14
call sub.msvcrt.dll_strcspn
lea r13, [r14 + rax]
mov rbp, rax
movzx edi, byte [r13]
test rax, rax
je 0x70428e
cmp r15b, 0x2d
je 0x704628
test dil, dil
jne 0x7044e8
cmp byte [r12], 0
je 0x7043d8
mov r14, r12
lea rbp, str.stop
jmp 0x7042cf
movzx r13d, byte [r14]
mov r15, r14
test r13b, r13b
je 0x7043d8
cmp byte [r15 + 1], 0
lea r14, [r15 + 1]
je 0x7043d8
lea rdx, [0x0095de3f]
mov rcx, r14
call sub.msvcrt.dll_strcspn
test rax, rax
je 0x7042b0
cmp rax, 5
mov ecx, 5
mov rsi, r14
mov rdi, rbp
cmovbe rcx, rax
cmp rcx, rcx
repe cmpsb byte [rsi], byte [rdi]
seta dl
sbb dl, 0
test dl, dl
je 0x704498
lea r15, [r14 + rax]
mov ecx, 9
mov rsi, r14
movzx r13d, byte [r15]
mov byte [r15], 0
lea rdi, str.linuxpci
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
je 0x704349
mov ecx, 8
lea rdi, str.linuxio
mov rsi, r14
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x704360
mov r8d, dword [0x00c81494]
test r8d, r8d
jne 0x704550
lea r14, str.linux
xor edx, edx
mov rcx, r14
call fcn.007033c0
mov r11, rax
test rax, rax
je 0x704500
mov r9d, dword [rbx + 0x338]
test r9d, r9d
je 0x704659
mov rax, qword [rbx + 0x340]
lea edx, [r9 - 1]
shl rdx, 4
lea rdx, [rax + rdx + 0x10]
jmp 0x7043ad
add rax, 0x10
cmp rdx, rax
je 0x704528
cmp qword [rax], r11
jne 0x7043a0
mov r9d, dword [rax + 8]
mov eax, r9d
not eax
and eax, dword [r11 + 8]
jne 0x70453a
mov byte [r15], r13b
jmp 0x7042b7
xor r12d, r12d
nop dword [rax + rax]
mov rbp, qword [0x00c814a0]
test rbp, rbp
je 0x704498
lea r13, str.Excluding_blacklisted_discovery_component___s_phases_0x_x_n
jmp 0x704405
mov rbp, qword [rbp + 0x20]
test rbp, rbp
je 0x704498
mov ecx, dword [rbp + 0x1c]
test ecx, ecx
je 0x7043f8
mov r9d, dword [rbx + 0x338]
test r9d, r9d
je 0x704663
mov rax, qword [rbx + 0x340]
lea edx, [r9 - 1]
shl rdx, 4
lea rdx, [rax + rdx + 0x10]
jmp 0x704445
add rax, 0x10
cmp rdx, rax
je 0x7044d8
cmp qword [rax], rbp
jne 0x704438
mov r9d, dword [rax + 8]
mov eax, r9d
not eax
mov esi, dword [rbp + 8]
test esi, eax
jne 0x7044c0
mov edx, dword [0x00c81494]
test edx, edx
je 0x7043f8
mov rdi, qword [rbp]
mov ecx, 2
call qword [fcn.00745b20]
mov r9d, esi
mov rdx, r13
mov rcx, rax
mov r8, rdi
call sub.msvcrt.dll_fprintf
mov rbp, qword [rbp + 0x20]
test rbp, rbp
jne 0x704405
nop dword [rax]
mov eax, dword [0x00c81494]
test eax, eax
jne 0x704580
mov rcx, r12
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.00745380
xor r8d, r8d
mov rdx, rbp
mov rcx, rbx
call fcn.00704130
jmp 0x7043f8
mov eax, 0xffffffff
xor r9d, r9d
jmp 0x704453
movzx r15d, byte [r13 + 1]
lea r14, [r13 + 1]
test r15b, r15b
jne 0x704268
jmp 0x704297
mov ecx, 2
call qword [fcn.00745b20]
mov r8, r14
lea rdx, str.Cannot_find_discovery_component___s_n
mov rcx, rax
call sub.msvcrt.dll_fprintf
jmp 0x7043c5
mov eax, 0xffffffff
xor r9d, r9d
and eax, dword [r11 + 8]
je 0x7043c5
mov r8d, 1
mov rdx, r11
mov rcx, rbx
call fcn.00704130
jmp 0x7043c5
mov ecx, 2
call qword [fcn.00745b20]
mov r8, r14
lea rdx, str.Replacing_deprecated_component___s_with__linux_in_envvar_forcing_n
lea r14, str.linux
mov rcx, rax
call sub.msvcrt.dll_fprintf
jmp 0x704360
mov rbx, qword [rbx + 0x2f0]
mov ecx, 2
mov rdi, qword [fcn.00745b20]
call rdi
mov r8d, 0x2c
mov edx, 1
lea rcx, str.Final_list_of_enabled_discovery_components:
mov r9, rax
call sub.msvcrt.dll_fwrite
test rbx, rbx
je 0x704609
mov rax, qword [rbx]
mov esi, dword [rbx + 0x20]
lea r14, [0x0095dff9]
lea rbp, str._s_s_0x_x_
lea r13, [0x0095de3f]
mov r15, qword [rax]
jmp 0x7045e4
mov rax, qword [rbx]
mov esi, dword [rbx + 0x20]
mov r14, r13
mov r15, qword [rax]
mov ecx, 2
call rdi
mov dword [rsp + 0x20], esi
mov r9, r15
mov r8, r14
mov rcx, rax
mov rdx, rbp
call sub.msvcrt.dll_fprintf
mov rbx, qword [rbx + 0x18]
test rbx, rbx
jne 0x7045d8
mov ecx, 2
call rdi
mov ecx, 0xa
mov rdx, rax
call sub.msvcrt.dll_fputc
jmp 0x7044a6
mov byte [r13], 0
lea rdx, [r14 + 1]
mov rcx, rbx
call fcn.00703580
xor edx, edx
xor eax, eax
nop dword [rax]
mov byte [r14 + rax], 0x2c
lea eax, [rdx + 1]
mov rdx, rax
cmp rax, rbp
jb 0x704640
mov byte [r13], dil
jmp 0x70428e
mov eax, 0xffffffff
jmp 0x7043bb
mov eax, 0xffffffff
jmp 0x704453