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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
lea eax, [ebp - 0xc]
xor ebx, ebx
push dword [esi + 0xa0]
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ebx
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov eax, dword [esi + 0x18]
cmp eax, ebx
jle 0x1000177c
mov ecx, dword [esi + 0x1c]
cmp ecx, ebx
jl 0x1000177c
cmp eax, ecx
jle 0x1000177c
sub eax, ecx
cmp eax, ebx
mov dword [ebp + 8], eax
jle 0x1000166d
mov edi, 0x400
mov eax, dword [esi + 0x1c]
cmp eax, dword [esi + 0x14]
jg 0x1000166d
mov edx, dword [esi + 0x18]
sub edx, eax
cmp edx, ebx
jle 0x1000166d
mov ecx, dword [esi + 0x10]
cmp ecx, ebx
je 0x1000166d
add ecx, eax
cmp edx, edi
mov dword [esi + 0x7c], ecx
mov ecx, edi
jg 0x10001636
mov ecx, edx
lea eax, [esi + 0x78]
push ebx
push ebx
push ebx
mov dword [eax], ecx
lea ecx, [ebp - 4]
push ecx
push 1
push eax
mov dword [ebp - 4], ebx
push dword [ebp + 0xc]
call dword [sym.imp.WS2_32.dll_WSASend]
cmp eax, 0xffffffff
je 0x100016d4
mov eax, dword [ebp - 4]
cmp eax, ebx
jbe 0x10001666
add dword [esi + 0x1c], eax
sub dword [ebp + 8], eax
add dword [ebp - 8], eax
cmp dword [ebp + 8], ebx
je 0x1000166d
jg 0x10001611
mov eax, dword [esi + 0x1c]
cmp eax, dword [esi + 0x18]
jne 0x10001825
push dword [esi + 0x14]
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x18], ebx
push ebx
push dword [esi + 0x10]
call fcn.10017bc0
mov eax, dword [esi + 0x8c]
add esp, 0xc
cmp eax, ebx
je 0x10001744
push 1
mov ecx, eax
pop edx
and ecx, edx
je 0x100016fe
test al, 2
je 0x100016fe
mov ecx, dword [esi + 0xbc]
cmp ecx, dword [esi + 0xc0]
jl 0x100016ea
push edx
dec eax
push dword [esi]
mov dword [esi + 0x8c], eax
push 0x401
push dword [0x1005b218]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x10001744
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x10001775
jmp 0x1000176d
push edx
add eax, 0xfffffffe
push dword [esi + 4]
mov dword [esi + 0x8c], eax
push 0x402
jmp 0x100016c6
mov edi, dword [sym.imp.USER32.dll_PostMessageA]
cmp ecx, ebx
je 0x1000171f
push edx
dec eax
push dword [esi]
mov dword [esi + 0x8c], eax
push 0x401
push dword [0x1005b218]
call edi
mov eax, dword [esi + 0x8c]
test al, 2
je 0x10001744
push 1
add eax, 0xfffffffe
push dword [esi + 4]
mov dword [esi + 0x8c], eax
push 0x402
push dword [0x1005b218]
call edi
cmp dword [esi + 0x88], ebx
je 0x10001825
cmp dword [ebp + 0x10], ebx
push 1
je 0x1000175c
push dword [esi + 4]
jmp 0x1000175e
push dword [esi]
call fcn.10001898
pop ecx
test eax, eax
pop ecx
jne 0x10001825
push dword [esi]
call fcn.10003950
pop ecx
xor eax, eax
jmp 0x10001828
cmp dword [esi + 0x1c], eax
jne 0x10001825
mov eax, dword [esi + 0x8c]
cmp eax, ebx
je 0x10001825
push 1
mov ecx, eax
pop edx
and ecx, edx
je 0x100017df
test al, 2
je 0x100017df
mov ecx, dword [esi + 0xbc]
cmp ecx, dword [esi + 0xc0]
jl 0x100017cb
push edx
dec eax
push dword [esi]
mov dword [esi + 0x8c], eax
push 0x401
push dword [0x1005b218]
call dword [sym.imp.USER32.dll_PostMessageA]
jmp 0x10001825
push edx
add eax, 0xfffffffe
push dword [esi + 4]
mov dword [esi + 0x8c], eax
push 0x402
jmp 0x100017bd
mov edi, dword [sym.imp.USER32.dll_PostMessageA]
cmp ecx, ebx
je 0x10001800
push edx
dec eax
push dword [esi]
mov dword [esi + 0x8c], eax
push 0x401
push dword [0x1005b218]
call edi
mov eax, dword [esi + 0x8c]
test al, 2
je 0x10001825
push 1
add eax, 0xfffffffe
push dword [esi + 4]
mov dword [esi + 0x8c], eax
push 0x402
push dword [0x1005b218]
call edi
push 1
pop eax
pop edi
pop esi
pop ebx
leave
ret