Function at 0x405300
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push 0xffffffffffffffff
push 0x4466cc
mov eax, dword fs:[0]
push eax
mov eax, 0x1264
call fcn.00434960
mov eax, dword [0x45e508]
xor eax, esp
mov dword [esp + 0x1260], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x45e508]
xor eax, esp
push eax
lea eax, [esp + 0x1278]
mov dword fs:[0], eax
push 0
push 1
mov ebx, ecx
mov esi, edx
push 2
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], esi
call sub.WSOCK32.dll_socket
mov edi, eax
cmp edi, 0xffffffff
jne 0x40536c
call sub.WSOCK32.dll_WSAGetLastError
mov eax, 1
jmp 0x405d33
mov eax, dword [esi]
mov edx, dword [eax]
push str.looking_up_domain_name......
mov ecx, esi
call edx
xor eax, eax
lea ebp, [ebx + 0x190]
push ebp
mov word [esp + 0x58], ax
mov dword [esp + 0x5a], eax
mov dword [esp + 0x5e], eax
mov dword [esp + 0x62], eax
mov word [esp + 0x66], ax
call sub.WSOCK32.dll_gethostbyname
test eax, eax
jne 0x4053b1
push edi
call sub.WSOCK32.dll_closesocket
mov eax, 2
jmp 0x405d33
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
movzx eax, word [ebx + 0x169c]
mov edx, dword [ecx]
push eax
mov dword [esp + 0x5c], edx
mov word [esp + 0x58], 2
call sub.WSOCK32.dll_htons
mov edx, dword [esi]
mov word [esp + 0x56], ax
xor eax, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov eax, dword [edx]
push str.Connect_Server......
mov ecx, esi
call eax
push 0x10
lea ecx, [esp + 0x58]
push ecx
push edi
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
jne 0x40540e
push edi
call sub.WSOCK32.dll_closesocket
mov eax, 3
jmp 0x405d33
push 0x1000
lea edx, [esp + 0x68]
push 0
push edx
call fcn.00432dc0
add esp, 0xc
push ebp
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [esp + 0x68]
push str.EHLO__s
push eax
call ebp
add esp, 0xc
lea esi, [esp + 0x64]
mov ecx, 0x4512e8
call fcn.00405d60
test eax, eax
je 0x4053fe
lea eax, [ebx + 0x314]
mov dword [esp + 0x20], eax
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x405457
sub eax, edx
je 0x40555b
mov esi, str.AUTH_LOGIN
mov ecx, 0x4512f8
call fcn.00405d60
test eax, eax
jne 0x40548b
push edi
call sub.WSOCK32.dll_closesocket
mov eax, 4
jmp 0x405d33
push 0x1000
lea ecx, [esp + 0x68]
push 0
push ecx
call fcn.00432dc0
add esp, 0xc
lea esi, [ebx + 0x294]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
push esi
call ebx
mov edx, dword [esp + 0x20]
push edx
mov dword [esp + 0x20], eax
call ebx
mov ecx, dword [esp + 0x1c]
mov ebx, eax
lea eax, [esp + 0x64]
push eax
push ecx
mov ecx, esi
call fcn.00405140
lea esi, [esp + 0x64]
mov ecx, 0x4512fc
call fcn.00405d60
test eax, eax
je 0x40547b
push 0x1000
mov edx, esi
push 0
push edx
call fcn.00432dc0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, esi
push eax
push ebx
call fcn.00405140
mov ecx, 0x4512fc
call fcn.00405d60
test eax, eax
je 0x40547b
push 0x1000
mov ecx, esi
push 0
push ecx
call fcn.00432dc0
mov ebx, dword [esp + 0x24]
add esp, 0xc
add ebx, 0x394
push ebx
mov edx, esi
push str.MAIL_FROM:__s_
push edx
call ebp
mov ecx, 0x451310
lea esi, [esp + 0x70]
add esp, 0xc
call fcn.00405d60
test eax, eax
jne 0x405589
push edi
call sub.WSOCK32.dll_closesocket
mov eax, 5
jmp 0x405d33
push 0x1000
lea eax, [esp + 0x68]
push 0
push eax
call fcn.00432dc0
add esp, 0xc
add ebx, 0x394
push ebx
lea ecx, [esp + 0x68]
push str.MAIL_FROM:__s_
push ecx
call ebp
mov ecx, 0x4512f8
jmp 0x40553b
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [edx]
push str.Transferring......
call eax
push 0x1000
lea ecx, [esp + 0x68]
push 0
push ecx
call fcn.00432dc0
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, 0x414
push eax
lea edx, [esp + 0x68]
push str.RCPT_TO:__s_
push edx
call ebp
add esp, 0xc
lea esi, [esp + 0x64]
mov ecx, 0x4512f8
call fcn.00405d60
test eax, eax
jne 0x4055e7
push edi
call sub.WSOCK32.dll_closesocket
mov eax, 6
jmp 0x405d33
mov esi, str.DATA
mov ecx, 0x4512f8
call fcn.00405d60
test eax, eax
jne 0x40560a
push edi
call sub.WSOCK32.dll_closesocket
mov eax, 7
jmp 0x405d33
push 0x1000
lea eax, [esp + 0x68]
push 0
push eax
call fcn.00432dc0
add esp, 0xc
push 0
push 0x1000
lea ecx, [esp + 0x6c]
push ecx
push edi
call sub.WSOCK32.dll_recv
cmp eax, 0xffffffff
je 0x405600
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
lea edx, [esp + 0x64]
push 0x451340
push edx
call fcn.00431620
add esp, 8
test eax, eax
je 0x405600
push 0x1000
lea eax, [esp + 0x68]
push 0
push eax
call fcn.00432dc0
add esp, 0xc
push ebx
lea ecx, [esp + 0x68]
push str.FROM:report__s__r_n
push ecx
call ebp
lea eax, [esp + 0x70]
add esp, 0xc
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405680
push 0
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea eax, [esp + 0x68]
push 0
push eax
call fcn.00432dc0
mov eax, dword [esp + 0x24]
add esp, 0xc
add eax, 0x414
push eax
lea ecx, [esp + 0x68]
push str.TO:__s__r_n
push ecx
call ebp
lea eax, [esp + 0x70]
add esp, 0xc
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4056d0
xor ebx, ebx
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
call fcn.004311d4
add esp, 4
push 0x1000
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x68]
push ebx
push eax
mov dword [esp + 0x48], edx
call fcn.00432dc0
add esp, 0xc
lea ecx, [esp + 0x38]
push ecx
lea esi, [esp + 0x20]
call fcn.00404ff0
mov edx, dword [eax]
push edx
lea eax, [esp + 0x68]
push str.Date:_s_r_n
push eax
call ebp
add esp, 0xc
mov ecx, esi
call fcn.00401560
lea eax, [esp + 0x64]
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405744
push ebx
sub eax, ecx
push eax
lea ecx, [esp + 0x6c]
push ecx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea edx, [esp + 0x68]
push ebx
push edx
call fcn.00432dc0
mov esi, dword [esp + 0x24]
add esp, 0xc
lea eax, [esi + 0x494]
push eax
lea ecx, [esp + 0x68]
push str.Subject:_s_r_n
push ecx
call ebp
lea eax, [esp + 0x70]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405790
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.00432dc0
add esp, 0xc
lea ecx, [esp + 0x64]
push str.X_Mailer:_DSWLab__ch__r_n
push ecx
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x4057d1
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.00432dc0
add esp, 0xc
lea ecx, [esp + 0x64]
push str.Mime_Version:_1.0_r_n
push ecx
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405812
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.00432dc0
add esp, 0xc
lea ecx, [esp + 0x64]
push str.Content_type:multipart_mixed_boundary_www.dswlab.com__r_n_r_n
push ecx
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405853
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.00432dc0
add esp, 0xc
lea ecx, [esp + 0x64]
push str.__www.dswlab.com_r_n
push ecx
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405894
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.00432dc0
mov eax, dword [esi + 0x16a0]
add esp, 0xc
cmp eax, 1
jne 0x4058d6
push str.Content_Type:_text_plain_charsetgb2312_r_n
lea ecx, [esp + 0x68]
push ecx
jmp 0x4058f1
cmp eax, 2
jne 0x4058e7
push str.Content_Type:_text_plain_charsetBig5_r_n
lea edx, [esp + 0x68]
push edx
jmp 0x4058f1
push str.Content_Type:_text_plain_charsetgb2312_r_n
lea eax, [esp + 0x68]
push eax
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x405900
push ebx
sub eax, edx
push eax
lea ecx, [esp + 0x6c]
push ecx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea edx, [esp + 0x68]
push ebx
push edx
call fcn.00432dc0
add esp, 0xc
lea eax, [esp + 0x64]
push str.Content_Transfer_Encoding:8bit_r_n_r_n
push eax
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405941
push ebx
sub eax, ecx
push eax
lea ecx, [esp + 0x6c]
push ecx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea edx, [esp + 0x68]
push ebx
push edx
call fcn.00432dc0
add esp, 0xc
lea eax, [esi + 0x598]
push eax
lea ecx, [esp + 0x68]
push str._s_r_n_r_n
push ecx
call ebp
lea eax, [esp + 0x70]
add esp, 0xc
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405990
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
add esi, 0x1598
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4059b3
sub eax, edx
je 0x405cc6
lea eax, [esp + 0x116c]
push eax
lea ecx, [esp + 0x1068]
push ecx
push ebx
push ebx
push esi
call fcn.00431896
add esp, 0x14
push 0x104
lea edx, [esp + 0x1170]
push edx
lea eax, [esp + 0x106c]
push eax
call fcn.004314e0
add esp, 0xc
push 0x1000
lea ecx, [esp + 0x68]
push ebx
push ecx
call fcn.00432dc0
add esp, 0xc
lea edx, [esp + 0x64]
push str.__www.dswlab.com_r_n
push edx
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405a25
push ebx
sub eax, ecx
push eax
lea eax, [esp + 0x6c]
push eax
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea ecx, [esp + 0x68]
push ebx
push ecx
call fcn.00432dc0
add esp, 0xc
lea edx, [esp + 0x1064]
push edx
lea eax, [esp + 0x68]
push str.Content_Type:_application_octet_stream_name__s__r_n
push eax
call ebp
lea eax, [esp + 0x70]
add esp, 0xc
lea ecx, [eax + 1]
mov edi, edi
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405a70
push ebx
sub eax, ecx
push eax
lea ecx, [esp + 0x6c]
push ecx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea edx, [esp + 0x68]
push ebx
push edx
call fcn.00432dc0
add esp, 0xc
lea eax, [esp + 0x1064]
push eax
lea ecx, [esp + 0x68]
push str.Content_Disposition:_attachment_FileName__s__r_n
push ecx
call ebp
lea eax, [esp + 0x70]
add esp, 0xc
lea ecx, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405ac0
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
push 0x1000
lea eax, [esp + 0x68]
push ebx
push eax
call fcn.00432dc0
add esp, 0xc
lea ecx, [esp + 0x64]
push str.Content_Transfer_Encoding:_base64_r_n_r_n
push ecx
call ebp
lea eax, [esp + 0x6c]
add esp, 8
lea ecx, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x405b01
push ebx
sub eax, ecx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
lea ecx, [esp + 0x18]
call fcn.00401af0
lea ecx, [esp + 0x44]
mov dword [esp + 0x1280], ebx
call fcn.00413fef
push ebx
push ebx
push esi
lea ecx, [esp + 0x50]
mov byte [esp + 0x128c], 1
call fcn.0041445b
test eax, eax
je 0x405ca1
lea ecx, [esp + 0x44]
call fcn.00413ee2
mov ecx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
push ebx
call edx
lea ecx, [esp + 0x20]
call fcn.00401af0
push esi
push esi
lea ecx, [esp + 0x28]
mov byte [esp + 0x1288], 2
call fcn.00401750
push eax
lea ecx, [esp + 0x4c]
call fcn.00413cfd
mov eax, dword [esp + 0x20]
push esi
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00401240
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1284], 3
call fcn.00403b60
lea ecx, [esp + 0x40]
mov byte [esp + 0x1280], 2
call fcn.00401560
lea ecx, [esp + 0x44]
call fcn.00413f8d
push str._r_n__www.dswlab.com___r_n
lea ecx, [esp + 0x1c]
call fcn.00401b20
mov ebx, dword [esp + 0x18]
mov esi, dword [ebx - 0xc]
push esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], 0
call fcn.004132c4
add esp, 4
push esi
mov ebp, eax
push 0
push ebp
mov dword [esp + 0x3c], ebp
call fcn.00432dc0
add esp, 0xc
push esi
push ebx
push ebp
call fcn.004310b0
add esp, 0xc
test esi, esi
mov dword [esp + 0x2c], ebp
jbe 0x405c89
jmp 0x405c20
mov ebp, dword [esp + 0x1c]
sub ebp, dword [esp + 0x28]
cmp ebp, 0x400
jb 0x405c35
mov ebp, 0x400
mov edx, dword [esp + 0x2c]
xor esi, esi
test ebp, ebp
mov dword [esp + 0x34], edx
jbe 0x405c69
mov ecx, dword [esp + 0x34]
push 0
mov eax, ebp
sub eax, esi
push eax
push ecx
push edi
call sub.WSOCK32.dll_send
push 0x32
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
add dword [esp + 0x34], ebx
add esi, ebx
cmp esi, ebp
jb 0x405c43
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [edx + 8]
add dword [esp + 0x2c], ebp
add esi, ebp
push esi
mov dword [esp + 0x2c], esi
call eax
cmp esi, dword [esp + 0x1c]
jb 0x405c20
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004132c9
add esp, 4
lea ecx, [esp + 0x20]
call fcn.00401560
xor ebx, ebx
lea ecx, [esp + 0x44]
mov byte [esp + 0x1280], 0
call fcn.004140eb
lea ecx, [esp + 0x18]
mov dword [esp + 0x1280], 0xffffffff
call fcn.00401560
push 0x1000
lea edx, [esp + 0x68]
push ebx
push edx
call fcn.00432dc0
mov eax, dword [str._r_n._r_n]
mov cx, word [0x451564]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x70]
add esp, 0xc
mov word [esp + 0x68], cx
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x405cf5
push ebx
sub eax, edx
push eax
lea edx, [esp + 0x6c]
push edx
push edi
call sub.WSOCK32.dll_send
mov esi, str.QUIT_r_n
mov ecx, 0x4512f8
call fcn.00405d60
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx]
mov edx, dword [eax]
push str.Transfer_complete_:__
call edx
push edi
call sub.WSOCK32.dll_closesocket
xor eax, eax
mov ecx, dword [esp + 0x1278]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1260]
xor ecx, esp
call fcn.0042f760
add esp, 0x1270
ret