Function at 0x2a886cc8
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push 0x5a8
mov eax, 0x2a98703c
call fcn.2a8ca9de
mov edi, dword [ebp + 8]
xor ebx, ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x5b4], eax
mov dword [ebp - 4], ebx
mov byte [ebp - 0x198], bl
mov byte [ebp - 0x94], bl
test edi, edi
je 0x2a886cfa
mov byte [edi], bl
call fcn.2a887b63
mov esi, dword [eax]
test esi, esi
je 0x2a886ff9
push str.FGetComponentPath
push esi
mov dword [ebp - 0x5a4], ebx
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov ebx, eax
test ebx, ebx
je 0x2a886f9a
and dword [ebp - 0x5a8], 0
lea eax, [ebp - 0x5a4]
push eax
xor eax, eax
mov dword [ebp - 0x5ac], 0x80
inc eax
xor esi, esi
push eax
push esi
push str.SoftwareClientsMail
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x2a886dc0
lea eax, [ebp - 0x5ac]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x5a8]
push eax
push esi
push esi
push dword [ebp - 0x5a4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push 1
test eax, eax
pop eax
push dword [ebp - 0x5a4]
cmove esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x5a4], 0
test si, si
je 0x2a886dc0
xor eax, eax
inc eax
cmp dword [ebp - 0x5a8], eax
jne 0x2a886dc0
push 0
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a863ee0
add esp, 0xc
test eax, eax
jne 0x2a886e2b
lea eax, [ebp - 0x5a4]
mov dword [ebp - 0x5ac], 0x80
push eax
xor eax, eax
inc eax
push eax
push 0
push str.SoftwareClientsMail
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x2a886e2b
lea eax, [ebp - 0x5ac]
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebp - 0x5a8]
push eax
push 0
push 0
push dword [ebp - 0x5a4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push 1
test eax, eax
pop eax
push dword [ebp - 0x5a4]
cmove esi, eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x5a4], 0
test si, si
je 0x2a886e5c
xor eax, eax
xor esi, esi
inc eax
cmp dword [ebp - 0x5a8], eax
jne 0x2a886e5e
push esi
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a863ee0
add esp, 0xc
test eax, eax
jne 0x2a886fc8
jmp 0x2a886e5e
xor esi, esi
push esi
push str.SoftwareClientsMail_
lea eax, [ebp - 0x49c]
push 0x200
push eax
call fcn.2a863ee0
add esp, 0x10
lea eax, [ebp - 0x94]
push esi
push eax
lea eax, [ebp - 0x49c]
push 0x200
push eax
call fcn.2a863ee0
add esp, 0x10
lea eax, [ebp - 0x5a4]
push eax
xor eax, eax
inc eax
push eax
push esi
lea eax, [ebp - 0x49c]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x2a886fc8
lea eax, [ebp - 0x5b0]
mov dword [ebp - 0x5b0], 0x104
push eax
lea eax, [ebp - 0x198]
push eax
lea eax, [ebp - 0x5a8]
push eax
push esi
push str.MSIComponentID
push dword [ebp - 0x5a4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x2a886f17
cmp dword [ebp - 0x5a8], 4
jne 0x2a886f85
push esi
push 0x104
lea eax, [ebp - 0x198]
mov ecx, ebx
push eax
push esi
push eax
call dword [0x2a9884bc]
call ebx
jmp 0x2a886f85
lea eax, [ebp - 0x5b0]
push eax
lea eax, [ebp - 0x198]
push eax
lea eax, [ebp - 0x5a8]
push eax
push 0
push str.DLLPath
push dword [ebp - 0x5a4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x2a886f85
cmp dword [ebp - 0x5a8], 2
jne 0x2a886f85
mov byte [ebp - 0x29c], al
mov ebx, 0x104
push ebx
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x198]
push eax
call dword [sym.imp.kernel32.dll_ExpandEnvironmentStringsA]
push 0
lea eax, [ebp - 0x29c]
push eax
lea eax, [ebp - 0x198]
push ebx
push eax
call fcn.2a863ee0
add esp, 0x10
push dword [ebp - 0x5a4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x5a4], 0
jmp 0x2a886fc8
push 0
push str.Mapi32
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a863ee0
add esp, 0x10
lea eax, [ebp - 0x5a0]
push 0x104
push eax
push esi
call dword [sym.imp.kernel32.dll_GetModuleFileNameA]
test edi, edi
je 0x2a886fe1
movzx eax, word [ebp + 0xc]
push eax
lea eax, [ebp - 0x94]
push eax
push edi
call fcn.2a863ee0
add esp, 0xc
mov eax, dword [ebp - 0x5b4]
test eax, eax
je 0x2a886ff9
lea ecx, [ebp - 0x198]
push ecx
mov ecx, eax
call fcn.2a863ee0
call fcn.2a8ca996
ret