Function at 0xd9a7c1
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.0xd9a7df.8
jmp dword [eax*4 + 0xd9ab51]
cmp byte [0xda3668], 0
push dword [ebp + 0x10]
lea eax, [ebp - 0x80]
je 0xd9a803
push str.ehlo__s_r_n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
jmp 0xd9a87a
push str.helo__s_r_n
jmp 0xd9a7fa
push 0xd
push str.AUTH_LOGIN_r_n
jmp 0xd9a871
mov eax, dword [ebp + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0xd9a819
lea ecx, [ebp - 0x80]
push ecx
sub eax, edx
push eax
push dword [ebp + 0x10]
call fcn.00d9a6ca
mov byte [ebp + eax - 0x80], 0
jmp 0xd9a87a
mov eax, dword [ebp + 0x10]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0xd9a83c
jmp 0xd9a820
push dword [ebp + 0x10]
push str.mail_from:__s__r_n
lea eax, [ebp - 0x80]
jmp 0xd9a7fa
push dword [ebp + 0x10]
push str.rcpt_to:__s__r_n
jmp 0xd9a84d
push 7
push str.data_r_n
jmp 0xd9a871
mov esi, dword [ebp + 0x10]
jmp case.0xd9a7df.8
push 7
push str.quit_r_n
lea eax, [ebp - 0x80]
push eax
call fcn.00d9ee08
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push 0
push eax
pop edi
push edi
push esi
push dword [ebp + 8]
mov esi, dword [sym.imp.WS2_32.dll_send]
call esi
cmp eax, edi
je 0xd9a8bf
cmp ebx, 7
jne 0xd9a8a5
push 2
jmp 0xd9ab4a
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 0xd9ab4a
cmp ebx, 6
jne case.0xd9a7df.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.0xd9a7df.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
push edi
pop eax
jmp 0xd9ab4b
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 0xd9a978
add ebx, eax
cmp ebx, 0x1f4
jg 0xd9a9b0
cmp byte [ebp - 0x80], 0
mov byte [ebp + ebx - 0x480], 0
jne 0xd9a954
cmp ebx, 3
jle 0xd9a96a
push 4
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.00d9ee08
add esp, 0xc
cmp byte [ebp - 0x80], 0
mov word [ebp - 0x7d], 0x20
je 0xd9a96a
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.00d9ee95
pop ecx
pop ecx
or eax, eax
jne 0xd9a982
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 0xd9a912
mov edi, dword [ebp + 0xc]
cmp edi, 7
je 0xd9a89e
cmp ebx, 5
jle 0xd9a9c9
push 0x76
lea eax, [ebp - 0x480]
push eax
push dword [ebp + 0x14]
call fcn.00d9ee08
mov eax, dword [ebp + 0x14]
add esp, 0xc
mov byte [eax + 0x76], 0
jmp 0xd9a9d8
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 0xd9ab4a
push str.Too_small_respons_n
push dword [ebp + 0x14]
call fcn.00d9ef00
pop ecx
pop ecx
cmp ebx, 5
jl 0xd9ab39
cmp byte [ebp + ebx - 0x481], 0xa
jne 0xd9ab39
lea eax, [ebp - 0x480]
push eax
call fcn.00d9edac
mov ebx, eax
pop ecx
cmp ebx, 0xdc
je 0xd9aa32
cmp ebx, 0xfa
je 0xd9aa32
cmp ebx, 0x162
je 0xd9aa32
cmp ebx, 0xdd
je 0xd9aa32
cmp ebx, 0x14e
je 0xd9aa32
cmp ebx, 0xeb
je 0xd9aa32
sub esi, esi
jmp 0xd9aa54
lea eax, [ebp - 0x480]
push str.ESMTP
sub esi, esi
push eax
inc esi
call fcn.00d9ee95
or eax, eax
pop ecx
setne al
pop ecx
mov byte [0xda3668], al
push esi
pop edi
cmp edi, 0xc
jne 0xd9aa68
cmp ebx, 0x217
jne 0xd9aa68
push 0xf
jmp 0xd9ab4a
or esi, esi
jne 0xd9a89e
mov eax, dword [0xda3630]
or eax, eax
je 0xd9ab35
cmp dword [0xda3634], esi
je 0xd9ab35
cmp dword [0xda3638], esi
je 0xd9ab35
cmp edi, 4
jne 0xd9aab4
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.00d9a699
pop ecx
pop ecx
test al, al
je 0xd9aab4
push 8
jmp 0xd9ab4a
push dword [0xda3634]
lea eax, [ebp - 0x480]
push eax
call fcn.00d9a699
pop ecx
pop ecx
test al, al
je 0xd9aad0
push 9
jmp 0xd9ab4a
push dword [0xda3638]
lea eax, [ebp - 0x480]
push eax
call fcn.00d9a699
pop ecx
pop ecx
test al, al
je 0xd9aaec
push 0xa
jmp 0xd9ab4a
cmp edi, 3
je 0xd9ab00
cmp edi, 4
je 0xd9ab00
cmp edi, 5
je 0xd9ab00
cmp edi, 6
jne 0xd9ab35
call fcn.00d930b5
push eax
push 0xda0750
push str.localcfg
push 1
call fcn.00d9e819
lea ecx, [ebp - 0x80]
push ecx
push eax
call fcn.00d9a7a3
push eax
lea eax, [ebp - 0x480]
push eax
call fcn.00d9ee95
add esp, 0x20
or eax, eax
jne 0xd9aacc
push 0xb
jmp 0xd9ab4a
push str.Incorrect_respons
push dword [ebp + 0x14]
call fcn.00d9ef00
pop ecx
pop ecx
push 7
pop eax
pop edi
pop esi
pop ebx
leave
ret