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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x7c
mov ebx, eax
mov eax, dword [eax + 0x10]
mov esi, dword [eax]
mov eax, dword [ebx]
cmp eax, 1
je 0x428770
jb 0x428724
cmp eax, 2
je 0x428780
cmp eax, 3
je 0x42874c
mov dword [esp + 8], str.Internal_state_machine_error
mov dword [esp + 4], 0x5a858a
mov dword [esp], esi
call fcn.0040c7a8
mov eax, 0x47
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi + 0x31c]
test eax, eax
jne 0x428790
mov ebp, str.octet
cmp edx, 7
jbe switch.0x0042879a
mov dword [esp + 4], str.tftp_send_first:_internal_error
mov dword [esp], esi
call fcn.0040c7a8
xor eax, eax
jmp 0x42871a
mov dword [esp + 8], str.TFTP_finished
mov dword [esp + 4], 0x5a8640
mov dword [esp], esi
call fcn.0040ccd4
xor eax, eax
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
call fcn.00427aa8
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ebx
call fcn.0042802c
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebp, str.netascii
cmp edx, 7
ja case.0x42879a.1
jmp dword [edx*4 + 0x5a8774]
mov edx, 6
mov eax, ebx
mov ecx, dword [esi + 0x354]
test ecx, ecx
je 0x4287d7
call fcn.004283ec
jmp 0x42871a
mov dword [ebx], 3
xor eax, eax
jmp 0x42871a
mov edx, 3
mov eax, ebx
call fcn.00427fdc
jmp 0x42871a
mov edx, 4
mov eax, ebx
jmp 0x4287b5
mov eax, dword [ebx + 0x18]
inc eax
mov dword [ebx + 0x18], eax
cmp eax, dword [ebx + 0x20]
jg 0x428a9c
mov eax, dword [esi + 0x354]
test eax, eax
mov eax, dword [ebx + 0x150]
mov byte [eax], 0
mov eax, dword [ebx + 0x150]
je 0x428ab0
mov byte [eax + 1], 2
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
mov edx, dword [ebx + 0x150]
add edx, 4
mov dword [eax + 0x14c], edx
mov edx, dword [esi + 0x8780]
mov eax, dword [esi + 0x8784]
mov ecx, edx
and ecx, eax
inc ecx
je 0x428858
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.004184b8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + 0x8754]
inc eax
mov dword [esp + 4], eax
mov dword [esp], esi
call sym.curl.exe_curl_easy_unescape
mov dword [esp + 0x2c], eax
test eax, eax
je 0x428ab9
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._s_c_s_c
mov eax, dword [ebx + 0x144]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x150]
add eax, 2
mov dword [esp], eax
call sym.curl.exe_curl_msnprintf
mov edx, 0xffffffff
xor eax, eax
mov ecx, edx
mov edi, dword [esp + 0x2c]
repne scasb al, byte es:[edi]
mov dword [esp + 0x28], ecx
mov ecx, edx
mov edi, ebp
repne scasb al, byte es:[edi]
neg dword [esp + 0x28]
sub dword [esp + 0x28], ecx
mov edi, dword [esi + 0x354]
test edi, edi
je 0x428ac3
mov edx, dword [esi + 0x8780]
mov eax, dword [esi + 0x8784]
mov ecx, edx
and ecx, eax
inc ecx
je 0x428ac3
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0x5a8707
mov dword [esp + 4], 0x40
lea ebp, [esp + 0x30]
mov dword [esp], ebp
call sym.curl.exe_curl_msnprintf
mov ecx, dword [esp + 0x28]
add ecx, dword [ebx + 0x150]
mov eax, dword [ebx + 0x144]
mov dword [esp], str.tsize
mov edx, dword [esp + 0x28]
call fcn.004286a0
mov edi, dword [esp + 0x28]
add edi, eax
mov ecx, dword [ebx + 0x150]
add ecx, edi
mov eax, dword [ebx + 0x144]
mov dword [esp], ebp
mov edx, edi
call fcn.004286a0
add edi, eax
mov eax, dword [ebx + 0x148]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x5a8713
mov dword [esp + 4], 0x40
mov dword [esp], ebp
call sym.curl.exe_curl_msnprintf
mov ecx, dword [ebx + 0x150]
add ecx, edi
mov eax, dword [ebx + 0x144]
mov dword [esp], str.blksize
mov edx, edi
call fcn.004286a0
add edi, eax
mov ecx, dword [ebx + 0x150]
add ecx, edi
mov eax, dword [ebx + 0x144]
mov dword [esp], ebp
mov edx, edi
call fcn.004286a0
add edi, eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x5a8713
mov dword [esp + 4], 0x40
mov dword [esp], ebp
call sym.curl.exe_curl_msnprintf
mov ecx, dword [ebx + 0x150]
add ecx, edi
mov eax, dword [ebx + 0x144]
mov dword [esp], 0x5a871e
mov edx, edi
call fcn.004286a0
add edi, eax
mov ecx, dword [ebx + 0x150]
add ecx, edi
mov eax, dword [ebx + 0x144]
mov dword [esp], ebp
mov edx, edi
call fcn.004286a0
mov edx, dword [ebx + 0x10]
mov edx, dword [edx + 0x4c]
add edi, eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov eax, dword [ebx + 0x150]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call sub.WS2_32.dll_sendto
sub esp, 0x18
cmp edi, eax
je 0x428a86
call sub.WS2_32.dll_WSAGetLastError
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call fcn.004379c0
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5a858a
mov dword [esp], esi
call fcn.0040c7a8
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call dword [0x59b00c]
xor eax, eax
jmp 0x42871a
mov dword [ebx + 8], 0xffffff9e
mov dword [ebx], 3
xor eax, eax
jmp 0x42871a
mov byte [eax + 1], 1
jmp 0x428858
mov eax, 0x1b
jmp 0x42871a
mov word [esp + 0x30], 0x30
lea ebp, [esp + 0x30]
jmp 0x428931