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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x82c
mov eax, dword [0x6a0f4c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x82c], 0
mov byte [ebp - 0x808], 0
push 0x7ff
push 0
lea eax, [ebp - 0x807]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
mov dword [ebp - 0x810], 0x800
mov dword [ebp - 0x818], 0
call fcn.00425c70
test eax, eax
je 0x425d42
mov ecx, dword [ebp + 0xc]
push ecx
push str.SOFTWAREClassesWow6432NodeCLSID_sInprocServer32
lea edx, [ebp - 0x808]
push edx
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0xc
jmp 0x425d5b
mov eax, dword [ebp + 0xc]
push eax
push str.SOFTWAREClassesCLSID_sInprocServer32
lea ecx, [ebp - 0x808]
push ecx
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0xc
lea edx, [ebp - 0x814]
push edx
push 1
push 0
lea eax, [ebp - 0x808]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x818], eax
cmp dword [ebp - 0x818], 0
je 0x425dac
push 0x689ad8
mov ecx, dword [ebp + 8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, dword [ebp - 0x82c]
or ecx, 1
mov dword [ebp - 0x82c], ecx
mov eax, dword [ebp + 8]
jmp 0x425f29
push 0x800
push 0
lea edx, [ebp - 0x808]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x808]
push ecx
lea edx, [ebp - 0x80c]
push edx
push 0
push 0
mov eax, dword [ebp - 0x814]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov dword [ebp - 0x818], eax
cmp dword [ebp - 0x818], 0
je 0x425e29
mov ecx, dword [ebp - 0x814]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x689ad8
mov ecx, dword [ebp + 8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov edx, dword [ebp - 0x82c]
or edx, 1
mov dword [ebp - 0x82c], edx
mov eax, dword [ebp + 8]
jmp 0x425f29
mov eax, dword [ebp - 0x814]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x81c], 0
mov ecx, dword [ebp - 0x820]
push ecx
mov edx, dword [ebp - 0x81c]
push edx
lea eax, [ebp - 0x808]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov dword [ebp - 0x820], eax
cmp dword [ebp - 0x820], 0
je 0x425f07
mov ecx, dword [ebp - 0x820]
push ecx
call fcn.0047ce38
add esp, 4
mov dword [ebp - 0x824], eax
mov edx, dword [ebp - 0x824]
mov dword [ebp - 0x81c], edx
mov eax, dword [ebp - 0x820]
push eax
push 0
mov ecx, dword [ebp - 0x81c]
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x820]
push edx
mov eax, dword [ebp - 0x81c]
push eax
lea ecx, [ebp - 0x808]
push ecx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov edx, dword [ebp - 0x81c]
push edx
lea eax, [ebp - 0x808]
push eax
call sub.MSVCR90.dll_strcpy
add esp, 8
mov ecx, dword [ebp - 0x81c]
mov dword [ebp - 0x828], ecx
mov edx, dword [ebp - 0x828]
push edx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov dword [ebp - 0x81c], 0
lea eax, [ebp - 0x808]
push eax
mov ecx, dword [ebp + 8]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov ecx, dword [ebp - 0x82c]
or ecx, 1
mov dword [ebp - 0x82c], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005fff12
mov esp, ebp
pop ebp
ret