Function at 0x48988f
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 0x489993
dec eax
je 0x489936
dec eax
je 0x489993
dec eax
je 0x4898cf
push dword [ebp + 0xc]
push 0x40b208
push edi
call fcn.00477fac
jmp 0x489b3a
inc dword [esi + 0x18]
movzx eax, word [esi + 0x40]
push dword [esi + 0x18]
inc eax
and eax, 0xffff
push eax
push 0x40b164
push edi
call fcn.00478042
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x489902
mov dword [esi + 8], 0xffffff9d
jmp 0x489988
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 0x489b2e
jmp 0x489b02
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 0x489b3d
xor eax, eax
inc eax
cmp dword [ebp + 0xc], 4
jne 0x489a6a
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 0x489a5a
test ax, ax
jne 0x4899d6
cmp edx, 0xffff
je 0x489a5a
push ecx
push edx
push 0x40b1b0
push edi
call fcn.00478042
add esp, 0x10
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x489a06
movzx eax, word [esi + 0x40]
push eax
push 0x40b1dc
push edi
call fcn.00477fac
add esp, 0xc
jmp 0x489a50
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 0x489a53
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.0046d5ab
push eax
push 0x413cec
push edi
call fcn.00477fac
add esp, 0x14
push 0x37
pop ebx
mov eax, ebx
jmp 0x489b3f
lea eax, [esi + 0x38]
push eax
call fcn.0049407f
inc word [esi + 0x40]
pop ecx
jmp 0x489a6e
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 0x489ab9
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jl 0x489988
lea eax, [esi + 0x150]
push eax
push dword [esi + 0x154]
push dword [esi + 0x10]
call fcn.0047125a
add esp, 0xc
test eax, eax
jne 0x489b3f
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 0x489b25
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.0046d5ab
push eax
push 0x413cec
push edi
call fcn.00477fac
add esp, 0x14
push 0x37
pop eax
jmp 0x489b3f
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.004800af
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret