Function at 0x487e49
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 0x487f4d
dec eax
je 0x487ef0
dec eax
je 0x487f4d
dec eax
je 0x487e89
push dword [ebp + 0xc]
push 0x40aba0
push edi
call fcn.00476566
jmp 0x4880f4
inc dword [esi + 0x18]
movzx eax, word [esi + 0x40]
push dword [esi + 0x18]
inc eax
and eax, 0xffff
push eax
push 0x40aafc
push edi
call fcn.004765fc
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x487ebc
mov dword [esi + 8], 0xffffff9d
jmp 0x487f42
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 0x4880e8
jmp 0x4880bc
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 0x4880f7
xor eax, eax
inc eax
cmp dword [ebp + 0xc], 4
jne 0x488024
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 0x488014
test ax, ax
jne 0x487f90
cmp edx, 0xffff
je 0x488014
push ecx
push edx
push 0x40ab48
push edi
call fcn.004765fc
add esp, 0x10
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x487fc0
movzx eax, word [esi + 0x40]
push eax
push 0x40ab74
push edi
call fcn.00476566
add esp, 0xc
jmp 0x48800a
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 0x48800d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.0046bb65
push eax
push 0x413b24
push edi
call fcn.00476566
add esp, 0x14
push 0x37
pop ebx
mov eax, ebx
jmp 0x4880f9
lea eax, [esi + 0x38]
push eax
call fcn.0049262f
inc word [esi + 0x40]
pop ecx
jmp 0x488028
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 0x488073
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jl 0x487f42
lea eax, [esi + 0x150]
push eax
push dword [esi + 0x154]
push dword [esi + 0x10]
call fcn.0046f814
add esp, 0xc
test eax, eax
jne 0x4880f9
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 0x4880df
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.0046bb65
push eax
push 0x413b24
push edi
call fcn.00476566
add esp, 0x14
push 0x37
pop eax
jmp 0x4880f9
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.0047e691
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret