Function at 0x1401eba50
Capabilities:
Set environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rbp, rcx
mov rcx, qword [0x1402b8bf8]
mov qword [rsp + 0x28], r8
mov rsi, rdx
test rcx, rcx
je 0x1401ebcee
lea rdx, str.environ
call qword [sym.imp.python312.dll_PyObject_GetAttrString]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.python312.dll_PyUnicode_FromString]
cmp qword [rsp + 0x28], 0
mov r12, rax
je 0x1401ebbeb
movzx ebp, byte [rsi]
xor edx, edx
xor r15d, r15d
lea r14, [rsp + 0x30]
mov word [rsp + 0x30], dx
mov r13d, 0x28
lea rdi, [rsp + 0x80]
test bpl, bpl
je 0x1401ebb37
nop dword [rax]
mov rax, r13
lea rbx, [r14 + r15*2]
sub rax, r15
cmp word [r14 + r15*2], 0
je 0x1401ebaf6
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x1401ebae8
test rax, rax
je 0x14027f196
mov rcx, rbx
add r15, 1
call sub.msvcrt.dll_wcslen
mov r8d, 2
mov rdx, rdi
mov byte [rsp + 0x80], bpl
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x81], 0
call sub.msvcrt.dll_mbstowcs
movzx ebp, byte [rsi + r15]
test bpl, bpl
jne 0x1401ebad0
mov rdi, qword [rsp + 0x28]
mov rcx, r14
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, 0xffffffffffffffff
mov rcx, rdi
call qword [sym.imp.python312.dll_PyUnicode_FromWideChar]
mov rcx, qword [rsp + 0x20]
mov rdx, r12
mov rbx, rax
mov r8, rax
call qword [sym.imp.python312.dll_PyObject_SetItem]
test eax, eax
jne 0x1401ebd18
mov rax, qword [rbx]
test eax, eax
js 0x1401ebb88
sub rax, 1
mov qword [rbx], rax
je 0x1401ebce0
mov rax, qword [r12]
test eax, eax
js 0x1401ebb9a
sub rax, 1
mov qword [r12], rax
je 0x1401ebbe0
mov rsi, qword [rsp + 0x20]
mov rax, qword [rsi]
test eax, eax
js 0x1401ebbaf
sub rax, 1
mov qword [rsi], rax
je 0x1401ebbc3
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.python312.dll__Py_Dealloc]
mov rcx, r12
call qword [sym.imp.python312.dll__Py_Dealloc]
jmp 0x1401ebb9a
xor eax, eax
movzx r13d, byte [rsi]
xor r15d, r15d
mov r14d, 0x28
mov word [rsp + 0x80], ax
lea rax, [rsp + 0x30]
lea rdi, [rsp + 0x80]
mov qword [rsp + 0x28], rax
test r13b, r13b
je 0x1401ebc83
nop dword [rax]
mov rax, r14
lea rbx, [rdi + r15*2]
sub rax, r15
cmp word [rdi + r15*2], 0
je 0x1401ebc46
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x1401ebc38
test rax, rax
je 0x14027f196
mov rcx, rbx
add r15, 1
call sub.msvcrt.dll_wcslen
mov rdx, qword [rsp + 0x28]
mov r8d, 2
mov byte [rsp + 0x30], r13b
lea rcx, [rbx + rax*2]
mov byte [rsp + 0x31], 0
call sub.msvcrt.dll_mbstowcs
movzx r13d, byte [rsi + r15]
test r13b, r13b
jne 0x1401ebc20
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rcx, qword [rsp + 0x20]
mov rdx, r12
call qword [sym.imp.python312.dll_PyObject_DelItem]
test eax, eax
je 0x1401ebb88
mov rcx, qword [rbp + 0x60]
mov qword [rbp + 0x60], 0
test rcx, rcx
je 0x1401ebb88
mov rax, qword [rcx]
test eax, eax
js 0x1401ebb88
sub rax, 1
mov qword [rcx], rax
jne 0x1401ebb88
call qword [sym.imp.python312.dll__Py_Dealloc]
jmp 0x1401ebb88
mov rcx, rbx
call qword [sym.imp.python312.dll__Py_Dealloc]
jmp 0x1401ebb88
lea rcx, [0x14028f743]
call qword [sym.imp.python312.dll_PyImport_ImportModule]
mov qword [0x1402b8bf8], rax
mov rcx, rax
test rax, rax
jne 0x1401eba7e
jmp 0x14027f196
mov ecx, 1
call qword [sym.imp.python312.dll_PyErr_PrintEx]
mov ecx, 1
call qword [sym.imp.python312.dll_Py_Exit]
nop
nop
push rbx
sub rsp, 0x20
lea rbx, [0x1402b89a0]
xor ecx, ecx
mov r8d, 0x100
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14027f19c
mov rax, rbx
add rsp, 0x20
pop rbx
ret