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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10c
mov eax, dword [ecx]
mov ebp, dword [ecx + 0x10]
cmp eax, 3
ja case.default.0x6b484fc6
mov esi, ecx
jmp dword [eax*4 + 0x6b735cdc]
mov edi, dword [ebp + 0xb44]
test edi, 0x10000
mov eax, str.octet
mov ebx, str.netascii
cmove ebx, eax
cmp edx, 7
ja case.0x6b484fef.1
jmp dword [edx*4 + 0x6b735cec]
mov eax, dword [esi + 0x18]
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
cmp eax, dword [esi + 0x20]
jge 0x6b485144
test dword [ebp + 0x6d4], 0x20000000
mov eax, dword [esi + 0x144]
mov byte [eax], 0
mov eax, dword [esi + 0x144]
jne 0x6b48515e
mov byte [eax + 1], 1
jmp 0x6b485194
push str.Internal_state_machine_error
push 0x6b735dea
push ebp
call fcn.6b476950
add esp, 0xc
mov eax, 0x47
jmp 0x6b485153
mov ecx, esi
add esp, 0x10c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x6b4854d0
mov ecx, esi
add esp, 0x10c
pop esi
pop edi
pop ebx
pop ebp
jmp 0x6b485750
push str.TFTP_finished
push 0x6b735dea
push ebp
call fcn.6b4767f0
add esp, 0xc
jmp 0x6b485151
push str.tftp_send_first:_internal_error
push ebp
call fcn.6b476950
add esp, 8
jmp 0x6b485151
push str.Connected_for_receive
push 0x6b735dea
push ebp
call fcn.6b4767f0
add esp, 0xc
mov dword [esi], 1
mov ecx, esi
call fcn.6b484e80
test eax, eax
jne 0x6b485153
mov ecx, esi
mov edx, 3
call 0x6b4854d0
jmp 0x6b485153
push str.Connected_for_transmit
push 0x6b735dea
push ebp
call fcn.6b4767f0
add esp, 0xc
mov dword [esi], 2
mov ecx, esi
call fcn.6b484e80
test eax, eax
jne 0x6b485153
mov ecx, esi
mov edx, 4
call 0x6b485750
jmp 0x6b485153
test byte [ebp + 0x6d7], 0x20
jne 0x6b4851f3
push str.Connected_for_receive
push 0x6b735dea
push ebp
call fcn.6b4767f0
add esp, 0xc
mov dword [esi], 1
mov ecx, esi
call fcn.6b484e80
test eax, eax
jne 0x6b485153
mov ecx, esi
mov edx, 6
call 0x6b4854d0
jmp 0x6b485153
mov dword [esi + 8], 0xffffff9e
mov dword [esi], 3
xor eax, eax
add esp, 0x10c
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [eax + 1], 2
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x144]
add ecx, 4
mov dword [eax + 0x110], ecx
mov ecx, dword [ebp + 0xaa4]
mov eax, dword [ebp + 0xaa0]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x6b485194
push ecx
push eax
push ebp
call fcn.6b474c10
add esp, 0xc
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xad8]
inc eax
mov ecx, esp
push 4
push 0
push ecx
push 0
push eax
push ebp
call fcn.6b44f290
add esp, 0x18
test eax, eax
jne 0x6b485153
xor eax, eax
test edi, 0x10000
sete al
mov dword [esp + 4], eax
mov eax, dword [esp]
mov dword [esp + 8], eax
push eax
call sub.msvcrt.dll_strlen
add esp, 4
mov ecx, dword [esi + 0x134]
mov edx, dword [esp + 4]
lea edx, [edx + edx*2]
lea edx, [ecx + edx - 0xc]
cmp eax, edx
jbe 0x6b48522c
push str.TFTP_file_name_too_long
jmp 0x6b48531c
push str.Connected_for_transmit
push 0x6b735dea
push ebp
call fcn.6b4767f0
add esp, 0xc
mov dword [esi], 2
mov ecx, esi
call fcn.6b484e80
test eax, eax
jne 0x6b485153
mov ecx, esi
mov edx, 6
call 0x6b485750
jmp 0x6b485153
shr edi, 0x10
and edi, 1
mov eax, dword [esi + 0x144]
add eax, 2
push 0
push ebx
push 0
push dword [esp + 0x14]
push str._s_c_s_c
push ecx
push eax
call sym.libcurl.dll_curl_msnprintf
add esp, 0x1c
push dword [esp]
call sub.msvcrt.dll_strlen
add esp, 4
lea ecx, [edi + edi*2]
lea edi, [eax + ecx + 9]
mov eax, dword [ebp + 0x6d4]
test al, 8
jne 0x6b48546a
test eax, 0x20000000
je 0x6b4852a7
mov eax, dword [ebp + 0xaa0]
mov ecx, dword [ebp + 0xaa4]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x6b4852a7
lea edx, [esp + 0xc]
push ecx
push eax
push str._I64d
push 0x40
push edx
call sym.libcurl.dll_curl_msnprintf
add esp, 0x14
jmp 0x6b4852ae
mov word [esp + 0xc], 0x30
lea ebx, [edi + 6]
cmp ebx, dword [esi + 0x134]
ja 0x6b4852e6
mov eax, dword [esi + 0x144]
mov word [eax + edi + 4], 0x65
mov dword [eax + edi], 0x7a697374
lea eax, [esp + 0xc]
push eax
call sub.msvcrt.dll_strlen
add esp, 4
lea eax, [eax + edi + 7]
cmp eax, dword [esi + 0x134]
jbe 0x6b485337
lea eax, [esp + 0xc]
push dword [esi + 0x138]
push 0x6b735e54
push 0x40
push eax
call sym.libcurl.dll_curl_msnprintf
add esp, 0x10
lea eax, [esp + 0xc]
push dword [esi + 0x1c]
push 0x6b735e54
push 0x40
push eax
call sym.libcurl.dll_curl_msnprintf
add esp, 0x10
push str.TFTP_buffer_too_small_for_options
push ebp
call fcn.6b476950
add esp, 8
mov eax, dword [0x6b83acf4]
push dword [esp]
call dword [eax]
add esp, 4
jmp 0x6b485043
add edi, 7
add ebx, dword [esi + 0x144]
lea eax, [esp + 0xc]
push eax
push ebx
call sub.msvcrt.dll_strcpy
add esp, 8
lea eax, [esp + 0xc]
push eax
call sub.msvcrt.dll_strlen
add esp, 4
mov ebx, eax
push dword [esi + 0x138]
push 0x6b735e54
push 0x40
lea eax, [esp + 0x18]
push eax
call sym.libcurl.dll_curl_msnprintf
add esp, 0x10
lea ecx, [ebx + edi + 8]
cmp ecx, dword [esi + 0x134]
ja 0x6b485300
add ebx, edi
mov eax, dword [esi + 0x144]
mov dword [eax + ebx + 4], 0x657a69
mov dword [eax + ebx], 0x736b6c62
lea eax, [esp + 0xc]
push eax
mov edi, ecx
call sub.msvcrt.dll_strlen
add esp, 4
lea eax, [eax + ebx + 9]
cmp eax, dword [esi + 0x134]
ja 0x6b485300
mov ecx, edi
add ebx, 9
add ecx, dword [esi + 0x144]
lea edi, [esp + 0xc]
push edi
push ecx
call sub.msvcrt.dll_strcpy
add esp, 8
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
push dword [esi + 0x1c]
push 0x6b735e54
push 0x40
lea eax, [esp + 0x18]
push eax
call sym.libcurl.dll_curl_msnprintf
add esp, 0x10
lea ecx, [edi + ebx + 8]
mov dword [esp + 4], ecx
cmp ecx, dword [esi + 0x134]
ja 0x6b485317
add edi, ebx
mov eax, dword [esi + 0x144]
mov dword [eax + edi + 4], 0x74756f
mov dword [eax + edi], 0x656d6974
lea eax, [esp + 0xc]
push eax
call sub.msvcrt.dll_strlen
add esp, 4
lea eax, [eax + edi + 9]
cmp eax, dword [esi + 0x134]
ja 0x6b485317
mov ebx, edi
add ebx, 9
mov ecx, dword [esp + 4]
add ecx, dword [esi + 0x144]
lea edi, [esp + 0xc]
push edi
push ecx
call sub.msvcrt.dll_strcpy
add esp, 8
push edi
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
add edi, ebx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x48]
push dword [eax + 0x10]
push dword [eax + 0x18]
push 0
push edi
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
cmp eax, edi
je 0x6b4854b4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea ecx, [esp + 0xc]
push 0x100
push ecx
push eax
call fcn.6b481730
add esp, 0xc
push eax
push 0x6b735dea
push ebp
call fcn.6b476950
add esp, 0xc
mov eax, dword [0x6b83acf4]
push dword [esp]
call dword [eax]
add esp, 4
jmp 0x6b485151
push ebx
push edi
push esi
sub esp, 0x100
mov edi, dword [ecx + 0x10]
add edx, 0xfffffffd
cmp edx, 4
ja case.0x6b4854ea.4
mov esi, ecx
jmp dword [edx*4 + 0x6b735d0c]
mov eax, dword [esi + 0x13c]
mov ecx, dword [esi + 0x140]
movzx ebx, word [ecx + 2]
shl ebx, 0x10
bswap ebx
lea ecx, [eax + 1]
cmp cx, bx
jne 0x6b485637
mov dword [esi + 0x18], 0
jmp 0x6b48564f
mov word [esi + 0x13c], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x144]
mov byte [eax], 0
mov eax, dword [esi + 0x144]
mov byte [eax + 1], 4
movzx eax, word [esi + 0x13c]
mov ecx, dword [esi + 0x144]
mov byte [ecx + 2], ah
mov ecx, dword [esi + 0x144]
mov byte [ecx + 3], al
lea eax, [esi + 0xa8]
push dword [esi + 0x128]
push eax
push 0
push 4
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x6b4856f9
mov dword [esi], 1
jmp 0x6b4856c0
push str.tftp_rx:_internal_error
push 0x6b735dea
push edi
call fcn.6b476950
add esp, 0xc
mov eax, 0x47
jmp 0x6b485724
mov eax, dword [esi + 0x144]
mov byte [eax], 0
mov eax, dword [esi + 0x144]
mov byte [eax + 1], 5
movzx eax, word [esi + 0x13c]
mov ecx, dword [esi + 0x144]
mov byte [ecx + 2], ah
mov ecx, dword [esi + 0x144]
mov byte [ecx + 3], al
lea eax, [esi + 0xa8]
push dword [esi + 0x128]
push eax
push 0
push 4
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
jmp 0x6b48562c
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x13c]
inc eax
mov dword [esi + 0x18], eax
inc ecx
movzx ecx, cx
push eax
push ecx
push str.Timeout_waiting_for_block__d_ACK.__Retries___d
push edi
call fcn.6b4767f0
add esp, 0x10
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x6b4856d1
mov dword [esi + 8], 0xffffff9d
mov dword [esi], 3
jmp 0x6b4856cd
cmp ax, bx
jne 0x6b48572e
push ebx
push str.Received_last_DATA_packet_block__d_again.
push edi
call fcn.6b4767f0
add esp, 0xc
mov word [esi + 0x13c], bx
mov eax, dword [esi + 0x144]
mov byte [eax], 0
mov eax, dword [esi + 0x144]
mov byte [eax + 1], 4
movzx eax, word [esi + 0x13c]
mov ecx, dword [esi + 0x144]
mov byte [ecx + 2], ah
mov ecx, dword [esi + 0x144]
mov byte [ecx + 3], al
lea eax, [esi + 0xa8]
push dword [esi + 0x128]
push eax
push 0
push 4
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x6b4856f9
mov eax, dword [esi + 0x134]
add eax, 4
xor ecx, ecx
cmp dword [esi + 0x12c], eax
setl cl
lea eax, [ecx + ecx + 1]
mov dword [esi], eax
add esi, 0x24
push esi
call dword [sym.imp.msvcrt.dll_time]
add esp, 4
xor eax, eax
jmp 0x6b485724
lea eax, [esi + 0xa8]
push dword [esi + 0x128]
push eax
push 0
push 4
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov ecx, eax
xor eax, eax
test ecx, ecx
jns 0x6b485724
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, esp
push 0x100
push ecx
push eax
call fcn.6b481730
add esp, 0xc
push eax
push 0x6b735dea
push edi
call fcn.6b476950
add esp, 0xc
mov eax, 0x37
add esp, 0x100
pop esi
pop edi
pop ebx
ret
movzx eax, cx
push eax
push ebx
push str.Received_unexpected_DATA_packet_block__d__expecting_block__d
push edi
call fcn.6b4767f0
add esp, 0x10
jmp 0x6b4856cd
push ebx
push edi
push esi
sub esp, 0x104
mov edi, dword [ecx + 0x10]
lea eax, [edx - 4]
cmp eax, 3
ja case.default.0x6b48576a
mov esi, ecx
jmp dword [eax*4 + 0x6b735d20]
mov eax, dword [esi + 0x140]
movzx eax, word [eax + 2]
shl eax, 0x10
bswap eax
movzx ecx, word [esi + 0x13c]
cmp ax, cx
je 0x6b48579f
test cx, cx
jne 0x6b4859bf
cmp ax, 0xffff
jne 0x6b4859bf
lea eax, [esi + 0x24]
push eax
call dword [sym.imp.msvcrt.dll_time]
add esp, 4
inc word [esi + 0x13c]
jmp 0x6b4857be
mov word [esi + 0x13c], 1
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x144]
mov byte [eax], 0
mov eax, dword [esi + 0x144]
mov byte [eax + 1], 3
movzx eax, word [esi + 0x13c]
mov ecx, dword [esi + 0x144]
mov byte [ecx + 2], ah
mov ecx, dword [esi + 0x144]
mov byte [ecx + 3], al
cmp word [esi + 0x13c], 2
jb 0x6b485814
mov eax, dword [esi + 0x130]
cmp eax, dword [esi + 0x134]
jge 0x6b485814
mov dword [esi], 3
jmp 0x6b4859b3
mov dword [esi + 0x130], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x144]
add ecx, 4
mov dword [eax + 0x110], ecx
mov eax, dword [esi + 0x130]
mov ecx, dword [esi + 0x134]
mov ebx, esp
nop
nop
sub ecx, eax
push ebx
push ecx
push edi
call fcn.6b485ca0
add esp, 0xc
test eax, eax
jne 0x6b4859b5
mov ecx, dword [esp]
add dword [esi + 0x130], ecx
mov eax, dword [esi + 0x10]
add dword [eax + 0x110], ecx
mov eax, dword [esi + 0x130]
test ecx, ecx
je 0x6b48587b
mov ecx, dword [esi + 0x134]
cmp eax, ecx
jl 0x6b485840
add eax, 4
lea ecx, [esi + 0xa8]
push dword [esi + 0x128]
push ecx
push 0
push eax
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x6b485a0d
mov eax, dword [esi + 0x130]
mov ecx, eax
sar ecx, 0x1f
add eax, dword [edi + 0x98]
adc ecx, dword [edi + 0x9c]
mov dword [edi + 0x98], eax
mov dword [edi + 0x9c], ecx
push ecx
push eax
jmp 0x6b4859aa
push edx
push str.tftp_tx:_internal_error__event:__i
push edi
call fcn.6b476950
jmp 0x6b4859b0
mov dword [esi], 3
mov eax, dword [esi + 0x144]
mov byte [eax], 0
mov eax, dword [esi + 0x144]
mov byte [eax + 1], 5
movzx eax, word [esi + 0x13c]
mov ecx, dword [esi + 0x144]
mov byte [ecx + 2], ah
mov ecx, dword [esi + 0x144]
mov byte [ecx + 3], al
lea eax, [esi + 0xa8]
push dword [esi + 0x128]
push eax
push 0
push 4
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov dword [esi], 3
jmp 0x6b4859b3
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x13c]
inc eax
mov dword [esi + 0x18], eax
inc ecx
movzx ecx, cx
push eax
push ecx
push str.Timeout_waiting_for_block__d_ACK.__Retries___d
push edi
call fcn.6b4767f0
add esp, 0x10
mov eax, dword [esi + 0x18]
cmp eax, dword [esi + 0x20]
jle 0x6b485972
mov dword [esi + 8], 0xffffff9d
mov dword [esi], 3
jmp 0x6b4859b3
mov eax, dword [esi + 0x130]
add eax, 4
lea ecx, [esi + 0xa8]
push dword [esi + 0x128]
push ecx
push 0
push eax
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
js 0x6b485a0d
push dword [edi + 0x9c]
push dword [edi + 0x98]
push edi
call fcn.6b475050
add esp, 0xc
xor eax, eax
add esp, 0x104
pop esi
pop edi
pop ebx
ret
push ecx
push eax
push str.Received_ACK_for_block__d__expecting__d
push edi
call fcn.6b4767f0
add esp, 0x10
mov eax, dword [esi + 0x18]
lea ecx, [eax + 1]
mov dword [esi + 0x18], ecx
cmp eax, dword [esi + 0x20]
jge 0x6b485a2e
mov eax, dword [esi + 0x130]
add eax, 4
lea ecx, [esi + 0xa8]
push dword [esi + 0x128]
push ecx
push 0
push eax
push dword [esi + 0x144]
push dword [esi + 0x14]
call dword [sym.imp.WS2_32.dll_sendto]
mov ecx, eax
xor eax, eax
test ecx, ecx
jns 0x6b4859b5
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
lea ecx, [esp + 4]
push 0x100
push ecx
push eax
call fcn.6b481730
add esp, 0xc
push eax
push 0x6b735dea
jmp 0x6b485a3b
movzx eax, word [esi + 0x13c]
push eax
push str.tftp_tx:_giving_up_waiting_for_block__d_ack
push edi
call fcn.6b476950
add esp, 0xc
mov eax, 0x37
jmp 0x6b4859b5