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

Disassembly:
mov ecx, dword [esp + 8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x10]
push edi
xor ebx, ebx
mov eax, dword [esi + 0x10]
mov edi, dword [eax]
lea eax, [ecx - 4]
cmp eax, 3
ja case.default.0x44ba8f
jmp dword [eax*4 + 0x44bd88]
cmp ecx, 4
mov ebp, 1
jne 0x44bb89
lea ecx, [esi + 0x14c]
push ecx
call fcn.0044ba50
mov dx, word [esi + 0x30]
and eax, 0xffff
mov ecx, edx
add esp, 4
and ecx, 0xffff
cmp eax, ecx
je 0x44bb77
test dx, dx
jne 0x44badc
cmp eax, 0xffff
je 0x44bb77
push ecx
push eax
push str.Received_ACK_for_block__d__expecting__d_n
push edi
call fcn.00440d50
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
add esp, 0x10
inc edx
mov eax, edx
mov dword [esi + 0x18], edx
cmp eax, ecx
jle 0x44bb1d
xor edx, edx
mov dx, word [esi + 0x30]
push edx
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
push edi
call fcn.00440dc0
add esp, 0xc
mov ebx, 0x37
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, dword [esi + 0x138]
mov edx, dword [esi + 0x140]
lea ecx, [esi + 0xb8]
push eax
mov eax, dword [esi + 0x150]
push ecx
mov ecx, dword [esi + 0x14]
add edx, 4
push 0
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jge 0x44bb70
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esi + 0x10]
push eax
push edx
call fcn.00443d70
push eax
push 0x4a1a18
push edi
call fcn.00440dc0
add esp, 0x14
mov ebx, 0x37
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
ret
lea eax, [esi + 0x2c]
push eax
call fcn.0042554b
add esp, 4
inc word [esi + 0x30]
jmp 0x44bb8d
mov word [esi + 0x30], bp
lea ebx, [esi + 0x150]
push 3
push ebx
mov dword [esi + 0x18], 0
call fcn.0044b6c0
mov cx, word [esi + 0x30]
push ecx
push ebx
call fcn.0044ba30
add esp, 0x10
cmp word [esi + 0x30], bp
jbe 0x44bbd3
mov edx, dword [esi + 0x140]
mov eax, dword [esi + 0x144]
cmp edx, eax
jge 0x44bbd3
mov dword [esi], 3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov eax, dword [esi + 0x144]
mov ecx, dword [esi + 0x10]
lea ebp, [esi + 0x140]
push ebp
push eax
push ecx
call fcn.0043cc90
add esp, 0xc
test eax, eax
jne 0x44bd82
mov edx, dword [esi + 0x138]
mov ecx, dword [ebp]
lea eax, [esi + 0xb8]
push edx
mov edx, dword [ebx]
push eax
mov eax, dword [esi + 0x14]
add ecx, 4
push 0
push ecx
push edx
push eax
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jge 0x44bc46
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
push eax
push ecx
call fcn.00443d70
push eax
push 0x4a1a18
push edi
call fcn.00440dc0
add esp, 0x14
mov eax, 0x37
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, dword [ebp]
mov ebp, dword [edi + 0x40]
cdq
add ebp, eax
mov dword [edi + 0x40], ebp
mov ebx, dword [edi + 0x44]
adc ebx, edx
mov dword [edi + 0x44], ebx
mov eax, dword [edi + 0x40]
mov edx, ebx
push edx
push eax
push edi
call fcn.0045ac80
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov ebp, dword [esi + 0x18]
mov cx, word [esi + 0x30]
inc ebp
inc ecx
mov eax, ebp
and ecx, 0xffff
push eax
push ecx
push str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
push edi
mov dword [esi + 0x18], ebp
call fcn.00440d50
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x20]
add esp, 0x10
cmp edx, eax
jle 0x44bcb3
mov dword [esi + 8], 0xffffff9d
mov dword [esi], 3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
mov eax, dword [esi + 0x138]
mov edx, dword [esi + 0x140]
lea ecx, [esi + 0xb8]
push eax
mov eax, dword [esi + 0x150]
push ecx
mov ecx, dword [esi + 0x14]
add edx, 4
push 0
push edx
push eax
push ecx
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jge 0x44bd0b
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esi + 0x10]
push eax
push edx
call fcn.00443d70
push eax
push 0x4a1a18
push edi
call fcn.00440dc0
add esp, 0x14
mov eax, 0x37
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x40]
push eax
push ecx
push edi
call fcn.0045ac80
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret
lea edi, [esi + 0x150]
push 5
push edi
mov dword [esi], 3
call fcn.0044b6c0
mov dx, word [esi + 0x30]
push edx
push edi
call fcn.0044ba30
mov eax, dword [esi + 0x138]
mov edx, dword [edi]
add esp, 0x10
lea ecx, [esi + 0xb8]
push eax
mov eax, dword [esi + 0x14]
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
pop ebp
xor eax, eax
pop ebx
ret
push ecx
push str.tftp_tx:_internal_error__event:__i
push edi
call fcn.00440dc0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
ret