Function at 0x40aa60
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x52cb30
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x586dc4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 4], 4
call fcn.0041460c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40aaab
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 5
call fcn.0041460c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40aad8
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
cmp byte [ebp + 0x24], 0
mov ecx, dword [ebp + 0x14]
mov byte [ebp - 4], 6
je 0x40ab0c
mov edx, dword [ebp + 0x10]
push ecx
push edx
lea eax, [ebp - 0x14]
push str.connecting__s:_d
push eax
call fcn.00401ff0
add esp, 0x10
jmp 0x40ab2a
mov edx, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x10]
push eax
push ecx
push edx
lea eax, [ebp - 0x14]
push str._s:_d____s____s
push eax
call fcn.00401ff0
add esp, 0x18
mov ecx, dword [ebp + 0x20]
cmp dword [ecx - 0xc], 0
je 0x40ab52
push 3
push 0x53d028
lea ecx, [ebp - 0x14]
call fcn.00401ec0
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x14]
call fcn.00401ec0
mov edi, dword [ebp - 0x14]
push 1
push ecx
add edi, 0xfffffff0
mov dword [ebp - 0x28], esp
mov ebx, esp
push edi
call fcn.00401350
add esp, 4
add eax, 0x10
push 1
mov ecx, esi
mov dword [ebx], eax
call fcn.00403ef0
mov edx, dword [esi + 0x418]
mov eax, dword [ebp + 0x20]
push edx
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x28], esp
mov ebx, esp
push eax
call fcn.00401350
add eax, 0x10
add esp, 4
mov dword [ebx], eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x24], esp
mov ebx, esp
push eax
mov byte [ebp - 4], 7
call fcn.00401350
add eax, 0x10
mov dword [ebx], eax
add esp, 4
mov byte [ebp - 4], 6
call fcn.00410f20
mov ebx, eax
add esp, 0x10
cmp ebx, 0xffffffff
jne 0x40acdb
mov byte [ebp - 4], 5
lea ecx, [edi + 0xc]
or edx, eax
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40abed
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac10
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac33
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac56
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac9c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x20]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40acc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
test ebx, ebx
jne 0x40adee
mov byte [ebp - 4], 5
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad00
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40adaf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x20]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40add5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x14
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [ebp + 0x24], 0
je 0x40ae64
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x10]
push edx
push eax
push ecx
lea edx, [ebp - 0x14]
push str._s:_d____s____s
push edx
call fcn.00401ff0
mov eax, dword [ebp + 0x20]
add esp, 0x18
cmp dword [eax - 0xc], 0
je 0x40ae3b
push 0x53d028
lea ecx, [ebp - 0x14]
call fcn.004021e0
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x14]
call fcn.00401ec0
mov edi, dword [ebp - 0x14]
push 1
push ecx
mov dword [ebp + 0x24], esp
add edi, 0xfffffff0
mov dword [ebp + 0x24], esp
push edi
call fcn.00401350
mov ecx, dword [ebp + 0x24]
add eax, 0x10
add esp, 4
mov dword [ecx], eax
push 1
mov ecx, esi
call fcn.00403ef0
mov edx, dword [ebp + 0xc]
cmp dword [edx], 0
setne al
movzx ecx, al
push ecx
push ebx
lea ecx, [ebp - 0x58]
call fcn.004113f0
mov edx, dword [ebp + 0xc]
cmp dword [edx], 1
mov bl, 8
mov byte [ebp - 4], bl
jne 0x40afba
lea ecx, [ebp - 0x58]
call fcn.004114c0
test al, al
jne 0x40afba
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
mov byte [ebp - 4], 5
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40aecc
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40aeef
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov byte [ebp - 4], 3
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40af12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
mov byte [ebp - 4], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40af35
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40af58
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x1c]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40af7b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp + 0x20]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40afa1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x65
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
lea ecx, [ebp - 0x10]
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53d024
call fcn.00401650
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x53c108
mov byte [ebp - 4], 9
call fcn.00401650
lea edx, [ebp - 0x58]
push edx
mov byte [ebp - 4], bl
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40b063
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
lea ecx, [ebp - 0x14]
call fcn.00401270
lea ecx, [ebp - 0x10]
call fcn.00401270
lea ecx, [ebp + 8]
call fcn.00401270
lea ecx, [ebp + 0x10]
call fcn.00401270
lea ecx, [ebp + 0x18]
call fcn.00401270
lea ecx, [ebp + 0x1c]
call fcn.00401270
lea ecx, [ebp + 0x20]
call fcn.00401270
cmp edi, 0xffffffff
jne 0x40bae0
lea eax, [edi + 0xc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
call fcn.0041460c
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40b07d
push 0x80004005
call fcn.00401000
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov ebx, 0xa
push ebx
lea ecx, [ebp + 0x24]
push 6
push ecx
mov byte [ebp - 4], bl
call fcn.00407b60
mov edx, dword [eax]
push edx
lea eax, [ebp - 0x18]
push str.EHLO__s_r_n
push eax
mov byte [ebp - 4], 0xb
call fcn.00401ff0
mov eax, dword [ebp + 0x24]
add eax, 0xfffffff0
add esp, 0x18
mov byte [ebp - 4], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40b0da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x10]
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53d014
call fcn.00401650
mov eax, dword [ebp - 0x18]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x28], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x24], eax
call fcn.00401350
add eax, 0x10
lea edx, [ebp - 0x58]
add esp, 4
mov dword [edi], eax
push edx
mov byte [ebp - 4], bl
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40b198
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x18]
call fcn.00401270
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
lea ecx, [ebp - 0x14]
call fcn.00401270
lea ecx, [ebp - 0x10]
call fcn.00401270
lea ecx, [ebp + 8]
call fcn.00401270
lea ecx, [ebp + 0x10]
call fcn.00401270
lea ecx, [ebp + 0x18]
call fcn.00401270
lea ecx, [ebp + 0x1c]
call fcn.00401270
lea ecx, [ebp + 0x20]
call fcn.00401270
cmp edi, 0xffffffff
jne 0x40bae0
lea eax, [edi + 0xd]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
mov byte [ebp + 0x27], 0
jne 0x40b1d8
mov ecx, dword [ebp - 0x10]
cmp dword [ecx - 0xc], 0
jl 0x40b1d8
mov edx, ecx
push str.STARTTLS
push edx
call fcn.00513429
add esp, 8
test eax, eax
je 0x40b1d8
sub eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
je 0x40b1d8
mov eax, dword [ebp + 0xc]
mov dword [eax], 2
mov byte [ebp + 0x27], 1
jmp 0x40b1e4
mov ecx, dword [ebp + 0xc]
cmp dword [ecx], 2
jne 0x40b2f5
lea edx, [ebp - 0x10]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x53d024
call fcn.00401650
push ecx
mov ecx, esp
mov dword [ebp - 0x20], esp
push str.STARTTLS_r_n
mov byte [ebp - 4], 0xd
call fcn.00401650
lea eax, [ebp - 0x58]
push eax
mov byte [ebp - 4], bl
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x40b124
cmp byte [ebp + 0x27], al
je 0x40b234
push 1
lea ecx, [ebp - 0x58]
call fcn.00411440
lea ecx, [ebp - 0x58]
call fcn.004114c0
test al, al
jne 0x40b2ad
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x18]
call fcn.00401270
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
lea ecx, [ebp - 0x14]
call fcn.00401270
lea ecx, [ebp - 0x10]
call fcn.00401270
lea ecx, [ebp + 8]
call fcn.00401270
lea ecx, [ebp + 0x10]
call fcn.00401270
lea ecx, [ebp + 0x18]
call fcn.00401270
lea ecx, [ebp + 0x1c]
call fcn.00401270
lea ecx, [ebp + 0x20]
call fcn.00401270
mov eax, 0x65
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
lea ecx, [ebp - 0x10]
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53d014
call fcn.00401650
mov edx, dword [ebp - 0x24]
push ecx
mov dword [ebp - 0x28], esp
mov edi, esp
push edx
mov byte [ebp - 4], 0xe
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
lea eax, [ebp - 0x58]
add esp, 4
push eax
mov byte [ebp - 4], bl
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x40b124
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x40b56b
mov edx, dword [ebp + 0x1c]
cmp dword [edx - 0xc], 0
je 0x40b56b
lea eax, [ebp - 0x10]
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53d004
call fcn.00401650
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push str.AUTH_LOGIN_r_n
mov byte [ebp - 4], 0xf
call fcn.00401650
lea ecx, [ebp - 0x58]
push ecx
mov byte [ebp - 4], bl
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40b3c1
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x18]
call fcn.00401270
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
lea ecx, [ebp - 0x14]
call fcn.00401270
lea ecx, [ebp - 0x10]
call fcn.00401270
lea ecx, [ebp + 8]
call fcn.00401270
lea ecx, [ebp + 0x10]
call fcn.00401270
lea ecx, [ebp + 0x18]
call fcn.00401270
lea ecx, [ebp + 0x1c]
call fcn.00401270
lea ecx, [ebp + 0x20]
call fcn.00401270
cmp edi, 0xffffffff
jne 0x40bae0
lea eax, [edi + 0xe]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
lea edx, [ebp - 0x10]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x53d004
call fcn.00401650
mov eax, dword [ebp + 0x18]
push eax
lea ecx, [ebp + 0x24]
push ecx
mov byte [ebp - 4], 0x10
call fcn.00401710
add esp, 4
mov edx, esp
mov dword [ebp - 0x24], esp
push 0x53bea8
push eax
push edx
mov byte [ebp - 4], 0x11
call fcn.00404dd0
add esp, 0xc
lea eax, [ebp - 0x58]
push eax
mov byte [ebp - 4], 0x12
call fcn.004069c0
add esp, 0x10
lea ecx, [ebp + 0x24]
mov edi, eax
mov byte [ebp - 4], bl
call fcn.00401270
test edi, edi
je 0x40b496
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x18]
call fcn.00401270
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
lea ecx, [ebp - 0x14]
call fcn.00401270
lea ecx, [ebp - 0x10]
call fcn.00401270
lea ecx, [ebp + 8]
call fcn.00401270
lea ecx, [ebp + 0x10]
call fcn.00401270
lea ecx, [ebp + 0x18]
call fcn.00401270
lea ecx, [ebp + 0x1c]
call fcn.00401270
lea ecx, [ebp + 0x20]
call fcn.00401270
cmp edi, 0xffffffff
jne 0x40bae0
lea eax, [edi + 0xf]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
lea ecx, [ebp - 0x10]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x28], esp
push 0x53cff0
call fcn.00401650
mov edx, dword [ebp + 0x1c]
push edx
lea eax, [ebp + 0x24]
push eax
mov byte [ebp - 4], 0x13
call fcn.00401710
add esp, 4
mov ecx, esp
mov dword [ebp - 0x24], esp
push 0x53bea8
push eax
push ecx
mov byte [ebp - 4], 0x14
call fcn.00404dd0
add esp, 0xc
lea edx, [ebp - 0x58]
push edx
mov byte [ebp - 4], 0x15
call fcn.004069c0
add esp, 0x10
lea ecx, [ebp + 0x24]
mov edi, eax
mov byte [ebp - 4], bl
call fcn.00401270
test edi, edi
je 0x40b56b
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x18]
call fcn.00401270
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
lea ecx, [ebp - 0x14]
call fcn.00401270
lea ecx, [ebp - 0x10]
call fcn.00401270
lea ecx, [ebp + 8]
call fcn.00401270
lea ecx, [ebp + 0x10]
call fcn.00401270
lea ecx, [ebp + 0x18]
call fcn.00401270
lea ecx, [ebp + 0x1c]
call fcn.00401270
lea ecx, [ebp + 0x20]
call fcn.00401270
cmp edi, 0xffffffff
jne 0x40bae0
lea eax, [edi + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [esi + 0x41c]
sub eax, 0x10
push eax
call fcn.00401350
lea ebx, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x24], ebx
cmp dword [ebx - 0xc], 0
mov byte [ebp - 4], 0x16
je 0x40ba4c
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x10]
push str.MAIL_FROM:___s__r_n
push ecx
call fcn.00401ff0
add esp, 0xc
lea edx, [ebp - 0x10]
push edx
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53d014
call fcn.00401650
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x28], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x17
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
lea eax, [ebp - 0x58]
add esp, 4
push eax
mov byte [ebp - 4], 0x16
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40b5ff
cmp edi, 0xffffffff
jne 0x40ba4c
lea edi, [eax + 0x11]
jmp 0x40ba4c
push ebx
lea ecx, [ebp - 0x10]
push str.RCPT_TO:___s__r_n
push ecx
call fcn.00401ff0
add esp, 0xc
lea edx, [ebp - 0x10]
push edx
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53d014
call fcn.00401650
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x28], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x18
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
lea eax, [ebp - 0x58]
add esp, 4
push eax
mov byte [ebp - 4], 0x16
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40b66a
cmp edi, 0xffffffff
jne 0x40ba4c
lea edi, [eax + 0x12]
jmp 0x40ba4c
push str.Data_r_n
lea ecx, [ebp - 0x10]
call fcn.00401610
lea ecx, [ebp - 0x10]
push ecx
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53cfc0
call fcn.00401650
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x28], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x19
call fcn.00401350
add eax, 0x10
lea edx, [ebp - 0x58]
add esp, 4
mov dword [edi], eax
push edx
mov byte [ebp - 4], 0x16
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40b6d0
cmp edi, 0xffffffff
jne 0x40ba4c
lea edi, [eax + 0x13]
jmp 0x40ba4c
mov eax, dword [esi + 0x420]
sub eax, 0x10
push eax
call fcn.00401350
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x424]
sub eax, 0x10
push eax
mov byte [ebp - 4], 0x1a
call fcn.00401350
add eax, 0x10
add esp, 8
mov dword [ebp + 0x24], eax
mov bl, 0x1b
push 0x53cfb8
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], bl
call fcn.00401610
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
lea edx, [ebp - 0x20]
push edx
call fcn.00407ae0
mov eax, dword [ebp + 0x10]
add esp, 4
add eax, 0xfffffff0
mov dword [ebp - 0x28], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x1c
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
lea eax, [ebp + 0xc]
add esp, 4
push eax
call fcn.00410e50
add esp, 4
mov ecx, esp
mov dword [ebp - 0x2c], esp
push 0x53cc90
mov byte [ebp - 4], 0x1d
call fcn.00401650
mov eax, dword [ebp + 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x30], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x1e
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
mov dword [ebp - 0x34], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x1f
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov dword [ebp - 0x38], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x20
call fcn.00401350
add esp, 4
add eax, 0x10
mov dword [edi], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
push ecx
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x3c], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x21
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
mov dword [ebp - 0x40], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x22
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 0x44], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x23
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esi + 0x420]
sub eax, 0x10
mov dword [ebp - 0x48], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x24
call fcn.00401350
add esp, 4
add eax, 0x10
lea edx, [ebp - 0x28]
mov dword [edi], eax
push edx
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.00404a40
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x25
call fcn.00401f80
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0x1d
call fcn.00401270
push ecx
mov ecx, esp
mov dword [ebp - 0x48], esp
push 0x53cc90
call fcn.00401650
mov eax, dword [ebp + 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x44], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x26
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 0x18]
add eax, 0xfffffff0
mov dword [ebp - 0x40], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x27
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
mov dword [ebp - 0x3c], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x28
call fcn.00401350
add eax, 0x10
add esp, 4
mov dword [edi], eax
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp + 0xc]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0x14], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x29
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffff0
mov dword [ebp - 0x38], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x2a
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 0x34], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x2b
call fcn.00401350
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esi + 0x424]
sub eax, 0x10
mov dword [ebp - 0x30], esp
mov edi, esp
push eax
mov byte [ebp - 4], 0x2c
call fcn.00401350
add esp, 4
lea ecx, [ebp - 0x28]
add eax, 0x10
push ecx
mov dword [edi], eax
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.00404a40
push eax
lea ecx, [ebp + 0x24]
mov byte [ebp - 4], 0x2d
call fcn.00401f80
lea ecx, [ebp - 0x28]
call fcn.00401270
lea ecx, [ebp + 0xc]
call fcn.00401270
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], bl
call fcn.00401270
mov eax, dword [ebp + 0x24]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0x14], esp
mov esi, esp
push eax
call fcn.00401350
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
mov dword [ebp - 0x48], esp
mov esi, esp
push eax
mov byte [ebp - 4], 0x2e
call fcn.00401350
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
mov dword [ebp - 0x44], esp
mov esi, esp
push eax
mov byte [ebp - 4], 0x2f
call fcn.00401350
add eax, 0x10
mov dword [esi], eax
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
mov dword [ebp - 0x40], esp
mov esi, esp
push eax
mov byte [ebp - 4], 0x30
call fcn.00401350
add eax, 0x10
lea edx, [ebp + 0xc]
add esp, 4
mov dword [esi], eax
push edx
mov byte [ebp - 4], bl
call fcn.00408800
add esp, 0x14
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0x31
call fcn.00401f80
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call fcn.00401270
lea eax, [ebp - 0x10]
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push 0x53d014
call fcn.00401650
mov eax, dword [ebp - 0x10]
push ecx
add eax, 0xfffffff0
mov dword [ebp + 0x14], esp
mov esi, esp
push eax
mov byte [ebp - 4], 0x32
call fcn.00401350
add eax, 0x10
lea ecx, [ebp - 0x58]
add esp, 4
mov dword [esi], eax
push ecx
mov byte [ebp - 4], bl
call fcn.004069c0
mov edi, eax
add esp, 0x10
test edi, edi
je 0x40ba38
cmp edi, 0xffffffff
jne 0x40ba38
lea edi, [eax + 0x14]
lea ecx, [ebp + 0x24]
call fcn.00401270
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x16
call fcn.00401270
lea edx, [ebp - 0x10]
push edx
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push 0x53cfb4
call fcn.00401650
push ecx
mov ecx, esp
mov dword [ebp + 0xc], esp
push str.QUIT_r_n
mov byte [ebp - 4], 0x33
call fcn.00401650
lea eax, [ebp - 0x58]
push eax
mov byte [ebp - 4], 0x16
call fcn.004069c0
add esp, 0x10
lea ecx, [ebp - 0x58]
call fcn.00411580
lea ecx, [ebp - 0x24]
call fcn.00401270
lea ecx, [ebp - 0x18]
call fcn.00401270
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 6
call fcn.004115c0
lea ecx, [ebp - 0x14]
call fcn.00401270
lea ecx, [ebp - 0x10]
call fcn.00401270
lea ecx, [ebp + 8]
call fcn.00401270
lea ecx, [ebp + 0x10]
call fcn.00401270
lea ecx, [ebp + 0x18]
call fcn.00401270
lea ecx, [ebp + 0x1c]
call fcn.00401270
lea ecx, [ebp + 0x20]
call fcn.00401270
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20