Function at 0x568f46
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x65e374]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
push ebx
push esi
mov ebx, edx
mov dword [ebp - 0x24], eax
mov ecx, dword [eax]
or edx, 0xffffffff
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], ecx
push edi
mov edi, dword [ecx + 0x150]
mov dword [ebp - 0x34], edi
test eax, eax
je 0x56930e
nop
mov bl, byte [ebx + esi]
dec eax
mov dword [ebp + 8], eax
mov eax, dword [edi + 0x1eb8]
cmp eax, 8
ja case.default.0x568ad6
jmp dword [eax*4 + 0x569324]
mov dword [edi + 0x1eb8], 0
test bl, bl
jne 0x568ba8
test edx, edx
js 0x568b2a
mov eax, dword [ebp - 0x38]
mov ecx, esi
sub ecx, edx
lea edx, [eax + edx]
jne 0x568b0d
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x568b04
sub ecx, ebx
push ecx
mov ecx, dword [ebp - 0x24]
push edx
mov edx, 1
call fcn.00543e40
add esp, 8
test eax, eax
jne 0x569310
mov ecx, dword [ebp - 0x28]
or edx, 0xffffffff
mov dword [ebp - 0x2c], edx
jmp case.default.0x568ad6
cmp bl, 0xff
jne 0x568b99
mov dword [edi + 0x1eb8], 1
test edx, edx
js 0x568b2a
mov eax, dword [ebp - 0x38]
mov ecx, esi
sub ecx, edx
lea edx, [eax + edx]
jne 0x568b5f
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x568b56
sub ecx, ebx
push ecx
mov ecx, dword [ebp - 0x24]
push edx
mov edx, 1
call fcn.00543e40
add esp, 8
test eax, eax
jne 0x569310
or edx, 0xffffffff
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp + 8]
inc esi
test eax, eax
je 0x5692dd
mov ebx, dword [ebp - 0x38]
jmp 0x568ac0
cmp bl, 0xd
jne 0x568ba8
mov dword [edi + 0x1eb8], 6
test edx, edx
mov eax, esi
cmovns eax, edx
mov edx, eax
mov dword [ebp - 0x2c], edx
jmp case.default.0x568ad6
cmp byte [ecx + 0x4f8], 0
movzx edi, bl
je 0x568c0c
cmp edi, 0x27
ja 0x568bd0
mov ecx, dword [edi*4 + 0x62d6c8]
jmp 0x568be0
xor eax, eax
mov ecx, str.EXOPL
cmp edi, 0xff
cmovne ecx, eax
test ecx, ecx
mov eax, ecx
mov ecx, str._s__s__s_n
cmove eax, edi
push eax
push str.WILL
mov eax, str._s__s__d_n
cmovne eax, ecx
mov ecx, dword [ebp - 0x28]
push str.RCVD
push eax
push ecx
call fcn.00543710
add esp, 0x14
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x24]
mov dword [eax], 1
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
mov ecx, dword [eax + 0x150]
mov eax, dword [ecx + edi*4 + 0xc08]
sub eax, 0
je 0x568cf2
sub eax, 2
je 0x568c7d
sub eax, 1
jne 0x568d98
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x568c6d
sub eax, 1
jne 0x568d98
mov dword [ecx + edi*4 + 0xc08], 1
mov dword [ecx + edi*4 + 0x1008], eax
jmp 0x568d98
mov dword [ecx + edi*4 + 0xc08], 0
jmp 0x568d98
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x568ce2
sub eax, 1
jne 0x568d98
mov dword [ecx + edi*4 + 0xc08], 3
mov dword [ecx + edi*4 + 0x1008], eax
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 8]
mov word [ebp - 8], 0xfeff
mov byte [ebp - 6], bl
push 0
push 3
push eax
push dword [edx + 0x1a8]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x568d80
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x30]
jmp 0x568d78
mov dword [ecx + edi*4 + 0xc08], 1
jmp 0x568d98
cmp dword [ecx + edi*4 + 0x1408], 1
push 0
push 3
jne 0x568d4c
mov dword [ecx + edi*4 + 0xc08], 1
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0xc]
mov word [ebp - 0xc], 0xfdff
mov byte [ebp - 0xa], bl
push eax
push dword [edx + 0x1a8]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x568d44
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x30]
call fcn.00543790
add esp, 0xc
push edi
push 0xfd
jmp 0x568d86
lea eax, [ebp - 0x10]
mov word [ebp - 0x10], 0xfeff
push eax
push dword [edx + 0x1a8]
mov byte [ebp - 0xe], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x568d80
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x30]
call fcn.00543790
add esp, 0xc
push edi
push 0xfe
mov ecx, dword [ebp - 0x24]
mov edx, str.SENT
mov ecx, dword [ecx]
call fcn.00567cc0
add esp, 8
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
mov dword [edi + 0x1eb8], 0
jmp 0x568b7f
cmp byte [ecx + 0x4f8], 0
movzx edi, bl
je 0x568e03
cmp edi, 0x27
ja 0x568dc7
mov ecx, dword [edi*4 + 0x62d6c8]
jmp 0x568dd7
xor eax, eax
mov ecx, str.EXOPL
cmp edi, 0xff
cmovne ecx, eax
test ecx, ecx
mov eax, ecx
mov ecx, str._s__s__s_n
cmove eax, edi
push eax
push str.WONT
mov eax, str._s__s__d_n
cmovne eax, ecx
mov ecx, dword [ebp - 0x28]
push str.RCVD
push eax
push ecx
call fcn.00543710
add esp, 0x14
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x24]
mov dword [eax], 1
mov eax, dword [edx]
mov ecx, dword [eax + 0x150]
mov eax, dword [ecx + edi*4 + 0xc08]
sub eax, 1
je 0x568ea2
sub eax, 1
je 0x568e76
sub eax, 1
jne 0x568d98
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x568c6d
sub eax, 1
jne 0x568d98
mov dword [ecx + edi*4 + 0xc08], 2
mov dword [ecx + edi*4 + 0x1008], eax
mov eax, dword [edx]
push 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x14]
mov word [ebp - 0x14], 0xfdff
mov byte [ebp - 0x12], bl
push 3
jmp 0x568d1c
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x568c6d
sub eax, 1
jne 0x568d98
mov dword [ecx + edi*4 + 0xc08], eax
mov dword [ecx + edi*4 + 0x1008], eax
jmp 0x568d98
mov dword [ecx + edi*4 + 0xc08], 0
mov eax, dword [edx]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x18]
mov word [ebp - 0x18], 0xfeff
mov byte [ebp - 0x16], bl
jmp 0x568cb5
cmp byte [ecx + 0x4f8], 0
movzx edi, bl
je 0x568f19
cmp edi, 0x27
ja 0x568edd
mov ecx, dword [edi*4 + 0x62d6c8]
jmp 0x568eed
xor eax, eax
mov ecx, str.EXOPL
cmp edi, 0xff
cmovne ecx, eax
test ecx, ecx
mov eax, ecx
mov ecx, str._s__s__s_n
cmove eax, edi
push eax
push 0x63dc4c
mov eax, str._s__s__d_n
cmovne eax, ecx
mov ecx, dword [ebp - 0x28]
push str.RCVD
push eax
push ecx
call fcn.00543710
add esp, 0x14
mov eax, dword [ebp - 0x34]
mov edx, edi
mov ebx, dword [ebp - 0x24]
mov ecx, ebx
mov dword [eax], 1
call fcn.00567df0
mov edi, dword [ebp - 0x34]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
mov dword [edi + 0x1eb8], 0
jmp 0x568b85
cmp byte [ecx + 0x4f8], 0
movzx edi, bl
je 0x568f9c
cmp edi, 0x27
ja 0x568f60
mov ecx, dword [edi*4 + 0x62d6c8]
jmp 0x568f70
xor eax, eax
mov ecx, str.EXOPL
cmp edi, 0xff
cmovne ecx, eax
test ecx, ecx
mov eax, ecx
mov ecx, str._s__s__s_n
cmove eax, edi
push eax
push str.DONT
mov eax, str._s__s__d_n
cmovne eax, ecx
mov ecx, dword [ebp - 0x28]
push str.RCVD
push eax
push ecx
call fcn.00543710
add esp, 0x14
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x24]
mov dword [eax], 1
mov eax, dword [edx]
mov ecx, dword [eax + 0x150]
mov eax, dword [ecx + edi*4 + 8]
sub eax, 1
je 0x569087
sub eax, 1
je 0x569058
sub eax, 1
jne 0x569051
mov eax, dword [ecx + edi*4 + 0x408]
sub eax, 0
je 0x569049
sub eax, 1
jne 0x569051
mov dword [ecx + edi*4 + 8], 2
mov dword [ecx + edi*4 + 0x408], eax
mov eax, dword [edx]
push 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x1c]
push 3
push eax
push dword [edx + 0x1a8]
mov word [ebp - 0x1c], 0xfbff
mov byte [ebp - 0x1a], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x56902c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x30]
call fcn.00543790
add esp, 0xc
push edi
push 0xfb
mov ebx, dword [ebp - 0x24]
mov edx, str.SENT
mov ecx, dword [ebx]
call fcn.00567cc0
add esp, 8
jmp 0x568f2e
mov dword [ecx + edi*4 + 8], 0
mov ebx, edx
jmp 0x568f2e
mov eax, dword [ecx + edi*4 + 0x408]
sub eax, 0
je 0x569049
mov ebx, edx
sub eax, 1
jne 0x568f2e
mov dword [ecx + edi*4 + 8], 0
mov dword [ecx + edi*4 + 0x408], 0
jmp 0x568f2e
mov dword [ecx + edi*4 + 8], 0
mov eax, dword [edx]
push 0
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x20]
push 3
push eax
push dword [edx + 0x1a8]
mov word [ebp - 0x20], 0xfcff
mov byte [ebp - 0x1e], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x5690cc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x30]
call fcn.00543790
add esp, 0xc
push edi
push 0xfc
jmp 0x569032
cmp bl, 0xff
jne 0x5690eb
mov dword [edi + 0x1eb8], 8
jmp case.default.0x568ad6
mov ecx, dword [edi + 0x1eb0]
lea eax, [edi + 0x1eb0]
cmp ecx, eax
jae 0x568b7f
mov byte [ecx], bl
inc dword [eax]
jmp 0x568b7f
cmp bl, 0xf0
je 0x5691ce
cmp bl, 0xff
je 0x5691aa
mov eax, dword [edi + 0x1eb0]
lea ecx, [edi + 0x1eb0]
cmp eax, ecx
jae 0x56913a
mov byte [eax], 0xff
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, ecx
jae 0x56913a
mov byte [eax], bl
mov eax, dword [ecx]
inc eax
add eax, 0xfffffffe
mov dword [edi + 0x1eb4], eax
lea eax, [edi + 0x1cb0]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x28]
movzx eax, bl
cmp byte [ecx + 0x4f8], 0
je 0x569186
cmp bl, 0xec
jb 0x569172
push dword [eax*4 + 0x62d2c8]
push str.In_SUBOPTION_processing__RCVD
push str._s_IAC__s_n
jmp 0x56917d
push eax
push str.In_SUBOPTION_processing__RCVD
push str._s_IAC__d_n
push ecx
call fcn.00543710
add esp, 0x10
mov ecx, dword [ebp - 0x24]
call fcn.00568660
mov edx, dword [ebp - 0x2c]
movzx eax, bl
lea ecx, [eax - 0xfa]
cmp ecx, 5
ja case.default.0x5691a3
jmp dword [ecx*4 + 0x569348]
mov ecx, dword [edi + 0x1eb0]
lea eax, [edi + 0x1eb0]
cmp ecx, eax
jae 0x5691bf
mov byte [ecx], 0xff
inc dword [eax]
mov dword [edi + 0x1eb8], 7
jmp 0x568b7f
mov eax, dword [edi + 0x1eb0]
lea ecx, [edi + 0x1eb0]
cmp eax, ecx
jae 0x5691ef
mov byte [eax], 0xff
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, ecx
jae 0x5691ef
mov byte [eax], 0xf0
mov eax, dword [ecx]
inc eax
mov ebx, dword [ebp - 0x24]
add eax, 0xfffffffe
mov dword [edi + 0x1eb4], eax
lea eax, [edi + 0x1cb0]
mov dword [ecx], eax
mov ecx, ebx
call fcn.00568660
jmp 0x568f31
mov dword [edi + 0x1eb8], 2
jmp 0x568b7f
mov dword [edi + 0x1eb8], 3
jmp 0x568b7f
mov dword [edi + 0x1eb8], 4
jmp 0x568b7f
mov dword [edi + 0x1eb8], 5
jmp 0x568b7f
lea eax, [edi + 0x1cb0]
mov dword [edi + 0x1eb8], 7
mov dword [edi + 0x1eb0], eax
jmp 0x568b7f
test edx, edx
mov dword [edi + 0x1eb8], 0
mov eax, esi
cmovns eax, edx
mov edx, eax
jmp 0x568b7c
mov ecx, dword [ebp - 0x28]
mov dword [edi + 0x1eb8], 0
cmp byte [ecx + 0x4f8], 0
je case.default.0x568ad6
cmp eax, 0xec
jb 0x5692c1
push dword [eax*4 + 0x62d2c8]
push str.RCVD
push str._s_IAC__s_n
push ecx
call fcn.00543710
mov edx, dword [ebp - 0x2c]
add esp, 0x10
jmp 0x568b7f
push eax
push str.RCVD
push str._s_IAC__d_n
push ecx
call fcn.00543710
mov edx, dword [ebp - 0x2c]
add esp, 0x10
jmp 0x568b7f
test edx, edx
js 0x56930e
mov edi, dword [ebp - 0x38]
lea edi, [edi + edx]
sub esi, edx
jne 0x5692f9
mov esi, edi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x5692f0
sub esi, ecx
push esi
push edi
mov edx, 1
mov ecx, ebx
call fcn.00543e40
add esp, 8
test eax, eax
jne 0x569310
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005b8427
mov esp, ebp
pop ebp
ret