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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 0x10]
mov edi, dword [eax]
lea eax, [edx - 4]
cmp eax, 3
ja case.default.0x49063c
jmp dword [eax*4 + 0x49093c]
cmp edx, 4
jne 0x490710
mov eax, dword [esi + 0x15c]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
movzx eax, word [esi + 0x40]
mov edx, eax
cmp ecx, edx
je 0x4906fe
test ax, ax
jne 0x49067e
cmp ecx, 0xffff
je 0x4906fe
push edx
push ecx
push str.Received_ACK_for_block__d__expecting__d_n
push edi
call fcn.0046c560
inc dword [esi + 0x18]
add esp, 0x10
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x4906a5
movzx eax, word [esi + 0x40]
push eax
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
jmp 0x4906e7
push dword [esi + 0x148]
lea eax, [esi + 0xc8]
push eax
mov eax, dword [esi + 0x150]
push 0
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 0x4906f5
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.00488d10
push eax
push 0x6e9d48
push edi
call fcn.0046c5e0
mov ebx, 0x37
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esi + 0x38]
push eax
call fcn.0061a074
add esp, 4
inc word [esi + 0x40]
jmp 0x490719
mov eax, 1
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
cmp word [esi + 0x40], 1
jbe 0x490762
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jl 0x490914
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x160]
mov dword [esi + 0x150], ebx
add ecx, 4
mov eax, dword [eax]
mov dword [eax + 0x148], ecx
nop dword [eax]
mov edx, dword [esi + 0x154]
lea eax, [ebp - 4]
sub edx, dword [esi + 0x150]
mov ecx, dword [esi + 0x10]
push eax
call fcn.0047c510
add esp, 4
test eax, eax
jne 0x490934
mov eax, dword [esi + 0x10]
mov ecx, dword [ebp - 4]
add dword [esi + 0x150], ecx
mov eax, dword [eax]
add dword [eax + 0x148], ecx
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jge 0x4907c9
test ecx, ecx
jne 0x490780
push dword [esi + 0x148]
lea eax, [esi + 0xc8]
push eax
mov eax, dword [esi + 0x150]
push 0
add eax, 4
push eax
push dword [esi + 0x160]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x490896
mov eax, dword [esi + 0x150]
cdq
add dword [edi + 0x98], eax
adc dword [edi + 0x9c], edx
push dword [edi + 0x9c]
mov ecx, edi
push dword [edi + 0x98]
call fcn.004811e0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [esi + 0x40]
inc dword [esi + 0x18]
inc eax
push dword [esi + 0x18]
movzx eax, ax
push eax
push str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
push edi
call fcn.0046c560
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x490866
mov dword [esi + 8], 0xffffff9d
xor eax, eax
mov dword [esi], 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esi + 0x148]
lea eax, [esi + 0xc8]
push eax
mov eax, dword [esi + 0x150]
push 0
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 0x49080c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.00488d10
push eax
push 0x6e9d48
push edi
call fcn.0046c5e0
add esp, 0xc
mov eax, 0x37
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
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 0
push 4
push dword [esi + 0x160]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [esi], 3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
push str.tftp_tx:_internal_error__event:__i
push edi
call fcn.0046c5e0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret