Function at 0x140023bc0
Capabilities:
Query environment variable
Set environment variable

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
sub rsp, 0x20
mov rbx, rcx
lea rcx, [0x140069a40]
call fcn.140008330
mov rsi, rax
test rax, rax
je 0x140023f01
mov qword [rsp + 0x38], rdi
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x40], r14
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov r14d, eax
mov rdi, 0xffffffffffffffff
test eax, eax
je 0x140023d44
mov qword [rsp + 0x30], rbp
mov rcx, rdi
nop word [rax + rax]
inc rcx
cmp word [rbx + rcx*2], 0
jne 0x140023c20
add rcx, r14
lea rcx, [rcx*2 + 4]
call fcn.14002fc3c
mov rbp, rax
test rax, rax
je 0x140023d3f
mov r8d, r14d
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x140023d37
lea rcx, [rbp - 2]
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x140023c61
mov eax, dword [0x140069a48]
mov dword [rcx], eax
lea rcx, [rbp - 2]
nop dword [rax + rax]
cmp word [rcx + 2], 0
lea rcx, [rcx + 2]
jne 0x140023c80
xor edx, edx
nop dword [rax]
movzx eax, word [rbx + rdx*2]
mov word [rcx + rdx*2], ax
lea rdx, [rdx + 1]
test ax, ax
jne 0x140023c90
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rcx, rdi
cmp word [rbx + rcx*2 + 2], 0
lea rcx, [rcx + 1]
jne 0x140023cb0
lea rcx, [rcx*2 + 0x14]
call fcn.14002fc3c
mov r14, rax
test rax, rax
je 0x140023d37
mov rdx, rax
sub rdx, rbx
nop word [rax + rax]
movzx ecx, word [rbx]
mov word [rdx + rbx], cx
lea rbx, [rbx + 2]
test cx, cx
jne 0x140023ce0
lea rdx, [0x140069a50]
mov rcx, r14
call fcn.1400087e0
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
mov ecx, eax
mov ebx, eax
or ecx, 1
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ecx, ebx
mov qword [0x140048068], rax
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
mov rcx, r14
call fcn.14002fc28
mov rcx, rbp
call fcn.14002fc28
mov rbp, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
nop dword [rax]
cmp word [rsi + rdi*2 + 2], 0
lea rdi, [rdi + 1]
jne 0x140023d50
lea r8, [rdi + rdi]
xor edx, edx
mov rcx, rsi
call fcn.14002ec20
mov rcx, rsi
call fcn.14002fc28
mov rcx, qword [0x140048068]
mov rdi, qword [rsp + 0x38]
test rcx, rcx
je 0x140023eb8
lea rdx, [0x140069a60]
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069a70]
mov qword [0x140048058], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069a80]
mov qword [0x140048060], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069a98]
mov qword [0x14005bea0], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069aa8]
mov qword [0x14005be90], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069ab8]
mov qword [0x14005be98], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069ad0]
mov qword [0x14005be88], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069ae0]
mov qword [0x14005bea8], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069af8]
mov qword [0x14005be78], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069b08]
mov qword [0x14005be70], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069b20]
mov qword [0x14005be80], rax
call fcn.140006e30
mov rcx, qword [0x140048068]
lea rdx, [0x140069b38]
mov qword [0x14005be68], rax
call fcn.140006e30
mov qword [0x14005be60], rax
cmp qword [0x140048058], 0
je 0x140023f01
cmp qword [0x140048060], 0
je 0x140023f01
cmp qword [0x14005bea0], 0
je 0x140023f01
cmp qword [0x14005be90], 0
je 0x140023f01
cmp qword [0x14005be98], 0
je 0x140023f01
cmp qword [0x14005be88], 0
je 0x140023f01
mov al, 1
mov rbx, qword [rsp + 0x48]
add rsp, 0x20
pop rsi
ret
mov rbx, qword [rsp + 0x48]
xor al, al
add rsp, 0x20
pop rsi
ret