Function at 0x100045fc
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1c0]
sub esp, 0x240
mov eax, dword [0x1002b1f0]
xor eax, ebp
mov dword [ebp + 0x1bc], eax
mov eax, dword [ebp + 0x1c8]
push esi
mov esi, dword [ebp + 0x1cc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x1d0]
push edi
mov edi, dword [ebp + 0x1d4]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x70]
push eax
push str.CLSIDE1C2B026_FFFA_4437_9354_415B40BEEF87LocalServer32
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x10004741
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x74]
push eax
push 0
push 0x1001d410
push dword [ebp - 0x70]
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x78], 0x208
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x10004738
push ebx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x68]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push 0
mov ebx, 0x1001d40c
push ebx
lea ecx, [ebp - 0x68]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_first_not_of_wchar_t_const___unsigned_int_const]
push eax
push 0
lea ecx, [ebp - 0x68]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::erase_unsigned_int__unsigned_int_]
mov eax, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov eax, dword [eax]
push eax
push eax
push ebx
lea ecx, [ebp - 0x68]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_last_not_of_wchar_t_const___unsigned_int_const]
inc eax
push eax
lea ecx, [ebp - 0x68]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::erase_unsigned_int__unsigned_int_]
cmp dword [ebp - 0x50], 8
mov eax, dword [ebp - 0x64]
pop ebx
jae 0x100046e1
lea eax, [ebp - 0x64]
push dword [ebp - 0x54]
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.MSVCR90.dll_wcsncpy]
mov eax, dword [ebp - 0x54]
xor ecx, ecx
mov dword [esi], eax
mov esi, dword [sym.imp.MSVCR90.dll_wcscpy]
mov word [ebp + eax*2 - 0x4c], cx
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x80]
call esi
add esp, 0x14
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x7c]
call esi
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 0xc
lea ecx, [ebp - 0x68]
mov dword [edi], eax
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp + 0x1bc]
mov eax, dword [ebp - 0x6c]
pop edi
xor ecx, ebp
pop esi
call fcn.10018dd2
add ebp, 0x1c0
leave
ret