Function at 0x1402d7d20
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 [0x1403873b0]
mov rsi, rdx
mov qword [rsp + 0x30], r8
test rcx, rcx
je 0x1402d7fc0
lea rdx, str.environ
call qword [sym.imp.python38.dll_PyObject_GetAttrString]
mov rcx, rsi
mov rdi, rax
call qword [sym.imp.python38.dll_PyUnicode_FromString]
cmp qword [rsp + 0x30], 0
mov rbp, rax
je 0x1402d7ea8
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 0x1402d7e11
nop dword [rax + rax]
mov rax, r13
lea rbx, [r14 + r15*2]
sub rax, r15
cmp word [r14 + r15*2], 0
je 0x1402d7dce
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x1402d7dc0
test rax, rax
je 0x14034afb6
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 0x1402d7da8
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.python38.dll_PyUnicode_FromWideChar]
mov rdx, rbp
mov rcx, rdi
mov rbx, rax
mov r8, rax
call qword [sym.imp.python38.dll_PyObject_SetItem]
test eax, eax
jne 0x1402d7fe8
sub qword [rbx], 1
jne 0x1402d7e5c
mov rax, qword [rbx + 8]
mov rcx, rbx
call qword [rax + 0x30]
sub qword [rbp], 1
jne 0x1402d7e6d
mov rax, qword [rbp + 8]
mov rcx, rbp
call qword [rax + 0x30]
sub qword [rdi], 1
jne 0x1402d7e94
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
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 0x1402d7f43
nop word cs:[rax + rax]
mov rax, r14
lea rbx, [r12 + r15*2]
sub rax, r15
cmp word [r12 + r15*2], 0
je 0x1402d7f06
nop word [rax + rax]
add rbx, 2
sub rax, 1
cmp word [rbx], 0
jne 0x1402d7ef8
test rax, rax
je 0x14034afb6
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 0x1402d7ee0
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.python38.dll_PyObject_DelItem]
test eax, eax
je 0x1402d7e5c
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 0x1402d7f95
sub qword [rcx], 1
jne 0x1402d7f95
mov rax, qword [rcx + 8]
call qword [rax + 0x30]
test rsi, rsi
je 0x1402d7faa
sub qword [rsi], 1
jne 0x1402d7faa
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [rax + 0x30]
test rbx, rbx
jne 0x1402d7e4c
jmp 0x1402d7e5c
lea rcx, [0x14035843e]
call qword [sym.imp.python38.dll_PyImport_ImportModule]
mov qword [0x1403873b0], rax
mov rcx, rax
test rax, rax
jne 0x1402d7d50
jmp 0x14034afb6
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, [0x140387160]
xor ecx, ecx
mov r8d, 0x100
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14034afbc
mov rax, rbx
add rsp, 0x20
pop rbx
ret