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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
lea eax, [edx - 4]
cmp eax, 3
ja case.default.0x1002c47c
jmp dword [eax*4 + 0x1002c754]
cmp edx, 4
jne 0x1002c54a
lea ecx, [edi + 0x15c]
call fcn.1002bb30
movzx ecx, word [edi + 0x40]
movzx eax, ax
mov edx, ecx
cmp eax, edx
je 0x1002c538
test cx, cx
jne 0x1002c4b8
cmp eax, 0xffff
je 0x1002c538
push edx
push eax
push str.Received_ACK_for_block__d__expecting__d_n
push esi
call fcn.10022fe0
inc dword [edi + 0x18]
add esp, 0x10
mov eax, dword [edi + 0x18]
cmp eax, dword [edi + 0x20]
jle 0x1002c4df
movzx eax, word [edi + 0x40]
push eax
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
jmp 0x1002c521
push dword [edi + 0x148]
lea eax, [edi + 0xc8]
push eax
mov eax, dword [edi + 0x150]
push 0
add eax, 4
push eax
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x1002c52f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [edi + 0x10]
mov edx, eax
call fcn.10029470
push eax
push 0x10057458
push esi
call fcn.10023060
mov ebx, 0x37
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + 0x38]
push eax
call fcn.1003d5da
add esp, 4
inc word [edi + 0x40]
jmp 0x1002c553
mov eax, 1
mov word [edi + 0x40], ax
mov edx, 3
mov dword [edi + 0x18], ebx
lea ecx, [edi + 0x160]
call fcn.1002bae0
mov dx, word [edi + 0x40]
lea ecx, [edi + 0x160]
call fcn.1002bb00
cmp word [edi + 0x40], 1
jbe 0x1002c58e
mov eax, dword [edi + 0x150]
cmp eax, dword [edi + 0x154]
jl 0x1002c72c
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x160]
mov dword [edi + 0x150], ebx
add ecx, 4
mov eax, dword [eax]
mov dword [eax + 0x10c], ecx
jmp 0x1002c5b0
mov edx, dword [edi + 0x154]
lea eax, [ebp - 4]
sub edx, dword [edi + 0x150]
mov ecx, dword [edi + 0x10]
push eax
call fcn.1002d090
add esp, 4
test eax, eax
jne 0x1002c74c
mov eax, dword [edi + 0x10]
mov ecx, dword [ebp - 4]
add dword [edi + 0x150], ecx
mov eax, dword [eax]
add dword [eax + 0x10c], ecx
mov eax, dword [edi + 0x150]
cmp eax, dword [edi + 0x154]
jge 0x1002c5f9
test ecx, ecx
jne 0x1002c5b0
push dword [edi + 0x148]
lea eax, [edi + 0xc8]
push eax
mov eax, dword [edi + 0x150]
push 0
add eax, 4
push eax
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x1002c6bc
mov eax, dword [edi + 0x150]
cdq
add dword [esi + 0x78], eax
adc dword [esi + 0x7c], edx
push dword [esi + 0x7c]
mov ecx, esi
push dword [esi + 0x78]
call fcn.10020ec0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [edi + 0x40]
inc dword [edi + 0x18]
inc eax
push dword [edi + 0x18]
and eax, 0xffff
push eax
push str.Timeout_waiting_for_block__d_ACK.__Retries___d_n
push esi
call fcn.10022fe0
mov eax, dword [edi + 0x18]
add esp, 0x10
cmp eax, dword [edi + 0x20]
jle 0x1002c68c
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 + 0x148]
lea eax, [edi + 0xc8]
push eax
mov eax, dword [edi + 0x150]
push 0
add eax, 4
push eax
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jns 0x1002c636
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [edi + 0x10]
mov edx, eax
call fcn.10029470
push eax
push 0x10057458
push esi
call fcn.10023060
add esp, 0xc
mov eax, 0x37
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 5
mov dword [edi], 3
lea ecx, [edi + 0x160]
call fcn.1002bae0
mov dx, word [edi + 0x40]
lea ecx, [edi + 0x160]
call fcn.1002bb00
push dword [edi + 0x148]
lea eax, [edi + 0xc8]
push eax
push 0
push 4
push dword [edi + 0x160]
push dword [edi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [edi], 3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
push str.tftp_tx:_internal_error__event:__i
push esi
call fcn.10023060
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret