Function at 0x40981a
Capabilities:
Check if file exists
Query or enumerate registry key

Disassembly:
push 0xc68
mov eax, 0x448b3c
call fcn.00433037
mov eax, dword [ebp + 8]
lea esi, [eax + 0x6c]
mov eax, esi
mov dword [ebp - 0xc64], ecx
mov dword [ebp - 0xc58], esi
call fcn.0040afc3
xor ebx, ebx
mov dword [ebp - 0xc60], ebx
mov dword [ebp - 0xc5c], ebx
push 0x20019
push str.Software360safemenuext
push reloc.OLEAUT32.dll_SysReAllocString
lea eax, [ebp - 0xc60]
mov dword [ebp - 4], ebx
call fcn.004051c7
test eax, eax
jne 0x409a92
push 0x104
lea eax, [ebp - 0x21c]
push eax
push ebx
push dword [ebp - 0xc60]
mov dword [ebp - 0xc50], ebx
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
jmp 0x409a8a
inc dword [ebp - 0xc50]
cmp dword [ebp - 0xc50], 0x64
jge 0x409a92
mov dword [ebp - 0xc4c], ebx
mov dword [ebp - 0xc48], ebx
push 0x20019
lea eax, [ebp - 0x21c]
push eax
mov byte [ebp - 4], 1
push dword [ebp - 0xc60]
lea eax, [ebp - 0xc4c]
call fcn.004051c7
test eax, eax
jne 0x409a43
push str.Application
lea eax, [ebp - 0xc4c]
push eax
lea esi, [ebp - 0xc54]
lea edi, [ebp - 0xc44]
mov dword [ebp - 0xc54], 0x410
call fcn.0040c482
test eax, eax
jne 0x409a43
mov eax, edi
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x409a43
push 0x44d7e0
lea eax, [ebp - 0xc4c]
push eax
lea edi, [ebp - 0x424]
mov dword [ebp - 0xc54], 0x208
call fcn.0040c482
test eax, eax
jne 0x409a43
mov esi, 0x410
push esi
lea eax, [ebp - 0x834]
push ebx
push eax
call fcn.0042dec0
add esp, 0xc
push str.Parameters
lea eax, [ebp - 0xc4c]
mov dword [ebp - 0xc54], esi
push eax
lea esi, [ebp - 0xc54]
lea edi, [ebp - 0x834]
call fcn.0040c482
lea eax, [ebp - 0xc68]
push eax
push str.flags
lea eax, [ebp - 0xc4c]
push eax
mov dword [ebp - 0xc68], ebx
call fcn.00403b04
lea eax, [ebp - 0x424]
push eax
mov eax, dword [ebp - 0xc50]
add eax, 0x64
push eax
push dword [ebp - 0xc68]
push dword [ebp - 0xc64]
call dword [sym.imp.USER32.dll_AppendMenuW]
mov edi, 0x45dc04
mov ecx, edi
lea esi, [ebp - 0xc70]
call fcn.00405f8a
mov ecx, edi
lea esi, [ebp - 0xc6c]
call fcn.00405f8a
mov eax, dword [ebp - 0xc50]
mov byte [ebp - 4], 2
mov dword [ebp - 0xc74], eax
lea eax, [ebp - 0xc44]
push eax
lea eax, [ebp - 0xc70]
push eax
call fcn.00403dd2
lea eax, [ebp - 0x834]
push eax
mov eax, esi
push eax
call fcn.00403dd2
lea eax, [ebp - 0xc74]
push eax
mov eax, dword [ebp - 0xc58]
call fcn.0040af5c
mov eax, dword [ebp - 0xc6c]
add eax, 0xfffffff0
call fcn.00406004
mov eax, dword [ebp - 0xc70]
add eax, 0xfffffff0
call fcn.00406004
mov byte [ebp - 4], bl
cmp dword [ebp - 0xc4c], ebx
je 0x409a60
push dword [ebp - 0xc4c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0xc4c], ebx
push 0x104
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0xc50]
mov dword [ebp - 0xc48], ebx
push dword [ebp - 0xc60]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
mov esi, dword [ebp - 0xc58]
test eax, eax
je 0x409899
mov eax, dword [esi + 0x10]
sub eax, dword [esi + 0xc]
push 0xc
cdq
pop ecx
idiv ecx
test eax, eax
jbe 0x409ab5
push ebx
push ebx
push 0x800
push dword [ebp - 0xc64]
call dword [sym.imp.USER32.dll_AppendMenuW]
cmp dword [ebp - 0xc60], ebx
je 0x409ac9
push dword [ebp - 0xc60]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.004330ba
ret 4