Function at 0x4c1280
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.0x4c129c
jmp dword [eax*4 + 0x4c15e8]
cmp edx, 4
jne 0x4c1389
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 0x4c1377
test ax, ax
jne 0x4c12de
cmp ecx, 0xffff
je 0x4c1377
push edx
push ecx
push str.Received_ACK_for_block__d__expecting__d_n
push edi
call fcn.004aee40
inc dword [esi + 0x18]
add esp, 0x10
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x4c131a
movzx eax, word [esi + 0x40]
push eax
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
push edi
call fcn.004aef10
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 0x4c15df
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.004bafa0
push eax
push 0x7964ec
push edi
call fcn.004aef10
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.006e40fb
add esp, 4
inc word [esi + 0x40]
jmp 0x4c1392
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 0x4c13e6
mov eax, dword [esi + 0x150]
cmp eax, dword [esi + 0x154]
jge 0x4c13e6
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 + 0x128], ecx
lea eax, [ebp - 4]
mov edx, dword [esi + 0x154]
sub edx, dword [esi + 0x150]
mov ecx, dword [esi + 0x10]
push eax
call fcn.004b3a00
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4c15df
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 + 0x128], ecx
mov eax, dword [esi + 0x150]
mov edx, dword [esi + 0x154]
cmp eax, edx
jge 0x4c1476
test ecx, ecx
je 0x4c1476
lea ecx, [ebp - 4]
sub edx, eax
push ecx
mov ecx, dword [esi + 0x10]
call fcn.004b3a00
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4c1430
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 0x4c1543
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.004b4780
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.004aee40
mov eax, dword [esi + 0x18]
add esp, 0x10
cmp eax, dword [esi + 0x20]
jle 0x4c1513
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 0x4c14b9
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esi + 0x10]
mov edx, eax
call fcn.004bafa0
push eax
push 0x7964ec
push edi
call fcn.004aef10
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.004aef10
add esp, 0xc
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret