Function at 0x404391
Capabilities:
Initialize winsock library

Disassembly:
mov eax, 0x4120ca
call fcn.00411a30
sub esp, 0x624
mov eax, dword [0x41e654]
push ebx
push esi
mov dword [ebp - 0x10], eax
push edi
push dword [ebp + 8]
xor eax, eax
inc eax
mov dword [ebp - 0x608], ecx
xor ebx, ebx
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x604], ebx
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x600], ebx
mov dword [ebp - 0x60c], eax
call fcn.00408b76
cmp dword [ebp - 0x58], ebx
mov dword [ebp - 4], ebx
je 0x40459d
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x58]
sar eax, 2
mov dword [ebp - 0x630], eax
je 0x40459d
push str.msgwindow
lea ecx, [ebp - 0x62c]
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__::constructor_wchar_t_const__]
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 1
call fcn.00403227
lea ecx, [ebp - 0x62c]
mov esi, eax
mov byte [ebp - 4], bl
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_]
cmp esi, ebx
je 0x404461
push ebx
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.004031e5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 2
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.MSVCR71.dll__wtoi64]
pop ecx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x604], eax
mov byte [ebp - 4], bl
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_]
push str.clitenttype
lea ecx, [ebp - 0x62c]
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__::constructor_wchar_t_const__]
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 3
call fcn.00403227
lea ecx, [ebp - 0x62c]
mov esi, eax
mov byte [ebp - 4], bl
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_]
cmp esi, ebx
mov edi, dword [sym.imp.MSVCR71.dll__wtoi]
je 0x4044c9
push ebx
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.004031e5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 4
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 edi
pop ecx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x610], eax
mov byte [ebp - 4], bl
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_]
push str.cmdtype
lea ecx, [ebp - 0x62c]
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__::constructor_wchar_t_const__]
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 5
call fcn.00403227
lea ecx, [ebp - 0x62c]
mov esi, eax
mov byte [ebp - 4], bl
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_]
cmp esi, ebx
je 0x40452b
push ebx
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.004031e5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
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 edi
pop ecx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x600], eax
mov byte [ebp - 4], bl
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_]
push 0x4159ac
lea ecx, [ebp - 0x62c]
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__::constructor_wchar_t_const__]
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 7
call fcn.00403227
lea ecx, [ebp - 0x62c]
mov esi, eax
mov byte [ebp - 4], bl
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_]
cmp esi, ebx
je 0x40458d
push ebx
lea eax, [ebp - 0x2c]
push eax
mov ecx, esi
call fcn.004031e5
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 8
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 edi
pop ecx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x60c], eax
mov byte [ebp - 4], bl
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_]
cmp dword [ebp - 0x600], ebx
jne 0x4045a9
cmp dword [ebp - 0x610], ebx
je 0x4045a9
call fcn.00407a47
mov ecx, eax
call fcn.00407663
push str.88FD6767_ED74_47af_8362_27BD5D06C212
push ebx
call dword [sym.imp.USER32.dll_FindWindowW]
mov edi, eax
cmp edi, ebx
mov esi, 0x7d0
je 0x404668
cmp dword [ebp - 0x600], ebx
jne 0x404649
push dword [ebp - 0x604]
push ebx
push edi
call fcn.0040219e
add esp, 0xc
cmp dword [ebp - 0x60c], ebx
jne 0x4045f5
push edi
push 0x14
push dword [ebp - 0x604]
call fcn.0040219e
add esp, 0xc
push str.XLInternetSpeedTesterExclusiveEvent
push 1
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov edi, eax
push 0x3c
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
call dword [sym.imp.KERNEL32.dll_SetEvent]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x600], ebx
jne 0x40463c
push str.88FD6767_ED74_47af_8362_27BD5D06C212
push ebx
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x404670
mov eax, dword [ebp - 0x608]
mov bl, byte [eax]
jmp 0x4047ca
cmp dword [ebp - 0x600], 1
jne 0x4045f5
push dword [ebp - 0x604]
push 1
push edi
call fcn.0040219e
add esp, 0xc
jmp 0x4047ca
cmp dword [ebp - 0x600], ebx
jne 0x40468a
push dword [ebp - 0x604]
call fcn.00407a47
mov ecx, eax
call fcn.004079f1
test al, al
je 0x4047ca
lea eax, [ebp - 0x5fc]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
cmp eax, ebx
jne 0x4047ca
call fcn.00407a47
mov ecx, eax
call fcn.00407e5c
test al, al
je 0x40463c
mov edi, dword [ebp - 0x608]
mov byte [edi], 1
call fcn.00407a47
mov ecx, eax
call fcn.00407c61
cmp dword [ebp - 0x60c], ebx
jne 0x4046f5
push 1
push dword [ebp - 0x604]
call fcn.00407a47
mov ecx, eax
call fcn.0040767e
test al, al
jne 0x4046f5
mov ecx, edi
call fcn.0040246d
jmp 0x4047ca
push str.XLInternetSpeedTester
lea ecx, [ebp + 8]
call fcn.00404341
xor eax, eax
mov word [ebp - 0x46c], bx
mov ecx, 0x81
lea edi, [ebp - 0x46a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
lea eax, [ebp - 0x46c]
push eax
push ebx
mov byte [ebp - 4], 9
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
xor eax, eax
mov word [ebp - 0x264], bx
mov ecx, 0x81
lea edi, [ebp - 0x262]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea eax, [ebp - 0x264]
push 0x104
push eax
call fcn.004094c6
test eax, eax
pop ecx
pop ecx
je 0x404780
push str.Crash_
lea eax, [ebp - 0x264]
push eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x264]
push eax
call dword [sym.imp.XLBugHandler.dll__XL_SetBugReportRootDir_4]
push 0x415bc0
push str.9999
push 0x415adc
lea eax, [ebp - 0x46c]
push eax
push dword [ebp + 8]
call dword [sym.imp.XLBugHandler.dll__XL_InitBugHandler_20]
push 1
call dword [sym.imp.XLBugHandler.dll__XL_SetAlwaysSendReport_4]
push esi
push ebx
call dword [sym.imp.XLBugHandler.dll__XL_EnableReportAutoRestartApp_8]
push 1
call dword [sym.imp.XLBugHandler.dll__XL_SetReportShowMode_4]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x608]
mov bl, byte [eax]
add ecx, 0xfffffff0
call fcn.00402577
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x5c]
call fcn.00408562
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
mov al, bl
pop ebx
call fcn.004118d5
leave
ret 4