Function at 0x14018b110
Capabilities:
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
lea r15, str.type
lea rax, [rsp + 0x78]
mov qword [rsp + 0x110], rcx
lea r14, [rsp + 0x90]
mov qword [rsp + 0x118], rdx
mov qword [rdx], 0
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x58], rax
nop dword [rax]
mov rax, qword [rsp + 0x110]
mov r8, qword [rsp + 0x58]
mov rdx, r14
mov rcx, qword [rsp + 0x110]
mov rax, qword [rax + 8]
call qword [rax + 0x20]
test eax, eax
js 0x14018b501
je 0x14018b62e
mov rsi, qword [rsp + 0x78]
mov ecx, 5
lea rdi, str.diff
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b501
mov qword [rsp + 0x50], 0
xor r12d, r12d
lea r13, [rsp + 0x88]
lea rbx, [rsp + 0x80]
mov qword [rsp + 0x48], 0
lea rbp, str.obj_depth
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
nop dword [rax]
mov rax, qword [rsp + 0x98]
mov r8, r13
mov rdx, rbx
mov rcx, r14
call qword [rax + 0x18]
test eax, eax
js 0x14018b330
mov rdx, qword [rsp + 0x80]
mov ecx, 5
mov rdi, r15
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b250
mov r12, qword [rsp + 0x88]
jmp 0x14018b208
mov ecx, 0xa
mov rsi, rdx
mov rdi, rbp
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b278
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x28], rax
jmp 0x14018b208
mov ecx, 0xa
mov rsi, rdx
lea rdi, str.obj_index
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b2a8
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x30], rax
jmp 0x14018b208
mov ecx, 0xe
lea rdi, str.obj_attr_type
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b2d8
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x38], rax
jmp 0x14018b208
mov ecx, 0xf
lea rdi, str.obj_attr_index
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
je 0x14018b208
mov ecx, 0xe
lea rdi, str.obj_attr_name
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b420
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x40], rax
jmp 0x14018b208
test r12, r12
je 0x14018b3f0
mov rcx, r12
call sub.msvcrt.dll_atoi
test eax, eax
jne 0x14018b3f0
cmp qword [rsp + 0x28], 0
sete dl
cmp qword [rsp + 0x30], 0
sete al
or dl, al
jne 0x14018b44c
cmp qword [rsp + 0x38], 0
je 0x14018b44c
cmp qword [rsp + 0x48], 0
je 0x14018b508
cmp qword [rsp + 0x50], 0
je 0x14018b508
mov rcx, qword [rsp + 0x38]
call sub.msvcrt.dll_atoi
mov esi, eax
cmp eax, 2
jne 0x14018b55a
cmp qword [rsp + 0x40], 0
jne 0x14018b55a
mov eax, dword [0x1407b2ea0]
mov edx, dword [0x1407b2e9c]
test eax, eax
je 0x14018b679
mov rax, qword [rsp + 0x98]
test edx, edx
je 0x14018b3f8
mov rbx, qword [rax + 0x48]
mov ecx, 2
call qword [fcn.140225420]
lea rdx, str._s:_missing_mandatory_obj_attr_info_name_attribute_n
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_fprintf
nop dword [rax]
mov rax, qword [rsp + 0x98]
mov rcx, r14
call qword [rax + 0x28]
test eax, eax
js 0x14018b4a3
mov rax, qword [rsp + 0x110]
mov rcx, r14
mov rax, qword [rax + 8]
call qword [rax + 0x30]
jmp 0x14018b168
mov ecx, 0x12
lea rdi, str.obj_attr_oldvalue
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b4b7
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x48], rax
jmp 0x14018b208
mov ecx, dword [0x1407b2ea0]
mov edx, dword [0x1407b2e9c]
test ecx, ecx
je 0x14018b5f8
mov rax, qword [rsp + 0x98]
test edx, edx
je 0x14018b3f8
mov rbx, qword [rax + 0x48]
mov ecx, 2
call qword [fcn.140225420]
lea rdx, str._s:_missing_mandatory_obj_attr_generic_attributes_n
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_fprintf
mov rax, qword [rsp + 0x98]
mov rcx, r14
call qword [rax + 0x28]
test eax, eax
jns 0x14018b406
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 0x12
lea rdi, str.obj_attr_newvalue
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
seta al
sbb al, 0
test al, al
jne 0x14018b4e3
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x50], rax
jmp 0x14018b208
mov r8d, dword [0x1407b2ea0]
mov eax, dword [0x1407b2e9c]
test r8d, r8d
je 0x14018b75c
test eax, eax
jne 0x14018b723
mov eax, 0xffffffff
jmp 0x14018b4a3
mov edx, dword [0x1407b2ea0]
test edx, edx
je 0x14018b643
mov edx, dword [0x1407b2e9c]
mov rax, qword [rsp + 0x98]
test edx, edx
je 0x14018b3f8
mov rbx, qword [rax + 0x48]
mov ecx, 2
call qword [fcn.140225420]
lea rdx, str._s:_missing_mandatory_obj_attr_value_attributes_n
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_fprintf
mov rax, qword [rsp + 0x98]
jmp 0x14018b3f8
mov ecx, 0x38
call sub.msvcrt.dll_malloc
mov rbx, rax
test rax, rax
je 0x14018b501
mov dword [rax], 0
mov rcx, qword [rsp + 0x28]
call sub.msvcrt.dll_atoi
mov rcx, qword [rsp + 0x30]
mov dword [rbx + 0x10], eax
call sub.msvcrt.dll_atoi
mov qword [rbx + 0x18], 0
mov dword [rbx + 0x14], eax
mov qword [rbx + 0x20], 0
mov qword [rbx + 0x28], 0
mov qword [rbx + 0x30], 0
mov dword [rbx + 0x18], esi
cmp esi, 1
je 0x14018b71a
cmp esi, 2
je 0x14018b6af
test esi, esi
je 0x14018b6e5
cmp qword [rsp + 0x60], 0
je 0x14018b710
mov rax, qword [rsp + 0x68]
mov qword [rax + 8], rbx
mov qword [rbx + 8], 0
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x68], rbx
jmp 0x14018b3f8
lea rcx, str.HWLOC_XML_VERBOSE
call sub.msvcrt.dll_getenv
mov edx, dword [0x1407b2e9c]
mov rcx, rax
test rax, rax
je 0x14018b61f
call sub.msvcrt.dll_atoi
mov dword [0x1407b2e9c], eax
mov edx, eax
mov dword [0x1407b2ea0], 1
jmp 0x14018b460
mov rbx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0x60]
mov qword [rbx], rsi
jmp 0x14018b4a3
lea rcx, str.HWLOC_XML_VERBOSE
call sub.msvcrt.dll_getenv
mov edx, dword [0x1407b2e9c]
mov rcx, rax
test rax, rax
je 0x14018b66a
call sub.msvcrt.dll_atoi
mov dword [0x1407b2e9c], eax
mov edx, eax
mov dword [0x1407b2ea0], 1
jmp 0x14018b51c
lea rcx, str.HWLOC_XML_VERBOSE
call sub.msvcrt.dll_getenv
mov edx, dword [0x1407b2e9c]
mov rcx, rax
test rax, rax
je 0x14018b6a0
call sub.msvcrt.dll_atoi
mov dword [0x1407b2e9c], eax
mov edx, eax
mov dword [0x1407b2ea0], 1
jmp 0x14018b3bc
mov rcx, qword [rsp + 0x40]
mov rsi, qword [sym.imp.msvcrt.dll__strdup_1]
call rsi
mov qword [rbx + 0x20], rax
mov rcx, qword [rsp + 0x48]
call rsi
mov rcx, qword [rsp + 0x50]
mov qword [rbx + 0x28], rax
call rsi
cmp qword [rsp + 0x60], 0
mov qword [rbx + 0x30], rax
jne 0x14018b5d5
jmp 0x14018b710
mov rcx, qword [rsp + 0x48]
xor r8d, r8d
xor edx, edx
call sub.msvcrt.dll__strtoui64
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
xor edx, edx
mov qword [rbx + 0x28], rax
call sub.msvcrt.dll__strtoui64
mov qword [rbx + 0x30], rax
jmp 0x14018b5c9
mov qword [rsp + 0x60], rbx
jmp 0x14018b5de
mov rsi, qword [sym.imp.msvcrt.dll__strdup_1]
jmp 0x14018b6c1
mov rax, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x80]
mov ecx, 2
mov rbx, qword [rax + 0x48]
call qword [fcn.140225420]
mov r9, rsi
lea rdx, str._s:_ignoring_unknown_diff_attribute__s_n
mov rcx, rax
mov r8, rbx
call sub.msvcrt.dll_fprintf
jmp 0x14018b501
lea rcx, str.HWLOC_XML_VERBOSE
call sub.msvcrt.dll_getenv
mov rcx, rax
mov eax, dword [0x1407b2e9c]
test rcx, rcx
je 0x14018b781
call sub.msvcrt.dll_atoi
mov dword [0x1407b2e9c], eax
mov dword [0x1407b2ea0], 1
jmp 0x14018b4f9