Function at 0x464c44
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Create thread
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xb
push 0
push 0
dec ecx
jne 0x464c4c
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4650dc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
mov byte [eax], 1
lea eax, [ebp - 0x34]
mov edx, dword [0x4a3784]
mov ecx, 0xf
call fcn.00404fb0
cmp dword [ebp - 0x34], 0
jne 0x464ee9
xor eax, eax
push ebp
push 0x464edf
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4a3784]
mov edx, 0xe
call fcn.00460e58
call fcn.00464448
mov edx, dword [0x4a3784]
mov dword [edx + 0x13], eax
mov eax, dword [0x4a3784]
add eax, 0x17
mov edx, 0xb
call fcn.00408168
lea eax, [ebp - 0x38]
mov edx, dword [0x4a390c]
mov edx, dword [edx]
call fcn.00404f38
mov eax, dword [ebp - 0x38]
call fcn.00405000
mov ecx, eax
mov edx, dword [0x4a390c]
mov edx, dword [edx]
mov eax, dword [0x4a3784]
add eax, 0x17
call fcn.0040814c
mov eax, dword [0x4a3784]
add eax, 0x22
mov edx, 0xb
call fcn.00408168
lea eax, [ebp - 0x3c]
mov edx, dword [0x4a359c]
mov edx, dword [edx]
call fcn.00404f38
mov eax, dword [ebp - 0x3c]
call fcn.00405000
mov ecx, eax
mov edx, dword [0x4a359c]
mov edx, dword [edx]
mov eax, dword [0x4a3784]
add eax, 0x22
call fcn.0040814c
mov eax, dword [0x4a3784]
add eax, 0x2d
mov edx, 0x33
call fcn.00408168
lea eax, [ebp - 0x40]
call fcn.004608cc
mov eax, dword [ebp - 0x40]
call fcn.00405000
push eax
lea eax, [ebp - 0x44]
call fcn.004608cc
mov eax, dword [ebp - 0x44]
call fcn.00405200
mov edx, eax
mov eax, dword [0x4a3784]
add eax, 0x2d
pop ecx
call fcn.0040814c
mov eax, dword [0x4a3784]
add eax, 0x60
mov edx, 0x33
call fcn.00408168
lea eax, [ebp - 0x48]
call fcn.00460850
mov eax, dword [ebp - 0x48]
call fcn.00405000
push eax
lea eax, [ebp - 0x4c]
call fcn.00460850
mov eax, dword [ebp - 0x4c]
call fcn.00405200
mov edx, eax
mov eax, dword [0x4a3784]
add eax, 0x60
pop ecx
call fcn.0040814c
mov eax, dword [0x4a3784]
add eax, 0x93
mov edx, 0x96
call fcn.00460f70
mov eax, dword [0x4a3784]
add eax, 0x12a
mov edx, 0x33
call fcn.00408168
lea eax, [ebp - 0x50]
call fcn.0046457c
mov eax, dword [ebp - 0x50]
call fcn.00405000
push eax
lea eax, [ebp - 0x54]
call fcn.0046457c
mov eax, dword [ebp - 0x54]
call fcn.00405200
mov edx, eax
mov eax, dword [0x4a3784]
add eax, 0x12a
pop ecx
call fcn.0040814c
xor eax, eax
call fcn.00460f08
mov ebx, eax
mov eax, dword [0x4a3784]
mov byte [eax + 0x1f4], bl
mov eax, dword [0x4a3784]
test bl, bl
jbe 0x464e46
mov eax, dword [0x4a3784]
mov dword [eax + 0xf], 1
jmp 0x464e50
mov eax, dword [0x4a3784]
xor edx, edx
mov dword [eax + 0xf], edx
lea eax, [ebp - 0x10]
call fcn.00404d40
push eax
lea eax, [ebp - 0x58]
call fcn.00460050
mov eax, dword [ebp - 0x58]
call fcn.00405200
mov edx, eax
mov ecx, 0x4650ec
mov eax, 0x80000002
call fcn.0046232c
mov eax, dword [0x4a3784]
add eax, 0x15d
mov edx, 0x97
call fcn.00408168
cmp dword [ebp - 0x10], 0
jne 0x464eb2
mov edx, dword [0x4a3678]
mov edx, dword [edx]
mov eax, dword [0x4a3784]
add eax, 0x15d
mov ecx, 4
call fcn.0040814c
jmp 0x464ed5
mov eax, dword [ebp - 0x10]
call fcn.00405000
push eax
mov eax, dword [ebp - 0x10]
call fcn.00405200
mov edx, eax
mov eax, dword [0x4a3784]
add eax, 0x15d
pop ecx
call fcn.0040814c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x464ee9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [0x4a3784]
mov dword [edx + 0x1f5], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x48]
mov edx, dword [0x4a3784]
mov dword [edx + 0x1f9], eax
push 6
push 1
push 2
call sub.wsock32.dll_socket
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], ebx
cmp ebx, 0xffffffff
jne 0x464f36
push ebx
call sub.wsock32.dll_closesocket
mov eax, dword [ebp - 8]
mov byte [eax], 0
jmp 0x4650b9
xor eax, eax
push ebp
push 0x464fce
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x14], 1
push 4
lea eax, [ebp - 0x14]
push eax
push 8
push 0xffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.wsock32.dll_setsockopt
inc eax
jne 0x464f73
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.wsock32.dll_closesocket
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x20], 0x7530
mov dword [ebp - 0x1c], 1
mov ebx, 0xc
mov esi, 0xc
push 0
push 0
lea eax, [ebp - 0x18]
push eax
push esi
lea eax, [ebp - 0x30]
push eax
push ebx
lea eax, [ebp - 0x24]
push eax
push 0x98000004
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.ws2_32.dll_WSAIoctl
inc eax
jne 0x464fc4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.wsock32.dll_closesocket
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x464fd8
push 0x10
push 0x4a5114
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.wsock32.dll_connect
inc eax
jne 0x465005
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.wsock32.dll_closesocket
mov eax, dword [ebp - 8]
mov byte [eax], 0
jmp 0x4650b9
mov dword [ebp - 0xc], 0x1fd
push 0
mov edx, dword [0x4a3784]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp - 0xc]
call fcn.004613f8
push 0
push 0
push 0
push 0
call sub.kernel32.dll_CreateEventA
mov edx, dword [ebp - 4]
mov dword [edx + 0x14], eax
push 0
push 0
push 0
push 0
call sub.kernel32.dll_CreateEventA
mov edx, dword [ebp - 4]
mov dword [edx + 0x18], eax
push 0
push 0
push 0
push 0
call sub.kernel32.dll_CreateEventA
mov edx, dword [ebp - 4]
mov dword [edx + 0x1c], eax
call sub.ws2_32.dll_WSACreateEvent
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x10], ebx
push 0x23
push ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
push eax
call sub.ws2_32.dll_WSAEventSelect
mov eax, dword [ebp - 4]
add eax, 0x24
push eax
push 0
mov eax, dword [ebp - 4]
push eax
push 0x464a54
push 0
push 0
call sub.kernel32.dll_CreateThread_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 4]
add eax, 0x2c
push eax
push 0
mov eax, dword [ebp - 4]
push eax
push 0x464a64
push 0
push 0
call sub.kernel32.dll_CreateThread_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x28], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4650e3
lea eax, [ebp - 0x58]
mov edx, 0xa
call fcn.00404d64
lea eax, [ebp - 0x10]
call fcn.00404d40
ret