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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x100
add eax, 0xfffffffd
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0x10]
cmp eax, 4
ja case.0x10047321.4
jmp dword [eax*4 + 0x1004756c]
lea eax, [edi + 0x148]
push eax
call fcn.10046d00
movzx esi, word [edi + 0x144]
add esp, 4
movzx edx, ax
mov word [ebp + 0xa], ax
lea ecx, [esi + 1]
movzx ecx, cx
cmp ecx, edx
jne 0x10047358
mov dword [edi + 0x18], 0
jmp 0x10047373
cmp esi, edx
jne 0x100473ef
push edx
push str.Received_last_DATA_packet_block__d_again.
push ebx
call fcn.1003be80
mov ax, word [ebp + 0xa]
add esp, 0xc
lea esi, [edi + 0x14c]
mov word [edi + 0x144], ax
push 4
push esi
call fcn.10046d60
movzx eax, word [edi + 0x144]
push eax
push esi
call fcn.10046d40
add esp, 0x10
lea eax, [edi + 0xb0]
push dword [edi + 0x130]
push eax
push 0
push 4
push dword [esi]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x100474d0
mov eax, dword [edi + 0x13c]
xor ecx, ecx
add eax, 4
cmp dword [edi + 0x134], eax
lea eax, [edi + 0x28]
push eax
setl cl
lea ecx, [ecx*2 + 1]
mov dword [edi], ecx
call fcn.1005b6b4
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ecx
push edx
push str.Received_unexpected_DATA_packet_block__d__expecting_block__d
push ebx
call fcn.1003be80
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
lea esi, [edi + 0x14c]
push 4
push esi
mov word [edi + 0x144], ax
mov dword [edi + 0x18], eax
call fcn.10046d60
movzx eax, word [edi + 0x144]
push eax
push esi
call fcn.10046d40
add esp, 0x10
lea eax, [edi + 0xb0]
push dword [edi + 0x130]
push eax
push 0
push 4
push dword [esi]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x100474d0
lea eax, [edi + 0x28]
mov dword [edi], 1
push eax
call fcn.1005b6b4
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [edi + 0x144]
inc dword [edi + 0x18]
inc eax
push dword [edi + 0x18]
movzx eax, ax
push eax
push str.Timeout_waiting_for_block__d_ACK.__Retries___d
push ebx
call fcn.1003be80
mov eax, dword [edi + 0x18]
add esp, 0x10
cmp eax, dword [edi + 0x20]
jle 0x100474ac
mov dword [edi + 8], 0xffffff9d
xor eax, eax
mov dword [edi], 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [edi + 0x130]
lea eax, [edi + 0xb0]
push eax
push 0
push 4
push dword [edi + 0x14c]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x10047544
push 0x100
lea eax, [ebp - 0x100]
push eax
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
call fcn.10043f90
push eax
push 0x10072758
push ebx
call fcn.1003bde0
add esp, 0x18
mov eax, 0x37
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea esi, [edi + 0x14c]
push 5
push esi
call fcn.10046d60
movzx eax, word [edi + 0x144]
push eax
push esi
call fcn.10046d40
add esp, 0x10
lea eax, [edi + 0xb0]
push dword [edi + 0x130]
push eax
push 0
push 4
push dword [esi]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [edi], 3
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push str.tftp_rx:_internal_error
push 0x10072758
push ebx
call fcn.1003bde0
add esp, 0xc
mov eax, 0x47
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret