Function at 0x1000f10c
Capabilities:
Get common file path
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x14e8
call fcn.10018f80
mov eax, dword [0x1002b1f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
xor esi, esi
push edi
mov dword [ebp - 0x149c], esi
mov dword [ebp - 0x149c], ebp
push 1
push dword [ebp - 0x149c]
push str.void___cdecl_Win7Compatibility_wchar_t__
call fcn.1000b484
mov edi, eax
add esp, 0xc
mov eax, 0x10021c78
cmp edi, esi
jne 0x1000f159
mov edi, eax
push esi
push esi
push esi
push esi
push eax
push 0x10021c4c
push edi
lea ecx, [ebp - 0x14e8]
call fcn.1000a370
cmp edi, esi
jne 0x1000f175
push ebp
pop ebp
cmp ebx, esi
je 0x1000f4c1
xor eax, eax
mov edi, 0x206
push edi
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push esi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push esi
push esi
push 0x2001f
push esi
push esi
push str.SoftwareMicrosoftWindows_NTCurrentVersionAppCompatFlagsCompatibility_AssistantPersisted
push SysReAllocString
lea ecx, [ebp - 0x14b0]
mov dword [ebp - 0x14b0], esi
mov dword [ebp - 0x14ac], esi
call fcn.100013b0
test eax, eax
jne 0x1000f4b6
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
push eax
lea ecx, [ebp - 0x1498]
mov dword [ebp - 0x14a0], 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__::constructor_wchar_t_const__]
xor eax, eax
push edi
mov word [ebp - 0x414], ax
lea eax, [ebp - 0x412]
push esi
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea eax, [ebp - 0x414]
push eax
push 1
push esi
push 0x20
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea eax, [ebp - 0x414]
push eax
push ebx
call dword [sym.imp.MSVCR90.dll_wcsstr]
pop ecx
pop ecx
push ebx
test eax, eax
je 0x1000f472
mov dword [ebp - 0x14a8], esi
mov dword [ebp - 0x14a4], esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x1000f24c
xor eax, eax
jmp 0x1000f262
lea edi, [eax + eax]
mov eax, edi
call fcn.10018fe0
mov eax, esp
push 3
push edi
push ebx
push eax
call fcn.10001111
push 0x10021b88
push eax
call dword [sym.imp.MSVCR90.dll_fopen]
mov edi, eax
pop ecx
pop ecx
cmp edi, esi
je 0x1000f297
push 2
push esi
push edi
call dword [sym.imp.MSVCR90.dll_fseek]
push edi
call dword [sym.imp.MSVCR90.dll_ftell]
cdq
add esp, 0x10
mov dword [ebp - 0x14a8], eax
mov dword [ebp - 0x14a4], edx
push edi
call dword [sym.imp.MSVCR90.dll_fclose]
xor eax, eax
mov word [ebp - 0x1460], ax
mov dword [esp], 0x1048
lea eax, [ebp - 0x145e]
push esi
push eax
call sub.MSVCR90.dll_memset
lea eax, [ebp - 0x14b4]
push eax
lea eax, [ebp - 0x1460]
push eax
push ebx
mov dword [ebp - 0x14b4], 0x825
call fcn.1000ef3e
add esp, 0x18
test eax, eax
jne 0x1000f3b9
mov edi, 0x10021b64
push edi
call fcn.10005425
pop ecx
test eax, eax
jne 0x1000f312
push 1
push str.GetCacheUrl_Failed__n
push esi
push edi
call fcn.10009855
pop ecx
pop ecx
mov ecx, eax
call fcn.100016a4
mov ecx, eax
call fcn.1000a33f
push dword [ebp - 0x14a0]
lea ecx, [ebp - 0x147c]
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 esi
push 0x5b
lea ecx, [ebp - 0x147c]
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_of_wchar_t__unsigned_int_const]
mov ebx, eax
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]
cmp ebx, dword [eax]
je 0x1000f41b
push esi
push 0x5d
lea ecx, [ebp - 0x147c]
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_of_wchar_t__unsigned_int_const]
mov edi, eax
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]
cmp edi, dword [eax]
je 0x1000f41b
push ebx
push esi
lea eax, [ebp - 0x14d0]
push eax
lea ecx, [ebp - 0x147c]
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__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [ebp - 0x1498]
call dword [0x1001b26c]
lea ecx, [ebp - 0x14d0]
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_]
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]
push dword [eax]
inc edi
push edi
lea eax, [ebp - 0x14d0]
push eax
lea ecx, [ebp - 0x147c]
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__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [ebp - 0x1498]
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__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
jmp 0x1000f40f
lea eax, [ebp - 0x1460]
push eax
lea ecx, [ebp - 0x147c]
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__]
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]
push dword [eax]
lea ecx, [ebp - 0x147c]
push 0x5c
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_of_wchar_t__unsigned_int_const]
mov ecx, 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]
cmp eax, dword [ecx]
je 0x1000f41b
push dword [ecx]
inc eax
push eax
lea eax, [ebp - 0x14d0]
push eax
lea ecx, [ebp - 0x147c]
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__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [ebp - 0x1498]
call dword [0x1001b26c]
lea ecx, [ebp - 0x14d0]
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_]
lea ecx, [ebp - 0x147c]
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 - 0x14a4]
lea eax, [ebp - 0x20c]
push dword [ebp - 0x14a8]
push str.SIGN.IE0_X
push 0x104
push eax
call dword [sym.imp.MSVCR90.dll__snwprintf]
mov eax, dword [ebp - 0x1494]
add esp, 0x14
cmp dword [ebp - 0x1480], 8
jae 0x1000f462
lea eax, [ebp - 0x1494]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.MSVCR90.dll_wcscat]
jmp 0x1000f47f
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.MSVCR90.dll_wcscpy]
pop ecx
pop ecx
push 4
lea eax, [ebp - 0x14a0]
push eax
push 4
push esi
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x14b0]
mov dword [ebp - 0x14a0], 1
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea ecx, [ebp - 0x1498]
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_]
lea ecx, [ebp - 0x14b0]
call fcn.10001395
lea ecx, [ebp - 0x14e8]
call fcn.1000be71
lea esp, [ebp - 0x14f4]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10018dd2
leave
ret