Function at 0x439b30
Capabilities:
Set environment variable

Disassembly:
sub esp, 0x214
push ebx
push ebp
push esi
xor esi, esi
push edi
mov ebx, esi
mov byte [esp + 0x124], 0
mov byte [esp + 0x24], 0
call fcn.0043a110
mov eax, dword [esp + 0x228]
push eax
call fcn.00439ee0
mov ebp, eax
mov al, byte [esp + 0x230]
add esp, 4
mov dword [esp + 0x20], edx
test al, 1
jne 0x439c59
lea ecx, [esp + 0x10]
push ecx
push 0x20019
push esi
push str.SOFTWARE_aheadShared
push reloc.OLEAUT32.dll_SysReAllocString
call dword [0x54ae10]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x439c59
lea edx, [esp + 0x14]
lea ecx, [esp + 0x24]
push edx
lea edx, [esp + 0x1c]
push ecx
push edx
push esi
push str.NeroAPI
push eax
mov dword [esp + 0x2c], 0xff
call dword [0x54ae0c]
test eax, eax
je 0x439bd4
mov eax, dword [esp + 0x10]
push eax
call dword [0x54ae08]
jmp 0x439c59
mov ecx, dword [esp + 0x10]
push ecx
call dword [0x54ae08]
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xf3
jae 0x439c59
lea edx, [esp + 0x24]
push 0xff
lea eax, [esp + 0x128]
push edx
push eax
call fcn.004b1230
mov edi, str.NeroAPI.dll
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x130]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x22f], 0
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x130]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call fcn.00439ee0
add esp, 0x10
mov ebx, eax
mov esi, edx
mov eax, dword [esp + 0x228]
test eax, eax
je 0x439da6
mov edi, dword [esp + 0x20]
push esi
push ebx
push edi
push ebp
call fcn.00439fc0
add esp, 0x10
test eax, eax
je 0x439da6
push esi
push ebx
push edi
push ebp
call fcn.0043a010
add esp, 0x10
test eax, eax
je 0x439c9e
test byte [esp + 0x22c], 2
jne 0x439da6
push str.PATH
call fcn.004b1927
mov ecx, dword [esp + 0x22c]
mov esi, eax
push ecx
mov dword [esp + 0x1c], esi
call fcn.004b1dc5
mov ebx, eax
push 0x5c
push ebx
call fcn.004b1900
add esp, 0x10
test eax, eax
je 0x439ccf
mov byte [eax], 0
push ebx
push esi
call fcn.0043a050
add esp, 8
test eax, eax
jne 0x439d91
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, esi
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
push eax
call fcn.004b17b9
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x439d91
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.PATH
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x539b9c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x1c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push ebp
call fcn.004b16d0
add esp, 4
push ebx
call fcn.004b16d0
mov eax, dword [esp + 0x22c]
add esp, 4
jmp 0x439e98
push str.PATH
call fcn.004b1927
mov ebx, eax
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x439e91
lea ecx, [esp + 0x24]
push ecx
push ebx
call fcn.0043a050
add esp, 8
test eax, eax
jne 0x439e91
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [esp + 0x24]
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [edx + ecx + 2]
push eax
call fcn.004b17b9
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x439e91
or ecx, 0xffffffff
lea edi, [esp + 0x24]
xor eax, eax
push ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.PATH
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x539b9c
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
push ebp
call fcn.004b16d0
add esp, 4
lea eax, [esp + 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
pop edi
pop esi
pop ebp
mov dword [0x54ea7c], eax
test eax, eax
pop ebx
je 0x439ec3
push 0
push 4
push 1
push 3
push 6
call fcn.0043ac00
mov eax, dword [0x54ea7c]
add esp, 0x14
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
add esp, 0x214
ret