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

Disassembly:
push 0x5a8
mov eax, 0x2a985a08
call fcn.2a8c96ea
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 0x2a885301
mov byte [edi], bl
call fcn.2a8861b3
mov esi, dword [eax]
test esi, esi
je 0x2a885607
push str.FGetComponentPath
push esi
mov dword [ebp - 0x5a4], ebx
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov ebx, eax
test ebx, ebx
je 0x2a8855a1
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 0x2a8853c7
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 0x2a8853c7
xor eax, eax
inc eax
cmp dword [ebp - 0x5a8], eax
jne 0x2a8853c7
push 0
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a886a0b
add esp, 0xc
test eax, eax
jne 0x2a885432
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 0x2a885432
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 0x2a885463
xor eax, eax
xor esi, esi
inc eax
cmp dword [ebp - 0x5a8], eax
jne 0x2a885465
push esi
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a886a0b
add esp, 0xc
test eax, eax
jne 0x2a8855cf
jmp 0x2a885465
xor esi, esi
push esi
push str.SoftwareClientsMail_
lea eax, [ebp - 0x49c]
push 0x200
push eax
call fcn.2a886a0b
add esp, 0x10
lea eax, [ebp - 0x94]
push esi
push eax
lea eax, [ebp - 0x49c]
push 0x200
push eax
call fcn.2a886a0b
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 0x2a8855cf
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 0x2a88551e
cmp dword [ebp - 0x5a8], 4
jne 0x2a88558c
push esi
push 0x104
lea eax, [ebp - 0x198]
mov ecx, ebx
push eax
push esi
push eax
call dword [0x2a9874b0]
call ebx
jmp 0x2a88558c
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 0x2a88558c
cmp dword [ebp - 0x5a8], 2
jne 0x2a88558c
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.2a886a0b
add esp, 0x10
push dword [ebp - 0x5a4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x5a4], 0
jmp 0x2a8855cf
push 0
push str.Mapi32
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a886a0b
add esp, 0x10
lea eax, [ebp - 0x5a0]
push 0x104
push eax
push esi
call dword [sym.imp.kernel32.dll_GetModuleFileNameA]
test edi, edi
je 0x2a8855ef
movzx eax, word [ebp + 0xc]
push 0
push eax
lea eax, [ebp - 0x94]
push eax
push SysReAllocString
push edi
call fcn.2a886a0b
add esp, 0x14
mov eax, dword [ebp - 0x5b4]
test eax, eax
je 0x2a885607
lea ecx, [ebp - 0x198]
push ecx
mov ecx, eax
call fcn.2a886a0b
call fcn.2a8c96a2
ret