Function at 0x44f700
Capabilities:
Set environment variable

Disassembly:
mov rax, rsp
sub rsp, 0x78
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax - 8], r12
xor r12d, r12d
test rcx, rcx
mov qword [rax - 0x10], r13
mov qword [rax - 0x20], r15
mov ebp, r12d
mov r15d, edx
mov rsi, rcx
je 0x44fb14
mov dx, 0x3d
call fcn.004502c0
test rax, rax
mov r13, rax
je 0x44fb14
cmp rsi, rax
je 0x44fb14
cmp word [rax + 2], bp
mov qword [rsp + 0x98], rdi
mov rdi, qword [0x0046b528]
mov qword [rsp + 0x60], r14
mov r14d, r12d
sete r14b
cmp rdi, qword [0x0046b530]
mov dword [rsp + 0x40], r14d
jne 0x44f791
mov rcx, rdi
call fcn.0044f650
mov rdi, rax
mov qword [0x0046b528], rax
test rdi, rdi
jne 0x44f854
test r15d, r15d
mov rax, qword [0x0046b518]
je 0x44f7f6
test rax, rax
je 0x44f7f6
call fcn.004501f0
test eax, eax
je 0x44f84d
mov eax, 0xffffffff
mov rdi, qword [rsp + 0x98]
mov r14, qword [rsp + 0x60]
mov r15, qword [rsp + 0x58]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x80]
add rsp, 0x78
ret
test r14d, r14d
jne 0x44fb0d
test rax, rax
jne 0x44f827
lea ecx, [rax + 8]
call fcn.00433380
test rax, rax
mov qword [0x0046b518], rax
je 0x44f7b8
mov qword [rax], r12
mov rdi, qword [0x0046b528]
test rdi, rdi
jne 0x44f854
mov ecx, 8
call fcn.00433380
test rax, rax
mov qword [0x0046b528], rax
je 0x44f7b8
mov qword [rax], r12
mov rdi, qword [0x0046b528]
jmp 0x44f854
mov rdi, qword [0x0046b528]
sub r13, rsi
mov rcx, rsi
sar r13, 1
mov edx, r13d
call fcn.0044f5b0
test eax, eax
movsxd rbx, eax
js 0x44f8c8
cmp qword [rdi], rbp
je 0x44f8c8
mov rcx, qword [rdi + rbx*8]
call fcn.004289f0
test r14d, r14d
je 0x44f8c2
cmp qword [rdi + rbx*8], rbp
je 0x44f8a5
lea rdx, [rdi + rbx*8]
mov rcx, rdx
nop
mov rax, qword [rdx + 8]
add rcx, 8
inc ebx
mov qword [rdx], rax
cmp qword [rcx], rbp
mov rdx, rcx
jne 0x44f890
movsxd rdx, ebx
mov rcx, rdi
shl rdx, 3
call fcn.00433480
test rax, rax
je 0x44f908
mov qword [0x0046b528], rax
jmp 0x44f908
mov qword [rdi + rbx*8], rsi
jmp 0x44f908
test r14d, r14d
jne 0x44fb05
test eax, eax
jns 0x44f8d7
neg ebx
lea eax, [rbx + 2]
mov rcx, rdi
movsxd rdx, eax
shl rdx, 3
call fcn.00433480
test rax, rax
mov rdx, rax
je 0x44f7b8
movsxd rax, ebx
mov qword [rdx + rax*8], rsi
mov qword [rdx + rax*8 + 8], r12
mov qword [0x0046b528], rdx
test r15d, r15d
je 0x44faf1
xor eax, eax
mov rbx, 0xffffffffffffffff
mov rdi, rsi
mov rcx, rbx
repne scasw ax, word [rdi]
not rcx
lea rcx, [rcx + rcx + 2]
call fcn.00433380
test rax, rax
mov r12, rax
je 0x44faf1
mov rdx, rax
mov rcx, rsi
sub rdx, rsi
nop
nop
nop
movzx eax, word [rcx]
add rcx, 2
test ax, ax
mov word [rdx + rcx - 2], ax
jne 0x44f950
lea rdi, [r12 + r13*2]
add rdi, 2
cmp dword [0x0046a2f8], 1
mov word [rdi - 2], bp
jne 0x44f9a8
mov rdx, rdi
test r14d, r14d
mov rcx, r12
cmovne rdx, rbp
mov r15, rbp
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
test eax, eax
jne 0x44f9ab
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x44f9a4
mov dword [0x0046a2f8], r15d
jmp 0x44f9b8
mov ebp, ebx
jmp 0x44f9ab
xor r15d, r15d
cmp dword [0x0046a2f8], 0
jne 0x44fae9
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov r9d, ebx
mov r8, r12
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], r15d
mov r13, r15
mov r14, r15
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
movsxd r15, eax
jne 0x44f9f0
mov ebp, ebx
jmp 0x44fad4
mov rcx, r15
call fcn.00433380
test rax, rax
mov r13, rax
jne 0x44fa07
mov ebp, ebx
jmp 0x44fad4
xor eax, eax
mov r9d, ebx
mov r8, r12
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x44fa38
mov ebp, ebx
jmp 0x44fad4
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x44fab4
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
mov r9d, ebx
mov r8, rdi
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
movsxd r15, eax
jne 0x44fa6e
mov ebp, ebx
jmp 0x44fad4
mov rcx, r15
call fcn.00433380
test rax, rax
mov r14, rax
jne 0x44fa82
mov ebp, ebx
jmp 0x44fad4
xor eax, eax
mov r9d, ebx
mov r8, rdi
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x44fab0
mov ebp, ebx
jmp 0x44fad4
mov eax, dword [rsp + 0x40]
cmp ebp, ebx
je 0x44fad4
test eax, eax
mov eax, 0
mov rdx, r14
cmovne rdx, rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
test eax, eax
cmove ebp, ebx
mov rcx, r14
call fcn.004289f0
mov rcx, r13
call fcn.004289f0
mov r14d, dword [rsp + 0x40]
mov rcx, r12
call fcn.004289f0
test r14d, r14d
je 0x44fafe
mov rcx, rsi
call fcn.004289f0
mov eax, ebp
jmp 0x44f7bd
mov rcx, rsi
call fcn.004289f0
xor eax, eax
jmp 0x44f7bd
mov eax, 0xffffffff
jmp 0x44f7ca