Function at 0x14002d300
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 [0x1400af0d0]
mov rsi, rdx
mov qword [rsp + 0x30], r8
test rcx, rcx
je 0x14002d5a0
lea rdx, str.environ
call qword [sym.imp.python38.dll_PyObject_GetAttrString]
mov rcx, rsi
mov rbp, rax
call qword [sym.imp.python38.dll_PyUnicode_FromString]
cmp qword [rsp + 0x30], 0
mov r12, rax
je 0x14002d48a
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 0x14002d3f1
nop dword [rax + rax]
lea rbx, [rdi + r13*2]
mov rax, r14
sub rax, r13
cmp word [rdi + r13*2], 0
je 0x14002d3ae
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x14002d3a0
test rax, rax
je 0x14008f9e2
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 0x14002d388
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.python38.dll_PyUnicode_FromWideChar]
mov rdx, r12
mov rcx, rbp
mov rbx, rax
mov r8, rax
call qword [sym.imp.python38.dll_PyObject_SetItem]
test eax, eax
jne 0x14002d5c8
sub qword [rbx], 1
jne 0x14002d43c
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [rax + 0x30]
sub qword [r12], 1
jne 0x14002d44e
mov rax, qword [r12 + 8]
mov rcx, r12
call qword [rax + 0x30]
sub qword [rbp], 1
jne 0x14002d476
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
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
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 0x14002d523
nop dword [rax + rax]
lea rbx, [rdi + r14*2]
mov rax, r15
sub rax, r14
cmp word [rdi + r14*2], 0
je 0x14002d4e6
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x14002d4d8
test rax, rax
je 0x14008f9e2
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 0x14002d4c0
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, r12
mov rcx, rbp
call qword [sym.imp.python38.dll_PyObject_DelItem]
test eax, eax
je 0x14002d43c
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 0x14002d575
sub qword [rcx], 1
jne 0x14002d575
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
test rsi, rsi
je 0x14002d58a
sub qword [rsi], 1
jne 0x14002d58a
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
test rbx, rbx
jne 0x14002d42c
jmp 0x14002d43c
lea rcx, [0x140099286]
call qword [sym.imp.python38.dll_PyImport_ImportModule]
test rax, rax
mov rcx, rax
mov qword [0x1400af0d0], rax
jne 0x14002d330
jmp 0x14008f9e2
mov ecx, 1
call qword [sym.imp.python38.dll_PyErr_PrintEx]
mov ecx, 1
call qword [sym.imp.python38.dll_Py_Exit]
nop
nop
push rbx
sub rsp, 0x20
lea rbx, [0x1400aee80]
xor ecx, ecx
mov r8d, 0x100
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14008f9e8
mov rax, rbx
add rsp, 0x20
pop rbx
ret