Function at 0x444155
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [ebp + 8]
push esi
test ebx, ebx
jne 0x444179
call fcn.0043fd06
mov dword [eax], 0x16
or eax, 0xffffffff
jmp 0x4443c5
push edi
push 0x3d
push ebx
mov edi, ebx
call fcn.00523c1b
mov dword [ebp - 0xc], eax
pop ecx
pop ecx
test eax, eax
je 0x4443af
cmp eax, ebx
je 0x4443af
movzx ecx, word [eax + 2]
mov eax, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], eax
call fcn.00444492
mov esi, dword [0x536e08]
xor ebx, ebx
test esi, esi
jne 0x44424d
mov eax, dword [0x536e04]
cmp dword [ebp + 0xc], ebx
je 0x4441f1
test eax, eax
je 0x4441f1
call fcn.0043ee29
test eax, eax
jne 0x4441e4
call fcn.0043fd06
mov dword [eax], 0x16
or ebx, 0xffffffff
jmp 0x444394
call fcn.00444492
mov esi, dword [0x536e08]
jmp 0x444249
cmp word [ebp - 8], bx
je 0x444394
test eax, eax
jne 0x444228
push 4
push 1
call fcn.00441aa3
push ebx
mov dword [0x536e04], eax
call fcn.0043fd19
add esp, 0xc
cmp dword [0x536e04], ebx
je 0x4441dc
mov esi, dword [0x536e08]
test esi, esi
jne 0x44424d
push 4
push 1
call fcn.00441aa3
push ebx
mov dword [0x536e08], eax
call fcn.0043fd19
mov esi, dword [0x536e08]
add esp, 0xc
test esi, esi
je 0x4441dc
test esi, esi
je 0x4441dc
mov ecx, dword [ebp - 0xc]
mov eax, edi
sub ecx, eax
sar ecx, 1
push ecx
push eax
mov dword [ebp - 0xc], ecx
call fcn.004444ac
mov dword [ebp - 4], eax
pop ecx
pop ecx
test eax, eax
js 0x4442b5
cmp dword [esi], ebx
je 0x4442b5
push dword [esi + eax*4]
call fcn.0043fd19
pop ecx
mov ecx, dword [ebp - 4]
cmp word [ebp - 8], bx
je 0x444294
mov eax, dword [ebp + 8]
mov edi, ebx
mov dword [esi + ecx*4], eax
jmp 0x44430c
mov eax, dword [esi + ecx*4 + 4]
mov dword [esi + ecx*4], eax
inc ecx
cmp dword [esi + ecx*4], ebx
jne 0x44428c
push 4
push ecx
push esi
call fcn.004451ea
push ebx
mov esi, eax
call fcn.0043fd19
add esp, 0x10
mov eax, edi
test esi, esi
je 0x44430c
jmp 0x444306
cmp word [ebp - 8], bx
je 0x444394
neg eax
mov dword [ebp - 4], eax
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4441dc
cmp ecx, 0x3fffffff
jae 0x4441dc
push 4
push ecx
push esi
call fcn.004451ea
push ebx
mov esi, eax
call fcn.0043fd19
add esp, 0x10
test esi, esi
je 0x4441dc
mov ecx, dword [ebp - 4]
mov edi, ebx
mov eax, dword [ebp + 8]
mov dword [esi + ecx*4], eax
mov dword [esi + ecx*4 + 4], ebx
mov dword [0x536e08], esi
cmp dword [ebp + 0xc], ebx
je 0x4443a5
mov ecx, eax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x44431a
sub ecx, edx
sar ecx, 1
push 2
lea eax, [ecx + 2]
push eax
mov dword [ebp - 8], eax
call fcn.00441aa3
mov esi, eax
pop ecx
pop ecx
test esi, esi
jne 0x444347
push ebx
call fcn.0043fd19
jmp 0x444393
push dword [ebp + 8]
push dword [ebp - 8]
push esi
call fcn.0043d072
add esp, 0xc
test eax, eax
jne 0x4443c9
mov eax, dword [ebp - 0xc]
inc eax
lea ecx, [esi + eax*2]
xor eax, eax
mov word [ecx - 2], ax
mov eax, dword [ebp - 0x10]
movzx eax, ax
neg eax
sbb eax, eax
and eax, ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
test eax, eax
jne 0x44439e
call fcn.0043fd06
push esi
mov dword [eax], 0x2a
call fcn.0043fd19
or ebx, 0xffffffff
pop ecx
push edi
call fcn.0043fd19
mov eax, ebx
jmp 0x4443c3
push esi
call fcn.0043fd19
pop ecx
push edi
call fcn.0043fd19
xor eax, eax
jmp 0x4443c3
call fcn.0043fd06
push ebx
mov dword [eax], 0x16
call fcn.0043fd19
or eax, 0xffffffff
pop ecx
pop edi
pop esi
pop ebx
leave
ret
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.0043fc35
int3