Function at 0x4062b0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
mov eax, 0x5630
call fcn.0040c340
push ebx
push ebp
push esi
lea eax, [esp + 0x3928]
push edi
push eax
push 0x202
call dword [sym.imp.ws2_32.dll_WSAStartup]
mov ebp, dword [sym.imp.user32.dll_MessageBoxA]
test eax, eax
je 0x4062eb
push 0
push str.Winsock
push 0x419054
push 0
call ebp
mov ebx, dword [esp + 0x5644]
test ebx, ebx
je 0x4063f2
mov eax, dword [esp + 0x5648]
test eax, eax
je 0x4063f2
mov dl, byte [0x41af60]
mov ecx, 0x3ff
xor eax, eax
lea edi, [esp + 0x292d]
mov byte [esp + 0x292c], dl
mov byte [esp + 0x12c], dl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x9ff
xor eax, eax
lea edi, [esp + 0x12d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x6e1
xor eax, eax
lea edi, [esp + 0x3abc]
rep stosd dword es:[edi], eax
mov cl, byte [eax + 0x424fda]
mov byte [esp + eax + 0x53c0], cl
inc eax
test cl, cl
jne 0x406353
xor edi, edi
xor edx, edx
mov cl, byte [edx + 0x4236da]
lea eax, [edx + 0x4236da]
test cl, cl
je 0x40639a
mov ecx, edx
sub ecx, eax
lea esi, [esp + ecx + 0x3ac0]
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x406384
add edx, 0x40
inc edi
cmp edx, 0x1900
jl 0x406369
lea edx, [esp + 0x5440]
mov dword [esp + 0x3abc], edi
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4063ac
push 0x42501a
call dword [sym.imp.ws2_32.dll_gethostbyname]
mov esi, eax
test esi, esi
jne 0x406402
push 0x42501a
lea edx, [esp + 0x30]
push 0x419034
push edx
call fcn.0040b8dc
mov ecx, dword [0x41c250]
add esp, 0xc
lea eax, [esp + 0x2c]
push esi
push 0x419028
push eax
push ecx
call ebp
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5630
ret
push 0
push 1
push 2
call dword [sym.imp.ws2_32.dll_socket]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4063f2
mov dx, word [0x42505c]
mov word [esp + 0x1c], 2
push edx
call dword [sym.imp.ws2_32.dll_htons]
mov word [esp + 0x1e], ax
mov eax, dword [esi + 0xc]
push 0x10
mov ecx, dword [eax]
lea eax, [esp + 0x20]
push eax
push ebx
mov edx, dword [ecx]
mov dword [esp + 0x2c], edx
call dword [sym.imp.ws2_32.dll_connect]
test eax, eax
je 0x406489
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
push eax
lea ecx, [esp + 0x30]
push 0x418fc8
push ecx
call fcn.0040b8dc
mov eax, dword [0x41c250]
add esp, 0xc
lea edx, [esp + 0x2c]
push 0
push 0x419028
push edx
push eax
call ebp
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x5630
ret
mov esi, dword [sym.imp.ws2_32.dll_recv]
push str.recv___Reply
push 0
lea ecx, [esp + 0x2934]
push 0x1000
push ecx
push ebx
call esi
push eax
call fcn.00406260
push 0x418fb0
push 0x42501a
lea edx, [esp + 0x13c]
push str.HELO__s_s
push edx
call fcn.0040b8dc
lea edi, [esp + 0x144]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
mov ebp, dword [sym.imp.ws2_32.dll_send]
push str.send___HELO
not ecx
dec ecx
push 0
lea eax, [esp + 0x134]
push ecx
push eax
push ebx
call ebp
push eax
call fcn.00406260
add esp, 8
lea ecx, [esp + 0x292c]
push str.recv___HELO
push 0
push 0x1000
push ecx
push ebx
call esi
push eax
call fcn.00406260
lea edx, [esp + 0x53c8]
push 0x418fb0
push edx
lea eax, [esp + 0x13c]
push str.MAIL_FROM:__s__s
push eax
call fcn.0040b8dc
lea edi, [esp + 0x144]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
push str.send___MAIL_FROM
dec ecx
push 0
push ecx
lea ecx, [esp + 0x138]
push ecx
push ebx
call ebp
push eax
call fcn.00406260
add esp, 8
lea edx, [esp + 0x292c]
push str.recv___MAIL_FROM
push 0
push 0x1000
push edx
push ebx
call esi
push eax
call fcn.00406260
mov eax, dword [esp + 0x3ac4]
add esp, 8
xor esi, esi
test eax, eax
jle 0x406631
lea eax, [esp + 0x3ac0]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
push 0x418fb0
push ecx
lea edx, [esp + 0x134]
push str.RCPT_TO:__s__s
push edx
call fcn.0040b8dc
lea edi, [esp + 0x13c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
push str.send___RCPT_TO
dec ecx
push 0
lea eax, [esp + 0x134]
push ecx
push eax
push ebx
call ebp
push eax
call fcn.00406260
add esp, 8
lea ecx, [esp + 0x292c]
push str.recv___RCPT_TO
push 0
push 0x1000
push ecx
push ebx
call dword [sym.imp.ws2_32.dll_recv]
push eax
call fcn.00406260
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x3ac4]
add esp, 8
inc esi
add ecx, 0x40
cmp esi, eax
mov dword [esp + 0x10], ecx
jl 0x4065a6
push 0x418fb0
lea edx, [esp + 0x130]
push str.DATA_s
push edx
call fcn.0040b8dc
lea edi, [esp + 0x138]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
push str.send___DATA
dec ecx
push 0
lea eax, [esp + 0x134]
push ecx
push eax
push ebx
call ebp
push eax
call fcn.00406260
add esp, 8
lea ecx, [esp + 0x292c]
push str.recv___DATA
push 0
push 0x1000
push ecx
push ebx
call dword [sym.imp.ws2_32.dll_recv]
push eax
call fcn.00406260
lea edx, [esp + 0x53c8]
push 0x418fb0
push edx
lea eax, [esp + 0x13c]
push 0x418ee4
push eax
call fcn.0040b8dc
mov eax, dword [esp + 0x3ad4]
add esp, 0x18
test eax, eax
mov dword [esp + 0x14], 0
jle 0x406781
lea ecx, [esp + 0x3ac0]
mov dword [esp + 0x10], ecx
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
mov dx, word [0x418ee0]
repne scasb al, byte es:[edi]
or ecx, 0xffffffff
mov word [edi - 1], dx
mov edi, dword [esp + 0x10]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x12c]
mov eax, ecx
mov esi, edi
mov edi, edx
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov edx, dword [esp + 0x14]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
mov esi, dword [esp + 0x3abc]
repne scasb al, byte es:[edi]
mov ax, word [0x418edc]
mov word [edi - 1], ax
lea eax, [esi - 1]
cmp edx, eax
jge 0x406769
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov cx, word [0x418ed8]
mov word [edi - 1], cx
mov ecx, dword [esp + 0x10]
inc edx
add ecx, 0x40
cmp edx, esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
jl 0x4066dd
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
mov dx, word [0x418fb0]
repne scasb al, byte es:[edi]
mov al, byte [0x418fb2]
dec edi
or ecx, 0xffffffff
push str.send___message_line
mov word [edi], dx
push 0
mov byte [edi + 2], al
lea edi, [esp + 0x134]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x138]
push ecx
push ebx
call ebp
push eax
call fcn.00406260
push 0x418fb0
lea edx, [esp + 0x544c]
push 0x418fb0
push edx
lea eax, [esp + 0x140]
push str.Subject:__s_s_s
push eax
call fcn.0040b8dc
lea edi, [esp + 0x148]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x1c
repne scasb al, byte es:[edi]
not ecx
push str.send___message_line
dec ecx
push 0
push ecx
lea ecx, [esp + 0x138]
push ecx
push ebx
call ebp
push eax
call fcn.00406260
mov edi, dword [esp + 0x5650]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
xor esi, esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x3e6
mov dword [esp + 0x18], ecx
jle 0x4068e7
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x5648]
mov ecx, 0xa00
xor eax, eax
lea edi, [esp + 0x12c]
rep stosd dword es:[edi], eax
lea eax, [esi + edx]
push 0x3e6
lea ecx, [esp + 0x130]
push eax
push ecx
call fcn.0040c240
lea edi, [esp + 0x138]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
mov dx, word [0x418fb0]
mov al, byte [0x418fb2]
dec edi
or ecx, 0xffffffff
push str.send___message_line
push 0
mov word [edi], dx
mov byte [edi + 2], al
lea edi, [esp + 0x134]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x138]
push ecx
push ebx
call ebp
push eax
call fcn.00406260
mov eax, dword [esp + 0x1c]
add esp, 8
sub eax, 0x3e6
add esi, 0x3e6
cmp eax, 0x3e6
mov dword [esp + 0x14], eax
jg 0x406847
mov ecx, dword [esp + 0x18]
sub ecx, esi
je 0x40693c
mov edx, dword [esp + 0x5648]
push 0x418fb0
add esi, edx
lea eax, [esp + 0x130]
push esi
push str._s_s
push eax
call fcn.0040b8dc
lea edi, [esp + 0x13c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
push str.send___message_line
dec ecx
push 0
push ecx
lea ecx, [esp + 0x138]
push ecx
push ebx
call ebp
push eax
call fcn.00406260
add esp, 8
push 0x418fb0
push 0x418fb0
lea edx, [esp + 0x134]
push str._s._s
push edx
call fcn.0040b8dc
lea edi, [esp + 0x13c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
push str.send___end_message
dec ecx
push 0
lea eax, [esp + 0x134]
push ecx
push eax
push ebx
call ebp
push eax
call fcn.00406260
mov esi, dword [sym.imp.ws2_32.dll_recv]
add esp, 8
lea ecx, [esp + 0x292c]
push str.recv___end_message
push 0
push 0x1000
push ecx
push ebx
call esi
push eax
call fcn.00406260
push 0x418fb0
lea edx, [esp + 0x138]
push str.QUIT_s
push edx
call fcn.0040b8dc
lea edi, [esp + 0x140]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
push str.send___QUIT
dec ecx
push 0
lea eax, [esp + 0x134]
push ecx
push eax
push ebx
call ebp
push eax
call fcn.00406260
add esp, 8
lea ecx, [esp + 0x292c]
push str.recv___QUIT
push 0
push 0x1000
push ecx
push ebx
call esi
push eax
call fcn.00406260
add esp, 8
push ebx
call dword [sym.imp.ws2_32.dll_closesocket]
call dword [sym.imp.ws2_32.dll_WSACleanup]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x5630
ret