Function at 0x408950
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create thread
Create udp socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4c
push ebx
push esi
push edi
mov dword [ebp - 0x20], 0xffffffff
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x2c], 0
cmp dword [0x4622f0], 0
je 0x4089f1
call fcn.00444210
mov eax, 0x5dfaa0
mov ecx, 0x5acf80
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov ax, word [eax + 8]
mov word [ecx + 8], ax
push 0x5dfaa0
call fcn.0041190e
add esp, 4
cmp dword [0x4622f0], 0
je 0x4089f1
cmp dword [0x45e03c], 0
je 0x4089de
push 0x5dfaa0
push str._n_rNIC_O__SAME___X_
call fcn.00452380
add esp, 8
mov eax, dword [ebp + 0x20]
mov dword [eax], 1
mov eax, 0xffffffff
jmp 0x40969d
mov eax, dword [ebp + 0x20]
mov dword [eax], 0
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, 0xa6
jne 0x408a1b
jmp 0x408a6f
cmp dword [0x4622c8], 0
je 0x408a32
mov eax, 0xffffffff
jmp 0x40969d
mov eax, dword [ebp + 8]
cmp dword [0x461134], eax
jne 0x408a65
cmp dword [0x45e03c], 0
je 0x408a5b
push str._n_rIP_is_out_of_order__waiting_to_retry
call fcn.00452380
add esp, 4
mov eax, 0xffffffff
jmp 0x40969d
mov dword [0x461134], 0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xffffffff
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0xffffffff
jne 0x408ae4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.SEND:Error_at_socket__:__ld
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [0x45e03c], 0
je 0x408ace
mov eax, dword [ebp + 0x14]
push eax
push str._s_r_n
call fcn.00452380
add esp, 8
mov edi, dword [ebp + 0x14]
xor eax, eax
mov ecx, 0x19
rep stosd dword es:[edi], eax
mov eax, 0xffffffff
jmp 0x40969d
mov word [ebp - 0x10], 2
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
push 0xf2c
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0xe], ax
cmp dword [0x461140], 0
je 0x408d2c
mov word [ebp - 0x50], 0
lea eax, [ebp - 0x4e]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov word [eax + 0xc], 0
movsx eax, byte [0xb60500]
test eax, eax
je 0x408d2c
mov word [ebp - 0x50], 2
push 0xb60500
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0xffffffff
jne 0x408b87
cmp dword [0x45e03c], 0
je 0x408b7b
push 0xb60500
push str._r_nFailure_Override_inet_addr_returned_invalid___s___reverting_to_default_local_host
call fcn.00452380
add esp, 8
mov dword [ebp - 0x4c], 0
jmp 0x408d2c
push 0x10
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x408cbf
cmp dword [0x45e03c], 0
je 0x408bc6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push 0xb60500
push str._n_rBCNOW:Unable_to_bind_to___s____d_
call fcn.00452380
add esp, 0xc
mov eax, dword [ebp - 0x38]
push eax
call fcn.004096a2
add esp, 4
mov eax, dword [0x462198]
push eax
call fcn.00406c5c
add esp, 4
test eax, eax
je 0x408cab
push 0xb60500
call fcn.00407ee6
add esp, 4
push 0xb60500
push str._BB2_DISQUALIFY_BINDING_OVERRIDE___s__FOR_HAVING_NO_ROUTE_TO_SSA_HOST
push 0xfa
lea eax, [ebp - 0x14c]
push eax
call fcn.00452660
add esp, 0x10
lea eax, [ebp - 0x14c]
push eax
call fcn.004097a0
add esp, 4
cmp dword [0x45e03c], 0
je 0x408c41
push 0xb60500
push str._r_n_BB_BINDING_OVERRIDE_DISQUALIFY___s___NO_ROUTE_TO_SSA_HOST_
call fcn.00452380
add esp, 8
mov eax, 0xb60500
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
cmp dword [0x45e03c], 0
je 0x408c73
push str._r_n_BB_Failure_in_Fortinet_Override__test_connection_via_local_host_successful__reverting_to_default_local_host
call fcn.00452380
add esp, 4
mov dword [ebp - 0x4c], 0
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x38], eax
push 0x10
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.WS2_32.dll_bind]
push str.BINDING_OVERRIDE_FAILED__SUCCESSFULLY_REVERTED_TO_INADDR_NONE
call fcn.004097a0
add esp, 4
jmp 0x408cba
mov dword [0x461148], 0x63
jmp 0x4092cd
jmp 0x408d2c
cmp dword [0x45e03c], 0
je 0x408ce3
push 0xb60580
push 0xb60500
push str._r_nBIND_OVERRIDE_HAS_SELECTED_LOCAL_IPv4___s_:__s_
call fcn.00452380
add esp, 0xc
cmp dword [0x461140], 4
je 0x408d2c
mov dword [0x461140], 4
push 0xb60580
push 0xb60500
push str.4BX:BIND_TO_LOCAL_ADAPTER___s_:__s_
push 0xfa
lea eax, [ebp - 0x248]
push eax
call fcn.00452660
add esp, 0x14
lea eax, [ebp - 0x248]
push eax
call fcn.004097a0
add esp, 4
push 0x10
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4093c5
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov cl, byte [eax + 3]
push ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov cl, byte [eax + 2]
push ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov cl, byte [eax + 1]
push ecx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov cl, byte [eax]
push ecx
push str.Failed_to_connect__d._d._d._d__unable_to_send_message._n
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
cmp dword [0x45e03c], 0
je 0x408dbc
mov eax, dword [0x4621a0]
push eax
mov eax, dword [0x46114c]
push eax
mov eax, dword [0x461148]
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov eax, dword [ebp + 0x14]
push eax
push 0
call fcn.00452990
add esp, 4
push eax
push str._n_r7TW:__x___s__wsaerr_d___bc_d_tx_x__DNI_X__r_n
call fcn.00452380
add esp, 0x1c
mov dword [ebp - 0x3c], 0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0x2751
je 0x408df3
cmp dword [ebp - 0x3c], 0x2743
je 0x408df3
cmp dword [ebp - 0x3c], 0x271d
jne 0x408e80
cmp dword [0x461140], 0
je 0x408e80
movsx eax, byte [0xb60500]
test eax, eax
je 0x408e80
push 0xb60500
call fcn.00407ee6
add esp, 4
push 0xb60500
push str.DISQUALIFY_BINDING_OVERRIDE___s__FOR_HAVING_NO_ROUTE_TO_SSA_HOST
push 0xfa
lea eax, [ebp - 0x344]
push eax
call fcn.00452660
add esp, 0x10
lea eax, [ebp - 0x344]
push eax
call fcn.004097a0
add esp, 4
cmp dword [0x45e03c], 0
je 0x408e68
push 0xb60500
push str._r_nBINDING_OVERRIDE_DISQUALIFY___s___NO_ROUTE_TO_SSA_HOST_
call fcn.00452380
add esp, 8
mov eax, 0xb60500
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
push 0xb60500
mov eax, dword [0x462138]
push eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
mov eax, dword [0x4621a0]
push eax
mov eax, dword [0x46114c]
push eax
mov eax, dword [0x461148]
push eax
mov eax, dword [ebp - 0x3c]
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov eax, dword [ebp + 0x14]
push eax
push 0
call fcn.00452990
add esp, 4
push eax
push str.7TW:__x___s__wsaerr_d__d___bc_d_tx_x__DNI_X__M_X__srt_x__BV_s
push 0x122
lea eax, [ebp - 0x468]
push eax
call fcn.00452660
add esp, 0x34
lea eax, [ebp - 0x468]
push eax
call fcn.004097a0
add esp, 4
mov eax, dword [ebp + 0x20]
mov dword [eax], 1
cmp dword [ebp - 0x3c], 0x274c
jne 0x409053
push 0
call fcn.00452990
add esp, 4
mov ecx, dword [0x4621a0]
add ecx, 0x5a
cmp eax, ecx
jae 0x408f98
push 0
call fcn.00452990
add esp, 4
mov dword [0x46114c], eax
mov dword [0x461148], 0x63
cmp dword [0x45e03c], 0
je 0x408f5a
push 0
call fcn.00452990
add esp, 4
push eax
mov eax, dword [0x4621a0]
push eax
push str._r_nNETSH_REMOVAL_TRIP_X71.3A___x__now__x_
call fcn.00452380
add esp, 0xc
push 0
call fcn.00452990
add esp, 4
push eax
mov eax, dword [0x4621a0]
push eax
push str.NETSH_REMOVAL_TRIP_X71.3A___x__now__x_
push 0xfa
lea eax, [ebp - 0x564]
push eax
call fcn.00452660
add esp, 0x14
lea eax, [ebp - 0x564]
push eax
call fcn.004097a0
add esp, 4
jmp 0x40904e
cmp dword [0x462138], 0
je 0x40904e
push 0
call fcn.00452990
add esp, 4
mov dword [0x46114c], eax
mov dword [0x461148], 0x63
cmp dword [0x45e03c], 0
je 0x408ffa
push 0
call fcn.00452990
add esp, 4
sub eax, dword [0x462138]
push eax
push 0
call fcn.00452990
add esp, 4
push eax
mov eax, dword [0x462138]
push eax
push str._r_nSLOW_SSA_ROUNDTRIP__x___BC_99___x__diff:0x_x
call fcn.00452380
add esp, 0x10
push 0
call fcn.00452990
add esp, 4
sub eax, dword [0x462138]
push eax
push 0
call fcn.00452990
add esp, 4
push eax
mov eax, dword [0x462138]
push eax
push str.SLOW_SSA_ROUNDTRIP__x___BC_99___x__diff:0x_x
push 0xfa
lea eax, [ebp - 0x660]
push eax
call fcn.00452660
add esp, 0x18
lea eax, [ebp - 0x660]
push eax
call fcn.004097a0
add esp, 4
mov dword [0x462138], 0
jmp 0x40917e
cmp dword [ebp - 0x3c], 0x274d
jne 0x40911b
cmp dword [0x462138], 0
je 0x409116
push 0
call fcn.00452990
add esp, 4
mov dword [0x46114c], eax
mov dword [0x461148], 0x63
cmp dword [0x45e03c], 0
je 0x4090c2
push 0
call fcn.00452990
add esp, 4
sub eax, dword [0x462138]
push eax
push 0
call fcn.00452990
add esp, 4
push eax
mov eax, dword [0x462138]
push eax
push str._r_nSLOW_SSA_ROUNDTRIP.61x__x___BC_99___x__diff:0x_x
call fcn.00452380
add esp, 0x10
push 0
call fcn.00452990
add esp, 4
sub eax, dword [0x462138]
push eax
push 0
call fcn.00452990
add esp, 4
push eax
mov eax, dword [0x462138]
push eax
push str.SLOW_SSA_ROUNDTRIP.61x__x___BC_99___x__diff:0x_x
push 0xfa
lea eax, [ebp - 0x75c]
push eax
call fcn.00452660
add esp, 0x18
lea eax, [ebp - 0x75c]
push eax
call fcn.004097a0
add esp, 4
mov dword [0x462138], 0
jmp 0x40917e
cmp dword [ebp - 0x3c], 0x2751
je 0x409142
cmp dword [ebp - 0x3c], 0x2743
je 0x409142
cmp dword [ebp - 0x3c], 0x271d
jne 0x40917e
call fcn.004071c2
movsx eax, byte [0xb60500]
test eax, eax
jne 0x40917e
cmp dword [0x462198], 0
je 0x40917e
cmp dword [0x46219c], 0
je 0x40917e
mov eax, dword [0x462198]
push eax
call fcn.004075c8
add esp, 4
mov eax, dword [ebp - 0x38]
push eax
call fcn.004096a2
add esp, 4
cmp dword [ebp - 0x3c], 0x274d
jne 0x4092a2
cmp dword [0x46113c], 0
je 0x40927a
push 0
call fcn.00452990
add esp, 4
cmp eax, dword [0x46113c]
jae 0x409257
inc dword [0x461138]
cmp dword [0x461138], 6
jbe 0x409252
push 0
call fcn.00452990
add esp, 4
mov dword [0x46114c], eax
mov dword [0x461148], 0x63
mov dword [0x46113c], 0
mov dword [0x461138], 0
cmp dword [0x45e03c], 0
je 0x40921f
push 0
call fcn.00452990
add esp, 4
push eax
push str._r_nEXCESSIVE_10061_packet_rejects_occurring_during_past_3_minutes.61x__x___BC_99
call fcn.00452380
add esp, 8
push 0
call fcn.00452990
add esp, 4
push eax
push str.EXCESSIVE_10061_packet_rejects_occurring_during_past_3_minutes.61x
push 0xfa
lea eax, [ebp - 0x858]
push eax
call fcn.00452660
add esp, 0x10
lea eax, [ebp - 0x858]
push eax
call fcn.004097a0
add esp, 4
jmp 0x409275
push 0
call fcn.00452990
add esp, 4
add eax, 0xb4
mov dword [0x46113c], eax
mov dword [0x461138], 0
jmp 0x409298
push 0
call fcn.00452990
add esp, 4
add eax, 0xb4
mov dword [0x46113c], eax
mov dword [0x461138], 0
mov eax, 0x56
jmp 0x40969d
push 0
call fcn.00452990
add esp, 4
mov ecx, dword [0x46114c]
add ecx, 0x5a
cmp eax, ecx
jbe 0x4092c7
mov dword [0x461148], 0
inc dword [0x461148]
cmp dword [0x461148], 5
jbe 0x409374
cmp dword [0x461134], 0
jne 0x40936c
mov eax, dword [ebp - 0x1c]
mov dword [0x461134], eax
cmp dword [0x45e03c], 0
je 0x409314
push 0
call fcn.00452990
add esp, 4
push eax
push str._n_r7TV:_BC_THD_START___x_
call fcn.00452380
add esp, 8
mov eax, dword [0x461134]
push eax
push 0
call fcn.00452990
add esp, 4
push eax
push str.7TV:_BC_START___x____X_
push 0xfa
lea eax, [ebp - 0x954]
push eax
call fcn.00452660
add esp, 0x14
lea eax, [ebp - 0x954]
push eax
call fcn.004097a0
add esp, 4
lea eax, [ebp - 0x28]
push eax
push 0
push 0
push 0x407f87
push 0x4000
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x409374
mov eax, dword [ebp - 0x1c]
mov dword [0x461134], eax
mov edi, dword [ebp + 0x14]
xor eax, eax
mov ecx, 0x19
rep stosd dword es:[edi], eax
push 0
call fcn.00452990
add esp, 4
mov dword [0x46114c], eax
cmp dword [0x461134], 0
je 0x4093ab
mov eax, 0xffffffff
jmp 0x40969d
cmp dword [ebp + 0x24], 0
je 0x4093be
mov eax, dword [ebp + 0x24]
mov dword [eax], 1
xor eax, eax
jmp 0x40969d
mov dword [0x461134], 0
mov eax, dword [ebp + 0x10]
add eax, 0x400
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
jne 0x409432
cmp dword [0x45e03c], 0
je 0x409410
mov eax, dword [ebp + 0x10]
add eax, 0x400
push eax
push str._n_rIP_xfer_unable_to_alloc___d__bytes
call fcn.00452380
add esp, 8
mov eax, dword [ebp - 0x38]
push eax
call fcn.004096a2
add esp, 4
mov edi, dword [ebp + 0x14]
xor eax, eax
mov ecx, 0x19
rep stosd dword es:[edi], eax
mov eax, 0xffffffff
jmp 0x40969d
mov eax, dword [ebp - 0x34]
mov byte [eax], 0xcf
mov eax, dword [ebp - 0x34]
mov byte [eax + 1], 0x11
mov edi, 0x5f93e0
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov edx, edi
mov edi, dword [ebp - 0x34]
add edi, 0x3c
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0x10]
mov edi, dword [ebp - 0x34]
add edi, 0x64
mov esi, dword [ebp + 0xc]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0
mov eax, dword [ebp + 0x10]
add eax, 0x64
push eax
mov eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x38]
push eax
call dword [sym.imp.WS2_32.dll_send]
mov dword [ebp - 0x40], eax
cmp dword [0x45e03c], 0
je 0x4094c9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov eax, dword [ebp + 0x10]
add eax, 0x64
push eax
mov eax, dword [ebp - 0x40]
push eax
push str._nIPv4___Bytes_Sent:__ld_SIZE_TO_SEND___d___wsaerr_d__n
call fcn.00452380
add esp, 0x10
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x409517
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov eax, dword [ebp + 0x10]
add eax, 0x64
push eax
mov eax, dword [ebp - 0x40]
push eax
push str.IPv4___Bytes_Sent:__ld_SIZE_TO_SEND___d___wsaerr_d__M_X
push 0xfa
lea eax, [ebp - 0xa50]
push eax
call fcn.00452660
add esp, 0x1c
lea eax, [ebp - 0xa50]
push eax
call fcn.004097a0
add esp, 4
mov dword [ebp - 0x30], 0
mov eax, dword [ebp + 0x10]
add eax, 0x64
push eax
mov eax, dword [ebp - 0x34]
push eax
push 1
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
push 0
push str.Timeout_during_SSA_Host_Process_Request
mov eax, dword [ebp - 0x38]
push eax
call fcn.0040858a
add esp, 0x20
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x409560
cmp dword [ebp - 0x20], 0x2746
jne 0x4095d8
mov eax, dword [ebp + 0x1c]
mov dword [eax], 1
mov edi, dword [ebp + 0x14]
xor eax, eax
mov ecx, 0x19
rep stosd dword es:[edi], eax
cmp dword [0x45e03c], 0
je 0x409593
mov eax, dword [ebp - 0x20]
push eax
push str._r_nConnection_Closed_unexpectedly___d
call fcn.00452380
add esp, 8
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
mov eax, dword [ebp + 0x10]
add eax, 0x64
push eax
mov eax, dword [ebp - 0x20]
push eax
push str.CONNRESET:_ATTEMPTED_TO_SEND_IPv4___Bytes_Recd:__ld_SIZE_TO_SEND___d___wsaerr_d__MA_X
push 0xfa
lea eax, [ebp - 0xb4c]
push eax
call fcn.00452660
add esp, 0x1c
lea eax, [ebp - 0xb4c]
push eax
call fcn.004097a0
add esp, 4
jmp 0x409680
cmp dword [ebp - 0x20], 0
jge 0x409635
cmp dword [0x45e03c], 0
je 0x409604
mov eax, dword [ebp + 0x18]
push eax
mov eax, dword [ebp - 0x20]
push eax
push str._r_nError_receiving_on_Connection___d___Max__d_
call fcn.00452380
add esp, 0xc
mov edi, dword [ebp + 0x14]
xor eax, eax
mov ecx, 0x19
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x38]
push eax
call fcn.004096a2
add esp, 4
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, 0xfffffffe
jmp 0x40969d
cmp dword [0x45e03c], 0
je 0x409664
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
push eax
mov eax, dword [ebp - 0x20]
push eax
push str._n_rIP_Receive_Complete__bytes_back_d__1st_two_dwords:___x___x___sizeOut__d_
call fcn.00452380
add esp, 0x14
push 0
call fcn.00452990
add esp, 4
mov dword [0x462134], eax
jmp 0x409680
mov eax, dword [ebp - 0x38]
push eax
call fcn.004096a2
add esp, 4
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
xor eax, eax
jmp 0x40969d
pop edi
pop esi
pop ebx
leave
ret