Function at 0x408020
Capabilities:
Access peb ldr_data
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x41eb11
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push esi
push edi
lea eax, [esp + 0x38]
push 0x104
xor ebx, ebx
push eax
mov esi, ecx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x38]
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_2
push 0x5c
lea ecx, [esp + 0x14]
mov dword [esp + 0x148], ebx
call sub.MFC42.DLL_CString::ReverseFind
inc eax
lea edx, [esp + 0xc]
push eax
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Left
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 1
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], bl
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x10]
lea ecx, [esp + 0x28]
push eax
mov dword [esi + 0xc], ebx
call sub.MFC42.DLL_CString::CString_3
push str.Moborobo_PC_Suite.exe
lea ecx, [esp + 0x2c]
mov byte [esp + 0x148], 2
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString_3
push str.iPhone_PC_Suite.exe
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 3
call fcn.0041d6e4
lea edx, [esp + 0xc]
lea ecx, [esp + 0x20]
push edx
mov byte [esp + 0x148], 4
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 3
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x10]
lea ecx, [esp + 0x18]
push eax
call sub.MFC42.DLL_CString::CString_3
push str.panda_pc_suite.exe
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 5
call fcn.0041d6e4
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 6
push ecx
lea ecx, [esp + 0x1c]
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 5
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString_3
push str.Android_PC_Suite.exe
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 7
call fcn.0041d6e4
lea eax, [esp + 0xc]
lea ecx, [esp + 0x34]
push eax
mov byte [esp + 0x148], 8
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString_3
push str.M8_PC_Suite.exe
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 9
call fcn.0041d6e4
lea edx, [esp + 0xc]
lea ecx, [esp + 0x14]
push edx
mov byte [esp + 0x148], 0xa
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 9
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x10]
lea ecx, [esp + 0x2c]
push eax
call sub.MFC42.DLL_CString::CString_3
push str.OPhone_PC_Suite.exe
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 0xb
call fcn.0041d6e4
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 0xc
push ecx
lea ecx, [esp + 0x30]
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 0xb
call sub.MFC42.DLL_CString::CString
lea edx, [esp + 0x10]
lea ecx, [esp + 0x1c]
push edx
call sub.MFC42.DLL_CString::CString_3
push str.MobileDeviceHelper.exe
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 0xd
call fcn.0041d6e4
lea eax, [esp + 0xc]
lea ecx, [esp + 0x1c]
push eax
mov byte [esp + 0x148], 0xe
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString_3
push str.360_PC_Suite.exe
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 0xf
call fcn.0041d6e4
mov byte [esp + 0x144], 0x10
lea edx, [esp + 0xc]
lea ecx, [esp + 0x30]
push edx
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 0xf
call sub.MFC42.DLL_CString::CString
lea eax, [esp + 0x10]
lea ecx, [esp + 0x24]
push eax
call sub.MFC42.DLL_CString::CString_3
push 0x4298a4
lea ecx, [esp + 0x10]
mov byte [esp + 0x148], 0x11
call fcn.0041d6e4
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 0x12
push ecx
lea ecx, [esp + 0x28]
call fcn.0041d60c
lea ecx, [esp + 0xc]
mov byte [esp + 0x144], 0x11
call sub.MFC42.DLL_CString::CString
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
cmp ax, 0x804
jne 0x408335
mov byte [esi + 7], bl
jmp 0x40833d
cmp ax, 0x404
mov byte [esi + 7], 1
mov edx, dword [esp + 0x28]
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
push edx
call edi
test eax, eax
je 0x408360
lea eax, [esp + 0x28]
mov byte [esi + 7], 1
mov dword [esi + 0xc], 5
push eax
jmp 0x40837b
mov ecx, dword [esp + 0x24]
push ecx
call edi
test eax, eax
je 0x40843f
mov dword [esi + 0xc], 5
lea edx, [esp + 0x24]
push edx
lea ecx, [esi + 8]
call sub.MFC42.DLL_CString::operator
cmp dword [esi + 0xc], ebx
jne 0x408508
lea ecx, [esp + 0x24]
mov byte [esp + 0x144], 0xf
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x144], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x144], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov byte [esp + 0x144], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x144], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x144], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x144], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x144], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x144], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor al, al
jmp 0x4085b6
mov eax, dword [esp + 0x30]
push eax
call edi
test eax, eax
je 0x40845b
lea ecx, [esp + 0x30]
mov dword [esi + 0xc], 4
push ecx
jmp 0x40837b
mov edx, dword [esp + 0x20]
push edx
call edi
test eax, eax
je 0x408477
lea eax, [esp + 0x20]
mov dword [esi + 0xc], 1
push eax
jmp 0x40837b
mov ecx, dword [esp + 0x18]
push ecx
call edi
test eax, eax
je 0x408492
mov dword [esi + 0xc], 2
lea edx, [esp + 0x18]
jmp 0x40837a
mov eax, dword [esp + 0x34]
push eax
call edi
test eax, eax
je 0x4084ae
lea ecx, [esp + 0x34]
mov dword [esi + 0xc], 3
push ecx
jmp 0x40837b
mov edx, dword [esp + 0x14]
push edx
call edi
test eax, eax
je 0x4084ca
lea eax, [esp + 0x14]
mov dword [esi + 0xc], 2
push eax
jmp 0x40837b
mov ecx, dword [esp + 0x2c]
push ecx
call edi
test eax, eax
je 0x4084e5
mov dword [esi + 0xc], 3
lea edx, [esp + 0x2c]
jmp 0x40837a
mov eax, dword [esp + 0x1c]
push eax
call edi
test eax, eax
je 0x408383
lea ecx, [esp + 0x1c]
mov dword [esi + 0xc], ebx
push ecx
lea ecx, [esi + 8]
call sub.MFC42.DLL_CString::operator
mov byte [esi + 5], 1
lea ecx, [esp + 0x24]
mov byte [esp + 0x144], 0xf
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x144], 0xd
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x144], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x2c]
mov byte [esp + 0x144], 9
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x144], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x34]
mov byte [esp + 0x144], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x144], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x144], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x144], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov al, 1
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x13c
ret