Function at 0x1002990b
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
add esp, 0xffffffec
push ebx
xor ebx, ebx
cmp eax, ebx
mov dword [ebp - 0xc], ebx
jne 0x10029935
call fcn.1001cf4c
mov dword [eax], 0x16
call fcn.1001e899
or eax, 0xffffffff
jmp 0x100299a3
push esi
mov esi, dword [eax]
push edi
cmp esi, ebx
mov dword [ebp - 4], esi
je 0x10029993
push 0x3d
push esi
call fcn.1002ae3f
pop edi
mov edi, eax
cmp edi, ebx
pop ecx
mov dword [ebp - 0x14], edi
je 0x10029993
cmp esi, edi
je 0x10029993
xor eax, eax
cmp byte [edi + 1], bl
sete al
mov dword [ebp - 8], eax
mov eax, dword [0x10044c64]
cmp eax, dword [0x10044c68]
jne 0x10029979
call fcn.100298ab
mov dword [0x10044c64], eax
cmp eax, ebx
jne 0x100299dd
cmp dword [ebp + 0xc], ebx
je 0x100299a6
cmp dword [0x10044c6c], ebx
je 0x100299a6
call fcn.10024604
test eax, eax
je 0x100299dd
call fcn.1001cf4c
mov dword [eax], 0x16
or eax, 0xffffffff
pop edi
pop esi
pop ebx
leave
ret
cmp dword [ebp - 8], ebx
jne 0x10029b46
push 4
call fcn.100215c7
pop ecx
mov dword [0x10044c64], eax
cmp eax, ebx
je 0x1002999e
mov dword [eax], ebx
cmp dword [0x10044c6c], ebx
jne 0x100299dd
push 4
call fcn.100215c7
pop ecx
mov dword [0x10044c6c], eax
cmp eax, ebx
je 0x1002999e
mov dword [eax], ebx
mov esi, dword [0x10044c64]
mov dword [ebp - 0x10], esi
cmp esi, ebx
je 0x1002999e
sub edi, dword [ebp - 4]
push dword [ebp - 4]
call fcn.10029859
pop ecx
mov edi, eax
cmp edi, ebx
jl 0x10029a4e
cmp dword [esi], ebx
je 0x10029a4e
lea esi, [esi + edi*4]
push dword [esi]
call fcn.1001ca1c
pop ecx
cmp dword [ebp - 8], ebx
jne 0x10029a2b
mov eax, dword [ebp - 4]
mov dword [esi], eax
mov eax, dword [ebp + 8]
mov dword [eax], ebx
jmp 0x10029aa1
inc edi
mov eax, dword [esi + 4]
mov dword [esi], eax
mov eax, dword [ebp - 0x10]
lea esi, [eax + edi*4]
cmp dword [esi], ebx
jne 0x10029a1f
cmp edi, 0x3fffffff
jae 0x10029aa1
push 4
push edi
push dword [0x10044c64]
call fcn.100216a6
add esp, 0xc
cmp eax, ebx
je 0x10029aa1
jmp 0x10029a9c
cmp dword [ebp - 8], ebx
jne 0x10029b38
cmp edi, ebx
jge 0x10029a5d
neg edi
lea eax, [edi + 2]
cmp eax, edi
jl 0x1002999e
cmp eax, 0x3fffffff
jae 0x1002999e
push eax
push 4
push dword [0x10044c64]
call fcn.100216a6
add esp, 0xc
cmp eax, ebx
je 0x1002999e
lea esi, [eax + edi*4]
mov edx, dword [ebp - 4]
mov dword [esi], edx
mov dword [esi + 4], ebx
mov ecx, dword [ebp + 8]
mov dword [ecx], ebx
mov dword [0x10044c64], eax
cmp dword [ebp + 0xc], ebx
je 0x10029b13
mov edi, dword [ebp - 4]
push 1
push edi
call fcn.1001f460
pop ecx
add eax, 2
push eax
call fcn.1002160c
pop ecx
mov esi, eax
pop ecx
cmp esi, ebx
je 0x10029b13
push edi
push edi
call fcn.1001f460
sub eax, 0xfffffffe
pop ecx
push eax
push esi
call fcn.1002469b
sub esp, 0xfffffff4
test eax, eax
jne 0x10029b2e
mov ecx, dword [ebp - 8]
mov eax, esi
sub eax, edi
add eax, dword [ebp - 0x14]
mov byte [eax], bl
inc eax
neg ecx
sbb ecx, ecx
not ecx
and ecx, eax
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableA]
test eax, eax
jne 0x10029b0c
or dword [ebp - 0xc], 0xffffffff
call fcn.1001cf4c
mov dword [eax], 0x2a
push esi
call fcn.1001ca1c
pop ecx
cmp dword [ebp - 8], ebx
je 0x10029b26
push dword [ebp - 4]
call fcn.1001ca1c
pop ecx
mov eax, dword [ebp + 8]
mov dword [eax], ebx
mov eax, dword [ebp - 0xc]
jmp 0x100299a1
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.1001e847
push dword [ebp - 4]
call fcn.1001ca1c
mov edi, dword [ebp + 8]
pop ecx
mov dword [edi], ebx
xor eax, eax
jmp 0x100299a1