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

Disassembly:
push 0x5a8
mov eax, 0x2a850ee4
call fcn.2a84a93e
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 0x2a83d45d
mov byte [edi], bl
call fcn.2a83e2cb
mov esi, dword [eax]
test esi, esi
je 0x2a83d75c
push str.FGetComponentPath
push esi
mov dword [ebp - 0x5a4], ebx
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov ebx, eax
test ebx, ebx
je 0x2a83d6fd
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 0x2a83d523
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 0x2a83d523
xor eax, eax
inc eax
cmp dword [ebp - 0x5a8], eax
jne 0x2a83d523
push 0
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a840972
add esp, 0xc
test eax, eax
jne 0x2a83d593
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 0x2a83d58e
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 0x2a83d5bf
xor eax, eax
xor esi, esi
inc eax
cmp dword [ebp - 0x5a8], eax
jne 0x2a83d5c1
push esi
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a840972
add esp, 0xc
test eax, eax
jne 0x2a83d72b
jmp 0x2a83d5c1
xor esi, esi
push esi
push str.SoftwareClientsMail_
lea eax, [ebp - 0x49c]
push 0x200
push eax
call fcn.2a840972
add esp, 0x10
lea eax, [ebp - 0x94]
push esi
push eax
lea eax, [ebp - 0x49c]
push 0x200
push eax
call fcn.2a840972
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 0x2a83d72b
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 0x2a83d67a
cmp dword [ebp - 0x5a8], 4
jne 0x2a83d6e8
push esi
push 0x104
lea eax, [ebp - 0x198]
mov ecx, ebx
push eax
push esi
push eax
call dword [0x2a8523cc]
call ebx
jmp 0x2a83d6e8
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 0x2a83d6e8
cmp dword [ebp - 0x5a8], 2
jne 0x2a83d6e8
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.2a840972
add esp, 0x10
push dword [ebp - 0x5a4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
and dword [ebp - 0x5a4], 0
jmp 0x2a83d72b
push 0
push str.Mapi32
lea eax, [ebp - 0x94]
push 0x80
push eax
call fcn.2a840972
add esp, 0x10
lea eax, [ebp - 0x5a0]
push 0x104
push eax
push esi
call dword [sym.imp.kernel32.dll_GetModuleFileNameA]
test edi, edi
je 0x2a83d744
movzx eax, word [ebp + 0xc]
push eax
lea eax, [ebp - 0x94]
push eax
push edi
call fcn.2a840972
add esp, 0xc
mov eax, dword [ebp - 0x5b4]
test eax, eax
je 0x2a83d75c
lea ecx, [ebp - 0x198]
push ecx
mov ecx, eax
call fcn.2a840972
call fcn.2a84a8f6
ret