Function at 0x415bf0
Capabilities:
Check if file exists
Link many functions at runtime

Disassembly:
sub esp, 0x804
mov eax, dword [0x44ffd8]
push esi
test eax, eax
mov dword [esp + 4], 0
jne 0x415d25
mov eax, dword [0x44ffdc]
test eax, eax
jne 0x415cbe
push edi
lea eax, [esp + 0xc]
push 0x400
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edi, dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea ecx, [esp + 0xc]
push ecx
call edi
mov eax, dword [0x44ffe0]
xor esi, esi
test eax, eax
jle 0x415c55
lea edx, [esp + 0xc]
push edx
call edi
mov eax, dword [0x44ffe0]
inc esi
cmp esi, eax
jl 0x415c44
lea eax, [esp + 0xc]
push str.360Common.dll
lea ecx, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea edx, [esp + 0xc]
pop edi
test edx, edx
je 0x415ca6
lea eax, [esp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x415caa
lea ecx, [esp + 8]
push ecx
call fcn.0043a2e0
add esp, 4
test eax, eax
jne 0x415caa
call fcn.0043a1e0
lea edx, [esp + 8]
push eax
push edx
call fcn.0043a1f0
add esp, 8
xor eax, eax
jmp 0x415cb5
lea eax, [esp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
mov dword [0x44ffdc], eax
je 0x415d1c
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Get360CommonInstance
push eax
call esi
mov ecx, dword [0x44ffdc]
push str.Get360ProductHistoryManager
push ecx
mov dword [0x44ffd8], eax
call esi
mov edx, dword [0x44ffdc]
push str.Create360FireWareStateFunction
push edx
mov dword [0x44ffd4], eax
call esi
mov dword [0x44ffd0], eax
mov eax, dword [0x44ffdc]
push str.GetFireWallState
push eax
call esi
mov ecx, dword [0x44ffdc]
push str.Create360FireWareStateFunction2
push ecx
mov dword [0x44ffcc], eax
call esi
mov dword [0x44ffc8], eax
mov eax, dword [0x44ffd8]
test eax, eax
je 0x415d37
call eax
test eax, eax
je 0x415d37
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov esi, eax
test esi, esi
jne 0x415d41
push str.unknow
jmp 0x415e09
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
test eax, eax
je 0x415d55
push str.windows2000
jmp 0x415e09
mov ecx, dword [esi]
push esi
call dword [ecx + 0x30]
test eax, eax
je 0x415d69
push str.windows2003
jmp 0x415e09
mov edx, dword [esi]
push esi
call dword [edx + 4]
test eax, eax
je 0x415d7d
push str.windows95
jmp 0x415e09
mov eax, dword [esi]
push esi
call dword [eax + 8]
test eax, eax
je 0x415d8e
push str.windowsme
jmp 0x415e09
mov ecx, dword [esi]
push esi
call dword [ecx + 0x44]
test eax, eax
je 0x415d9f
push str.windows2008
jmp 0x415e09
mov edx, dword [esi]
push esi
call dword [edx + 0x38]
test eax, eax
je 0x415dc1
mov eax, dword [esi]
push esi
call dword [eax + 0x40]
test eax, eax
je 0x415dba
push str.windows7_64_
jmp 0x415e09
push str.window7
jmp 0x415e09
mov ecx, dword [esi]
push esi
call dword [ecx + 0x18]
test eax, eax
je 0x415de3
mov edx, dword [esi]
push esi
call dword [edx + 0x40]
test eax, eax
je 0x415ddc
push str.windowsvista_64_
jmp 0x415e09
push str.windowsvista
jmp 0x415e09
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
test eax, eax
je 0x415df4
push str.windowsxp
jmp 0x415e09
mov ecx, dword [esi]
push esi
call dword [ecx]
test eax, eax
je 0x415e04
push str.windowsnt
jmp 0x415e09
push 0x44c080
mov esi, dword [esp + 0x810]
mov ecx, esi
call sub.MFC42u.DLL_CString::CString_1
mov eax, esi
pop esi
add esp, 0x804
ret