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

Disassembly:
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.0x43d418
jmp dword [eax*4 + 0x43d6ac]
cmp edx, 4
jne 0x43d4e9
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 0x43d4d7
test ax, ax
jne 0x43d45a
cmp edx, 0xffff
je 0x43d4d7
push ecx
push edx
push str.Received_ACK_for_block__d__expecting__d_n
push edi
call fcn.00428020
inc dword [esi + 0x18]
add esp, 0x10
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x43d481
movzx eax, word [esi + 0x40]
push eax
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
jmp 0x43d4c3
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 0x43d4d1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.00449440
push eax
push 0x4b80e0
push edi
call fcn.004280e0
mov ebx, 0x37
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
ret
lea eax, [esi + 0x38]
push eax
call fcn.00489177
add esp, 4
inc word [esi + 0x40]
jmp 0x43d4f2
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 0x43d53b
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jl 0x43d689
mov edx, dword [esi + 0x154]
lea ebx, [esi + 0x150]
mov ecx, dword [esi + 0x10]
push ebx
call fcn.0042c4c0
add esp, 4
test eax, eax
jne 0x43d6a6
push dword [esi + 0x148]
lea eax, [esi + 0xc8]
push eax
mov eax, dword [ebx]
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 0x43d60e
mov eax, dword [ebx]
cdq
add dword [edi + 0x78], eax
adc dword [edi + 0x7c], edx
mov eax, dword [edi + 0x78]
mov dword [edi + 0x4e8], eax
mov eax, dword [edi + 0x7c]
mov dword [edi + 0x4ec], eax
xor eax, eax
pop edi
pop esi
pop ebx
ret
movzx eax, word [esi + 0x40]
inc dword [esi + 0x18]
inc eax
push dword [esi + 0x18]
and eax, 0xffff
push eax
push str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
push edi
call fcn.00428020
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x43d5e2
mov dword [esi + 8], 0xffffff9d
xor eax, eax
mov dword [esi], 3
pop edi
pop esi
pop ebx
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 0x43d590
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.00449440
push eax
push 0x4b80e0
push edi
call fcn.004280e0
add esp, 0xc
mov eax, 0x37
pop edi
pop esi
pop ebx
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
ret
push edx
push str.tftp_tx:_internal_error__event:__i
push edi
call fcn.004280e0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
ret