Function at 0x579360
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 8], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x579842
push dword fs:[eax]
mov dword fs:[eax], esp
mov esi, dword [ebx + 0x1ec]
test esi, esi
je 0x5793a0
mov eax, esi
mov edx, dword [0x40f8cc]
call fcn.00403120
test al, al
je 0x5793a0
mov eax, esi
call fcn.00414028
mov byte [ebx + 0x198], 0
mov byte [ebx + 0x199], 0
mov byte [ebx + 0x17e], 0
mov byte [ebx + 0x159], 0
cmp byte [ebx + 0x201], 0
je 0x5793d0
mov cl, 1
xor edx, edx
mov eax, ebx
call fcn.0057c0e8
push 6
push 1
push 2
call sub.wsock32.dll_socket
mov esi, eax
mov dword [ebx + 0x1c4], esi
inc esi
jne 0x5793f7
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov dx, 0x2733
mov eax, ebx
call fcn.0057c288
xor edx, edx
mov eax, ebx
call fcn.0057922c
push 0x30
push 0x465
mov eax, dword [ebx + 0x1e0]
push eax
mov eax, dword [ebx + 0x1c4]
push eax
call sub.wsock32.dll_WSAAsyncSelect
mov dl, 1
mov eax, ebx
call fcn.005778a8
mov eax, ebx
call fcn.0057da54
mov byte [ebx + 0x1dc], 1
mov byte [ebx + 0x201], 1
cmp word [ebx + 0x4e], 0
je 0x579447
mov edx, ebx
mov eax, dword [ebx + 0x50]
call dword [ebx + 0x4c]
mov byte [ebx + 0x1ad], 0
mov byte [ebx + 0x1ae], 0
cmp byte [ebx + 0x200], 0
je 0x57947f
lea edx, [ebp - 8]
mov eax, dword [0x585c6c]
call fcn.00405c64
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
xor esi, esi
mov eax, dword [ebx + 0xec]
mov edx, 0x579858
call fcn.00403f98
je 0x579565
xor eax, eax
push ebp
push 0x5794bb
push dword fs:[eax]
mov dword fs:[eax], esp
lea ecx, [ebp - 8]
xor edx, edx
mov eax, ebx
call fcn.0057c478
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5794e7
cmp dword [ebx + 0x130], 0
jne 0x579558
test esi, esi
jg 0x5794fb
cmp word [ebx + 0x7e], 0
jne 0x57951e
lea edx, [ebp - 8]
mov eax, dword [0x585b74]
call fcn.00405c64
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
jmp 0x579558
mov byte [ebp - 1], 0
lea ecx, [ebp - 1]
mov edx, ebx
mov eax, dword [ebx + 0x80]
call dword [ebx + 0x7c]
cmp byte [ebp - 1], 0
jne 0x579557
lea edx, [ebp - 8]
mov eax, dword [0x585b74]
call fcn.00405c64
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
inc esi
cmp dword [ebx + 0x130], 0
je 0x579481
mov word [ebx + 0x12c], 2
cmp dword [ebx + 0xcc], 0
jne 0x57958d
mov ax, word [ebx + 0xf4]
push eax
call sub.wsock32.dll_htons
mov word [ebx + 0x12e], ax
jmp 0x5795a1
mov ax, word [ebx + 0xd8]
push eax
call sub.wsock32.dll_htons
mov word [ebx + 0x12e], ax
mov byte [ebx + 0x128], 0
mov byte [ebx + 0xfd], 1
push 0x10
lea eax, [ebx + 0x12c]
push eax
mov eax, dword [ebx + 0x1c4]
push eax
call sub.wsock32.dll_connect
inc eax
jne 0x5795d8
lea eax, [ebp - 8]
push eax
xor ecx, ecx
mov dx, 0x2733
mov eax, ebx
call fcn.0057c288
xor edx, edx
mov eax, ebx
call fcn.0057ad24
mov dl, 1
mov eax, ebx
call fcn.0057c8b4
cmp byte [ebx + 0x201], 0
je 0x579617
cmp byte [ebx + 0x200], 0
jne 0x579617
cmp byte [ebx + 0x1ae], 0
jne 0x579617
cmp byte [ebx + 0x1ad], 0
jne 0x579617
cmp byte [ebx + 0xfd], 0
jne 0x5795e1
cmp byte [ebx + 0x201], 0
jne 0x579630
cmp byte [ebx + 0x200], 0
jne 0x579630
mov byte [ebx + 0x1ad], 1
mov eax, ebx
call fcn.0057ad7c
push 0x23
push 0x465
mov eax, dword [ebx + 0x1e0]
push eax
mov eax, dword [ebx + 0x1c4]
push eax
call sub.wsock32.dll_WSAAsyncSelect
cmp byte [ebx + 0x1ae], 0
jne 0x579670
cmp byte [ebx + 0x1ad], 0
jne 0x579670
cmp byte [ebx + 0xfd], 0
jne 0x5797ee
mov eax, ebx
call fcn.0057c270
mov esi, eax
mov cl, 1
xor edx, edx
mov eax, ebx
call fcn.0057c0e8
mov edx, esi
mov eax, ebx
call fcn.0057c278
mov byte [ebx + 0x201], 0
cmp word [ebx + 0x9e], 0
je 0x5796ac
mov edx, ebx
mov eax, dword [ebx + 0xa0]
call dword [ebx + 0x9c]
cmp byte [ebx + 0xdd], 0
je 0x5796d6
lea edx, [ebp - 8]
mov eax, dword [0x5859f4]
call fcn.00405c64
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576e54]
call fcn.0040bb58
call fcn.00403680
cmp byte [ebx + 0xfd], 0
jne 0x57973a
mov eax, ebx
call fcn.0057c270
cmp eax, 0x2733
jne 0x5796f9
mov edx, 0x274c
mov eax, ebx
call fcn.0057c278
mov eax, ebx
call fcn.0057c270
cmp eax, 0x2710
jle 0x57973a
mov eax, ebx
call fcn.0057c270
cmp eax, 0x2736
je 0x57973a
mov eax, ebx
call fcn.0057c270
lea ecx, [ebp - 8]
mov dl, 1
call fcn.004a1888
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
cmp byte [ebx + 0x1ae], 0
je 0x579765
lea ecx, [ebp - 8]
mov dl, 1
mov ax, 0x274c
call fcn.004a1888
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
cmp byte [ebx + 0xfd], 0
je 0x579798
cmp byte [ebx + 0x200], 0
jne 0x579798
lea edx, [ebp - 8]
mov eax, dword [0x585750]
call fcn.00405c64
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
cmp byte [ebx + 0x1ad], 0
je 0x5797c2
lea edx, [ebp - 8]
mov eax, dword [0x5859f4]
call fcn.00405c64
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
cmp byte [ebx + 0xfd], 0
jne 0x57982c
lea edx, [ebp - 8]
mov eax, dword [0x585750]
call fcn.00405c64
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x576dfc]
call fcn.0040bb58
call fcn.00403680
jmp 0x57982c
mov al, byte [ebx + 0xdc]
sub al, 0xa
je 0x579806
dec al
je 0x57981c
sub al, 2
je 0x579825
sub al, 3
je 0x579811
jmp 0x57982c
xor edx, edx
mov eax, ebx
call fcn.0057c974
jmp 0x57982c
mov dl, 1
mov eax, ebx
call fcn.0057c974
jmp 0x57982c
mov eax, ebx
call fcn.0057cdf0
jmp 0x57982c
mov eax, ebx
call fcn.0057d730
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x579849
lea eax, [ebp - 8]
call fcn.00403c0c
ret