Function at 0x401150
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create raw socket
Create tcp socket
Create thread
Create udp socket
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40bcd8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x968
push ebx
push esi
mov ebx, ecx
push edi
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x5e3]
mov byte [ebp - 0x5e4], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 7
xor eax, eax
lea edi, [ebp - 0x173]
mov byte [ebp - 0x174], 0
rep stosd dword es:[edi], eax
xor esi, esi
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], esi
stosb byte es:[edi], al
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebx + 0xe54], eax
or ecx, 0xffffffff
xor eax, eax
mov dword [ebp - 4], esi
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebx + 0xe34]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [ebx + 0x840]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp + 0x10]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x1a
lea edi, [ebp - 0x154]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xb
xor eax, eax
lea edi, [ebp - 0xe8]
mov esi, dword [sym.imp.MSVCRT.dll_rand]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
call esi
cdq
mov ecx, 7
idiv ecx
add dl, 4
mov byte [ebp - 0x154], dl
call esi
cdq
mov ecx, 0x1a
idiv ecx
add dl, 0x61
mov byte [ebp - 0x153], dl
mov byte [ebx + 0x8d0], dl
mov esi, 2
movsx edx, byte [ebp - 0x154]
inc edx
cmp edx, esi
jle 0x40129f
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0xa
idiv ecx
add dl, 0x30
mov byte [ebp + esi - 0x154], dl
mov byte [ebx + esi + 0x8cf], dl
movsx edx, byte [ebp - 0x154]
inc esi
inc edx
cmp esi, edx
jl 0x401273
mov esi, dword [sym.imp.MSVCRT.dll_rand]
call esi
cdq
mov ecx, 7
idiv ecx
add dl, 4
mov byte [ebp - 0x149], dl
call esi
and eax, 0x80000001
jns 0x4012c6
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4012d7
call esi
cdq
mov ecx, 0xa
idiv ecx
add edx, 0x30
jmp 0x4012e4
call esi
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x61
movsx ecx, byte [ebp - 0x149]
mov eax, 1
inc ecx
cmp ecx, eax
jle 0x401310
mov byte [ebp + eax - 0x149], dl
mov byte [ebx + eax + 0x8c1], dl
movsx ecx, byte [ebp - 0x149]
inc eax
inc ecx
cmp eax, ecx
jl 0x4012f5
call esi
cdq
mov ecx, 0xa
idiv ecx
mov eax, 1
inc dl
mov byte [ebp - 0x13e], dl
movsx edx, dl
inc edx
cmp edx, eax
jle 0x401348
mov cl, al
add cl, 0x30
mov byte [ebp + eax - 0x13e], cl
inc eax
movsx edx, byte [ebp - 0x13e]
inc edx
cmp eax, edx
jl 0x40132f
mov edi, dword [sym.imp.MSVCRT.dll_sprintf]
push str.650101_1455111
push 0xe
lea eax, [ebp - 0x129]
push str._c_s
push eax
call edi
add esp, 0x10
call esi
cdq
mov ecx, 0xa
idiv ecx
push edx
call esi
cdq
mov ecx, 3
idiv ecx
push edx
call esi
cdq
mov ecx, 0xa
idiv ecx
push edx
call esi
cdq
mov ecx, 0xa
idiv ecx
push edx
call esi
cdq
mov ecx, 0xa
idiv ecx
push edx
push ecx
lea edx, [ebp - 0xc6]
push str._c19_d_d_0_d__d_d
push edx
call edi
add esp, 0x20
call esi
cdq
mov ecx, 0xa
mov edi, 1
idiv ecx
inc dl
mov byte [ebp - 0x10b], dl
movsx edx, dl
inc edx
cmp edx, edi
jle 0x40140e
call esi
and eax, 0x80000001
jns 0x4013dc
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4013ed
call esi
cdq
mov ecx, 0xa
idiv ecx
add edx, 0x30
jmp 0x4013fa
call esi
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x61
mov byte [ebp + edi - 0x10b], dl
inc edi
movsx edx, byte [ebp - 0x10b]
inc edx
cmp edi, edx
jl 0x4013ce
call esi
cdq
mov ecx, 0xa
mov edi, 1
idiv ecx
inc dl
mov byte [ebp - 0xf6], dl
movsx edx, dl
inc edx
cmp edx, edi
jle 0x40146d
call esi
and eax, 0x80000001
jns 0x40143b
dec eax
or eax, 0xfffffffe
inc eax
jne 0x40144c
call esi
cdq
mov ecx, 0xa
idiv ecx
add edx, 0x30
jmp 0x401459
call esi
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x61
mov byte [ebp + edi - 0xf6], dl
inc edi
movsx edx, byte [ebp - 0xf6]
inc edx
cmp edi, edx
jl 0x40142d
call esi
cdq
mov ecx, 0xa
mov edi, 1
idiv ecx
inc dl
mov byte [ebp - 0xe8], dl
movsx edx, dl
inc edx
cmp edx, edi
jle 0x4014cc
call esi
and eax, 0x80000001
jns 0x40149a
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4014ab
call esi
cdq
mov ecx, 0xa
idiv ecx
add edx, 0x30
jmp 0x4014b8
call esi
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x61
mov byte [ebp + edi - 0xe8], dl
inc edi
movsx edx, byte [ebp - 0xe8]
inc edx
cmp edi, edx
jl 0x40148c
call esi
cdq
mov ecx, 0xa
mov edi, 1
idiv ecx
inc dl
mov byte [ebp - 0xd3], dl
movsx edx, dl
inc edx
cmp edx, edi
jle 0x40152b
call esi
and eax, 0x80000001
jns 0x4014f9
dec eax
or eax, 0xfffffffe
inc eax
jne 0x40150a
call esi
cdq
mov ecx, 0xa
idiv ecx
add edx, 0x30
jmp 0x401517
call esi
cdq
mov ecx, 0x1a
idiv ecx
add edx, 0x61
mov byte [ebp + edi - 0xd3], dl
inc edi
movsx edx, byte [ebp - 0xd3]
inc edx
cmp edi, edx
jl 0x4014eb
mov ecx, 0x31
xor eax, eax
lea edi, [ebp - 0x973]
mov byte [ebp - 0x974], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x31
xor eax, eax
lea edi, [ebp - 0x8ab]
mov byte [ebp - 0x8ac], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0xc8
lea eax, [ebp - 0x974]
push 0x6b
lea ecx, [ebp - 0x154]
push eax
push ecx
call fcn.00402e20
push 0xc8
lea edx, [ebp - 0x8ac]
push 0x2d
lea eax, [ebp - 0xe8]
push edx
push eax
call fcn.00402e20
add esp, 0x20
push 0
push 1
push 2
call sub.WSOCK32.dll_socket
mov dx, word [ebx + 0xe54]
xor ecx, ecx
mov dword [ebp - 0x24], ecx
push edx
mov dword [ebp - 0x20], ecx
mov dword [ebx + 0x8dc], eax
mov dword [ebp - 0x1c], ecx
mov word [ebp - 0x24], 2
mov dword [ebp - 0x18], ecx
call sub.WSOCK32.dll_htons
mov word [ebp - 0x22], ax
lea eax, [ebx + 0xe34]
push eax
call sub.WSOCK32.dll_inet_addr
mov ecx, dword [ebx + 0x8dc]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push 0x10
push eax
push ecx
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
je 0x402dfc
push 0
push 0
push ebx
push 0x403070
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
lea eax, [ebx + 0x840]
lea edx, [ebp - 0x8ac]
push eax
lea eax, [ebp - 0x974]
push edx
lea edi, [ebx + 0x14]
push eax
push str.1_____IDC_________s________________________________________________________s_____________________________________________________________________________s
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
add esp, 0x14
push 0x1770
call esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
push ecx
mov ecx, dword [ebx + 0x8dc]
lea eax, [ebx + 0x14]
push eax
push ecx
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov edx, dword [ebx + 0x8dc]
push edx
call sub.WSOCK32.dll_closesocket
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0xbb8
idiv ecx
add edx, 0x7d0
push edx
call esi
push 0
push 1
push 2
call sub.WSOCK32.dll_socket
xor edx, edx
mov dword [ebx + 0x8dc], eax
mov ax, word [ebx + 0xe54]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
push eax
mov dword [ebp - 0x1c], edx
mov word [ebp - 0x24], 2
mov dword [ebp - 0x18], edx
call sub.WSOCK32.dll_htons
mov word [ebp - 0x22], ax
lea eax, [ebx + 0xe34]
push eax
call sub.WSOCK32.dll_inet_addr
mov edx, dword [ebx + 0x8dc]
lea ecx, [ebp - 0x24]
push 0x10
push ecx
push edx
mov dword [ebp - 0x20], eax
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
je 0x402dfc
push 0
push 0
push ebx
push 0x403070
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov edi, eax
push 0xbb8
push edi
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
test eax, eax
je 0x401722
push 0
push edi
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
push 1
push edi
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea edi, [ebx + 0x840]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x401771
lea eax, [ebx + 0x840]
lea edi, [ebx + 0x14]
push eax
push str._mir182__s
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov edi, 0x1e
call dword [sym.imp.MSVCRT.dll_rand]
cdq
mov ecx, 0x64
idiv ecx
add edx, ecx
push edx
call esi
dec edi
jne 0x401776
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x7d70613
push 0x7d1
push edi
call fcn.00403040
add esp, 0x18
lea edx, [ebx + 0x8c2]
lea eax, [ebx + 0x8d0]
push edx
push eax
lea eax, [ebp - 0xb8]
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [ebx + 0x434]
push ecx
lea ecx, [ebp - 0xb8]
push edx
push ecx
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x2c
cmp eax, 9
jl 0x401817
mov dword [ebx + 0xc], 1
jmp 0x40181b
inc eax
mov dword [ebx + 0xc], eax
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x840]
push eax
lea eax, [ebx + 0x434]
push eax
lea eax, [ebx + 0x414]
push eax
push edx
lea edi, [ebx + 0x14]
push str._d_s_s__s
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov edx, dword [ebx + 0x8dc]
push 0
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
push 0x12c
mov edi, eax
call esi
lea eax, [ebp - 0x5e4]
push str._KX__
push eax
mov byte [ebp + edi - 0x5e4], 0
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
jne 0x402dfc
mov edi, dword [sym.imp.MSVCRT.dll_strstr]
lea ecx, [ebp - 0x5e4]
push str.X__
push ecx
call edi
add esp, 8
test eax, eax
jne 0x402dfc
lea edx, [ebp - 0x5e4]
push str.____
push edx
call edi
add esp, 8
test eax, eax
jne 0x40190c
mov ecx, dword [ebx + 0x8dc]
push eax
lea eax, [ebp - 0x5e4]
push 0x400
push eax
push ecx
call sub.WSOCK32.dll_recv
mov byte [ebp + eax - 0x5e4], 0
jmp 0x4019be
lea eax, [ebp - 0x5e4]
lea edx, [ebp - 0x5e4]
push 0x21
push eax
mov dword [ebp + 0xc], edx
call dword [sym.imp.MSVCRT.dll_strchr]
mov edi, eax
add esp, 8
test edi, edi
je 0x4019be
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x1e4]
push 0x64
add edx, 0x11
push ecx
push edx
mov byte [edi], 0
call fcn.00402ef0
mov byte [ebp + eax - 0x1e4], 0
lea eax, [ebp - 0x1e4]
push 0x2f
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 0x14
test eax, eax
jne 0x40198c
mov cl, byte [edi + 1]
lea eax, [edi + 1]
cmp cl, 0x23
jne 0x401975
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
push 0x21
push ecx
call dword [sym.imp.MSVCRT.dll_strchr]
mov edi, eax
add esp, 8
test edi, edi
jne 0x401931
jmp 0x4019be
mov byte [eax], 0
lea edi, [ebp - 0x1e4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x174]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
push 0x320
call esi
push 0
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x68
push edi
call fcn.00403040
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
lea edi, [ebp - 0x174]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebx + 0x434]
push ecx
lea ecx, [ebp - 0x174]
push edi
push ecx
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x34
cmp eax, 9
jl 0x401a27
mov dword [ebx + 0xc], 1
jmp 0x401a2b
inc eax
mov dword [ebx + 0xc], eax
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x840]
push eax
lea eax, [ebx + 0x414]
push edi
push eax
push edx
lea edi, [ebx + 0x14]
push str._d_s_s__s
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov edx, dword [ebx + 0x8dc]
push 0
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
push 0x12c
mov edi, eax
call esi
lea eax, [ebp - 0x5e4]
push 0x23
push eax
mov byte [ebp + edi - 0x5e4], 0
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 0xc], eax
test eax, eax
je 0x402df0
mov edx, eax
push 0x21
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 8], eax
test eax, eax
je 0x401bac
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
inc ecx
lea edx, [ebp - 0x38]
push ecx
push edx
mov byte [eax], 0
call fcn.00403020
mov ecx, pe_nt_image_headers32
xor eax, eax
lea edi, [ebp - 0x6e4]
push 0x100
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x6e4]
add ecx, 0x11
push eax
push ecx
call fcn.00402ef0
lea edx, [ebp - 0x6e4]
push 0x2f
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 0x1c
test eax, eax
je 0x401b86
mov byte [eax], 0
inc eax
push 0x2f
push eax
mov dword [ebp + 0x10], eax
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x401b86
mov byte [eax], 0
lea edi, [ebp - 0x6e4]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
lea edi, [ebx + 0xe34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x10]
push ecx
call dword [sym.imp.MSVCRT.dll_atoi]
mov edx, dword [ebp - 0x38]
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
add esp, 4
mov dword [ebx + 0xe54], eax
mov dword [ebp - 0x28], edx
mov eax, dword [ebp + 8]
inc eax
cmp byte [eax], 0x23
jne 0x401b92
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0xc]
push 0x21
push ecx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 8], eax
test eax, eax
jne 0x401ad5
push 0x3e8
call esi
mov edx, dword [ebx + 0x8dc]
push edx
call sub.WSOCK32.dll_closesocket
push 0
push 1
push 2
call sub.WSOCK32.dll_socket
mov cx, word [ebx + 0xe54]
mov dword [ebx + 0x8dc], eax
xor eax, eax
push ecx
mov dword [ebp - 0x24], eax
mov word [ebp - 0x24], 2
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
call sub.WSOCK32.dll_htons
mov word [ebp - 0x22], ax
lea eax, [ebx + 0xe34]
push eax
call sub.WSOCK32.dll_inet_addr
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x8dc]
lea edx, [ebp - 0x24]
push 0x10
push edx
push eax
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
je 0x402dfc
push 0x320
call esi
push 0
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x64
push edi
call fcn.00403040
mov ecx, dword [ebp - 0x28]
add esp, 0x18
lea eax, [ebx + 0x8d0]
lea edx, [ebp - 0xb8]
push ecx
push eax
push str._s__d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebx + 0x434]
push ecx
lea eax, [ebp - 0xb8]
push edi
push eax
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x2c
cmp eax, 9
jl 0x401ca8
mov dword [ebx + 0xc], 1
jmp 0x401cac
inc eax
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 0xc]
lea eax, [ebx + 0x414]
push edi
push eax
push ecx
lea edi, [ebx + 0x14]
push str._d_s_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
mov edx, dword [ebx + 0x8dc]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
push edx
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov ecx, dword [ebx + 0x8dc]
push 0
lea eax, [ebp - 0x5e4]
push 0x400
push eax
push ecx
call sub.WSOCK32.dll_recv
push 0x12c
call esi
lea edx, [ebp - 0x5e4]
push str.___IXC____
push edx
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x401ddd
mov eax, dword [ebp + 0xc]
push 0x21
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
mov byte [eax], 0
mov ecx, 0xc
xor eax, eax
lea edi, [ebp - 0x1b3]
mov byte [ebp - 0x1b4], 0
add esp, 8
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea edi, [ebp - 0x5d3]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x1b4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebx + 0xc]
and ecx, 3
cmp eax, 9
rep movsb byte es:[edi], byte [esi]
jl 0x401d8f
mov dword [ebx + 0xc], 1
jmp 0x401d93
inc eax
mov dword [ebx + 0xc], eax
mov edx, dword [ebx + 0xc]
lea ecx, [ebp - 0x1b4]
push ecx
push edx
lea esi, [ebx + 0x14]
push str._d_____DAJ_________s_
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x8dc]
push 0
not ecx
dec ecx
push ecx
push esi
push eax
call sub.WSOCK32.dll_send
push 0x12c
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
push 0x1388
call esi
push 0
push 0
push 0
push 0
lea eax, [ebx + 0x834]
push 0x65
push eax
call fcn.00403040
mov edi, dword [sym.imp.MSVCRT.dll_rand]
add esp, 0x18
call edi
cdq
mov ecx, 0x64
idiv ecx
lea edx, [edx + edx*2 + 0x40e628]
push edx
call edi
cdq
mov ecx, 0x64
idiv ecx
lea edx, [edx + edx*2 + 0x40e628]
push edx
call edi
cdq
mov ecx, 0x64
idiv ecx
lea edx, [edx + edx*2 + 0x40e628]
push edx
call edi
cdq
mov ecx, 0x64
idiv ecx
lea edx, [edx + edx*2 + 0x40e628]
push edx
call edi
cdq
mov ecx, 0x64
idiv ecx
lea edx, [edx + edx*2 + 0x40e628]
push edx
call edi
cdq
mov ecx, 0x5a
lea edi, [ebx + 0x8a4]
idiv ecx
lea edx, [edx + edx*2 + 0x40e628]
push edx
push str._s_s_s_s_s_s
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x20
lea eax, [ebx + 0x8d0]
push edi
push eax
lea eax, [ebp - 0xb8]
push str._s__s_5_0_0
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 0x414]
push 0x20
push eax
lea eax, [ebx + 0x834]
push eax
call fcn.00402fe0
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebx + 0x434]
push ecx
lea ecx, [ebp - 0xb8]
push eax
push ecx
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x2c
cmp eax, 9
jl 0x401ef0
mov dword [ebx + 0xc], 1
jmp 0x401ef4
inc eax
mov dword [ebx + 0xc], eax
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x434]
push eax
lea eax, [ebx + 0x414]
push eax
push edx
lea edi, [ebx + 0x14]
push str._d_s_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov edx, dword [ebx + 0x8dc]
push 0
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
push 0x1f4
call esi
lea eax, [ebp - 0x5e4]
push str._______
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
add esp, 8
test eax, eax
je 0x402df0
push 0
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x64
push edi
call fcn.00403040
mov edx, dword [ebp - 0x28]
add esp, 0x18
lea eax, [ebx + 0x8d0]
push edx
push eax
lea eax, [ebp - 0xb8]
push str._s__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebx + 0x434]
push ecx
lea ecx, [ebp - 0xb8]
push eax
push ecx
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x2c
cmp eax, 9
jl 0x401ffc
mov dword [ebx + 0xc], 1
jmp 0x402000
inc eax
mov dword [ebx + 0xc], eax
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x434]
push eax
lea eax, [ebx + 0x414]
push eax
push edx
lea edi, [ebx + 0x14]
push str._d_s_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov edx, dword [ebx + 0x8dc]
push 0
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
push 0x12c
call esi
push 0
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x67
push edi
call fcn.00403040
add esp, 0x18
lea eax, [ebx + 0x8a4]
push eax
lea eax, [ebx + 0x8d0]
push eax
lea eax, [ebp - 0xb8]
push str._s__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebx + 0x434]
push ecx
lea ecx, [ebp - 0xb8]
push eax
push ecx
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x2c
cmp eax, 9
jl 0x4020ee
mov dword [ebx + 0xc], 1
jmp 0x4020f2
inc eax
mov dword [ebx + 0xc], eax
mov edx, dword [ebx + 0xc]
lea eax, [ebx + 0x434]
push eax
lea eax, [ebx + 0x414]
push eax
push edx
lea edi, [ebx + 0x14]
push str._d_s_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
mov edx, dword [ebx + 0x8dc]
push 0
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
push 0x12c
mov edi, eax
call esi
lea eax, [ebp - 0x5e4]
push 0x23
push eax
mov byte [ebp + edi - 0x5e4], 0
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 0xc], eax
test eax, eax
je 0x402df0
mov edx, eax
push 0x21
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 8], eax
test eax, eax
je 0x40225a
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
inc ecx
lea edx, [ebp - 0x38]
push ecx
push edx
mov byte [eax], 0
call fcn.00403020
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x7e4]
push 0x200
rep stosd dword es:[edi], eax
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x7e4]
add ecx, 0x11
push eax
push ecx
call fcn.00402ef0
lea edx, [ebp - 0x7e4]
push 0x2f
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
mov edx, eax
add esp, 0x1c
test edx, edx
je 0x40222f
mov byte [edx], 0
lea edi, [ebp - 0x7e4]
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push edx
mov eax, ecx
mov esi, edi
lea edi, [ebx + 0xe34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.MSVCRT.dll_atoi]
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
add esp, 4
mov dword [ebx + 0xe54], eax
mov ecx, dword [ebp + 8]
lea eax, [ecx + 1]
mov cl, byte [ecx + 1]
cmp cl, 0x23
jne 0x402240
mov dword [ebp + 0xc], eax
mov edx, dword [ebp + 0xc]
push 0x21
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 8], eax
test eax, eax
jne 0x40219b
cmp dword [ebp + 0x14], 1
jne 0x402282
lea edi, [ebx + 0x840]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x402282
push eax
push eax
push ebx
push 0x4031c0
push eax
push eax
call dword [sym.imp.KERNEL32.DLL_CreateThread]
push 0x3e8
call esi
push 0
push 1
push 2
call sub.WSOCK32.dll_socket
mov cx, word [ebx + 0xe54]
mov dword [ebx + 0x8dc], eax
xor eax, eax
push ecx
mov dword [ebp - 0x24], eax
mov word [ebp - 0x24], 2
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
call sub.WSOCK32.dll_htons
mov word [ebp - 0x22], ax
lea eax, [ebx + 0xe34]
push eax
call sub.WSOCK32.dll_inet_addr
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x8dc]
lea edx, [ebp - 0x24]
push 0x10
push edx
push eax
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
je 0x402df0
push 0x320
call esi
mov edx, dword [ebp - 0x28]
push 0x142d8e5
lea eax, [ebx + 0x8a4]
push edx
push eax
lea eax, [ebx + 0x8d0]
push eax
lea eax, [ebp - 0xb8]
push str._s__s__d__d_0
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebx + 0x434]
push ecx
lea ecx, [ebp - 0xb8]
push edi
push ecx
call fcn.00402e20
mov byte [eax + ebx + 0x434], 0
mov eax, dword [ebx + 0xc]
add esp, 0x28
cmp eax, 9
jl 0x40235e
mov dword [ebx + 0xc], 1
jmp 0x402362
inc eax
mov dword [ebx + 0xc], eax
mov edx, dword [ebx + 0xc]
push edi
push edx
lea edi, [ebx + 0x14]
push str._d_s_
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x514
call esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
call dword [sym.imp.MSVCRT.dll_rand]
and eax, 0x80000001
jns 0x4023b6
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
jne 0x4023d5
mov edx, dword [ebx + 0x8dc]
push 0
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
push 0x3e8
call esi
push 0x2d
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x3fa
push edi
call fcn.00403040
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
add esp, 0x24
lea eax, [ebx + 0x414]
lea edi, [ebx + 0x14]
push eax
push str.1_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
mov eax, dword [ebx + 0x8dc]
push eax
call sub.WSOCK32.dll_send
push 0x12c
call esi
push 0
push 0
push ebx
push 0x4033a0
push 0
push 0
mov dword [ebx + 0xe30], 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov dword [ebp + 0x10], eax
mov eax, dword [ebx + 0xe30]
test eax, eax
jne 0x402dfc
push 0x64
call esi
mov edx, dword [ebx + 0x8dc]
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x5e4]
rep stosd dword es:[edi], eax
push eax
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
mov edi, eax
cmp edi, 0xffffffff
je 0x402642
lea eax, [ebp - 0x5e4]
lea ecx, [ebp - 0x14]
push eax
mov byte [ebp + edi - 0x5e4], 0
call sub.MFC42.DLL_CString::operator
lea esi, [ebp - 0x5e4]
dec esi
cmp byte [edi + esi], 0x21
je 0x40251a
mov edx, dword [ebx + 0x8dc]
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x5e4]
rep stosd dword es:[edi], eax
push eax
lea ecx, [ebp - 0x5e4]
push 0x400
push ecx
push edx
call sub.WSOCK32.dll_recv
mov edi, eax
cmp edi, 0xffffffff
je 0x40251a
lea eax, [ebp - 0x5e4]
lea ecx, [ebp - 0x14]
push eax
mov byte [ebp + edi - 0x5e4], 0
call sub.MFC42.DLL_CString::operator_1
cmp byte [edi + esi], 0x21
jne 0x4024ce
push 0
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::GetBuffer
mov dword [ebp + 0xc], eax
mov edi, dword [ebp + 0xc]
push 0x21
push edi
call dword [sym.imp.MSVCRT.dll_strchr]
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp + 8], esi
je 0x402637
inc edi
mov ecx, ebx
push edi
mov byte [esi], 0
mov byte [ebp - 4], 1
call fcn.00404000
jmp 0x402561
mov al, byte [esi + 1]
mov dword [ebp - 4], 0
cmp al, 0x2a
jne 0x402585
mov ecx, dword [ebx + 0x8dc]
push 0
push 1
push 0x40e77c
push ecx
call sub.WSOCK32.dll_send
inc esi
mov cl, byte [esi + 1]
lea eax, [esi + 1]
cmp cl, 0x23
jne 0x402593
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x402527
mov eax, dword [ebx + 0x8cc]
test eax, eax
je 0x402527
push 0
push 0
push 0
lea esi, [ebx + 0x834]
push eax
push 0x3f2
push esi
call fcn.00403040
lea edi, [ebx + 0x414]
push 0x20
push edi
push esi
call fcn.00402fe0
add esp, 0x24
lea edx, [ebx + 0x434]
lea esi, [ebx + 0x14]
push edx
push edi
push str.1_s_s_
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x8dc]
push 0
not ecx
dec ecx
push ecx
push esi
push eax
call sub.WSOCK32.dll_send
push 0x1f4
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [ebx + 0x8dc]
push esi
push ecx
call sub.WSOCK32.dll_send
mov dword [ebx + 0x10], 0
jmp 0x402527
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x402465
mov esi, dword [ebp + 0x10]
push 1
push esi
call dword [sym.imp.KERNEL32.DLL_TerminateThread]
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov edi, 0x40e760
or ecx, 0xffffffff
xor eax, eax
mov dword [ebx + 0xe30], 0
repne scasb al, byte es:[edi]
mov edx, dword [ebx + 0x8dc]
push 0
not ecx
dec ecx
push ecx
push 0x40e760
push edx
call sub.WSOCK32.dll_send
push 0x12c
call dword [sym.imp.KERNEL32.DLL_Sleep]
lea edi, [ebx + 0xe5c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebx + 0xe34]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0
mov eax, ecx
mov esi, edi
mov edi, edx
push 1
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 2
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0xe70]
mov dword [ebx + 0xe54], ecx
call sub.WSOCK32.dll_socket
xor edx, edx
mov dword [ebx + 0x8dc], eax
mov ax, word [ebx + 0xe54]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
push eax
mov dword [ebp - 0x1c], edx
mov word [ebp - 0x24], 2
mov dword [ebp - 0x18], edx
call sub.WSOCK32.dll_htons
mov word [ebp - 0x22], ax
lea eax, [ebx + 0xe34]
push eax
call sub.WSOCK32.dll_inet_addr
mov edx, dword [ebx + 0x8dc]
lea ecx, [ebp - 0x24]
push 0x10
push ecx
push edx
mov dword [ebp - 0x20], eax
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
je 0x402dfc
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
push 0x3e8
call esi
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0
push 0x64
push edi
call fcn.00403040
mov ecx, dword [ebp - 0x28]
add esp, 0x18
lea eax, [ebx + 0x8d0]
lea edx, [ebp - 0xb8]
push ecx
push eax
push str._s__d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebx + 0x434]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0x400
push ecx
lea eax, [ebp - 0xb8]
push edx
push eax
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x2c
cmp eax, 9
jl 0x4027b1
mov dword [ebx + 0xc], 1
jmp 0x4027b5
inc eax
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 0xc]
lea eax, [ebx + 0x434]
push eax
lea eax, [ebx + 0x414]
push eax
lea edi, [ebx + 0x14]
push ecx
push str._d_s_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
mov edx, dword [ebx + 0x8dc]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
push edx
call sub.WSOCK32.dll_send
push 0x1f4
call esi
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x5e4]
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x8dc]
lea eax, [ebp - 0x5e4]
push 0x400
push eax
push ecx
call sub.WSOCK32.dll_recv
push 0x1f4
call esi
push 0
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x67
push edi
call fcn.00403040
add esp, 0x18
lea eax, [ebx + 0x8a4]
lea edx, [ebp - 0xb8]
push eax
lea eax, [ebx + 0x8d0]
push eax
push str._s__s
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebx + 0x434]
push ecx
push eax
lea eax, [ebp - 0xb8]
push eax
call fcn.00402e20
mov eax, dword [ebx + 0xc]
add esp, 0x2c
cmp eax, 9
jl 0x4028b1
mov dword [ebx + 0xc], 1
jmp 0x4028b5
inc eax
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 0xc]
lea eax, [ebx + 0x434]
push eax
lea eax, [ebx + 0x414]
push eax
push ecx
lea edi, [ebx + 0x14]
push str._d_s_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
mov edx, dword [ebx + 0x8dc]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
push edx
call sub.WSOCK32.dll_send
push 0x1f4
call esi
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x5e4]
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x8dc]
lea eax, [ebp - 0x5e4]
push 0x400
push eax
push ecx
call sub.WSOCK32.dll_recv
push 0x1f4
mov edi, eax
call esi
lea edx, [ebp - 0x5e4]
push 0x23
push edx
mov byte [ebp + edi - 0x5e4], 0
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 0xc], eax
test eax, eax
je 0x402dfc
push 0x21
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 8], eax
test eax, eax
je 0x402a2c
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
inc edx
lea eax, [ebp - 0x180]
push edx
push eax
mov byte [ecx], 0
call fcn.00403020
mov edx, dword [ebp + 0xc]
mov ecx, 0x80
xor eax, eax
lea edi, [ebp - 0x7e4]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x7e4]
push 0x200
add edx, 0x11
push ecx
push edx
call fcn.00402ef0
lea eax, [ebp - 0x7e4]
push 0x2f
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
mov edx, eax
add esp, 0x1c
test edx, edx
je 0x402a01
mov byte [edx], 0
lea edi, [ebp - 0x7e4]
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push edx
mov eax, ecx
mov esi, edi
lea edi, [ebx + 0xe34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.MSVCRT.dll_atoi]
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
add esp, 4
mov dword [ebx + 0xe54], eax
mov ecx, dword [ebp + 8]
lea eax, [ecx + 1]
mov cl, byte [ecx + 1]
cmp cl, 0x23
jne 0x402a12
mov dword [ebp + 0xc], eax
mov edx, dword [ebp + 0xc]
push 0x21
push edx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
mov dword [ebp + 8], eax
test eax, eax
jne 0x40296a
push 0x3e8
call esi
push 0
push 1
push 2
call sub.WSOCK32.dll_socket
mov cx, word [ebx + 0xe54]
mov dword [ebx + 0x8dc], eax
xor eax, eax
push ecx
mov dword [ebp - 0x24], eax
mov word [ebp - 0x24], 2
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
call sub.WSOCK32.dll_htons
mov word [ebp - 0x22], ax
lea eax, [ebx + 0xe34]
push eax
call sub.WSOCK32.dll_inet_addr
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x8dc]
lea edx, [ebp - 0x24]
push 0x10
push edx
push eax
call sub.WSOCK32.dll_connect
cmp eax, 0xffffffff
je 0x402dfc
push 0x320
call esi
mov ecx, dword [ebp - 0x28]
push 0x1317d2a
lea eax, [ebx + 0x8a4]
push ecx
push eax
lea eax, [ebx + 0x8d0]
push eax
lea edx, [ebp - 0xb8]
push str._s__s__d__d_0
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
lea edi, [ebp - 0xb8]
or ecx, 0xffffffff
xor eax, eax
push 0x400
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edi, [ebx + 0x434]
push ecx
lea eax, [ebp - 0xb8]
push edi
push eax
call fcn.00402e20
mov byte [eax + ebx + 0x434], 0
mov eax, dword [ebx + 0xc]
add esp, 0x28
cmp eax, 9
jl 0x402b08
mov dword [ebx + 0xc], 1
jmp 0x402b0c
inc eax
mov dword [ebx + 0xc], eax
mov ecx, dword [ebx + 0xc]
push edi
push ecx
lea edi, [ebx + 0x14]
push str._d_s_
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x514
call esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edx, dword [ebx + 0x8dc]
push 0
not ecx
dec ecx
lea eax, [ebx + 0x14]
push ecx
push eax
push edx
call sub.WSOCK32.dll_send
push 0x12c
call esi
call dword [sym.imp.MSVCRT.dll_rand]
and eax, 0x80000001
jns 0x402b60
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
jne 0x402b7f
mov ecx, dword [ebx + 0x8dc]
push 0
lea eax, [ebp - 0x5e4]
push 0x400
push eax
push ecx
call sub.WSOCK32.dll_recv
push 0x320
call esi
push 0x320
call esi
push 0
push 0
push 0
push 0
lea edi, [ebx + 0x834]
push 0x3fa
push edi
call fcn.00403040
lea eax, [ebx + 0x414]
push 0x20
push eax
push edi
call fcn.00402fe0
add esp, 0x24
lea eax, [ebx + 0x414]
lea edi, [ebx + 0x14]
push eax
push str.1_s_
push edi
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
mov edx, dword [ebx + 0x8dc]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 0
lea eax, [ebx + 0x14]
push ecx
push eax
push edx
call sub.WSOCK32.dll_send
push 0x12c
call esi
push 0
push 0
push ebx
push 0x4033a0
push 0
push 0
mov dword [ebx + 0xe30], 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
mov eax, dword [ebx + 0xe30]
test eax, eax
jne 0x402dfc
push 0x64
call esi
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x5e4]
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x8dc]
lea eax, [ebp - 0x5e4]
push 0x400
push eax
push ecx
call sub.WSOCK32.dll_recv
mov edi, eax
cmp edi, 0xffffffff
je 0x402dfc
lea edx, [ebp - 0x5e4]
lea ecx, [ebp - 0x14]
push edx
mov byte [ebp + edi - 0x5e4], 0
call sub.MFC42.DLL_CString::operator
lea esi, [ebp - 0x5e4]
dec esi
cmp byte [edi + esi], 0x21
je 0x402cc8
mov ecx, 0x100
xor eax, eax
lea edi, [ebp - 0x5e4]
push eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebx + 0x8dc]
lea eax, [ebp - 0x5e4]
push 0x400
push eax
push ecx
call sub.WSOCK32.dll_recv
mov edi, eax
cmp edi, 0xffffffff
je 0x402cc8
lea edx, [ebp - 0x5e4]
lea ecx, [ebp - 0x14]
push edx
mov byte [ebp + edi - 0x5e4], 0
call sub.MFC42.DLL_CString::operator_1
cmp byte [edi + esi], 0x21
jne 0x402c7c
push 0
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::GetBuffer
mov dword [ebp + 0xc], eax
mov edi, dword [ebp + 0xc]
push 0x21
push edi
call dword [sym.imp.MSVCRT.dll_strchr]
mov esi, eax
add esp, 8
test esi, esi
mov dword [ebp + 8], esi
je 0x402de5
inc edi
mov ecx, ebx
push edi
mov byte [esi], 0
mov byte [ebp - 4], 3
call fcn.00404000
jmp 0x402d0f
mov al, byte [esi + 1]
mov dword [ebp - 4], 0
cmp al, 0x2a
jne 0x402d33
mov eax, dword [ebx + 0x8dc]
push 0
push 1
push 0x40e77c
push eax
call sub.WSOCK32.dll_send
inc esi
mov cl, byte [esi + 1]
lea eax, [esi + 1]
cmp cl, 0x23
jne 0x402d41
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x402cd5
mov eax, dword [ebx + 0x8cc]
test eax, eax
je 0x402cd5
push 0
push 0
push 0
lea esi, [ebx + 0x834]
push eax
push 0x3f2
push esi
call fcn.00403040
lea edi, [ebx + 0x414]
push 0x20
push edi
push esi
call fcn.00402fe0
add esp, 0x24
lea ecx, [ebx + 0x434]
lea esi, [ebx + 0x14]
push ecx
push edi
push str.1_s_s_
push esi
call dword [sym.imp.MSVCRT.dll_sprintf]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
mov edx, dword [ebx + 0x8dc]
push 0
not ecx
dec ecx
push ecx
push esi
push edx
call sub.WSOCK32.dll_send
push 0x258
call dword [sym.imp.KERNEL32.DLL_Sleep]
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
mov eax, dword [ebx + 0x8dc]
not ecx
dec ecx
push ecx
push esi
push eax
call sub.WSOCK32.dll_send
mov dword [ebx + 0x10], 0
jmp 0x402cd5
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
jmp 0x402c13
mov ecx, dword [ebx + 0x8dc]
push ecx
call sub.WSOCK32.dll_closesocket
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10