Function at 0x1001b840
Capabilities:
Check for time delay via gettickcount
Create raw socket
Create tcp socket
Create udp socket
Get local ipv4 addresses
Get socket information
Get socket status
Resolve function by parsing pe exports
Start tcp server

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004e587
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x3304
call fcn.10036fa0
mov eax, dword [0x1005d330]
push ebx
mov dword [esp + 0x3304], eax
mov eax, dword [0x1005fbd0]
test eax, eax
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x12f0], 0
je 0x1001b8a3
mov ecx, 0x1e
mov esi, str.220_CCProxy_FTP_Service_r_n220_you_need_to_input_userid_site_as_login_name._r_n220_Example:_user_anonymous_ftp.netscape.com_r_n
lea edi, [esp + 0x2f0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x1001b8b6
mov ecx, 0x22
mov esi, str.220_CCProxy_FTP_Service_Unregistered__r_n220_you_need_to_input_userid_site_as_login_name._r_n220_Example:_user_anonymous_ftp.netscape.com_r_n
lea edi, [esp + 0x2f0]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x2f0]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1001b8c0
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 4]
sub eax, edx
push eax
lea eax, [esp + 0x2f4]
push eax
push ecx
mov ecx, ebx
call fcn.10017640
test eax, eax
je 0x1001bbf9
mov eax, dword [esi + 4]
push 0x1000
lea edx, [esp + 0x2f4]
push edx
push eax
mov ecx, ebx
mov dword [esp + 0x18], 0x1000
call fcn.10017210
test eax, eax
je 0x1001bbf9
lea eax, [esp + 0x2f0]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1001b920
sub eax, edx
push 5
mov byte [esp + eax + 0x2f2], cl
lea ecx, [esp + 0x2f4]
push str.USER
push ecx
call fcn.10040b84
add esp, 0xc
test eax, eax
je 0x1001b955
mov eax, 8
jmp 0x1001c7fa
xor eax, eax
jmp 0x1001b960
mov cl, byte [esp + eax + 0x2f5]
mov byte [esp + eax + 0x2300], cl
inc eax
test cl, cl
jne 0x1001b960
lea edx, [esp + 0x2300]
push 0x40
push edx
call fcn.10037c60
mov esi, eax
add esp, 8
test esi, esi
jne 0x1001b995
mov eax, 2
jmp 0x1001c7fa
mov byte [esi], 0
inc esi
push 0x1005100c
push esi
mov ebx, 0x15
call fcn.10036fe0
add esp, 8
test eax, eax
je 0x1001b9bf
mov byte [eax], 0
inc eax
push eax
call fcn.10036ef1
add esp, 4
mov ebx, eax
push 1
push 0
push 0
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
push esi
xor eax, eax
lea edx, [esp + 0x2304]
push edx
mov byte [esp + 0x1300], 0
mov ecx, 0x400
lea edi, [esp + 0x1301]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1300]
push str.CONNECT__s__s
push eax
call fcn.10036e11
add esp, 0xc
lea edx, [esp + 0x12fc]
mov ecx, esp
mov dword [esp + 0x6c], esp
push edx
call fcn.100047c0
push ecx
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x10052088
mov dword [esp + 0x3328], 0
call fcn.100047c0
push ecx
mov ecx, esp
mov dword [esp + 0x68], esp
push 0x10050713
mov byte [esp + 0x332c], 1
call fcn.100047c0
mov eax, dword [ebp + 8]
push eax
mov ecx, 0x1005ed60
mov dword [esp + 0x332c], 0xffffffff
call fcn.1000cbb0
lea ecx, [esp + 0x10]
call fcn.1001b740
lea ecx, [esp + 0x10]
push ecx
push 4
mov ecx, 0x1005ff80
mov dword [esp + 0x3324], 2
call fcn.10030070
mov ecx, dword [0x10078d54]
mov edi, dword [ebp + 8]
xor eax, eax
test ecx, ecx
je 0x1001bac7
mov ecx, dword [edi + 4]
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x1f4]
push eax
push ecx
mov dword [esp + 0x54], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
mov eax, dword [esp + 0x1f4]
push eax
lea edx, [esp + 0x14]
push edx
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx]
push esi
mov esi, dword [esp + 0x54]
push eax
mov ecx, esi
call fcn.10017d80
test eax, eax
jne 0x1001baf7
lea ecx, [esp + 0x10]
call fcn.1001b6e0
mov eax, 7
jmp 0x1001c7fa
cmp dword [edi], 2
jne 0x1001bba6
mov eax, dword [esi + 0x110]
test eax, eax
je 0x1001bba6
mov edx, dword [ebx]
push 0x1000
lea ecx, [esp + 0x2f4]
push ecx
push edx
mov ecx, esi
mov dword [esp + 0x18], 0x1000
call fcn.10017210
test eax, eax
je 0x1001bc03
push 3
lea eax, [esp + 0x2f4]
push 0x10052084
push eax
call fcn.10040b84
add esp, 0xc
test eax, eax
je 0x1001bb82
xor ecx, ecx
movsx eax, byte [esp + ecx + 0x2f0]
add eax, 0xffffffd0
js 0x1001bb6a
cmp eax, 9
jg 0x1001bb6a
inc ecx
cmp ecx, 3
jl 0x1001bb52
cmp ecx, 3
jne 0x1001bb9d
lea ecx, [esp + 0x10]
call fcn.1001b6e0
mov eax, 5
jmp 0x1001c7fa
push 4
lea ecx, [esp + 0x2f4]
push str.220
push ecx
call fcn.10040b84
add esp, 0xc
test eax, eax
je 0x1001bba6
cmp dword [edi], 2
je 0x1001bb00
lea edx, [esp + 0x2300]
push edx
lea eax, [esp + 0x2f4]
push str.USER__s_r_n
push eax
call fcn.10036e11
lea eax, [esp + 0x2fc]
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1001bbd0
sub eax, edx
mov edx, dword [ebx]
push eax
lea ecx, [esp + 0x2f4]
push ecx
push edx
mov ecx, esi
call fcn.10017640
test eax, eax
jne 0x1001bc16
lea ecx, [esp + 0x10]
call fcn.1001b6e0
mov eax, 1
jmp 0x1001c7fa
lea ecx, [esp + 0x10]
call fcn.1001b6e0
mov eax, 4
jmp 0x1001c7fa
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor esi, esi
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], esi
call ebx
mov dword [esp + 0x64], eax
cmp dword [edi], 2
mov dword [esp + 0x38], esi
jne 0x1001c7ec
mov esi, dword [ebp + 0x10]
jmp 0x1001bc50
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, edi
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x110]
test ecx, ecx
je 0x1001c7ec
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [esp + 0xec], edx
mov edx, dword [ebp + 8]
mov edx, dword [edx + 4]
mov eax, 1
mov dword [esp + 0xe8], eax
xor ecx, ecx
cmp dword [esp + ecx*4 + 0xec], edx
je 0x1001bc91
inc ecx
cmp ecx, 1
jb 0x1001bc82
cmp ecx, 1
jne 0x1001bca9
mov eax, 2
mov dword [esp + 0xf0], edx
mov dword [esp + 0xe8], eax
mov edx, dword [esi]
cmp edx, 0xffffffff
je 0x1001bce3
xor ecx, ecx
test eax, eax
jbe 0x1001bcc4
cmp dword [esp + ecx*4 + 0xec], edx
je 0x1001bcc4
inc ecx
cmp ecx, eax
jb 0x1001bcb6
cmp ecx, eax
jne 0x1001bce3
cmp eax, 0x40
jae 0x1001bce3
mov dword [esp + ecx*4 + 0xec], edx
mov eax, dword [esp + 0xe8]
inc eax
mov dword [esp + 0xe8], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
cmp edx, 0xffffffff
je 0x1001bd18
xor ecx, ecx
test eax, eax
jbe 0x1001bd01
cmp dword [esp + ecx*4 + 0xec], edx
je 0x1001bd01
inc ecx
cmp ecx, eax
jb 0x1001bcf3
cmp ecx, eax
jne 0x1001bd18
cmp eax, 0x40
jae 0x1001bd18
mov dword [esp + ecx*4 + 0xec], edx
inc dword [esp + 0xe8]
lea edx, [esp + 0x90]
push edx
push 0
push 0
lea eax, [esp + 0xf4]
push eax
push 0xffffffffffffffff
call dword [sym.imp.WS2_32.dll_select]
mov edi, eax
test edi, edi
jne 0x1001bd7a
mov eax, dword [0x1005c168]
test eax, eax
jle 0x1001c7e0
call ebx
mov ecx, dword [0x1005c168]
mov edi, dword [esp + 0x64]
imul ecx, ecx, 0x3e8
sub eax, edi
cmp eax, ecx
jle 0x1001c7e0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x331c], 0xffffffff
or edx, 0xffffffff
jmp 0x1001ca83
call ebx
test edi, edi
mov dword [esp + 0x64], eax
jl 0x1001c81d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
lea edx, [esp + 0xe8]
push edx
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
mov ebx, dword [esp + 0x44]
je 0x1001bdfe
mov ecx, dword [ebp + 0xc]
push 0
lea edx, [esp + 0x40]
push edx
mov edx, dword [ecx]
lea eax, [esp + 0x2f8]
push eax
push edx
mov ecx, ebx
mov dword [esp + 0x4c], 0x1000
mov byte [esp + 0x300], 0
call fcn.10017520
test eax, eax
je 0x1001c8e6
mov eax, dword [esp + 0x3c]
test eax, eax
jbe 0x1001bdfe
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push eax
lea eax, [esp + 0x2f4]
push eax
push edx
mov ecx, ebx
call fcn.10017640
test eax, eax
je 0x1001c072
mov eax, dword [esi]
cmp eax, 0xffffffff
je 0x1001c13b
lea ecx, [esp + 0xe8]
push ecx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1001c13b
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x1001bfda
mov edi, dword [esi]
lea edx, [esp + 0x3c]
push edx
lea eax, [esp + 0x214]
push eax
push edi
mov dword [esp + 0x48], 0x10
call dword [sym.imp.WS2_32.dll_accept]
push edi
mov dword [esi], eax
call dword [sym.imp.WS2_32.dll_closesocket]
push 1
push 0
push 0
push 0
push 1
push 2
mov dword [esp + 0x50], 1
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
mov edi, dword [ebp + 0x14]
push ecx
mov ecx, dword [esp + 0x90]
push edx
mov dword [edi], eax
mov eax, dword [esp + 0x88]
push eax
push ecx
lea edx, [esp + 0x298]
push str._d._d._d._d
push edx
call fcn.10036e11
add esp, 0x18
lea ecx, [esp + 0x98]
call fcn.1001b740
lea eax, [esp + 0x98]
push eax
push 4
mov ecx, 0x1005ff80
mov byte [esp + 0x3324], 3
call fcn.10030070
mov edx, dword [esp + 0x7c]
push 0
lea ecx, [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x80]
shl edx, 8
add edx, ecx
mov ecx, dword [edi]
push edx
lea eax, [esp + 0x294]
push eax
push ecx
mov ecx, ebx
call fcn.10017d80
test eax, eax
mov eax, dword [esp + 0xb8]
mov byte [esp + 0x331c], 2
je 0x1001c9bb
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x1001bf2c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xb4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001bf4d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001bf6e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001bf8f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001bfb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c7e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
jmp 0x1001c7e0
mov edx, dword [esi]
push 0
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x2f8]
push ecx
push edx
mov ecx, ebx
mov dword [esp + 0x1c], 0x1000
mov byte [esp + 0x300], 0
call fcn.10017520
test eax, eax
jne 0x1001c035
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, dword [esi]
push ecx
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [edi], 0xffffffff
mov dword [esi], 0xffffffff
mov dword [esp + 0x38], 0
jmp 0x1001c13e
mov eax, dword [esp + 0xc]
test eax, eax
jbe 0x1001c13b
mov edx, dword [ebp + 8]
push 1
push eax
push edx
call fcn.1000b5f0
mov eax, dword [esp + 0x18]
mov edi, dword [ebp + 0x14]
mov edx, dword [edi]
add esp, 0xc
push eax
lea ecx, [esp + 0x2f4]
push ecx
push edx
mov ecx, ebx
call fcn.10017640
test eax, eax
jne 0x1001c13e
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0x331c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c09b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c0b9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c0d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c0f5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c113
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c131
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, 0xc
jmp 0x1001c7fa
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x1001c1ea
lea ecx, [esp + 0xe8]
push ecx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1001c1ea
mov ecx, dword [edi]
push 0
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x2f8]
push eax
push ecx
mov ecx, ebx
mov dword [esp + 0x1c], 0x1000
mov byte [esp + 0x300], 0
call fcn.10017520
test eax, eax
jne 0x1001c1b4
mov edx, dword [edi]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov eax, dword [esi]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [edi], 0xffffffff
mov dword [esi], 0xffffffff
mov dword [esp + 0x38], 0
jmp 0x1001c1ea
mov eax, dword [esp + 0xc]
test eax, eax
jbe 0x1001c1ea
mov ecx, dword [ebp + 8]
push 0
push eax
push ecx
call fcn.1000b5f0
mov edx, dword [esp + 0x18]
mov ecx, dword [esi]
add esp, 0xc
push edx
lea eax, [esp + 0x2f4]
push eax
push ecx
mov ecx, ebx
call fcn.10017640
test eax, eax
je 0x1001c072
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
lea edx, [esp + 0xe8]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x1001c7e0
mov edx, dword [edi + 4]
push 0x1000
lea ecx, [esp + 0x2f4]
push ecx
push edx
mov ecx, ebx
mov dword [esp + 0x18], 0x1000
mov byte [esp + 0x2fc], 0
call fcn.10017210
test eax, eax
je 0x1001ca65
push 4
lea eax, [esp + 0x2f4]
push str.PORT
push eax
call fcn.10040b84
add esp, 0xc
test eax, eax
jne 0x1001c449
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x8c]
push eax
lea ecx, [esp + 0x94]
push ecx
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x308]
push str.PORT__d__d__d__d__d__d
push ecx
call fcn.10039290
add esp, 0x20
push 1
push 0
push 0
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
push 0
mov dword [esi], eax
mov word [esp + 0x1f4], 2
call dword [sym.imp.WS2_32.dll_htons]
push 0x10
lea edx, [esp + 0x1f4]
mov word [esp + 0x1f6], ax
mov eax, dword [esi]
push edx
push eax
mov dword [esp + 0x200], 0
call dword [sym.imp.WS2_32.dll_bind]
mov ecx, dword [esi]
push 5
push ecx
call dword [sym.imp.WS2_32.dll_listen]
mov ecx, dword [esi]
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0x1f4]
push eax
push ecx
mov dword [esp + 0x54], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
mov edx, dword [esp + 0x1f2]
push edx
call dword [sym.imp.WS2_32.dll_ntohs]
mov edx, dword [ebp + 0xc]
movzx edi, ax
lea eax, [esp + 0x48]
push eax
mov eax, dword [edx]
lea ecx, [esp + 0x1f4]
push ecx
push eax
call dword [sym.imp.WS2_32.dll_getsockname]
mov ecx, dword [esp + 0x1f4]
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
lea ecx, [esp + 0x288]
jmp 0x1001c350
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x1001c350
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x68]
push ecx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x298]
push str._d._d._d._d
push eax
call fcn.10039290
mov ecx, edi
and ecx, 0x800000ff
jns 0x1001c392
dec ecx
or ecx, 0xffffff00
inc ecx
mov eax, edi
cdq
push ecx
mov ecx, dword [esp + 0x7c]
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x88]
sar eax, 8
push eax
mov eax, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x8c]
push eax
push ecx
push edx
lea eax, [esp + 0x320]
push str.PORT__d__d__d__d__d__d_r_n
push eax
call fcn.10036e11
lea eax, [esp + 0x328]
add esp, 0x38
lea edx, [eax + 1]
jmp 0x1001c3e0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1001c3e0
mov edi, dword [ebp + 0xc]
sub eax, edx
mov edx, dword [edi]
push eax
lea ecx, [esp + 0x2f4]
push ecx
push edx
mov ecx, ebx
call fcn.10017640
test eax, eax
je 0x1001cd71
mov ecx, dword [edi]
push 0x1000
lea eax, [esp + 0x2f4]
push eax
push ecx
mov ecx, ebx
mov dword [esp + 0x18], 0x1000
call fcn.10017210
test eax, eax
je 0x1001ccaa
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x2f0]
push edx
push ecx
mov ecx, ebx
call fcn.10017670
jmp 0x1001c7d8
push 4
lea edx, [esp + 0x2f4]
push str.PASV
push edx
call fcn.10040b84
add esp, 0xc
test eax, eax
jne 0x1001c7ba
push 1
push eax
push eax
push eax
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
push 0
mov dword [esi], eax
mov word [esp + 0x204], 2
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esi]
mov word [esp + 0x202], ax
push 0x10
lea eax, [esp + 0x204]
push eax
push ecx
mov dword [esp + 0x210], 0
call dword [sym.imp.WS2_32.dll_bind]
mov edx, dword [esi]
push 5
push edx
call dword [sym.imp.WS2_32.dll_listen]
mov edx, dword [esi]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x204]
push ecx
push edx
mov dword [esp + 0x4c], 0x10
call dword [sym.imp.WS2_32.dll_getsockname]
mov eax, dword [esp + 0x202]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
lea ecx, [esp + 0x40]
push ecx
movzx edi, ax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x204]
push edx
push ecx
call dword [sym.imp.WS2_32.dll_getsockname]
mov edx, dword [esp + 0x204]
push edx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
lea ecx, [esp + 0x220]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x1001c520
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x230]
push str._d._d._d._d
push ecx
call fcn.10039290
mov edx, edi
and edx, 0x800000ff
jns 0x1001c562
dec edx
or edx, 0xffffff00
inc edx
mov ecx, dword [esp + 0x6c]
push edx
mov eax, edi
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x74]
sar eax, 8
push eax
mov eax, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
lea ecx, [esp + 0x320]
push str.227_Entering_Passive_Mode___d__d__d__d__d__d__r_n
push ecx
call fcn.10036e11
lea eax, [esp + 0x328]
add esp, 0x38
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1001c5a5
sub eax, edx
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
lea edx, [esp + 0x2f4]
push edx
push ecx
mov ecx, ebx
call fcn.10017640
test eax, eax
je 0x1001cd71
mov ecx, dword [esi]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x204]
push eax
push ecx
mov dword [esp + 0x4c], 0x10
call dword [sym.imp.WS2_32.dll_accept]
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [esi]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
push 1
push 0
push 0
push 0
push 1
push 2
call dword [sym.imp.WS2_32.dll_WSASocketA]
mov edi, dword [ebp + 0xc]
mov dword [esi], eax
mov ecx, dword [edi]
push str.PASV_r_n
push ecx
mov ecx, ebx
call fcn.10017670
mov eax, dword [edi]
push 0x1000
lea edx, [esp + 0x2f4]
push edx
push eax
mov ecx, ebx
mov dword [esp + 0x18], 0x1000
call fcn.10017210
test eax, eax
je 0x1001ccaa
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x308]
push str.227_Entering_Passive_Mode___d__d__d__d__d__d__r_n
push ecx
call fcn.10039290
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x70]
push eax
push ecx
push edx
lea eax, [esp + 0x250]
push str._d._d._d._d
push eax
call fcn.10036e11
add esp, 0x38
lea ecx, [esp + 0xc0]
call fcn.1001b740
lea ecx, [esp + 0xc0]
push ecx
push 4
mov ecx, 0x1005ff80
mov byte [esp + 0x3324], 4
call fcn.10030070
mov eax, dword [esp + 0x70]
push 0
lea edx, [esp + 0xc4]
push edx
mov edx, dword [esp + 0x7c]
shl eax, 8
add eax, edx
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x22c]
push ecx
push edx
mov ecx, ebx
call fcn.10017d80
or edx, 0xffffffff
test eax, eax
mov eax, dword [esp + 0xe0]
mov byte [esp + 0x331c], 2
je 0x1001cbee
add eax, 0xfffffff0
mov dword [esp + 0x38], 1
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c72a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xdc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c74b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xd8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c76c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xd4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c78d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xcc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c7ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xc4]
jmp 0x1001bfb7
mov eax, dword [esp + 0xc]
test eax, eax
jbe 0x1001c7e0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push eax
lea eax, [esp + 0x2f4]
push eax
push edx
mov ecx, ebx
call fcn.10017640
test eax, eax
je 0x1001cd71
mov eax, dword [ebp + 8]
cmp dword [eax], 2
je 0x1001bc48
lea ecx, [esp + 0x10]
call fcn.1001b6e0
mov eax, 0x10
mov ecx, dword [esp + 0x3314]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x330c]
call fcn.10036c09
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0x331c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c846
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c864
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c882
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c8a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c8be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c8dc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, 0xa
jmp 0x1001c7fa
mov eax, dword [esp + 0x3c]
or edx, 0xffffffff
test eax, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x331c], 0xffffffff
je 0x1001ca83
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c91b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c939
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c957
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c975
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c993
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c9b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, 0xd
jmp 0x1001c7fa
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c9d5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xb4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001c9f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ca17
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ca38
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ca59
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x9c]
jmp 0x1001cc90
mov eax, dword [esp + 0xc]
or edx, 0xffffffff
test eax, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x331c], 0xffffffff
jne 0x1001cb37
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ca9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cab8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cad6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001caf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cb12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cb30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
jmp 0x1001c7fa
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cb4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cb6c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cb8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cba8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cbc6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cbe4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, 0xe
jmp 0x1001c7fa
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cc05
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xdc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cc26
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xd8]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cc47
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xd4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cc68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xcc]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cc89
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xc4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ccaa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0x331c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ccd3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ccf1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cd0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cd2d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cd4b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cd69
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
or eax, 0xffffffff
jmp 0x1001c7fa
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov dword [esp + 0x331c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cd9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cdb8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cdd6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001cdf4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ce12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x1001ce30
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, 0xf
jmp 0x1001c7fa