Function at 0x140164380
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 [0x140211970]
mov rsi, rdx
mov qword [rsp + 0x30], r8
test rcx, rcx
je 0x140164620
lea rdx, str.environ
call qword [sym.imp.python37.dll_PyObject_GetAttrString]
mov rcx, rsi
mov rdi, rax
call qword [sym.imp.python37.dll_PyUnicode_FromString]
cmp qword [rsp + 0x30], 0
mov rbp, rax
je 0x14016450a
movzx r12d, byte [rsi]
xor edx, edx
xor r15d, r15d
lea r14, [rsp + 0x40]
lea rax, [rsp + 0x90]
mov word [rsp + 0x40], dx
mov r13d, 0x28
mov qword [rsp + 0x28], rax
test r12b, r12b
je 0x140164471
nop dword [rax + rax]
mov rax, r13
lea rbx, [r14 + r15*2]
sub rax, r15
cmp word [r14 + r15*2], 0
je 0x14016442e
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x140164420
test rax, rax
je 0x1401da830
mov rcx, rbx
add r15, 1
call sub.msvcrt.dll_wcslen
mov rdx, qword [rsp + 0x28]
mov r8d, 2
mov byte [rsp + 0x90], r12b
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x91], 0
call sub.msvcrt.dll_mbstowcs
movzx r12d, byte [rsi + r15]
test r12b, r12b
jne 0x140164408
mov rsi, qword [rsp + 0x30]
mov rcx, r14
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, rbp
mov rcx, rdi
mov rbx, rax
mov r8, rax
call qword [sym.imp.python37.dll_PyObject_SetItem]
test eax, eax
jne 0x140164648
sub qword [rbx], 1
je 0x1401644ea
sub qword [rbp], 1
jne 0x1401644c3
mov rax, qword [rbp + 8]
mov rcx, rbp
call qword [rax + 0x30]
sub qword [rdi], 1
jne 0x1401644f6
mov rax, qword [rdi + 8]
mov rcx, rdi
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 [rbx + 8]
mov rcx, rbx
call qword [rax + 0x30]
jmp 0x1401644b2
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
movzx r13d, byte [rsi]
xor r15d, r15d
mov r14d, 0x28
mov word [rsp + 0x90], ax
lea rax, [rsp + 0x40]
lea r12, [rsp + 0x90]
mov qword [rsp + 0x28], rax
test r13b, r13b
je 0x1401645a3
nop dword [rax + rax]
mov rax, r14
lea rbx, [r12 + r15*2]
sub rax, r15
cmp word [r12 + r15*2], 0
je 0x140164566
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x140164558
test rax, rax
je 0x1401da830
mov rcx, rbx
add r15, 1
call sub.msvcrt.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.msvcrt.dll_mbstowcs
movzx r13d, byte [rsi + r15]
test r13b, r13b
jne 0x140164540
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.python37.dll_PyObject_DelItem]
test eax, eax
je 0x1401644b2
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 0x1401645f5
sub qword [rcx], 1
jne 0x1401645f5
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
test rsi, rsi
je 0x14016460a
sub qword [rsi], 1
jne 0x14016460a
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
test rbx, rbx
jne 0x1401644ac
jmp 0x1401644b2
lea rcx, [0x1401e8ba3]
call qword [sym.imp.python37.dll_PyImport_ImportModule]
mov qword [0x140211970], rax
mov rcx, rax
test rax, rax
jne 0x1401643b0
jmp 0x1401da830
mov ecx, 1
call qword [sym.imp.python37.dll_PyErr_PrintEx]
mov ecx, 1
call qword [sym.imp.python37.dll_Py_Exit]
jmp 0x1401644ac