Function at 0x4ba3cc
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create tcp socket
Create udp socket
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 8
add esp, 0xfffff004
push eax
dec eax
jne 0x4ba3d5
mov eax, dword [ebp - 4]
add esp, 0xffffffb8
push ebx
push esi
xor edx, edx
mov dword [ebp - 0x804c], edx
mov dword [ebp - 0x8048], edx
mov dword [ebp - 0x8034], edx
mov dword [ebp - 0x8038], edx
mov dword [ebp - 0x8040], edx
mov dword [ebp - 0x8044], edx
mov dword [ebp - 0x803c], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4ba7cb
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x4ba78e
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x6c], ebx
cmp ebx, 0xffffffff
jne 0x4ba45d
call sub.rtl60.bpl__System__TryFinallyExit_qqrv
jmp 0x4ba795
push 0x10
mov eax, dword [ebp - 4]
add eax, 0x5c
push eax
push ebx
call sub.wsock32.dll_connect
inc eax
jne 0x4ba479
call sub.rtl60.bpl__System__TryFinallyExit_qqrv
jmp 0x4ba795
mov dword [ebp - 0x1c], 0x3e8
mov dword [ebp - 0x20], 0xbb8
push 4
lea eax, [ebp - 0x1c]
push eax
push 0x1005
push 0xffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
call sub.wsock32.dll_setsockopt
push 4
lea eax, [ebp - 0x20]
push eax
push 0x1006
push 0xffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
call sub.wsock32.dll_setsockopt
mov eax, dword [0x4ba7d8]
mov dword [ebp - 0x2f], eax
mov ax, word [0x4ba7dc]
mov word [ebp - 0x2b], ax
mov al, byte [0x4ba7de]
mov byte [ebp - 0x29], al
mov word [ebp - 0x28], 0x744
lea eax, [ebp - 0x402f]
xor ecx, ecx
mov edx, 0x4000
call sub.rtl60.bpl__System__FillChar_qqrpvic
mov eax, dword [0x50848c]
mov eax, dword [eax]
push dword [eax + 0x970]
push 0x4ba7e8
lea eax, [ebp - 0x803c]
mov edx, dword [0x50848c]
mov edx, dword [edx]
add edx, 0xa43
mov ecx, 0x10
call sub.rtl60.bpl__System__LStrFromArray_qqrr17System_AnsiStringpci
mov eax, dword [ebp - 0x803c]
lea edx, [ebp - 0x8038]
call sub.rtl60.bpl__Sysutils_Trim_qqrx17System_AnsiString
push dword [ebp - 0x8038]
push 0x4ba7e8
push 0x4ba7f4
lea edx, [ebp - 0x8044]
xor eax, eax
call sub.rtl60.bpl__System_ParamStr_qqri
mov edx, dword [ebp - 0x8044]
lea ecx, [ebp - 0x8040]
mov eax, dword [0x433204]
call fcn.00434074
push dword [ebp - 0x8040]
push 0x4ba7e8
push 0x4ba804
lea eax, [ebp - 0x8034]
mov edx, 8
call sub.rtl60.bpl__System__LStrCatN_qqrv
mov edx, dword [ebp - 0x8034]
lea ecx, [ebp - 8]
mov eax, dword [0x433204]
call fcn.00434d60
mov eax, dword [ebp - 8]
call sub.rtl60.bpl__System__LStrLen_qqrx17System_AnsiString
mov word [ebp - 0x26], ax
lea edx, [ebp - 0x2f]
lea eax, [ebp - 0x402f]
mov ecx, 0xb
call fcn.00401b54
mov eax, dword [ebp - 8]
call sub.rtl60.bpl__System__LStrLen_qqrx17System_AnsiString
push eax
lea eax, [ebp - 8]
call sub.rtl60.bpl__System__UniqueStringA_qqrr17System_AnsiString
mov edx, eax
lea eax, [ebp - 0x4024]
pop ecx
call fcn.00401b54
push 0
mov eax, dword [ebp - 8]
call sub.rtl60.bpl__System__LStrLen_qqrx17System_AnsiString
add eax, 0xb
push eax
lea eax, [ebp - 0x402f]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
call sub.wsock32.dll_send
test eax, eax
jl 0x4ba76f
xor eax, eax
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
push 0x4004667f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
call sub.wsock32.dll_ioctlsocket
lea eax, [ebp - 0x802f]
xor ecx, ecx
mov edx, 0x4000
call sub.rtl60.bpl__System__FillChar_qqrpvic
push 0
push 0x4000
lea eax, [ebp - 0x802f]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
call sub.wsock32.dll_recv
cmp eax, 0xffffffff
jne 0x4ba663
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
push eax
call sub.wsock32.dll_closesocket
call sub.rtl60.bpl__System__TryFinallyExit_qqrv
jmp 0x4ba795
test eax, eax
jle 0x4ba76f
lea edx, [ebp - 0x2f]
lea eax, [ebp - 0x802f]
mov ecx, 0xb
call sub.rtl60.bpl__System_Move_qqrpxvpvi
lea eax, [ebp - 0x8048]
lea edx, [ebp - 0x2f]
mov ecx, 7
call sub.rtl60.bpl__System__LStrFromArray_qqrr17System_AnsiStringpci
mov eax, dword [ebp - 0x8048]
mov edx, 0x4ba810
call sub.rtl60.bpl__System__LStrCmp_qqrv
je 0x4ba6ad
call sub.rtl60.bpl__System__TryFinallyExit_qqrv
jmp 0x4ba795
lea eax, [ebp - 0x10]
call sub.rtl60.bpl__System__LStrClr_qqrpv
movzx ebx, word [ebp - 0x26]
dec ebx
test ebx, ebx
jl 0x4ba6e8
inc ebx
xor esi, esi
lea eax, [ebp - 0x804c]
lea edx, [esi + 0xb]
mov dl, byte [ebp + edx - 0x802f]
call sub.rtl60.bpl__System__LStrFromChar_qqrr17System_AnsiStringc
mov edx, dword [ebp - 0x804c]
lea eax, [ebp - 0x10]
call sub.rtl60.bpl__System__LStrCat_qqrv
inc esi
dec ebx
jne 0x4ba6c1
mov eax, 0x800
call sub.rtl60.bpl__Sysutils_AllocMem_qqrui
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
xor ecx, ecx
mov edx, 0x800
call sub.rtl60.bpl__System__FillChar_qqrpvic
lea eax, [ebp - 0x24]
call sub.rtl60.bpl__System__LStrClr_qqrpv
mov dword [ebp - 0x18], 0x800
xor eax, eax
push ebp
push 0x4ba75d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
movzx eax, word [ebp - 0x26]
push eax
mov eax, dword [ebp - 0x10]
call sub.rtl60.bpl__System__LStrToPChar_qqrx17System_AnsiString
push eax
call sub.mzip.dll_UnCompress
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
call sub.rtl60.bpl__Sysutils_StrPas_qqrpxc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ba764
mov eax, dword [ebp - 0x14]
call sub.rtl60.bpl__System__FreeMem_qqrpv
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ba795
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x6c]
cmp eax, 0xffffffff
je 0x4ba78d
push eax
call sub.wsock32.dll_closesocket
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ba7d2
lea eax, [ebp - 0x804c]
mov edx, 7
call sub.rtl60.bpl__System__LStrArrayClr_qqrpvi
lea eax, [ebp - 0x24]
call sub.rtl60.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 0x10]
call sub.rtl60.bpl__System__LStrClr_qqrpv
lea eax, [ebp - 8]
call sub.rtl60.bpl__System__LStrClr_qqrpv
ret