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

Disassembly:
push rbx
push rbp
push rsi
push r12
push r13
sub rsp, 0x90
mov rax, qword [0x1401f3660]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov rbx, rcx
xor ebp, ebp
lea r12, str.netascii
mov rax, qword [rbx + 0x10]
lea rcx, str.octet
mov rsi, qword [rax]
cmp dword [rsi + 0x474], ebp
cmove r12, rcx
cmp edx, 7
ja case.0x140089ea2.1
movsxd rax, edx
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x8a2fc]
add rcx, rdx
jmp rcx
add dword [rbx + 0x20], 1
mov eax, dword [rbx + 0x20]
cmp eax, dword [rbx + 0x28]
jle 0x140089ec4
mov dword [rbx + 8], 0xffffff9e
mov dword [rbx], 3
xor eax, eax
jmp 0x14008a2dc
cmp dword [rsi + 0x4a8], ebp
je 0x140089f11
mov rax, qword [rbx + 0x170]
mov byte [rax], bpl
mov rax, qword [rbx + 0x170]
mov byte [rax + 1], 2
mov rax, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x170]
mov rcx, qword [rax]
add rdx, 4
mov qword [rcx + 0x190], rdx
mov rdx, qword [rsi + 0x8ab8]
cmp rdx, 0xffffffffffffffff
je 0x140089f26
mov rcx, rsi
call fcn.140081440
jmp 0x140089f26
mov rax, qword [rbx + 0x170]
mov byte [rax], bpl
mov rax, qword [rbx + 0x170]
mov byte [rax + 1], 1
mov rax, qword [rbx + 0x10]
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x8a80]
mov rcx, rsi
add rdx, 1
call fcn.14009b5e0
test rax, rax
mov r13, rax
jne 0x140089f57
lea eax, [r13 + 0x1b]
jmp 0x14008a2dc
mov rcx, qword [rbx + 0x170]
movsxd rdx, dword [rbx + 0x15c]
mov qword [rsp + 0x30], rbp
lea r8, str._s_c_s_c
add rcx, 2
mov r9, rax
mov qword [rsp + 0x28], r12
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0x20], rbp
call fcn.14007a7b0
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r13
repne scasb al, byte [rdi]
mov rdi, r12
not rcx
lea rdx, [rcx - 1]
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
cmp dword [rsi + 0x2ec], eax
not rcx
lea r12, [rdx + rcx + 3]
jne 0x14008a1b5
cmp dword [rsi + 0x4a8], eax
je 0x140089fe9
mov r9, qword [rsi + 0x8ab8]
cmp r9, 0xffffffffffffffff
je 0x140089fe9
lea r8, str._I64d
lea edx, [rax + 0x40]
lea rcx, [rsp + 0x40]
call fcn.14007a7b0
jmp 0x140089ff0
mov word [rsp + 0x40], gethostbyname
mov rax, qword [rbx + 0x170]
lea r9, str.tsize
mov rdx, r12
lea r8, [r12 + rax]
mov rcx, rbx
call fcn.140089260
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
add r12, rax
xor eax, eax
repne scasb al, byte [rdi]
movsxd rax, dword [rbx + 0x15c]
not rcx
lea rdx, [rcx + r12]
cmp rdx, rax
jbe 0x14008a035
mov rcx, rbp
jmp 0x14008a072
mov rax, qword [rbx + 0x170]
lea rcx, [rsp + 0x40]
lea rdx, [r12 + rax]
nop
nop
nop
movzx eax, byte [rcx]
add rdx, 1
add rcx, 1
test al, al
mov byte [rdx - 1], al
jne 0x14008a050
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
xor eax, eax
repne scasb al, byte [rdi]
not rcx
mov r9d, dword [rbx + 0x160]
add r12, rcx
lea r8, [0x1401cedcc]
lea rcx, [rsp + 0x40]
mov edx, 0x40
call fcn.14007a7b0
mov rdx, qword [rbx + 0x170]
lea r9, str.blksize
lea r8, [r12 + rdx]
mov rdx, r12
mov rcx, rbx
call fcn.140089260
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
add r12, rax
xor eax, eax
repne scasb al, byte [rdi]
movsxd rax, dword [rbx + 0x15c]
not rcx
lea rdx, [rcx + r12]
cmp rdx, rax
jbe 0x14008a0d7
mov rcx, rbp
jmp 0x14008a112
mov rax, qword [rbx + 0x170]
lea rcx, [rsp + 0x40]
lea rdx, [r12 + rax]
nop
nop
nop
movzx eax, byte [rcx]
add rdx, 1
add rcx, 1
test al, al
mov byte [rdx - 1], al
jne 0x14008a0f0
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
xor eax, eax
repne scasb al, byte [rdi]
not rcx
mov r9d, dword [rbx + 0x24]
add r12, rcx
lea r8, [0x1401cedcc]
lea rcx, [rsp + 0x40]
mov edx, 0x40
call fcn.14007a7b0
mov rdx, qword [rbx + 0x170]
lea r9, str.timeout
lea r8, [r12 + rdx]
mov rdx, r12
mov rcx, rbx
call fcn.140089260
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
add r12, rax
xor eax, eax
repne scasb al, byte [rdi]
movsxd rax, dword [rbx + 0x15c]
not rcx
lea rdx, [rcx + r12]
cmp rdx, rax
jbe 0x14008a174
mov rcx, rbp
jmp 0x14008a1b2
mov rax, qword [rbx + 0x170]
lea rdx, [rsp + 0x40]
lea rcx, [r12 + rax]
nop
nop
nop
movzx eax, byte [rdx]
add rcx, 1
add rdx, 1
test al, al
mov byte [rcx - 1], al
jne 0x14008a190
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
xor eax, eax
repne scasb al, byte [rdi]
not rcx
add r12, rcx
mov rax, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x170]
xor r9d, r9d
mov rcx, qword [rax + 0x58]
mov r8d, r12d
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x28], eax
mov rax, qword [rcx + 0x20]
mov rcx, qword [rbx + 0x18]
mov qword [rsp + 0x20], rax
call qword [sym.imp.WS2_32.dll_sendto]
mov rdi, qword [rsp + 0xd0]
movsxd rdx, eax
cmp rdx, r12
je 0x14008a217
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, qword [rbx + 0x10]
mov edx, eax
call fcn.140066c40
lea rdx, [0x1401cd58c]
mov rcx, rsi
mov r8, rax
call fcn.140075620
mov rcx, r13
call qword [fcn.140046f30]
jmp 0x14008a2da
cmp dword [rsi + 0x4a8], ebp
je 0x14008a241
mov edx, 6
mov rcx, rbx
call fcn.140089da0
mov ebp, eax
jmp 0x14008a2da
mov edx, 6
mov rcx, rbx
call fcn.140089df0
mov ebp, eax
jmp 0x14008a2da
lea r8, str.Connected_for_transmit
lea rdx, [0x140196d50]
mov rcx, rsi
call fcn.140075570
mov rcx, rbx
mov dword [rbx], 2
call fcn.140088df0
test eax, eax
jne 0x14008a24e
lea edx, [rax + 4]
mov rcx, rbx
call fcn.140089620
mov ebp, eax
jmp 0x14008a2da
lea r8, str.Connected_for_receive
lea rdx, [0x140196d50]
mov rcx, rsi
call fcn.140075570
mov rcx, rbx
mov dword [rbx], 1
call fcn.140088df0
test eax, eax
jne 0x14008a24e
lea edx, [rax + 3]
mov rcx, rbx
call fcn.1400892d0
mov ebp, eax
jmp 0x14008a2da
mov dword [rbx], 3
jmp 0x14008a2da
lea rdx, str.tftp_send_first:_internal_error
mov rcx, rsi
call fcn.140075620
mov eax, ebp
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140041910
add rsp, 0x90
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret