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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, ecx
push ebx
push esi
mov ebx, edx
mov dword [ebp - 0x20], eax
mov ecx, dword [eax]
or edx, 0xffffffff
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x2c], ecx
push edi
mov edi, dword [ecx + 0x138]
mov dword [ebp - 0x28], edi
test eax, eax
je 0x45bd2f
mov bl, byte [esi + ebx]
dec eax
mov dword [ebp + 8], eax
mov eax, dword [edi + 0x1eb8]
cmp eax, 8
ja case.default.0x45b4ca
jmp dword [eax*4 + 0x45bd38]
mov dword [edi + 0x1eb8], 0
test bl, bl
jne 0x45b58d
test edx, edx
js 0x45b51b
mov eax, dword [ebp - 0x30]
mov ecx, esi
sub ecx, edx
lea edx, [edx + eax]
jne 0x45b501
mov ecx, edx
lea ebx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b4f8
sub ecx, ebx
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, 1
call fcn.00451800
add esp, 8
test eax, eax
jne 0x45bd31
or edx, 0xffffffff
mov dword [ebp - 0x24], edx
jmp case.default.0x45b4ca
cmp bl, 0xff
jne 0x45b57e
mov dword [edi + 0x1eb8], 1
test edx, edx
js 0x45b51b
mov eax, dword [ebp - 0x30]
mov ecx, esi
sub ecx, edx
lea edx, [edx + eax]
jne 0x45b559
mov ecx, edx
lea ebx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45b550
sub ecx, ebx
push ecx
mov ecx, dword [ebp - 0x20]
push edx
mov edx, 1
call fcn.00451800
add esp, 8
test eax, eax
jne 0x45bd31
or edx, 0xffffffff
mov dword [ebp - 0x24], edx
jmp case.default.0x45b4ca
cmp bl, 0xd
jne 0x45b58d
mov dword [edi + 0x1eb8], 6
test edx, edx
mov eax, esi
cmovns eax, edx
mov edx, eax
mov dword [ebp - 0x24], edx
jmp case.default.0x45b4ca
cmp byte [ecx + 0xb42], 0
movzx edi, bl
je 0x45b5f4
cmp edi, 0x27
ja 0x45b5b8
mov ecx, dword [edi*4 + 0x711858]
jmp 0x45b5c8
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 - 0x2c]
push str.RCVD
push eax
push ecx
call fcn.004511c0
add esp, 0x14
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov dword [eax], 1
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
mov ecx, dword [eax + 0x138]
mov eax, dword [ecx + edi*4 + 0xc08]
sub eax, 0
je 0x45b6fd
sub eax, 2
je 0x45b67b
sub eax, 1
jne 0x45b7a3
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x45b65e
sub eax, 1
jne 0x45b7a3
mov dword [ecx + edi*4 + 0xc08], 1
mov dword [ecx + edi*4 + 0x1008], eax
mov edi, dword [ebp - 0x28]
mov dword [edi + 0x1eb8], eax
jmp 0x45bce5
mov dword [ecx + edi*4 + 0xc08], 0
mov edi, dword [ebp - 0x28]
mov dword [edi + 0x1eb8], 0
jmp 0x45bce5
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x45b6e0
sub eax, 1
jne 0x45b7a3
mov dword [ecx + edi*4 + 0x1008], eax
mov dword [ecx + edi*4 + 0xc08], 3
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 4]
mov word [ebp - 4], 0xfeff
mov byte [ebp - 2], bl
push 0
push 3
push eax
push dword [edx + 0x420]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45b78b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x34]
jmp 0x45b783
mov dword [ecx + edi*4 + 0xc08], 1
mov edi, dword [ebp - 0x28]
mov dword [edi + 0x1eb8], 0
jmp 0x45bce5
cmp dword [ecx + edi*4 + 0x1408], 1
push 0
push 3
jne 0x45b757
mov dword [ecx + edi*4 + 0xc08], 1
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 8]
mov word [ebp - 8], 0xfdff
mov byte [ebp - 6], bl
push eax
push dword [edx + 0x420]
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45b74f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x34]
call fcn.004512d0
add esp, 0xc
push edi
push 0xfd
jmp 0x45b791
lea eax, [ebp - 0xc]
mov word [ebp - 0xc], 0xfeff
push eax
push dword [edx + 0x420]
mov byte [ebp - 0xa], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45b78b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x34]
call fcn.004512d0
add esp, 0xc
push edi
push 0xfe
mov ecx, dword [ebp - 0x20]
mov edx, str.SENT
mov ecx, dword [ecx]
call fcn.0045a730
add esp, 8
mov edi, dword [ebp - 0x28]
mov dword [edi + 0x1eb8], 0
jmp 0x45bce5
cmp byte [ecx + 0xb42], 0
movzx edi, bl
je 0x45b80b
cmp edi, 0x27
ja 0x45b7cf
mov ecx, dword [edi*4 + 0x711858]
jmp 0x45b7df
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 - 0x2c]
push str.RCVD
push eax
push ecx
call fcn.004511c0
add esp, 0x14
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov dword [eax], 1
mov eax, dword [edx]
mov ecx, dword [eax + 0x138]
mov eax, dword [ecx + edi*4 + 0xc08]
sub eax, 1
je 0x45b8b7
sub eax, 1
je 0x45b882
sub eax, 1
jne 0x45b7a3
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x45b65e
sub eax, 1
jne 0x45b7a3
mov dword [ecx + edi*4 + 0x1008], eax
mov dword [ecx + edi*4 + 0xc08], 2
mov eax, dword [edx]
push 0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x10]
mov word [ebp - 0x10], 0xfdff
mov byte [ebp - 0xe], bl
push 3
jmp 0x45b727
mov eax, dword [ecx + edi*4 + 0x1008]
sub eax, 0
je 0x45b65e
sub eax, 1
jne 0x45b7a3
mov dword [ecx + edi*4 + 0xc08], eax
mov dword [ecx + edi*4 + 0x1008], eax
mov edi, dword [ebp - 0x28]
mov dword [edi + 0x1eb8], eax
jmp 0x45bce5
mov dword [ecx + edi*4 + 0xc08], 0
mov eax, dword [edx]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x14]
mov word [ebp - 0x14], 0xfeff
mov byte [ebp - 0x12], bl
jmp 0x45b6b3
cmp byte [ecx + 0xb42], 0
movzx edi, bl
je 0x45b92e
cmp edi, 0x27
ja 0x45b8f2
mov ecx, dword [edi*4 + 0x711858]
jmp 0x45b902
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 0x71bc90
mov eax, str._s__s__d_n
cmovne eax, ecx
mov ecx, dword [ebp - 0x2c]
push str.RCVD
push eax
push ecx
call fcn.004511c0
add esp, 0x14
mov eax, dword [ebp - 0x28]
mov edx, edi
mov ebx, dword [ebp - 0x20]
mov ecx, ebx
mov dword [eax], 1
call fcn.0045a830
mov edi, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dword [edi + 0x1eb8], 0
jmp 0x45bceb
cmp byte [ecx + 0xb42], 0
movzx edi, bl
je 0x45b9ae
cmp edi, 0x27
ja 0x45b972
mov ecx, dword [edi*4 + 0x711858]
jmp 0x45b982
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 - 0x2c]
push str.RCVD
push eax
push ecx
call fcn.004511c0
add esp, 0x14
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov dword [eax], 1
mov eax, dword [edx]
mov ecx, dword [eax + 0x138]
mov eax, dword [ecx + edi*4 + 8]
sub eax, 1
je 0x45ba99
sub eax, 1
je 0x45ba6a
sub eax, 1
jne 0x45ba63
mov eax, dword [ecx + edi*4 + 0x408]
sub eax, 0
je 0x45ba5b
sub eax, 1
jne 0x45ba63
mov dword [ecx + edi*4 + 0x408], eax
mov dword [ecx + edi*4 + 8], 2
mov eax, dword [edx]
push 0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x18]
push 3
push eax
push dword [edx + 0x420]
mov word [ebp - 0x18], 0xfbff
mov byte [ebp - 0x16], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45ba3e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x34]
call fcn.004512d0
add esp, 0xc
push edi
push 0xfb
mov ebx, dword [ebp - 0x20]
mov edx, str.SENT
mov ecx, dword [ebx]
call fcn.0045a730
add esp, 8
jmp 0x45b943
mov dword [ecx + edi*4 + 8], 0
mov ebx, edx
jmp 0x45b943
mov eax, dword [ecx + edi*4 + 0x408]
sub eax, 0
je 0x45ba5b
mov ebx, edx
sub eax, 1
jne 0x45b943
mov dword [ecx + edi*4 + 8], 0
mov dword [ecx + edi*4 + 0x408], 0
jmp 0x45b943
mov dword [ecx + edi*4 + 8], 0
mov eax, dword [edx]
push 0
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x1c]
push 3
push eax
push dword [edx + 0x420]
mov word [ebp - 0x1c], 0xfcff
mov byte [ebp - 0x1a], bl
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jns 0x45bade
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Sending_data_failed___d_
push dword [ebp - 0x34]
call fcn.004512d0
add esp, 0xc
push edi
push 0xfc
jmp 0x45ba44
cmp bl, 0xff
jne 0x45bafd
mov dword [edi + 0x1eb8], 8
jmp case.default.0x45b4ca
mov ecx, dword [edi + 0x1eb0]
lea eax, [edi + 0x1eb0]
cmp ecx, eax
jae case.default.0x45b4ca
mov byte [ecx], bl
inc dword [eax]
jmp case.default.0x45b4ca
cmp bl, 0xf0
je 0x45bbe9
cmp bl, 0xff
je 0x45bbc5
mov eax, dword [edi + 0x1eb0]
lea ecx, [edi + 0x1eb0]
cmp eax, ecx
jae 0x45bb4c
mov byte [eax], 0xff
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, ecx
jae 0x45bb4c
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 - 0x2c]
movzx eax, bl
cmp byte [ecx + 0xb42], 0
je 0x45bb9a
cmp eax, 0xec
jb 0x45bb86
push dword [eax*4 + 0x711408]
push str.In_SUBOPTION_processing__RCVD
push str._s_IAC__s_n
jmp 0x45bb91
push eax
push str.In_SUBOPTION_processing__RCVD
push str._s_IAC__d_n
push ecx
call fcn.004511c0
add esp, 0x10
mov ecx, dword [ebp - 0x20]
call fcn.0045b080
mov edx, dword [ebp - 0x24]
movzx ecx, bl
lea eax, [ecx - 0xf1]
cmp eax, 0xe
ja case.0x45bbbe.241
movzx eax, byte [eax + 0x45bd7c]
jmp dword [eax*4 + 0x45bd5c]
mov ecx, dword [edi + 0x1eb0]
lea eax, [edi + 0x1eb0]
cmp ecx, eax
jae 0x45bbda
mov byte [ecx], 0xff
inc dword [eax]
mov dword [edi + 0x1eb8], 7
jmp case.default.0x45b4ca
mov eax, dword [edi + 0x1eb0]
lea ecx, [edi + 0x1eb0]
cmp eax, ecx
jae 0x45bc0a
mov byte [eax], 0xff
inc dword [ecx]
mov eax, dword [ecx]
cmp eax, ecx
jae 0x45bc0a
mov byte [eax], 0xf0
mov eax, dword [ecx]
inc eax
mov ebx, dword [ebp - 0x20]
add eax, 0xfffffffe
mov dword [edi + 0x1eb4], eax
lea eax, [edi + 0x1cb0]
mov dword [ecx], eax
mov ecx, ebx
call fcn.0045b080
mov edx, dword [ebp - 0x24]
mov dword [edi + 0x1eb8], 0
jmp 0x45bceb
mov dword [edi + 0x1eb8], 2
jmp case.default.0x45b4ca
mov dword [edi + 0x1eb8], 3
jmp case.default.0x45b4ca
mov dword [edi + 0x1eb8], 4
jmp case.default.0x45b4ca
mov dword [edi + 0x1eb8], 5
jmp case.default.0x45b4ca
lea eax, [edi + 0x1cb0]
mov dword [edi + 0x1eb8], 7
mov dword [edi + 0x1eb0], eax
jmp case.default.0x45b4ca
test edx, edx
mov dword [edi + 0x1eb8], 0
mov eax, esi
cmovns eax, edx
mov edx, eax
mov dword [ebp - 0x24], edx
jmp case.default.0x45b4ca
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x1eb8], 0
cmp byte [eax + 0xb42], 0
je case.default.0x45b4ca
cmp ecx, 0xec
jb 0x45bcd1
push dword [ecx*4 + 0x711408]
push str.RCVD
push str._s_IAC__s_n
jmp 0x45bcdc
push ecx
push str.RCVD
push str._s_IAC__d_n
push eax
call fcn.004511c0
add esp, 0x10
mov edx, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
inc esi
test eax, eax
je 0x45bcfe
mov ecx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
jmp 0x45b4b4
test edx, edx
js 0x45bd2f
mov ecx, dword [ebp - 0x30]
lea ecx, [edx + ecx]
sub esi, edx
jne 0x45bd1a
mov esi, ecx
lea edi, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x45bd11
sub esi, edi
push esi
push ecx
mov edx, 1
mov ecx, ebx
call fcn.00451800
add esp, 8
test eax, eax
jne 0x45bd31
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret