Function at 0x5659f0
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.0x565a0c
jmp dword [eax*4 + 0x565d58]
cmp edx, 4
jne 0x565af9
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 0x565ae7
test ax, ax
jne 0x565a4e
cmp ecx, 0xffff
je 0x565ae7
push edx
push ecx
push str.Received_ACK_for_block__d__expecting__d_n
push edi
call fcn.00543710
inc dword [esi + 0x18]
add esp, 0x10
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x565a8a
movzx eax, word [esi + 0x40]
push eax
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
push edi
call fcn.00543790
mov ebx, 0x37
add esp, 0xc
mov eax, ebx
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 0x565d4f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.0053fb90
push eax
push 0x62deb8
push edi
call fcn.00543790
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.005df2a6
add esp, 4
inc word [esi + 0x40]
jmp 0x565b02
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 0x565b56
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jge 0x565b56
mov dword [esi], 3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
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
lea eax, [ebp - 4]
mov edx, dword [esi + 0x154]
sub edx, dword [esi + 0x150]
mov ecx, dword [esi + 0x10]
push eax
call fcn.00553660
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x565d4f
nop word [eax + eax]
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]
mov edx, dword [esi + 0x154]
cmp eax, edx
jge 0x565be6
test ecx, ecx
je 0x565be6
lea ecx, [ebp - 4]
sub edx, eax
push ecx
mov ecx, dword [esi + 0x10]
call fcn.00553660
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x565ba0
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
js 0x565cb3
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.00557b20
add esp, 8
mov eax, ebx
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.00543710
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x565c83
mov dword [esi + 8], 0xffffff9d
mov eax, ebx
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 0x565c29
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.0053fb90
push eax
push 0x62deb8
push edi
call fcn.00543790
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
mov eax, ebx
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.00543790
add esp, 0xc
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret