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

Disassembly:
sub esp, 0x18
push ebx
push esi
mov esi, ecx
push edi
lea edi, [esi + 0xbd0]
mov dword [esi + 0xbec], 0
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [esi + 0xbc8]
push edi
mov dword [esp + 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 0x37d0]
push eax
call dword [sym.imp.WS2_32.dll_WSAResetEvent]
mov eax, dword [esi + 0x37c8]
test eax, eax
jne 0x409b84
mov dword [esi + 0xbc4], ebx
pop edi
pop esi
pop ebx
add esp, 0x18
ret
push ebp
lea edi, [esi + 0xbd0]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0xbc4]
push edi
mov cx, word [esi + eax*4 + 0x3f4]
mov word [esi + 0x37df], cx
mov dl, byte [esi + eax*4 + 0x7dc]
mov byte [esi + 0x37de], dl
mov eax, dword [esi + eax*4 + 0xc]
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ax, word [esi + 0xbcc]
mov cx, word [esi + 0x37df]
mov word [esi + 0x37dc], ax
inc eax
mov word [esi + 0xbcc], ax
add cx, 5
lea eax, [esi + 0x37d4]
mov word [esi + 0x37da], cx
mov dword [esp + 0x20], 0xd
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, dword [esi + 0x37c8]
mov ebx, eax
dec ebp
cmp ebp, 0xffffffff
jle 0x409d06
lea edx, [ebp + ebp*4]
lea eax, [ebp + edx*2]
lea edi, [esi + eax*4 + 0xc00]
mov eax, dword [edi]
cmp eax, 0xffffffff
jne 0x409c4d
mov eax, dword [esi + 0x37c8]
dec eax
cmp ebp, eax
jne 0x409ce9
mov dword [esi + 0x37c8], eax
jmp 0x409ce9
mov edx, dword [edi - 0xc]
mov ecx, ebx
sub ecx, edx
cmp ecx, 0x3a98
jbe 0x409c72
push eax
mov dword [edi + 4], 0xffffffff
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [edi], 0xffffffff
jmp 0x409ce9
mov eax, dword [edi + 8]
test eax, eax
je 0x409c8a
mov al, byte [esi + 0x37de]
test al, al
jne 0x409ce9
mov dword [edi + 8], 0
lea eax, [edi + 0xc]
xor edx, edx
mov ecx, eax
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], edx
push edx
push eax
mov dword [ecx + 0x10], edx
mov ecx, dword [edi]
push edx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x30]
push 1
push eax
push ecx
call dword [sym.imp.WS2_32.dll_WSASend]
test eax, eax
je 0x409ce9
cmp eax, 0xffffffff
jne 0x409ce9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x409ce5
mov edx, dword [edi]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x409ce9
inc dword [esp + 0x10]
dec ebp
sub edi, 0x2c
cmp ebp, 0xffffffff
jg 0x409c2c
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x409d06
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
xor ebx, ebx
mov dword [esp + 0x10], ebx
xor eax, eax
mov ax, word [esi + 0x37df]
sub eax, ebx
cmp eax, 0x1000
mov dword [esp + 0x20], eax
jbe 0x409d2b
mov eax, 0x1000
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x14]
xor ebp, ebp
lea edx, [ebx + ecx]
add ebx, eax
mov eax, dword [esi + 0x37c8]
mov dword [esp + 0x24], edx
test eax, eax
jle 0x409dbc
lea edi, [esi + 0xc00]
cmp dword [edi], 0xffffffff
je 0x409dae
lea eax, [edi + 0xc]
xor ecx, ecx
mov edx, eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
push ecx
push eax
lea eax, [esp + 0x20]
mov dword [edx + 0x10], ecx
mov edx, dword [edi]
push ecx
push eax
lea ecx, [esp + 0x30]
push 1
push ecx
push edx
call dword [sym.imp.WS2_32.dll_WSASend]
test eax, eax
je 0x409dae
cmp eax, 0xffffffff
jne 0x409dae
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x3e5
je 0x409daa
mov eax, dword [edi]
push eax
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [edi], 0xffffffff
mov dword [edi + 4], 0xffffffff
jmp 0x409dae
inc dword [esp + 0x10]
mov eax, dword [esi + 0x37c8]
inc ebp
add edi, 0x2c
cmp ebp, eax
jl 0x409d4a
xor ecx, ecx
mov cx, word [esi + 0x37df]
cmp ebx, ecx
jl 0x409d0c
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x409ddd
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esi + 0xbc4]
inc ecx
mov eax, ecx
mov dword [esi + 0xbc4], ecx
cmp eax, 0xfa
jl 0x409dfd
mov dword [esi + 0xbc4], 0
mov eax, dword [esi + 0xbc4]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jge 0x409e11
mov edx, ecx
sub edx, eax
jmp 0x409e1d
jle 0x409e2c
mov edx, ecx
sub edx, eax
add edx, 0xfa
cmp edx, 0x32
jle 0x409b85
mov dword [esi + 0xbc4], ecx
mov eax, dword [esi + 0x37c8]
pop ebp
test eax, eax
jne 0x409e48
mov eax, dword [esi + 8]
mov ecx, dword [0x4237c0]
push 0
push eax
call fcn.004065d0
pop edi
pop esi
pop ebx
add esp, 0x18
ret