Function at 0x140161b10
Capabilities:
Set environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe8
mov qword [rsp + 0x38], rcx
mov rcx, qword [0x1401f9850]
mov rsi, rdx
mov qword [rsp + 0x30], r8
test rcx, rcx
je 0x140161dc0
lea rdx, str.environ
call qword [sym.imp.python37.dll_PyObject_GetAttrString]
mov rcx, rsi
mov rbp, rax
call qword [sym.imp.python37.dll_PyUnicode_FromString]
cmp qword [rsp + 0x30], 0
mov r12, rax
je 0x140161cac
movzx r15d, byte [rsi]
xor edx, edx
xor r13d, r13d
mov r14d, 0x28
lea rax, [rsp + 0x90]
mov word [rsp + 0x40], dx
lea rdi, [rsp + 0x40]
mov qword [rsp + 0x28], rax
test r15b, r15b
je 0x140161c01
nop dword [rax + rax]
lea rbx, [rdi + r13*2]
mov rax, r14
sub rax, r13
cmp word [rdi + r13*2], 0
je 0x140161bbe
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x140161bb0
test rax, rax
je 0x1401c7660
mov rcx, rbx
add r13, 1
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
mov rdx, qword [rsp + 0x28]
mov r8d, 2
mov byte [rsp + 0x90], r15b
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x91], 0
call sub.api_ms_win_crt_convert_l1_1_0.dll_mbstowcs
movzx r15d, byte [rsi + r13]
test r15b, r15b
jne 0x140161b98
mov rsi, qword [rsp + 0x30]
mov rcx, rdi
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, 0xffffffffffffffff
mov rcx, rsi
call qword [sym.imp.python37.dll_PyUnicode_FromWideChar]
mov rdx, r12
mov rcx, rbp
mov rbx, rax
mov r8, rax
call qword [sym.imp.python37.dll_PyObject_SetItem]
test eax, eax
jne 0x140161de8
sub qword [rbx], 1
je 0x140161c99
sub qword [r12], 1
je 0x140161c85
sub qword [rbp], 1
je 0x140161c64
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rbp + 8]
mov rcx, rbp
mov rax, qword [rax + 0x30]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp rax
mov rax, qword [r12 + 8]
mov rcx, r12
call qword [rax + 0x30]
sub qword [rbp], 1
jne 0x140161c50
jmp 0x140161c64
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [rax + 0x30]
sub qword [r12], 1
jne 0x140161c49
jmp 0x140161c85
movzx r13d, byte [rsi]
xor eax, eax
xor r14d, r14d
mov r15d, 0x28
mov word [rsp + 0x90], ax
lea rax, [rsp + 0x40]
lea rdi, [rsp + 0x90]
mov qword [rsp + 0x28], rax
test r13b, r13b
je 0x140161d43
nop word [rax + rax]
lea rbx, [rdi + r14*2]
mov rax, r15
sub rax, r14
cmp word [rdi + r14*2], 0
je 0x140161d06
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x140161cf8
test rax, rax
je 0x1401c7660
mov rcx, rbx
add r14, 1
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
mov rdx, qword [rsp + 0x28]
mov r8d, 2
mov byte [rsp + 0x40], r13b
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x41], 0
call sub.api_ms_win_crt_convert_l1_1_0.dll_mbstowcs
movzx r13d, byte [rsi + r14]
test r13b, r13b
jne 0x140161ce0
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, r12
mov rcx, rbp
call qword [sym.imp.python37.dll_PyObject_DelItem]
test eax, eax
je 0x140161c42
mov rax, qword [rsp + 0x38]
pxor xmm0, xmm0
mov rcx, qword [rax + 0x58]
mov rsi, qword [rax + 0x60]
movups xmmword [rax + 0x58], xmm0
mov rbx, qword [rax + 0x68]
mov qword [rax + 0x68], 0
test rcx, rcx
je 0x140161d95
sub qword [rcx], 1
jne 0x140161d95
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
test rsi, rsi
je 0x140161daa
sub qword [rsi], 1
jne 0x140161daa
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
test rbx, rbx
jne 0x140161c3c
jmp 0x140161c42
lea rcx, [0x1401d5983]
call qword [sym.imp.python37.dll_PyImport_ImportModule]
test rax, rax
mov rcx, rax
mov qword [0x1401f9850], rax
jne 0x140161b40
jmp 0x1401c7660
mov ecx, 1
call qword [sym.imp.python37.dll_PyErr_PrintEx]
mov ecx, 1
call qword [sym.imp.python37.dll_Py_Exit]
nop
nop
push rbx
sub rsp, 0x20
lea rbx, [0x1401f9600]
xor ecx, ecx
mov r8d, 0x100
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1401c7666
mov rax, rbx
add rsp, 0x20
pop rbx
ret