Function at 0x401936
Capabilities:
Print debug messages

Disassembly:
mov eax, 0x416e20
call fcn.00414c40
sub esp, 0xf8
mov eax, dword [0x4233f0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
mov ebx, ecx
lea eax, [ebx + 4]
mov dword [ebp - 0x58], eax
lea eax, [ebx + 8]
mov dword [ebp - 0x50], eax
lea eax, [ebx + 0xc]
mov dword [ebp - 0x48], eax
lea eax, [ebx + 0x10]
mov dword [ebp - 0x40], eax
push esi
lea eax, [ebx + 0x14]
push edi
mov dword [ebp - 0x38], eax
xor edi, edi
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], str.set_auto_load_plugin_switch
mov dword [ebp - 0x54], str.init
mov dword [ebp - 0x4c], str.uninit
mov dword [ebp - 0x44], str.load_p2p_session
mov dword [ebp - 0x3c], str.set_generate_peerid_strategy
mov dword [ebp - 0x34], str.set_product_identifier
xor eax, eax
mov ecx, dword [ebp + eax*8 - 0x60]
inc eax
cmp eax, 6
mov dword [ecx], edi
jl 0x4019a4
lea eax, [ebp - 0x7c]
push eax
call fcn.00409e73
mov dword [ebp - 4], edi
mov dword [esp], str.download_engine.dll
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00401149
add esp, 0xc
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x7c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
cmp eax, edi
mov dword [ebp - 0x30], eax
jne 0x401a84
push 1
push 3
lea ecx, [ebp - 0x104]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_int_]
mov byte [ebp - 4], 3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______cdecl_std::operator___wchar_t__struct_std::char_traits_wchar_t___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t_____wchar_t_const__]
push eax
push str.__errno:
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xfc]
push str.LoadLibrary_failed__path:
push eax
call esi
pop ecx
pop ecx
push eax
call fcn.00401735
pop ecx
pop ecx
push eax
call esi
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___unsigned_long_int_]
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x104]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::str_void_]
mov byte [ebp - 4], 4
push eax
call fcn.0040cc90
pop ecx
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x7c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x104]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::vbase_dtor_void_]
jmp 0x401b44
mov eax, dword [ebp + edi*8 - 0x5c]
mov esi, dword [ebp + edi*8 - 0x60]
push eax
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp + edi*8 - 0x5c]
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [esi], 0
je 0x401ab2
inc edi
cmp edi, 6
jl 0x401a84
jmp 0x401b44
push 1
push 3
lea ecx, [ebp - 0x104]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_int_]
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.MSVCP71.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::operator___struct_std::char_traits_char___class_std::basic_ostream_char__struct_std::char_traits_char_____char_const__]
push eax
push 0x41a564
push dword [ebp + edi*8 - 0x5c]
lea eax, [ebp - 0xfc]
push str.GetProcAddress_failed__func_name:
push eax
call esi
pop ecx
pop ecx
push eax
call esi
pop ecx
pop ecx
push eax
call esi
pop ecx
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
lea eax, [ebp - 0x7c]
push eax
lea ecx, [ebp - 0x104]
call dword [sym.imp.MSVCP71.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::str_void_]
mov byte [ebp - 4], 6
push 0x2f
push str..download_engine_interface.cpp
push eax
push str.false
call fcn.0040fa00
add esp, 0x10
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x7c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x104]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__::vbase_dtor_void_]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.00414cf1
leave
ret