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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
xor ebx, ebx
push edi
mov eax, dword [esi + 0x10]
mov edi, dword [eax]
mov eax, dword [ebp + 0xc]
sub eax, 4
je 0x4882dd
dec eax
je 0x488280
dec eax
je 0x4882dd
dec eax
je 0x488219
push dword [ebp + 0xc]
push 0x40ad20
push edi
call fcn.004768f6
jmp 0x488484
inc dword [esi + 0x18]
movzx eax, word [esi + 0x40]
push dword [esi + 0x18]
inc eax
and eax, 0xffff
push eax
push 0x40ac7c
push edi
call fcn.0047698c
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x48824c
mov dword [esi + 8], 0xffffff9d
jmp 0x4882d2
push dword [esi + 0x148]
lea eax, [esi + 0xc8]
push eax
mov eax, dword [esi + 0x150]
push ebx
add eax, 4
push eax
push dword [esi + 0x160]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x488478
jmp 0x48844c
mov dword [esi], 3
mov eax, dword [esi + 0x160]
mov byte [eax], bl
mov eax, dword [esi + 0x160]
mov byte [eax + 1], 5
movzx edx, word [esi + 0x40]
mov eax, dword [esi + 0x160]
mov ecx, edx
shr ecx, 8
mov byte [eax + 2], cl
mov eax, dword [esi + 0x160]
mov byte [eax + 3], dl
lea eax, [esi + 0xc8]
push dword [esi + 0x148]
push eax
push ebx
push 4
push dword [esi + 0x160]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [esi], 3
jmp 0x488487
xor eax, eax
inc eax
cmp dword [ebp + 0xc], 4
jne 0x4883b4
mov ecx, dword [esi + 0x15c]
movzx eax, byte [ecx + 2]
shl ax, 8
movzx edx, ax
movzx eax, byte [ecx + 3]
or edx, eax
movzx eax, word [esi + 0x40]
mov ecx, eax
cmp edx, ecx
je 0x4883a4
test ax, ax
jne 0x488320
cmp edx, 0xffff
je 0x4883a4
push ecx
push edx
push 0x40acc8
push edi
call fcn.0047698c
add esp, 0x10
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x488350
movzx eax, word [esi + 0x40]
push eax
push 0x40acf4
push edi
call fcn.004768f6
add esp, 0xc
jmp 0x48839a
push dword [esi + 0x148]
lea eax, [esi + 0xc8]
push eax
mov eax, dword [esi + 0x150]
push ebx
add eax, 4
push eax
lea eax, [esi + 0x160]
push eax
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x48839d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.0046bef5
push eax
push 0x413c94
push edi
call fcn.004768f6
add esp, 0x14
push 0x37
pop ebx
mov eax, ebx
jmp 0x488489
lea eax, [esi + 0x38]
push eax
call fcn.004929bf
inc word [esi + 0x40]
pop ecx
jmp 0x4883b8
mov word [esi + 0x40], ax
mov dword [esi + 0x18], ebx
mov eax, dword [esi + 0x160]
mov byte [eax], bl
mov eax, dword [esi + 0x160]
mov byte [eax + 1], 3
movzx edx, word [esi + 0x40]
mov eax, dword [esi + 0x160]
mov ecx, edx
shr ecx, 8
mov byte [eax + 2], cl
mov eax, dword [esi + 0x160]
mov byte [eax + 3], dl
xor eax, eax
inc eax
cmp word [esi + 0x40], ax
jbe 0x488403
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jl 0x4882d2
lea eax, [esi + 0x150]
push eax
push dword [esi + 0x154]
push dword [esi + 0x10]
call fcn.0046fba4
add esp, 0xc
test eax, eax
jne 0x488489
push dword [esi + 0x148]
lea eax, [esi + 0xc8]
push eax
push ebx
lea ebx, [esi + 0x150]
mov eax, dword [ebx]
add eax, 4
push eax
push dword [esi + 0x160]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x48846f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.0046bef5
push eax
push 0x413c94
push edi
call fcn.004768f6
add esp, 0x14
push 0x37
pop eax
jmp 0x488489
mov eax, dword [ebx]
cdq
add dword [edi + 0x40], eax
adc dword [edi + 0x44], edx
push dword [edi + 0x44]
push dword [edi + 0x40]
push edi
call fcn.0047ea3d
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret