Function at 0x402213
Capabilities:
Print debug messages

Disassembly:
mov eax, 0x41b15e
call fcn.00418ff0
sub esp, 0xf8
mov eax, dword [0x428674]
xor eax, ebp
push ebx
mov dword [ebp - 0x10], eax
push esi
push edi
mov edi, ecx
lea eax, [edi + 4]
mov dword [ebp - 0x58], eax
lea eax, [edi + 8]
mov dword [ebp - 0x50], eax
lea eax, [edi + 0xc]
mov dword [ebp - 0x48], eax
lea eax, [edi + 0x10]
mov dword [ebp - 0x40], eax
lea eax, [edi + 0x14]
mov dword [ebp - 0x38], eax
xor ebx, ebx
mov dword [ebp - 0x60], edi
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], ebx
jl 0x402281
lea eax, [ebp - 0x7c]
push eax
call fcn.0040cded
mov dword [ebp - 4], ebx
mov dword [esp], 0x41e6e8
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00401a26
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, ebx
mov dword [ebp - 0x30], eax
jne 0x402391
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
lea eax, [ebp - 0x7c]
push ebx
push eax
call fcn.00412980
pop ecx
pop ecx
mov byte [ebp - 4], 4
push eax
push 0x41e6e4
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.00402012
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_]
push eax
call esi
pop ecx
pop ecx
push eax
call fcn.00402012
pop ecx
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_]
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], 5
push eax
call fcn.0040fc10
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 0x402451
mov eax, dword [ebp + ebx*8 - 0x5c]
mov esi, dword [ebp + ebx*8 - 0x60]
push eax
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push dword [ebp + ebx*8 - 0x5c]
mov dword [esi], eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [esi], 0
je 0x4023bf
inc ebx
cmp ebx, 6
jl 0x402391
jmp 0x402451
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], 6
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 0x41e68c
push dword [ebp + ebx*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], 7
push 0x32
push str..download_engine_interface.cpp
push eax
push str.false
call fcn.004130b0
add esp, 0x10
mov byte [ebp - 4], 6
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]
mov eax, edi
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
xor ecx, ebp
pop ebx
call fcn.00418f69
leave
ret