Function at 0x53ec90
Capabilities:
Send data
Send data on socket

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x14]
mov ebx, edx
mov ebp, ecx
mov ecx, esi
mov dword [esp + 0xc], ebx
call fcn.004dbea0
test eax, eax
jne 0x53ecb2
pop esi
pop ebp
pop ebx
pop ecx
ret 4
mov eax, dword [esi + 4]
push edi
or edi, 0xffffffff
cmp eax, edi
jne 0x53ecdc
mov ecx, 0x1774
xor edx, edx
call fcn.0041c9e0
mov edx, esi
mov ecx, eax
call fcn.0053df20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret 4
mov eax, dword [esi + 0x834]
test eax, eax
je 0x53ecf1
mov ecx, esi
call fcn.004dc0f0
test eax, eax
jne 0x53ecd2
mov eax, dword [0x59f668]
test eax, eax
je 0x53ed01
mov ecx, ebp
call fcn.00512d60
mov edx, dword [esi + 0xcfc]
test edx, edx
je 0x53ed37
jmp 0x53ed10
cmp dword [edx + 0x1c], edi
jne 0x53ed30
mov ecx, dword [esi + 0xcfc]
mov edi, dword [edx + 0x40]
call fcn.004c2730
mov edx, edi
mov dword [esi + 0xcfc], eax
or edi, 0xffffffff
jmp 0x53ed33
mov edx, dword [edx + 0x40]
test edx, edx
jne 0x53ed10
mov ecx, dword [esi + 0xcfc]
test ecx, ecx
je 0x53ed77
test ebp, ebp
je 0x53ed5d
cmp byte [ebp], 0
je 0x53ed5d
push ebx
mov edx, ebp
call fcn.004c2560
test eax, eax
je 0x53ed5d
mov dword [esi + 0xcfc], eax
mov eax, dword [esi + 0xcfc]
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x1c], edi
mov edx, dword [esi + 0xcfc]
mov ebp, dword [edx]
mov dword [esp + 0x10], ecx
mov ebx, ecx
test ebp, ebp
je 0x53ef19
cmp byte [ebp], 0
je 0x53ef19
mov eax, dword [0x597630]
test eax, eax
je 0x53eda4
push esi
mov edx, ebx
mov ecx, ebp
call fcn.00487a50
test eax, eax
jne 0x53ef38
mov ecx, 1
call fcn.004dc3a0
mov edx, esi
mov ecx, ebp
call fcn.0053eb60
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x53edc0
sub eax, edx
push 0
mov ebx, eax
mov eax, dword [esi + 4]
push ebx
push ebp
push eax
call dword [sym.imp.WSOCK32.dll_send]
mov edi, eax
cmp edi, 0xffffffff
jne 0x53ee99
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov ebx, eax
cmp ebx, 0x2733
jne 0x53ee30
mov ecx, dword [esi + 0xcfc]
test ecx, ecx
je 0x53ee13
cmp ebp, dword [ecx]
jne 0x53ee13
mov edx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [ecx + 0x1c], edx
xor eax, eax
pop ebx
pop ecx
ret 4
push 0
mov edx, ebp
call fcn.004c2560
test eax, eax
je 0x53ee26
mov dword [esi + 0xcfc], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
pop ecx
ret 4
lea edi, [esi + 0x444]
mov edx, 0x3e7
mov ecx, edi
call fcn.0041e210
test ebx, ebx
je 0x53ee88
mov ecx, ebx
call fcn.0053de90
push eax
xor edx, edx
mov ecx, 0x1775
call fcn.0041c9e0
push eax
push edi
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [0x594098]
add esp, 0xc
mov dword [0x589b90], 0
mov dword [0x59c69c], 1
mov ecx, dword [esi]
push eax
mov edx, edi
call fcn.004fc570
mov ecx, esi
call fcn.0053e0b0
mov ecx, 0x5e1
jmp 0x53ecc2
test edi, edi
jg 0x53ee9f
xor edi, edi
cmp edi, ebx
jge 0x53eec6
mov ecx, dword [esi + 0xcfc]
push 0
lea ebx, [edi + ebp]
push 0
mov edx, ebx
call fcn.004c2f40
test eax, eax
je 0x53eec1
mov dword [esi + 0xcfc], eax
mov byte [ebx], 0
mov ebx, edi
mov eax, dword [esi + 0x1b9c]
test eax, eax
jle 0x53eedf
add eax, ebx
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0x1b9c], eax
jmp 0x53eee5
mov dword [esi + 0x1b9c], ebx
mov edi, dword [esi + 0x1b98]
add edi, ebx
mov dword [esi + 0x1b98], edi
mov ecx, dword [0x589a34]
mov eax, edi
cmp eax, ecx
jle 0x53ef05
mov dword [esi + 0x1b98], ecx
mov al, byte [esi + 0x2048]
test al, al
je 0x53ef19
push esi
xor edx, edx
mov ecx, ebp
call fcn.0041e980
mov eax, dword [esi + 0xcfc]
test eax, eax
je 0x53ef38
mov ecx, dword [0x5a1b00]
push esi
push 0
push 0x804c
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
pop ecx
ret 4