Function at 0x40cc20
Capabilities:
Access peb ldr_data
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Get hostname
Get kernel32 base address
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket

Disassembly:
push 0xffffffffffffffff
push 0x442a53
mov eax, dword fs:[0]
push eax
mov eax, 0x1140
mov dword fs:[0], esp
call fcn.00424bd0
mov eax, dword [0x4573c0]
push ebx
push ebp
push esi
mov dword [esp + 0x1148], eax
push edi
mov eax, dword [esp + 0x1164]
mov esi, dword [esp + 0x1160]
mov ebp, dword [sym.imp.SHLWAPI.dll_StrStrIW]
push 0x445918
push esi
mov dword [esp + 0x1160], 0
mov dword [eax], 0
call ebp
push eax
lea ecx, [esp + 0x14]
call fcn.00403c90
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 0xc]
mov eax, dword [esi - 0xc]
sub eax, edx
push eax
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x1168]
mov byte [esp + 0x1160], 1
call fcn.00402060
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [esp + 0x2c]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1160], 2
call fcn.00405520
push eax
lea ecx, [esp + 0x1164]
mov byte [esp + 0x115c], 3
call fcn.00402e30
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 2
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40cd06
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x1160]
push 0x445918
push edi
call ebp
mov esi, eax
test esi, esi
je 0x40cd24
push esi
call fcn.004237f7
add esp, 4
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401f80
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 0xc]
mov eax, dword [edi - 0xc]
sub eax, edx
push eax
lea edx, [esp + 0x2c]
push edx
lea ecx, [esp + 0x1168]
call fcn.00402060
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [esp + 0x20]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1160], 4
call fcn.00405520
push eax
lea ecx, [esp + 0x1164]
mov byte [esp + 0x115c], 5
call fcn.00402e30
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40cda7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x1160]
push 0x445918
push edi
call ebp
mov esi, eax
test esi, esi
je 0x40cdc5
push esi
call fcn.004237f7
add esp, 4
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401f80
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 0xc]
mov eax, dword [edi - 0xc]
sub eax, edx
push eax
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x1168]
call fcn.00402060
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1160], 6
call fcn.00405520
push eax
lea ecx, [esp + 0x1164]
mov byte [esp + 0x115c], 7
call fcn.00402e30
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 6
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40ce48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x1160]
push 0x445918
push edi
call ebp
mov esi, eax
test esi, esi
je 0x40ce66
push esi
call fcn.004237f7
add esp, 4
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401f80
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 0xc]
mov eax, dword [edi - 0xc]
sub eax, edx
push eax
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x1168]
call fcn.00402060
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1160], 8
call fcn.00405520
push eax
lea ecx, [esp + 0x1164]
mov byte [esp + 0x115c], 9
call fcn.00402e30
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 8
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40cee9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x1160]
push 0x445918
push edi
call ebp
mov esi, eax
test esi, esi
je 0x40cf07
push esi
call fcn.004237f7
add esp, 4
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401f80
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 0xc]
mov eax, dword [edi - 0xc]
sub eax, edx
push eax
lea edx, [esp + 0x24]
push edx
lea ecx, [esp + 0x1168]
call fcn.00402060
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1160], 0xa
call fcn.00405520
push eax
lea ecx, [esp + 0x1164]
mov byte [esp + 0x115c], 0xb
call fcn.00402e30
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xa
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40cf8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov edi, dword [esp + 0x1160]
push 0x445918
push edi
call ebp
mov esi, eax
test esi, esi
je 0x40cfa8
push esi
call fcn.004237f7
add esp, 4
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401f80
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 0xc]
mov eax, dword [edi - 0xc]
sub eax, edx
push eax
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x1168]
call fcn.00402060
mov eax, dword [esp + 0x10]
mov eax, dword [eax - 0xc]
dec eax
push eax
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x1160], 0xc
call fcn.00405520
push eax
lea ecx, [esp + 0x1164]
mov byte [esp + 0x115c], 0xd
call fcn.00402e30
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d02b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1160]
push 0x445918
push eax
call ebp
mov esi, eax
test esi, esi
je 0x40d049
push esi
call fcn.004237f7
add esp, 4
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.00401f80
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1160]
mov ebx, dword [ecx - 0xc]
mov eax, dword [ebp - 0xc]
sub eax, ebx
push eax
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x1168]
call fcn.00402060
mov ebx, dword [esp + 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor eax, eax
mov byte [esp + 0xbbc], 0
mov ecx, 0xff
lea edi, [esp + 0xbbd]
rep stosd dword es:[edi], eax
push 0
push 0
stosw word es:[edi], ax
push 0x104
stosb byte es:[edi], al
lea eax, [esp + 0xbc8]
push eax
push 0xffffffffffffffff
push ebx
push 0
push 0
mov byte [esp + 0x1178], 0xe
call esi
lea ecx, [esp + 0xfbc]
push ecx
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x40d20c
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d0fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d124
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebx - 0x10]
mov byte [esp + 0x1158], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d146
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d16c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d192
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d1b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d1de
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d204
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebp - 0x10]
jmp 0x40d661
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x40d278
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xc
lea ecx, [eax + 0xc]
or edx, ebp
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d24a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d270
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebx - 0x10]
jmp 0x40d57a
xor eax, eax
mov byte [esp + 0x3ac], 0
mov ecx, 0x40
lea edi, [esp + 0x3ad]
rep stosd dword es:[edi], eax
push 0
stosw word es:[edi], ax
push 0
push 0x104
stosb byte es:[edi], al
mov edi, dword [esp + 0x38]
lea eax, [esp + 0x3b8]
push eax
push 0xffffffffffffffff
push edi
push 0
push 0
call esi
lea ecx, [esp + 0x3ac]
push ecx
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
jne 0x40d3b5
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40d2f3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d319
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [ebx - 0x10]
mov byte [esp + 0x1158], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d33b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d361
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d387
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d3ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
lea eax, [edi - 0x10]
jmp 0x40d612
mov ecx, dword [eax + 0xc]
mov esi, dword [ecx]
test esi, esi
je 0x40d3e4
xor edx, edx
movsx ecx, word [eax + 0xa]
mov ebx, ecx
shr ecx, 2
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0xc]
mov esi, dword [edx + ecx + 4]
add edx, 4
test esi, esi
jne 0x40d3c0
push 0x19
mov word [esp + 0x48], 2
call dword [sym.imp.WS2_32.dll_htons]
push 0x10
lea edx, [esp + 0x48]
push edx
push ebp
mov word [esp + 0x52], ax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
je 0x40d521
mov ebx, dword [sym.imp.WS2_32.dll_recv]
xor eax, eax
mov byte [esp + 0x54], 0
mov ecx, 0x3f
lea edi, [esp + 0x55]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0
stosb byte es:[edi], al
push 0x100
lea eax, [esp + 0x5c]
push eax
push ebp
call ebx
push 3
lea ecx, [esp + 0x58]
push 0x44702c
push ecx
call fcn.00425080
add esp, 0xc
test eax, eax
je 0x40d478
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40d543
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x54]
rep stosd dword es:[edi], eax
mov byte [esp + 0x154], al
mov ecx, 0x13
lea edi, [esp + 0x155]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x50
lea eax, [esp + 0x158]
push eax
call dword [sym.imp.WS2_32.dll_gethostname]
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0x58]
push str.HELO__s_r_n
push edx
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d4d0
mov esi, dword [sym.imp.WS2_32.dll_send]
push 0
sub eax, edx
push eax
lea eax, [esp + 0x5c]
push eax
push ebp
call esi
xor eax, eax
push eax
mov ecx, 0x40
lea edi, [esp + 0x58]
rep stosd dword es:[edi], eax
push 0x100
lea ecx, [esp + 0x5c]
push ecx
push ebp
call ebx
push 3
lea edx, [esp + 0x58]
push 0x44701c
push edx
call fcn.00425080
add esp, 0xc
test eax, eax
je 0x40d68c
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d54d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d573
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d599
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d5bf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d5e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d60b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d631
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d657
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1160]
add eax, 0xfffffff0
mov dword [esp + 0x1158], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40dd5b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x40dd5b
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x54]
push str.AUTH_LOGIN
rep stosd dword es:[edi], eax
lea eax, [esp + 0x58]
push str._s_r_n
push eax
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d6b7
push 0
sub eax, edi
push eax
lea ecx, [esp + 0x5c]
push ecx
push ebp
call esi
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x54]
rep stosd dword es:[edi], eax
mov byte [esp + 0x5b4], al
push 0
mov ecx, 0x40
lea edi, [esp + 0x5b9]
rep stosd dword es:[edi], eax
push 0
push 0x104
stosw word es:[edi], ax
lea edx, [esp + 0x5c0]
push edx
push 0xffffffffffffffff
stosb byte es:[edi], al
mov eax, dword [esp + 0x3c]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [esp + 0x5b4]
push ecx
lea edx, [esp + 0x58]
push str._s_r_n
push edx
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d733
push 0
sub eax, ecx
push eax
lea eax, [esp + 0x5c]
push eax
push ebp
call esi
push 0
push 0x100
lea ecx, [esp + 0x5c]
push ecx
push ebp
call ebx
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x54]
rep stosd dword es:[edi], eax
mov byte [esp + 0x6b8], al
push 0
mov ecx, 0x40
lea edi, [esp + 0x6bd]
rep stosd dword es:[edi], eax
push 0
push 0x104
stosw word es:[edi], ax
lea edx, [esp + 0x6c4]
push edx
push 0xffffffffffffffff
stosb byte es:[edi], al
mov eax, dword [esp + 0x30]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea ecx, [esp + 0x6b8]
push ecx
lea edx, [esp + 0x58]
push str._s_r_n
push edx
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea edi, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40d7c0
push 0
sub eax, edi
push eax
lea eax, [esp + 0x5c]
push eax
push ebp
call esi
xor eax, eax
push eax
mov ecx, 0x40
lea edi, [esp + 0x58]
rep stosd dword es:[edi], eax
push 0x100
lea ecx, [esp + 0x5c]
push ecx
push ebp
call ebx
push 3
lea edx, [esp + 0x58]
push 0x447004
push edx
call fcn.00425080
add esp, 0xc
test eax, eax
je 0x40d812
call dword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x40dd07
xor eax, eax
mov byte [esp + 0x2a8], 0
mov ecx, 0x40
lea edi, [esp + 0x2a9]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
push 0
push 0
stosw word es:[edi], ax
push 0x104
stosb byte es:[edi], al
lea eax, [esp + 0x2b4]
push eax
push 0xffffffffffffffff
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor eax, eax
lea edx, [esp + 0x2a8]
push edx
mov ecx, 0x40
lea edi, [esp + 0x58]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x58]
push str.MAIL_FROM:__s__r_n
push eax
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea ecx, [eax + 1]
lea ecx, [ecx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d880
push 0
sub eax, ecx
push eax
lea ecx, [esp + 0x5c]
push ecx
push ebp
call esi
mov ebx, dword [esp + 0x20]
push 0x446fec
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x58]
push ebx
rep stosd dword es:[edi], eax
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
push eax
lea ecx, [esp + 0x14]
call fcn.00403650
push 0x44596c
lea ecx, [esp + 0x34]
call fcn.00403c90
mov edx, dword [esp + 0x10]
mov byte [esp + 0x1a4], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x1a5]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x44596c
push edx
mov byte [esp + 0x1160], 0xf
stosb byte es:[edi], al
call fcn.00423e36
add esp, 8
test eax, eax
je 0x40da5e
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx - 0xc]
mov eax, dword [ebx - 0xc]
sub eax, edx
push eax
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x28]
call fcn.00402060
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x115c], 0x10
call fcn.00402e30
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d959
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
push eax
push eax
push 0x104
mov ecx, 0x41
lea edi, [esp + 0x1b0]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x1b0]
push eax
push 0xffffffffffffffff
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor eax, eax
lea edx, [esp + 0x1a4]
push edx
mov ecx, 0x40
lea edi, [esp + 0x58]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x58]
push str.RCPT_TO:__s__r_n
push eax
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40d9b7
push 0
sub eax, ecx
push eax
lea ecx, [esp + 0x5c]
push ecx
push ebp
call esi
mov edx, dword [esp + 0x10]
mov eax, dword [edx - 0xc]
dec eax
push eax
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x28]
call fcn.00405520
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x115c], 0x11
call fcn.00402e30
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
mov byte [esp + 0x1158], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40da1a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ebx, dword [esp + 0x20]
push 0x446fec
push ebx
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
mov edi, eax
test edi, edi
je 0x40da39
push edi
call fcn.004237f7
add esp, 4
push eax
push edi
lea ecx, [esp + 0x18]
call fcn.00401f80
mov eax, dword [esp + 0x10]
push 0x44596c
push eax
call fcn.00423e36
add esp, 8
test eax, eax
jne 0x40d906
xor eax, eax
push eax
push eax
push 0x104
mov ecx, 0x41
lea edi, [esp + 0x1b0]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x1b0]
push ecx
push 0xffffffffffffffff
push ebx
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor eax, eax
lea edx, [esp + 0x1a4]
push edx
mov ecx, 0x40
lea edi, [esp + 0x58]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x58]
push str.RCPT_TO:__s__r_n
push eax
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40dab6
push 0
sub eax, ecx
push eax
lea ecx, [esp + 0x5c]
push ecx
push ebp
call esi
push str.DATA
lea edx, [esp + 0x58]
xor eax, eax
push str._s_r_n
mov ecx, 0x40
lea edi, [esp + 0x5c]
push edx
rep stosd dword es:[edi], eax
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40daf5
push 0
sub eax, ecx
push eax
lea eax, [esp + 0x5c]
push eax
push ebp
call dword [sym.imp.WS2_32.dll_send]
xor eax, eax
push eax
mov ecx, 0x40
lea edi, [esp + 0x58]
rep stosd dword es:[edi], eax
push 0x100
lea ecx, [esp + 0x5c]
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_recv]
mov edx, dword [esp + 0x18]
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
push esi
call fcn.00438ff7
add esp, 4
mov ebx, eax
push 0
mov ecx, esi
mov edx, ecx
shr ecx, 2
xor eax, eax
push 0
mov edi, ebx
rep stosd dword es:[edi], eax
push esi
mov ecx, edx
push ebx
and ecx, 3
push 0xffffffffffffffff
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x2c]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edx, dword [esp + 0x14]
xor eax, eax
mov byte [esp + 0x7bc], 0
mov ecx, 0xff
lea edi, [esp + 0x7bd]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0
stosb byte es:[edi], al
push 0
mov byte [esp + 0x4b8], 0
xor eax, eax
push 0x104
mov ecx, 0x40
lea edi, [esp + 0x4bd]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x4bc]
push ecx
push 0xffffffffffffffff
push edx
stosw word es:[edi], ax
push 0
push 0
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea eax, [esp + 0x4b0]
push eax
lea ecx, [esp + 0xbc0]
push ecx
lea edx, [esp + 0x2b0]
push edx
lea eax, [esp + 0x7c8]
push str.FROM:ZCOM
push eax
call fcn.0042501d
lea eax, [esp + 0x7d0]
add esp, 0x14
lea edi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dc10
push 0
sub eax, edi
mov edi, dword [sym.imp.WS2_32.dll_send]
push eax
lea ecx, [esp + 0x7c4]
push ecx
push ebp
call edi
push 0
push esi
push ebx
push ebp
call edi
mov ax, word [0x446f88]
mov edx, dword [str._r_n._r_n]
mov word [esp + 0x40], ax
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dc50
push 0
sub eax, esi
push eax
lea ecx, [esp + 0x44]
push ecx
push ebp
call edi
test ebx, ebx
je 0x40dc71
push ebx
call fcn.00438ff2
add esp, 4
xor eax, eax
push eax
push 0x100
lea edx, [esp + 0x5c]
push edx
mov ecx, 0x40
lea edi, [esp + 0x60]
push ebp
rep stosd dword es:[edi], eax
call dword [sym.imp.WS2_32.dll_recv]
push 3
lea eax, [esp + 0x58]
push 0x44701c
push eax
call fcn.00425080
add esp, 0xc
test eax, eax
jne 0x40dcb5
mov ecx, dword [esp + 0x1164]
mov dword [ecx], 1
push str.QUIT
lea edx, [esp + 0x58]
xor eax, eax
push str._s_r_n
mov ecx, 0x40
lea edi, [esp + 0x5c]
push edx
rep stosd dword es:[edi], eax
call fcn.0042501d
lea eax, [esp + 0x60]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40dce0
push 0
sub eax, edx
push eax
lea eax, [esp + 0x5c]
push eax
push ebp
call dword [sym.imp.WS2_32.dll_send]
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea ecx, [esp + 0x30]
call fcn.004017a0
lea ecx, [esp + 0x18]
call fcn.004017a0
lea ecx, [esp + 0x14]
call fcn.004017a0
lea ecx, [esp + 0x20]
call fcn.004017a0
lea ecx, [esp + 0x24]
call fcn.004017a0
lea ecx, [esp + 0x1c]
call fcn.004017a0
lea ecx, [esp + 0x28]
call fcn.004017a0
lea ecx, [esp + 0x2c]
call fcn.004017a0
lea ecx, [esp + 0x10]
call fcn.004017a0
lea ecx, [esp + 0x1160]
call fcn.004017a0
mov ecx, dword [esp + 0x1150]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x1140]
pop ebx
call fcn.00423e28
add esp, 0x114c
ret