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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, eax
mov eax, dword [esi + 0x10]
mov ebx, dword [eax]
mov eax, dword [ebp + 8]
add eax, 0xfffffffd
push edi
cmp eax, 4
ja case.0x418f1c.4
jmp dword [eax*4 + 0x419180]
lea eax, [esi + 0x15c]
call fcn.00418c30
movzx ecx, word [esi + 0x40]
movzx edi, ax
lea eax, [ecx + 1]
and eax, 0xffff
cmp eax, edi
jne 0x418f4a
mov dword [esi + 0x18], 0
jmp 0x418f61
cmp ecx, edi
jne 0x418fde
push edi
push str.Received_last_DATA_packet_block__d_again._n
push ebx
call fcn.0040bd60
add esp, 0xc
mov eax, 4
lea ecx, [esi + 0x160]
mov word [esi + 0x40], di
call fcn.00418be0
mov ax, word [esi + 0x40]
lea ecx, [esi + 0x160]
call fcn.00418c00
mov ecx, dword [esi + 0x148]
mov eax, dword [esi + 0x160]
push ecx
mov ecx, dword [esi + 0x14]
lea edx, [esi + 0xc8]
push edx
push 0
push 4
push eax
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x4190e9
mov eax, dword [esi + 0x154]
xor ecx, ecx
add eax, 4
cmp dword [esi + 0x14c], eax
setl cl
add esi, 0x38
push esi
lea ecx, [ecx + ecx + 1]
mov dword [esi - 0x38], ecx
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
push eax
push edi
push str.Received_unexpected_DATA_packet_block__d__expecting_block__d_n
push ebx
call fcn.0040bd60
add esp, 0x10
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
xor edx, edx
lea eax, [edx + 4]
lea ecx, [esi + 0x160]
mov word [esi + 0x40], dx
mov dword [esi + 0x18], edx
call fcn.00418be0
mov ax, word [esi + 0x40]
lea ecx, [esi + 0x160]
call fcn.00418c00
mov eax, dword [esi + 0x148]
mov edx, dword [esi + 0x160]
push eax
mov eax, dword [esi + 0x14]
lea ecx, [esi + 0xc8]
push ecx
push 0
push 4
push edx
push eax
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x41906b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
push eax
push ecx
call fcn.00411930
push eax
push 0x51c6d4
push ebx
call fcn.0040bde0
add esp, 0x14
pop edi
pop esi
mov eax, 0x37
pop ebx
pop ebp
ret
mov dword [esi], 1
add esi, 0x38
push esi
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
movzx edx, word [esi + 0x40]
inc dword [esi + 0x18]
mov eax, dword [esi + 0x18]
push eax
inc edx
and edx, 0xffff
push edx
push str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
push ebx
call fcn.0040bd60
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x4190c2
pop edi
mov dword [esi + 8], 0xffffff9d
mov dword [esi], 3
pop esi
xor eax, eax
pop ebx
pop ebp
ret
mov ecx, dword [esi + 0x148]
mov eax, dword [esi + 0x160]
push ecx
mov ecx, dword [esi + 0x14]
lea edx, [esi + 0xc8]
push edx
push 0
push 4
push eax
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x41915a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esi + 0x10]
push eax
push edx
call fcn.00411930
push eax
push 0x51c6d4
push ebx
call fcn.0040bde0
add esp, 0x14
pop edi
pop esi
mov eax, 0x37
pop ebx
pop ebp
ret
mov eax, 5
lea ecx, [esi + 0x160]
call fcn.00418be0
mov ax, word [esi + 0x40]
lea ecx, [esi + 0x160]
call fcn.00418c00
mov eax, dword [esi + 0x148]
mov edx, dword [esi + 0x160]
push eax
mov eax, dword [esi + 0x14]
lea ecx, [esi + 0xc8]
push ecx
push 0
push 4
push edx
push eax
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [esi], 3
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
push str.tftp_rx:_internal_error
push 0x51c6d4
push ebx
call fcn.0040bde0
add esp, 0xc
pop edi
pop esi
mov eax, 0x47
pop ebx
pop ebp
ret