Function at 0x40a7c1
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x480
push ebx
mov ebx, dword [ebp + 0xc]
push esi
lea eax, [ebx - 1]
push edi
lea esi, [ebp - 0x80]
cmp eax, 0xb
ja case.0x40a7df.8
jmp dword [eax*4 + 0x40ab51]
cmp byte [0x413668], 0
push dword [ebp + 0x10]
lea eax, [ebp - 0x80]
je 0x40a803
push str.ehlo__s_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
jmp 0x40a87a
push str.helo__s_r_n
jmp 0x40a7fa
push 0xd
push str.AUTH_LOGIN_r_n
jmp 0x40a871
mov eax, dword [ebp + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a819
lea ecx, [ebp - 0x80]
push ecx
sub eax, edx
push eax
push dword [ebp + 0x10]
call fcn.0040a6ca
mov byte [ebp + eax - 0x80], 0
jmp 0x40a87a
mov eax, dword [ebp + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a83c
jmp 0x40a820
push dword [ebp + 0x10]
push str.mail_from:__s__r_n
lea eax, [ebp - 0x80]
jmp 0x40a7fa
push dword [ebp + 0x10]
push str.rcpt_to:__s__r_n
jmp 0x40a84d
push 7
push str.data_r_n
jmp 0x40a871
mov esi, dword [ebp + 0x10]
jmp case.0x40a7df.8
push 7
push str.quit_r_n
lea eax, [ebp - 0x80]
push eax
call fcn.0040ee08
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0
mov edi, eax
push edi
push esi
push dword [ebp + 8]
mov esi, dword [sym.imp.WS2_32.dll_send]
call esi
cmp eax, edi
je 0x40a8bf
cmp ebx, 7
jne 0x40a8a5
push 2
jmp 0x40ab4a
push edi
push eax
push str.Error_sending_command__sent___d__d__n
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 5
jmp 0x40ab4a
cmp ebx, 6
jne case.0x40a7df.1
push 0
push 5
pop edi
push edi
push str._r_n._r_n
push dword [ebp + 8]
call esi
cmp eax, edi
je case.0x40a7df.1
push edi
push eax
push str.Error_sending_command__sent___d__d__n
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov eax, edi
jmp 0x40ab4b
mov esi, dword [sym.imp.WS2_32.dll_recv]
xor ebx, ebx
push ebx
mov edi, 0x3f6
mov byte [ebp - 0x480], bl
mov byte [ebp - 0x80], bl
push edi
lea eax, [ebp - 0x480]
jmp 0x40a978
add ebx, eax
cmp ebx, 0x1f4
jg 0x40a9b0
cmp byte [ebp - 0x80], 0
mov byte [ebp + ebx - 0x480], 0
jne 0x40a954
cmp ebx, 3
jle 0x40a96a
push 4
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.0040ee08
add esp, 0xc
cmp byte [ebp - 0x80], 0
mov word [ebp - 0x7d], 0x20
je 0x40a96a
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.0040ee95
pop ecx
pop ecx
test eax, eax
jne 0x40a982
mov eax, edi
sub eax, ebx
push 0
push eax
lea eax, [ebp + ebx - 0x480]
push eax
push dword [ebp + 8]
call esi
test eax, eax
jg 0x40a912
mov edi, dword [ebp + 0xc]
cmp edi, 7
je 0x40a89e
cmp ebx, 5
jle 0x40a9c9
push 0x76
lea eax, [ebp - 0x480]
push eax
push dword [ebp + 0x14]
call fcn.0040ee08
mov eax, dword [ebp + 0x14]
add esp, 0xc
mov byte [eax + 0x76], 0
jmp 0x40a9d8
push ebx
push str.Too_big_smtp_respons___d_bytes__n
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 6
jmp 0x40ab4a
push str.Too_small_respons_n
push dword [ebp + 0x14]
call fcn.0040ef00
pop ecx
pop ecx
cmp ebx, 5
jl 0x40ab39
cmp byte [ebp + ebx - 0x481], 0xa
jne 0x40ab39
lea eax, [ebp - 0x480]
push eax
call fcn.0040edac
mov ebx, eax
pop ecx
cmp ebx, 0xdc
je 0x40aa32
cmp ebx, 0xfa
je 0x40aa32
cmp ebx, 0x162
je 0x40aa32
cmp ebx, 0xdd
je 0x40aa32
cmp ebx, 0x14e
je 0x40aa32
cmp ebx, 0xeb
je 0x40aa32
xor esi, esi
jmp 0x40aa54
lea eax, [ebp - 0x480]
push str.ESMTP
xor esi, esi
push eax
inc esi
call fcn.0040ee95
test eax, eax
pop ecx
setne al
pop ecx
mov byte [0x413668], al
mov edi, esi
cmp edi, 0xc
jne 0x40aa68
cmp ebx, 0x217
jne 0x40aa68
push 0xf
jmp 0x40ab4a
test esi, esi
jne 0x40a89e
mov eax, dword [0x413630]
test eax, eax
je 0x40ab35
cmp dword [0x413634], esi
je 0x40ab35
cmp dword [0x413638], esi
je 0x40ab35
cmp edi, 4
jne 0x40aab4
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.0040a699
pop ecx
pop ecx
test al, al
je 0x40aab4
push 8
jmp 0x40ab4a
push dword [0x413634]
lea eax, [ebp - 0x480]
push eax
call fcn.0040a699
pop ecx
pop ecx
test al, al
je 0x40aad0
push 9
jmp 0x40ab4a
push dword [0x413638]
lea eax, [ebp - 0x480]
push eax
call fcn.0040a699
pop ecx
pop ecx
test al, al
je 0x40aaec
push 0xa
jmp 0x40ab4a
cmp edi, 3
je 0x40ab00
cmp edi, 4
je 0x40ab00
cmp edi, 5
je 0x40ab00
cmp edi, 6
jne 0x40ab35
call fcn.004030b5
push eax
push 0x410750
push str.localcfg
push 1
call fcn.0040e819
lea ecx, [ebp - 0x80]
push ecx
push eax
call fcn.0040a7a3
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.0040ee95
add esp, 0x20
test eax, eax
jne 0x40aacc
push 0xb
jmp 0x40ab4a
push str.Incorrect_respons
push dword [ebp + 0x14]
call fcn.0040ef00
pop ecx
pop ecx
push 7
pop eax
pop edi
pop esi
pop ebx
leave
ret