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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x8c
mov eax, dword [eax + 0x10]
mov esi, dword [eax]
mov eax, dword [ebx]
cmp eax, 2
je 0x43112e
ja 0x4310a0
test eax, eax
je 0x431140
add esp, 0x8c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
jmp sym._tftp_rx
cmp eax, 3
jne 0x4310d0
mov dword [esp + 8], str.TFTP_finished
mov dword [esp + 4], 0x4662b1
mov dword [esp], esi
call sym._Curl_infof
xor eax, eax
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], esi
mov dword [esp + 8], str.Internal_state_machine_error
mov dword [esp + 4], 0x46610a
call sym._Curl_failf
add esp, 0x8c
mov eax, 0x47
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], str.Connected_for_transmit
mov dword [esp + 4], 0x4662b1
mov dword [esp], esi
call sym._Curl_infof
mov dword [ebx], 2
mov eax, ebx
call sym._tftp_set_timeouts
mov edx, 4
test eax, eax
jne 0x4310bf
add esp, 0x8c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
jmp sym._tftp_tx
cmp byte [esi + 0x4cb], 0
mov edi, str.netascii
mov eax, str.octet
cmove edi, eax
cmp edx, 7
ja case.0x43115d.1
jmp dword [edx*4 + 0x466318]
mov eax, dword [ebx + 0x18]
add eax, 1
mov dword [ebx + 0x18], eax
cmp eax, dword [ebx + 0x20]
jg 0x431420
mov eax, dword [ebx + 0x150]
cmp byte [esi + 0x4d9], 0
mov byte [eax], 0
mov eax, dword [ebx + 0x150]
je 0x431438
mov byte [eax + 1], 2
mov ecx, dword [ebx + 0x150]
mov eax, dword [ebx + 0x10]
mov ebp, dword [esi + 0xa14]
lea edx, [ecx + 4]
mov ecx, dword [esi + 0xa10]
mov eax, dword [eax]
mov dword [esp + 0x20], ebp
mov dword [eax + 0x124], edx
mov edx, ecx
and edx, ebp
cmp edx, 0xffffffff
je 0x4311dc
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp], esi
call sym._Curl_pgrsSetUploadSize
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
lea edx, [esp + 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov eax, dword [eax + 0x9e8]
mov dword [esp], esi
add eax, 1
mov dword [esp + 4], eax
call sym._Curl_urldecode
test eax, eax
jne 0x4310bf
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 0x28], ecx
call sym._strlen
mov edx, dword [ebx + 0x144]
mov dword [esp], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
call sym._strlen
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov ebp, eax
lea eax, [edx - 4]
sub eax, ebp
cmp eax, ecx
mov ecx, dword [esp + 0x28]
jb 0x431689
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 8], str._s_c_s_c
mov eax, dword [ebx + 0x150]
add eax, 2
mov dword [esp], eax
call sym._curl_msnprintf
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call sym._strlen
cmp byte [esi + 0x1f8], 0
lea edi, [ebp + eax]
lea ebp, [edi + 4]
je 0x431446
mov edx, dword [ebx + 0x150]
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 0x50]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x14], ecx
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], ebp
mov dword [esp + 4], edx
mov eax, dword [ebx + 0x14]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_sendto]
sub esp, 0x18
cmp ebp, eax
je 0x431315
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sym._Curl_strerror
mov dword [esp + 4], 0x46610a
mov dword [esp + 8], eax
mov dword [esp], esi
call sym._Curl_failf
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call dword [0x45e810]
jmp 0x4310bd
mov dword [esp + 4], str.tftp_send_first:_internal_error
mov dword [esp], esi
call sym._Curl_failf
jmp 0x4310bd
cmp byte [esi + 0x4d9], 0
je 0x4313e0
mov dword [esp + 8], str.Connected_for_transmit
mov dword [esp + 4], 0x4662b1
mov dword [esp], esi
call sym._Curl_infof
mov dword [ebx], 2
mov eax, ebx
call sym._tftp_set_timeouts
mov edx, 6
test eax, eax
jne 0x4310bf
jmp 0x43112e
mov dword [ebx], 3
jmp 0x4310bd
mov dword [esp + 8], str.Connected_for_receive
mov dword [esp + 4], 0x4662b1
mov dword [esp], esi
call sym._Curl_infof
mov dword [ebx], 1
mov eax, ebx
call sym._tftp_set_timeouts
test eax, eax
jne 0x4310bf
mov edx, 3
jmp 0x431086
mov dword [esp + 8], str.Connected_for_receive
mov dword [esp + 4], 0x4662b1
mov dword [esp], esi
call sym._Curl_infof
mov dword [ebx], 1
mov eax, ebx
call sym._tftp_set_timeouts
mov edx, 6
test eax, eax
jne 0x4310bf
jmp 0x431086
mov dword [ebx + 8], 0xffffff9e
mov dword [ebx], 3
jmp 0x4310bd
mov byte [eax + 1], 1
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
jmp 0x4311dc
cmp byte [esi + 0x4d9], 0
je 0x431672
mov ecx, dword [esi + 0xa10]
mov edx, dword [esi + 0xa14]
mov eax, ecx
mov dword [esp + 0x20], edx
and eax, edx
cmp eax, 0xffffffff
je 0x431672
lea eax, [esp + 0x40]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0x466291
mov dword [esp + 4], 0x40
mov dword [esp], eax
mov dword [esp + 0x20], eax
call sym._curl_msnprintf
mov ecx, dword [ebx + 0x150]
lea eax, [edi + 0xa]
mov edi, dword [ebx + 0x144]
add ecx, ebp
cmp edi, eax
jb 0x4314cc
mov edx, 0x65
mov dword [ecx], 0x7a697374
mov ebp, eax
mov word [ecx + 4], dx
mov ecx, dword [ebx + 0x150]
mov edi, dword [ebx + 0x144]
add ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp], eax
call sym._strlen
mov edx, eax
lea eax, [ebp + eax + 1]
cmp edi, eax
jb 0x431512
lea edi, [edx + 1]
mov ecx, dword [esp + 0x24]
cmp edi, 4
mov dword [esp + 0x28], edi
jae 0x4316b0
test edi, edi
je 0x43150e
movzx eax, byte [esp + 0x40]
and edi, 2
mov byte [ecx], al
jne 0x4317e6
lea ebp, [ebp + edx + 1]
mov eax, dword [ebx + 0x148]
mov dword [esp + 8], 0x466297
mov dword [esp + 4], 0x40
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._curl_msnprintf
mov edi, dword [ebx + 0x150]
mov ecx, dword [ebx + 0x144]
lea eax, [ebp + 8]
add edi, ebp
cmp ecx, eax
jb 0x43156a
mov dword [edi], 0x736b6c62
mov ebp, eax
mov dword [edi + 4], 0x657a69
mov edi, dword [ebx + 0x150]
mov ecx, dword [ebx + 0x144]
add edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov dword [esp], eax
call sym._strlen
mov ecx, dword [esp + 0x24]
mov edx, eax
lea eax, [ebp + eax + 1]
cmp ecx, eax
jb 0x4315ab
lea eax, [edx + 1]
cmp eax, 4
jae 0x43177c
test eax, eax
je 0x4315a7
movzx ecx, byte [esp + 0x40]
mov byte [edi], cl
test al, 2
jne 0x4317d7
lea ebp, [ebp + edx + 1]
mov eax, dword [ebx + 0x1c]
mov dword [esp + 8], 0x466297
mov dword [esp + 4], 0x40
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call sym._curl_msnprintf
mov edi, dword [ebx + 0x150]
mov ecx, dword [ebx + 0x144]
lea eax, [edi + ebp]
mov dword [esp + 0x28], ecx
mov edx, edi
mov dword [esp + 0x24], eax
lea eax, [ebp + 8]
cmp ecx, eax
jb 0x43161a
mov ecx, dword [esp + 0x24]
mov ebp, eax
mov dword [ecx], 0x656d6974
mov dword [ecx + 4], 0x74756f
mov edi, dword [ebx + 0x150]
lea ecx, [edi + eax]
mov edx, edi
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx + 0x144]
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x2c], edx
mov dword [esp], eax
call sym._strlen
mov edx, dword [esp + 0x2c]
mov ecx, eax
lea eax, [ebp + eax + 1]
cmp dword [esp + 0x28], eax
jb 0x4312b5
lea eax, [ecx + 1]
cmp eax, 4
jae 0x431715
test eax, eax
je 0x431667
movzx edx, byte [esp + 0x40]
mov edi, dword [esp + 0x24]
mov byte [edi], dl
test al, 2
jne 0x4317f9
mov edi, dword [ebx + 0x150]
lea ebp, [ebp + ecx + 1]
mov edx, edi
jmp 0x4312b5
mov ecx, 0x30
lea eax, [esp + 0x40]
mov word [esp + 0x40], cx
mov dword [esp + 0x20], eax
jmp 0x431498
mov dword [esp + 4], str.TFTP_file_name_too_long_n
mov dword [esp], esi
call sym._Curl_failf
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call dword [0x45e810]
mov eax, 0x47
jmp 0x4310bf
mov edi, dword [esp + 0x40]
mov dword [ecx], edi
mov eax, dword [esp + 0x28]
mov edi, dword [esp + eax + 0x3c]
mov dword [ecx + eax - 4], edi
lea edi, [ecx + 4]
mov eax, ecx
mov ecx, dword [esp + 0x20]
and edi, 0xfffffffc
sub eax, edi
sub ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x28]
add ecx, eax
mov eax, ecx
and eax, 0xfffffffc
cmp eax, 4
jb 0x43150e
mov dword [esp + 0x28], edx
and eax, 0xfffffffc
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
xor eax, eax
mov edx, dword [ecx + eax]
mov dword [edi + eax], edx
mov edx, dword [esp + 0x24]
add eax, 4
cmp eax, edx
jb 0x4316fb
mov edx, dword [esp + 0x28]
jmp 0x43150e
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
mov dword [edi], edx
mov edx, dword [esp + eax + 0x3c]
mov dword [edi + eax - 4], edx
mov edx, edi
add edx, 4
and edx, 0xfffffffc
mov dword [esp + 0x24], edx
mov edx, edi
mov edi, dword [esp + 0x24]
sub edx, edi
mov edi, dword [esp + 0x20]
add eax, edx
and eax, 0xfffffffc
sub edi, edx
cmp eax, 4
jb 0x431661
mov dword [esp + 0x28], ecx
and eax, 0xfffffffc
mov edx, edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x20], eax
xor eax, eax
mov ecx, dword [edx + eax]
mov dword [edi + eax], ecx
mov ecx, dword [esp + 0x20]
add eax, 4
cmp eax, ecx
jb 0x431762
mov ecx, dword [esp + 0x28]
jmp 0x431661
mov ecx, dword [esp + 0x40]
mov dword [edi], ecx
mov ecx, dword [esp + eax + 0x3c]
mov dword [edi + eax - 4], ecx
lea ecx, [edi + 4]
and ecx, 0xfffffffc
sub edi, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
add eax, edi
and eax, 0xfffffffc
sub ecx, edi
cmp eax, 4
jb 0x4315a7
mov dword [esp + 0x28], ebx
and eax, 0xfffffffc
mov dword [esp + 0x2c], edx
mov edi, eax
xor eax, eax
mov ebx, dword [ecx + eax]
mov edx, dword [esp + 0x24]
mov dword [edx + eax], ebx
add eax, 4
cmp eax, edi
jb 0x4317b9
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
jmp 0x4315a7
movzx ecx, word [esp + eax + 0x3e]
mov word [edi + eax - 2], cx
jmp 0x4315a7
mov eax, dword [esp + 0x28]
movzx edi, word [esp + eax + 0x3e]
mov word [ecx + eax - 2], di
jmp 0x43150e
mov edi, dword [esp + 0x24]
movzx edx, word [esp + eax + 0x3e]
mov word [edi + eax - 2], dx
mov edi, dword [ebx + 0x150]
jmp 0x431667