Function at 0x14015d9b0
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 [0x1401f5610]
mov rsi, rdx
mov qword [rsp + 0x30], r8
test rcx, rcx
je 0x14015dc60
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 0x14015db4c
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 0x14015daa1
nop dword [rax + rax]
lea rbx, [rdi + r13*2]
mov rax, r14
sub rax, r13
cmp word [rdi + r13*2], 0
je 0x14015da5e
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x14015da50
test rax, rax
je 0x1401c3430
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 0x14015da38
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 0x14015dc88
sub qword [rbx], 1
je 0x14015db39
sub qword [r12], 1
je 0x14015db25
sub qword [rbp], 1
je 0x14015db04
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 0x14015daf0
jmp 0x14015db04
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [rax + 0x30]
sub qword [r12], 1
jne 0x14015dae9
jmp 0x14015db25
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 0x14015dbe3
nop word [rax + rax]
lea rbx, [rdi + r14*2]
mov rax, r15
sub rax, r14
cmp word [rdi + r14*2], 0
je 0x14015dba6
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x14015db98
test rax, rax
je 0x1401c3430
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 0x14015db80
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 0x14015dae2
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 0x14015dc35
sub qword [rcx], 1
jne 0x14015dc35
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
test rsi, rsi
je 0x14015dc4a
sub qword [rsi], 1
jne 0x14015dc4a
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
test rbx, rbx
jne 0x14015dadc
jmp 0x14015dae2
lea rcx, [0x1401d193b]
call qword [sym.imp.python37.dll_PyImport_ImportModule]
test rax, rax
mov rcx, rax
mov qword [0x1401f5610], rax
jne 0x14015d9e0
jmp 0x1401c3430
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, [0x1401f53c0]
xor ecx, ecx
mov r8d, 0x100
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x1401c3436
mov rax, rbx
add rsp, 0x20
pop rbx
ret