Function at 0x40f9ab
Capabilities:
Initialize winsock library
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x808
mov eax, dword [0x427c60]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
xor ebx, ebx
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push ebx
call esi
or eax, 2
push eax
call esi
push edi
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
push ebx
mov esi, 0x41de58
push esi
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
cmp eax, 0xffffffff
je 0x40fa63
mov ecx, dword [sym.imp.MSVCP90.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
push dword [ecx]
inc eax
push eax
lea eax, [ebp - 0x808]
push eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x808]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push ebx
push esi
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
cmp eax, 0xffffffff
je 0x40fa63
push eax
push ebx
lea eax, [ebp - 0x808]
push eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::substr_unsigned_int__unsigned_int_]
push eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x808]
call dword [sym.imp.MSVCP90.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 - 0x3c]
push eax
call fcn.0041066d
push 8
mov ecx, eax
pop edi
add ecx, edi
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
call fcn.0041066d
xor esi, esi
add eax, edi
inc esi
cmp dword [eax + 0x14], esi
jae 0x40faaf
push 0x41e748
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MSVCP90.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 - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.00419ad8
leave
ret 0x10
call fcn.0041066d
mov ecx, eax
call fcn.00410059
test al, al
je 0x40fa93
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
push str.BugReport.xml
call fcn.0041066d
mov esi, dword [sym.imp.MSVCP90.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___wchar_t_const__]
add eax, edi
push eax
lea eax, [ebp - 0x808]
push eax
call esi
add esp, 0xc
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x808]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 8], edi
jae 0x40fb08
lea eax, [ebp - 0x1c]
push eax
call fcn.0041066d
mov ecx, eax
add ecx, 0x28
call fcn.00405a57
push str.BugDetail.txt
call fcn.0041066d
add eax, edi
push eax
lea eax, [ebp - 0x808]
push eax
call esi
add esp, 0xc
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ebp - 0x808]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 8], edi
jae 0x40fb52
lea eax, [ebp - 0x1c]
push 0x41e708
push eax
call dword [sym.imp.MSVCR90.dll__wfopen]
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
je 0x40fbc2
mov esi, dword [sym.imp.MSVCR90.dll_fwrite]
push edi
push 2
lea eax, [ebp - 0x7ec]
push 1
push eax
mov byte [ebp - 0x7ec], 0xff
mov byte [ebp - 0x7eb], 0xfe
call esi
add esp, 0x10
push edi
call fcn.0041066d
mov ecx, eax
add ecx, 0x28
call fcn.00405e15
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
pop ecx
push eax
push 2
call fcn.0041066d
mov ecx, eax
add ecx, 0x28
call fcn.00405e15
push eax
call esi
push edi
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 0x14
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_DefWindowProcW]
push 4
call fcn.0040d05c
pop ecx
push ebx
push dword [ebp + 8]
mov esi, 0x428684
push ebx
mov ecx, esi
call fcn.0040d3af
xor edi, edi
inc edi
mov byte [ebp - 0x7e5], bl
mov byte [ebp - 0x7eb], bl
call fcn.0041066d
mov ecx, eax
call fcn.00410513
test eax, eax
jne 0x40fc53
lea ecx, [ebp - 0x654]
call fcn.0040e64c
push ebx
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x654]
call fcn.0040d437
mov edi, eax
cmp edi, 1
jne 0x40fc46
cmp byte [ebp - 0x634], bl
je 0x40fc37
mov byte [ebp - 0x7e5], al
cmp byte [ebp - 0x633], bl
je 0x40fc46
mov byte [ebp - 0x7eb], 1
lea ecx, [ebp - 0x654]
call fcn.0040f902
jmp 0x40fc6a
call fcn.0041066d
mov ecx, eax
call fcn.004105a2
test al, al
je 0x40fc7e
mov byte [ebp - 0x7eb], 1
cmp byte [ebp - 0x7eb], bl
je 0x40fc7e
call fcn.0041066d
mov ecx, eax
call fcn.004105b7
call fcn.0041066d
mov ecx, eax
call fcn.0041051a
test al, al
je 0x40fc95
mov byte [ebp - 0x7e5], 1
call fcn.0041066d
mov ecx, eax
call fcn.00410521
test al, al
je 0x40fcab
mov byte [ebp - 0x7e5], bl
cmp byte [ebp - 0x7e5], bl
je 0x40fce4
lea eax, [ebp - 0x7e4]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x40fce4
call fcn.0040d1fa
test al, al
je 0x40fcde
call fcn.0041066d
mov ecx, eax
call fcn.00410528
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, esi
call fcn.0040d87c
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [ebp - 0x20]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov esi, edi
jmp 0x40fa93