Function at 0x4862d6
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 0x4863da
dec eax
je 0x48637d
dec eax
je 0x4863da
dec eax
je 0x486316
push dword [ebp + 0xc]
push 0x40b388
push edi
call fcn.004749e8
jmp 0x486581
inc dword [esi + 0x18]
movzx eax, word [esi + 0x40]
push dword [esi + 0x18]
inc eax
and eax, 0xffff
push eax
push 0x40b2e4
push edi
call fcn.00474a7e
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x486349
mov dword [esi + 8], 0xffffff9d
jmp 0x4863cf
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 0x486575
jmp 0x486549
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 0x486584
xor eax, eax
inc eax
cmp dword [ebp + 0xc], 4
jne 0x4864b1
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 0x4864a1
test ax, ax
jne 0x48641d
cmp edx, 0xffff
je 0x4864a1
push ecx
push edx
push 0x40b330
push edi
call fcn.00474a7e
add esp, 0x10
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x48644d
movzx eax, word [esi + 0x40]
push eax
push 0x40b35c
push edi
call fcn.004749e8
add esp, 0xc
jmp 0x486497
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 0x48649a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.00469fe7
push eax
push 0x413e64
push edi
call fcn.004749e8
add esp, 0x14
push 0x37
pop ebx
mov eax, ebx
jmp 0x486586
lea eax, [esi + 0x38]
push eax
call fcn.00490aaf
inc word [esi + 0x40]
pop ecx
jmp 0x4864b5
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 0x486500
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jl 0x4863cf
lea eax, [esi + 0x150]
push eax
push dword [esi + 0x154]
push dword [esi + 0x10]
call fcn.0046dc96
add esp, 0xc
test eax, eax
jne 0x486586
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 0x48656c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [esi + 0x10]
call fcn.00469fe7
push eax
push 0x413e64
push edi
call fcn.004749e8
add esp, 0x14
push 0x37
pop eax
jmp 0x486586
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.0047caf2
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret