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

Disassembly:
sub esp, 0x804
mov eax, dword [0x473100]
push esi
test eax, eax
mov dword [esp + 4], 0
jne 0x41d475
mov eax, dword [0x473104]
test eax, eax
jne 0x41d40e
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 [0x473108]
xor esi, esi
test eax, eax
jle 0x41d3a5
lea edx, [esp + 0xc]
push edx
call edi
mov eax, dword [0x473108]
inc esi
cmp esi, eax
jl 0x41d394
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 0x41d3f6
lea eax, [esp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x41d3fa
lea ecx, [esp + 8]
push ecx
call fcn.00456ce0
add esp, 4
test eax, eax
jne 0x41d3fa
call fcn.00456be0
lea edx, [esp + 8]
push eax
push edx
call fcn.00456bf0
add esp, 8
xor eax, eax
jmp 0x41d405
lea eax, [esp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
mov dword [0x473104], eax
je 0x41d46c
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.Get360CommonInstance
push eax
call esi
mov ecx, dword [0x473104]
push str.Get360ProductHistoryManager
push ecx
mov dword [0x473100], eax
call esi
mov edx, dword [0x473104]
push str.Create360FireWareStateFunction
push edx
mov dword [0x4730fc], eax
call esi
mov dword [0x4730f8], eax
mov eax, dword [0x473104]
push str.GetFireWallState
push eax
call esi
mov ecx, dword [0x473104]
push str.Create360FireWareStateFunction2
push ecx
mov dword [0x4730f4], eax
call esi
mov dword [0x4730f0], eax
mov eax, dword [0x473100]
test eax, eax
je 0x41d487
call eax
test eax, eax
je 0x41d487
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov esi, eax
test esi, esi
jne 0x41d491
push str.unknow
jmp 0x41d559
mov eax, dword [esi]
push esi
call dword [eax + 0xc]
test eax, eax
je 0x41d4a5
push str.windows2000
jmp 0x41d559
mov ecx, dword [esi]
push esi
call dword [ecx + 0x30]
test eax, eax
je 0x41d4b9
push str.windows2003
jmp 0x41d559
mov edx, dword [esi]
push esi
call dword [edx + 4]
test eax, eax
je 0x41d4cd
push str.windows95
jmp 0x41d559
mov eax, dword [esi]
push esi
call dword [eax + 8]
test eax, eax
je 0x41d4de
push str.windowsme
jmp 0x41d559
mov ecx, dword [esi]
push esi
call dword [ecx + 0x44]
test eax, eax
je 0x41d4ef
push str.windows2008
jmp 0x41d559
mov edx, dword [esi]
push esi
call dword [edx + 0x38]
test eax, eax
je 0x41d511
mov eax, dword [esi]
push esi
call dword [eax + 0x40]
test eax, eax
je 0x41d50a
push str.windows7_64_
jmp 0x41d559
push str.window7
jmp 0x41d559
mov ecx, dword [esi]
push esi
call dword [ecx + 0x18]
test eax, eax
je 0x41d533
mov edx, dword [esi]
push esi
call dword [edx + 0x40]
test eax, eax
je 0x41d52c
push str.windowsvista_64_
jmp 0x41d559
push str.windowsvista
jmp 0x41d559
mov eax, dword [esi]
push esi
call dword [eax + 0x1c]
test eax, eax
je 0x41d544
push str.windowsxp
jmp 0x41d559
mov ecx, dword [esi]
push esi
call dword [ecx]
test eax, eax
je 0x41d554
push str.windowsnt
jmp 0x41d559
push str.unkown
mov esi, dword [esp + 0x810]
mov ecx, esi
call sub.MFC42u.DLL_CString::CString_1
mov eax, esi
pop esi
add esp, 0x804
ret