Function at 0x404547
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x4e794c
call fcn.004e6580
sub esp, 0xa0
and dword [ebp - 0x2c], 0
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x24], edi
mov eax, dword [0x54f8ec]
mov ecx, dword [eax]
and dword [ebp - 4], 0
lea edx, [ebp - 0x2c]
push edx
push 0x4fd490
push eax
call dword [ecx + 0x14]
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [ebp - 0x5c]
push eax
call ebx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
lea edx, [ebp - 0x5c]
push edx
push 7
push eax
mov byte [ebp - 4], 1
call dword [ecx + 0x10]
push dword [ebp - 0x54]
lea esi, [edi + 0x15d0]
mov ecx, esi
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_1]
push 0x4fde30
mov ecx, esi
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::operator_2]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push esi
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_7]
lea ecx, [ebp - 0x1c]
call fcn.0049334d
and dword [ebp - 0x20], 0
mov eax, dword [edi + 0x15cc]
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push 0xffffffffffffffff
push eax
mov byte [ebp - 4], 3
call dword [ecx + 0x28]
and dword [ebp - 0x48], 0
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea edx, [ebp - 0x48]
push edx
push 0x4feb94
push eax
mov byte [ebp - 4], 4
call dword [ecx]
push dword [ebp - 0x54]
lea ecx, [ebp - 0x38]
call fcn.004021ce
push str.ProfilesEMule_
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 5
call fcn.00402e53
mov eax, dword [ebp - 0x48]
push dword [ebp - 0x38]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x118]
push 5
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push str.ConfigNormal_MaxRunningTaskCount
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
mov esi, 0x4fde70
push esi
mov byte [ebp - 4], 6
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.004934df
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x14]
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigNormal_AutoSlowTask2Tail
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push esi
mov byte [ebp - 4], 7
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.004934df
test eax, eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
je 0x4046aa
push 0x12c
jmp 0x4046ac
push 0
push eax
call dword [ecx + 0x3c]
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigNet_Type
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
mov edi, str.ConfigNet
push edi
mov byte [ebp - 4], 8
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.004934df
cmp eax, 3
jne 0x40471a
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigNet_Custom_MaxUploadSpeed
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
mov byte [ebp - 4], 9
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.004934df
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.BtUpDuration
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
mov edi, 0x4fe240
push edi
mov byte [ebp - 4], 0xa
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 5
call fcn.004934df
or ecx, 0xffffffff
test eax, eax
jne 0x40475d
mov ecx, 0x1b7740
jmp 0x40477f
cmp eax, 1
jne 0x404769
mov ecx, 0x36ee80
jmp 0x40477f
cmp eax, 2
jne 0x404775
mov ecx, 0x6ddd00
jmp 0x40477f
cmp eax, 3
jne 0x40477f
mov ecx, 0x112a880
mov eax, dword [ebp - 0x20]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x70]
and dword [ebp - 0x44], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x70]
mov ecx, dword [eax]
lea edx, [ebp - 0x44]
push edx
push eax
mov byte [ebp - 4], 0xb
call dword [ecx + 0x14]
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x4fdf8c
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x4fdf7c
mov byte [ebp - 4], 0xc
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xb
call fcn.004934df
test eax, eax
je 0x4047e2
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
call fcn.004928fc
mov ecx, eax
call fcn.0049292b
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigWatch_Bt
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push 0x4fdfd0
mov byte [ebp - 4], 0xd
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xb
call fcn.004934df
push eax
call fcn.004928fc
mov ecx, eax
call fcn.00492b3a
and dword [ebp - 0x40], 0
and dword [ebp - 0x28], 0
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x15cc]
mov ecx, dword [eax]
lea edx, [ebp - 0x40]
push edx
push 0xffffffffffffffff
push eax
mov byte [ebp - 4], 0xf
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
lea edx, [ebp - 0x28]
push edx
push 0x4fe5d4
push eax
call dword [ecx]
push 8
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigNormal_MinDiskBuf
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push esi
mov byte [ebp - 4], 0x10
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call fcn.004934df
push 0x100
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigNormal_MaxDiskBuf
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push esi
mov byte [ebp - 4], 0x11
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call fcn.004934df
push 0x3e8
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigNet_GlobalMaxConCount
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
mov esi, str.ConfigNet
push esi
mov byte [ebp - 4], 0x12
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xf
call fcn.004934df
mov word [ebp - 0xac], 3
mov dword [ebp - 0xa4], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
push eax
push ecx
mov byte [ebp - 4], 0x13
call dword [edx + 0x28]
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigBt_TcpPort
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
mov byte [ebp - 4], 0x14
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x13
call fcn.004934df
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigBt_UdpPort
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
mov byte [ebp - 4], 0x15
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x13
call fcn.004934df
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.ConfigBt_Dht
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push edi
mov byte [ebp - 4], 0x16
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x13
call fcn.004934df
mov edi, eax
lea eax, [ebp - 0x8c]
push eax
call ebx
push 1
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
mov byte [ebp - 4], 0x17
mov word [ebp - 0x8c], 0xb
mov word [ebp - 0x84], di
push str.ConfigNet_Upnp
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push esi
mov byte [ebp - 4], 0x18
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x17
call fcn.004934df
mov esi, eax
lea eax, [ebp - 0x6c]
push eax
call ebx
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x4feb50
mov byte [ebp - 4], 0x19
mov word [ebp - 0x6c], 0xb
mov word [ebp - 0x64], si
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push str.ConfigEmule_NickName
mov byte [ebp - 4], 0x1a
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x24], esp
push str.EMuleGenericSettings
mov byte [ebp - 4], 0x1b
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x19
call fcn.004933ae
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MFC71U.DLL_CGopherFileFind::IsDots]
test al, al
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
jne 0x404a9d
lea eax, [ebp - 0x7c]
push eax
call ebx
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x1d
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
lea ecx, [ebp - 0x7c]
call fcn.00402e77
mov eax, dword [ebp - 0x28]
push dword [ebp - 0x74]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc0]
lea eax, [ebp - 0x7c]
push eax
call edi
lea eax, [ebp - 0x9c]
push eax
call ebx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
lea edx, [ebp - 0x9c]
push edx
push 7
push eax
mov byte [ebp - 4], 0x1e
call dword [ecx + 0x10]
push dword [ebp - 0x94]
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push str.componentExplorerHelperXLNonIESvr.exe
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 4], 0x1f
call fcn.00402c1f
add esp, 0xc
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x4fdfe0
mov byte [ebp - 4], 0x20
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
mov esi, 0x4fdfd0
push esi
mov byte [ebp - 4], 0x21
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x20
call fcn.004934df
push 0xffffffffffffffff
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push 0x4fe000
mov dword [ebp - 0x24], eax
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
push ecx
mov ecx, esp
mov dword [ebp - 0x10], esp
push esi
mov byte [ebp - 4], 0x22
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x20
call fcn.004934df
cmp dword [ebp - 0x24], 0xffffffff
mov esi, dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov dword [ebp - 0x10], eax
mov ebx, str.Open
jne 0x404b7c
push 1
push 0
push str._r_firefox
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
push ebx
push 0
call esi
cmp dword [ebp - 0x10], 0xffffffff
jne 0x404b9a
push 1
push 0
push str._r_maxthon
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::operator_class_ATL::CSimpleStringT_]
push eax
push ebx
push 0
call esi
mov dword [ebp - 0x30], 0xa
call fcn.004a1510
test eax, eax
je 0x404bb4
call fcn.004a2a10
mov dword [ebp - 0x30], eax
jmp 0x404bc7
call fcn.004022f2
mov eax, dword [eax + 4]
test eax, eax
je 0x404bc7
lea ecx, [ebp - 0x30]
push ecx
call eax
pop ecx
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
push 0
push dword [ebp - 0x30]
push eax
call dword [ecx + 0x20]
lea ecx, [ebp - 0x34]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea ecx, [ebp - 0x4c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea eax, [ebp - 0x9c]
push eax
call edi
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
lea eax, [ebp - 0x6c]
push eax
call edi
lea eax, [ebp - 0x8c]
push eax
call edi
lea eax, [ebp - 0xac]
push eax
call edi
mov eax, dword [ebp - 0x28]
test eax, eax
mov byte [ebp - 4], 0xe
je 0x404c22
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x40]
test eax, eax
mov byte [ebp - 4], 0xb
je 0x404c33
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x44]
test eax, eax
mov byte [ebp - 4], 5
je 0x404c44
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 0x48]
test eax, eax
mov byte [ebp - 4], 3
je 0x404c5e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x20]
test eax, eax
mov byte [ebp - 4], 2
je 0x404c6f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.0049339f
lea eax, [ebp - 0x5c]
push eax
call edi
mov eax, dword [ebp - 0x2c]
or dword [ebp - 4], 0xffffffff
test eax, eax
je 0x404c92
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret