Function at 0x40663c
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov eax, 0x410b2c
call fcn.004106f0
push ecx
mov eax, 0x1168
call fcn.004108a0
push ebx
push esi
push edi
xor ebx, ebx
cmp dword [0x41c204], ebx
mov dword [ebp - 0x10], esp
mov edi, ecx
je 0x40679a
cmp byte [0x421d75], bl
jne 0x406679
push str.The_SMTP_server_will_not_accept_AUTH_GSSAPI_value.
jmp 0x406c72
cmp dword [0x42178c], ebx
mov dword [ebp - 4], ebx
jne 0x4066bb
test byte [0x421dcc], 1
jne 0x4066b1
or dword [0x421dcc], 1
mov ecx, 0x421d78
mov byte [ebp - 4], 1
call fcn.0040c2ea
push 0x411041
call fcn.0041075e
pop ecx
mov byte [ebp - 4], 0
mov dword [0x42178c], 0x421d78
xor eax, eax
cmp byte [0x41cc28], 0
mov byte [ebp - 0x978], 0
mov ecx, 0xff
lea edi, [ebp - 0x977]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x978]
je 0x4066f2
push 0x41cc28
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
jmp 0x406706
push 0x41b3a0
push str.smtp__s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
push dword [0x41bff0]
mov ecx, dword [0x42178c]
push dword [0x421384]
lea eax, [ebp - 0x978]
push eax
push 0x41bde0
push 0x405dc1
push 0x405dd8
call fcn.0040bb65
mov ecx, dword [0x42178c]
call fcn.00405dbd
cmp eax, 1
je 0x406a9e
push 0x41ad90
call fcn.00406634
cmp eax, ebx
pop ecx
je 0x406a9e
push 0xfffffffffffffffb
jmp 0x406c7a
cmp byte [edi], 0
je 0x406a9e
cmp byte [0x421d71], 0
je 0x406aaf
lea ecx, [ebp - 0x2c]
call fcn.00401062
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 3
call fcn.00401062
push str.AUTH_CRAM_MD5_r_n
push dword [0x422ae0]
mov byte [ebp - 4], 4
call fcn.0040cbbd
test eax, eax
pop ecx
pop ecx
je 0x4067e9
or esi, 0xffffffff
jmp 0x406a6a
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040cdfd
cmp eax, 0x14e
pop ecx
pop ecx
je 0x406809
push str.The_SMTP_server_did_not_accept_Auth_CRAM_MD5_request.
jmp 0x406a61
lea ecx, [ebp - 0x2c]
call fcn.00401156
add eax, 0x41
push eax
lea ecx, [ebp - 0x20]
call fcn.0040109b
lea ecx, [ebp - 0x20]
call fcn.0040c2e7
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040c2e7
add eax, 4
push eax
call fcn.0040f324
pop ecx
pop ecx
lea ecx, [ebp - 0x20]
call fcn.00401160
mov al, byte [0x421790]
xor esi, esi
jmp 0x406858
mov byte [ebp + esi - 0x578], al
mov al, byte [esi + 0x421791]
inc esi
test al, al
jne 0x40684a
push 0x40
pop edi
jmp 0x40686a
mov byte [ebp + esi - 0x578], 0
inc esi
mov eax, esi
cdq
mov ecx, edi
idiv ecx
test edx, edx
jne 0x406861
cmp esi, edi
jle 0x4068c0
lea eax, [ebp - 0x178]
push eax
call fcn.0040f770
push esi
lea eax, [ebp - 0x578]
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.00410126
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x178]
push eax
call fcn.004101bc
push 0x10
pop esi
push esi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x578]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0x24
xor ecx, ecx
cmp esi, ebx
jle 0x4068e7
mov al, byte [ebp + ecx - 0x578]
mov dl, al
xor dl, 0x36
xor al, 0x5c
mov byte [ebp + ecx - 0x120], dl
mov byte [ebp + ecx - 0xdc], al
inc ecx
cmp ecx, esi
jl 0x4068c6
mov eax, ecx
cdq
mov esi, edi
idiv esi
test edx, edx
je 0x406921
lea esi, [ebp - 0x120]
lea eax, [ebp - 0xdc]
sub esi, eax
lea eax, [esi + ecx]
mov byte [ebp + eax - 0xdc], 0x36
mov byte [ebp + ecx - 0xdc], 0x5c
inc ecx
mov eax, ecx
cdq
mov ebx, edi
idiv ebx
test edx, edx
jne 0x406900
xor ebx, ebx
lea eax, [ebp - 0x98]
push eax
call fcn.0040f770
push edi
lea eax, [ebp - 0x120]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00410126
add esp, 0x10
lea ecx, [ebp - 0x20]
call fcn.00401156
push eax
lea ecx, [ebp - 0x20]
call fcn.0040c2e7
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00410126
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.004101bc
lea eax, [ebp - 0x98]
push eax
call fcn.0040f770
push edi
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00410126
push 0x10
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.00410126
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.004101bc
lea eax, [ebp - 0x1178]
push 0x41bde0
push eax
call sub.MSVCRT.dll_strcpy
lea eax, [ebp - 0x1178]
add esp, 0x40
push eax
call sub.MSVCRT.dll_strlen
mov esi, eax
mov byte [ebp + esi - 0x1178], 0x20
inc esi
pop ecx
xor edi, edi
movzx eax, byte [ebp + edi - 0x3c]
push eax
lea eax, [ebp + esi - 0x1178]
push str._02x
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
inc esi
inc esi
inc edi
cmp edi, 0x10
jl 0x4069e2
push ebx
lea eax, [ebp - 0x578]
push eax
lea eax, [ebp - 0x1178]
push esi
push eax
call fcn.0040f54f
lea eax, [ebp - 0x578]
push 0x412634
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x578]
push eax
push dword [0x422ae0]
call fcn.0040cbbd
add esp, 0x20
test eax, eax
jne 0x4067e1
lea eax, [ebp - 0x14]
push eax
push ebx
call fcn.0040cdfd
cmp eax, 0xeb
pop ecx
pop ecx
je 0x406a86
push str.The_SMTP_server_did_not_accept_Auth_CRAM_MD5_value.__Is_your_passwork_correct_
call fcn.0040d1bb
pop ecx
push 0xfffffffffffffffe
pop esi
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.00401054
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00401054
mov eax, esi
jmp 0x406aa0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call fcn.00401054
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.00401054
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
cmp byte [0x421d72], 0
je 0x406b5f
lea eax, [ebp - 0x578]
push str.AUTH_PLAIN
push eax
call sub.MSVCRT.dll_strcpy
pop ecx
pop ecx
lea esi, [ebp - 0x56c]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, esi
push eax
call edi
cmp byte [ebp - 0x56c], 0
je 0x406af0
inc esi
cmp byte [esi], 0
jne 0x406aea
push dword [ebp + 8]
inc esi
push esi
call edi
jmp 0x406afa
inc esi
cmp byte [esi], 0
jne 0x406af9
lea eax, [ebp - 0x56d]
push ebx
push eax
sub esi, eax
push esi
push eax
call fcn.0040f54f
lea eax, [ebp - 0x578]
push 0x412634
push eax
call sub.MSVCRT.dll_strcat
lea eax, [ebp - 0x578]
push eax
push dword [0x422ae0]
call fcn.0040cbbd
add esp, 0x20
test eax, eax
jne 0x406c4d
lea eax, [ebp - 0x14]
push eax
push ebx
call fcn.0040cdfd
cmp eax, 0xeb
pop ecx
pop ecx
je 0x406a9e
push str.The_SMTP_server_did_not_accept_Auth_PLAIN_value.__Is_your_passwork_correct_
jmp 0x406c72
cmp byte [0x421d73], 0
je 0x406a9e
push str.AUTH_LOGIN_r_n
push dword [0x422ae0]
call fcn.0040cbbd
test eax, eax
pop ecx
pop ecx
jne 0x406c4d
lea eax, [ebp - 0x14]
push eax
push ebx
call fcn.0040cdfd
cmp eax, 0x14e
pop ecx
pop ecx
je 0x406ba3
push str.The_SMTP_server_does_not_require_AUTH_LOGIN._nAre_you_sure_server_supports_AUTH_
jmp 0x406c72
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
lea eax, [ebp - 0x1178]
push eax
push edi
call esi
push eax
push edi
call fcn.0040f54f
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatA]
add esp, 0x10
mov ebx, 0x412634
push ebx
lea eax, [ebp - 0x1178]
push eax
call edi
lea eax, [ebp - 0x1178]
push eax
push dword [0x422ae0]
call fcn.0040cbbd
test eax, eax
pop ecx
pop ecx
jne 0x406c4d
lea eax, [ebp - 0x14]
push eax
push 0
call fcn.0040cdfd
cmp eax, 0x14e
pop ecx
pop ecx
je 0x406c11
cmp eax, 0xeb
je 0x406a9e
push str.The_SMTP_server_did_not_accept_LOGIN_name.
jmp 0x406c72
push 0
lea eax, [ebp - 0x1178]
push eax
push dword [ebp + 8]
call esi
push eax
push dword [ebp + 8]
call fcn.0040f54f
add esp, 0x10
push ebx
lea eax, [ebp - 0x1178]
push eax
call edi
lea eax, [ebp - 0x1178]
push eax
push dword [0x422ae0]
call fcn.0040cbbd
test eax, eax
pop ecx
pop ecx
je 0x406c55
or eax, 0xffffffff
jmp 0x406aa0
lea eax, [ebp - 0x14]
push eax
push 0
call fcn.0040cdfd
cmp eax, 0xeb
pop ecx
pop ecx
je 0x406a9e
push str.The_SMTP_server_did_not_accept_Auth_LOGIN_PASSWD_value.
call fcn.0040d1bb
pop ecx
push 0xfffffffffffffffe
pop eax
jmp 0x406aa0