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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
mov qword [rsp + 0x20], r9
sub rsp, 0xb8
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0
mov dword [rsp + 0x50], 1
mov eax, dword [rsp + 0xd0]
and eax, 0x40000000
cmp eax, 0x40000000
jne 0x140109e07
mov eax, dword [rsp + 0xd0]
btc eax, 0x1e
mov dword [rsp + 0xd0], eax
mov dword [rsp + 0x78], 1
jmp 0x140109e0f
mov dword [rsp + 0x78], 0
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x74], eax
cmp qword [rsp + 0xc0], 0
jne 0x140109e2c
mov eax, 0xfffffffc
jmp 0x14010a95f
mov dword [rsp + 0x70], 0
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x2a8], 0
je 0x14010a2a5
cmp dword [rsp + 0x74], 0
jne 0x140109e6e
mov rax, qword [rsp + 0x30]
add rax, 0x288
mov rcx, rax
call fcn.1400ac740
mov dword [rsp + 0x54], 0
jmp 0x140109e82
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0xd0]
cmp dword [rsp + 0x54], eax
jae 0x140109f46
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax - 8]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax - 8]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax - 8]
mov dword [rsp + 0x58], eax
cmp qword [rsp + 0x60], 0x7fffffff
ja 0x140109ef7
cmp dword [rsp + 0x70], 0
je 0x140109f15
cmp dword [rsp + 0x58], 0
jne 0x140109f08
mov rcx, qword [rsp + 0x68]
call fcn.14027a7c0
mov dword [rsp + 0x70], 1
jmp 0x140109e78
mov r8d, dword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x2a8]
call fcn.140235430
cmp dword [rsp + 0x58], 0
jne 0x140109f41
mov rcx, qword [rsp + 0x68]
call fcn.14027a7c0
jmp 0x140109e78
mov qword [rsp + 0x48], 0
cmp dword [rsp + 0x70], 0
jne 0x14010a249
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x280], 0
jne 0x14010a229
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x2d0]
cmp qword [rax], 0
jbe 0x14010a215
mov edx, reloc.WS2_32.dll_ntohs
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x2c0]
call fcn.140176750
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x2d0]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x2d0]
xor r9d, r9d
mov r8d, dword [rax]
mov rdx, qword [rcx + 8]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x68]
call qword [sym.imp.WS2_32.dll_send]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x38], 0
jle 0x140109fe9
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x2d0]
mov eax, dword [rax]
cmp dword [rsp + 0x38], eax
jl 0x14010a005
cmp dword [rsp + 0x38], 0
jge 0x14010a191
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x14010a191
cmp dword [rsp + 0x38], 0
jge 0x14010a016
mov dword [rsp + 0x7c], 0
jmp 0x14010a02e
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x2d0]
mov ecx, dword [rsp + 0x38]
mov eax, dword [rax]
sub eax, ecx
mov dword [rsp + 0x7c], eax
movsxd rax, dword [rsp + 0x7c]
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
mov ecx, gethostname
call fcn.140113f90
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x2c], 3
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], 0
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x280], rcx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x278], rcx
cmp dword [rsp + 0x38], 0
jle 0x14010a184
mov edx, gethostname
mov rcx, qword [rsp + 0x40]
call fcn.140114170
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x278]
mov qword [rcx], rax
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x2d0]
mov ecx, dword [rsp + 0x38]
mov eax, dword [rax]
sub eax, ecx
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x278]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x278]
movsxd rax, dword [rax + 8]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x2d0]
movsxd rdx, dword [rsp + 0x38]
add rdx, qword [rcx + 8]
mov rcx, rdx
mov rdx, qword [rsp + 0x30]
mov rdx, qword [rdx + 0x278]
movsxd rdx, dword [rdx + 8]
mov r8, qword [rsp + 0x30]
mov r8, qword [r8 + 0x278]
mov qword [rsp + 0xa0], r8
mov r9, rax
mov r8, rcx
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax]
call fcn.140001020
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x74]
add eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x74], eax
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x278]
mov rcx, qword [rsp + 0x30]
mov eax, dword [rax + 8]
mov dword [rcx + 0x70], eax
xor r9d, r9d
xor r8d, r8d
mov edx, 1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x2c0]
call fcn.140176780
cdqe
mov rcx, rax
call fcn.1400014e0
mov dword [rsp + 0x50], 0
jmp 0x14010a213
movsxd rax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov rcx, qword [rcx + 0x2d0]
cmp rax, qword [rcx]
jne 0x14010a201
mov dword [rsp + 0x50], 1
xor r9d, r9d
xor r8d, r8d
mov edx, 1
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x2c0]
call fcn.140176780
cdqe
mov rcx, rax
call fcn.1400014e0
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x74]
add eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x74], eax
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x2d0]
mov rcx, qword [rsp + 0x30]
mov eax, dword [rax]
mov dword [rcx + 0x70], eax
jmp 0x14010a213
mov dword [rsp + 0x50], 0xfffffffc
mov rcx, qword [rsp + 0x30]
call fcn.140109ce0
jmp 0x14010a227
mov dword [rsp + 0x50], 0xfffffffc
mov rcx, qword [rsp + 0x30]
call fcn.140109ce0
jmp 0x14010a247
mov dword [rsp + 0x50], 0
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x2d0]
mov rcx, qword [rsp + 0x30]
mov eax, dword [rax]
mov dword [rcx + 0x70], eax
jmp 0x14010a25b
mov dword [rsp + 0x50], 0xfffffffb
mov rcx, qword [rsp + 0x30]
call fcn.140109ce0
cmp dword [rsp + 0x74], 0
jne 0x14010a275
mov rax, qword [rsp + 0x30]
add rax, 0x288
mov rcx, rax
call fcn.1400ac720
cmp dword [rsp + 0x50], 1
je 0x14010a29c
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x20]
call fcn.1401252c0
test eax, eax
jne 0x14010a29c
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x20]
call fcn.140115090
mov eax, dword [rsp + 0x50]
jmp 0x14010a95f
cmp dword [rsp + 0x74], 0
jne 0x14010a2bf
mov rax, qword [rsp + 0x30]
add rax, 0x288
mov rcx, rax
call fcn.1400ac740
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x68], 0xffffffffffffffff
jne 0x14010a382
mov dword [rsp + 0x54], 0
jmp 0x14010a2e3
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0xd0]
cmp dword [rsp + 0x54], eax
jae 0x14010a355
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax - 8]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
movsxd rax, dword [rax - 8]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax - 8]
mov dword [rsp + 0x58], eax
cmp dword [rsp + 0x58], 0
jne 0x14010a353
mov rcx, qword [rsp + 0x68]
call fcn.14027a7c0
jmp 0x14010a2d9
cmp dword [rsp + 0x74], 0
jne 0x14010a36f
mov rax, qword [rsp + 0x30]
add rax, 0x288
mov rcx, rax
call fcn.1400ac720
mov qword [rsp + 0x48], 0
mov eax, 0xfffffffc
jmp 0x14010a95f
mov dword [rsp + 0x54], 0
jmp 0x14010a396
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
mov eax, dword [rsp + 0xd0]
cmp dword [rsp + 0x54], eax
jae 0x14010a8f8
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax - 8]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax - 8]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x48]
add rax, 8
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
mov eax, dword [rax - 8]
mov dword [rsp + 0x58], eax
cmp qword [rsp + 0x60], 0x7fffffff
ja 0x14010a40b
cmp dword [rsp + 0x70], 0
je 0x14010a429
mov dword [rsp + 0x70], 1
cmp dword [rsp + 0x58], 0
jne 0x14010a424
mov rcx, qword [rsp + 0x68]
call fcn.14027a7c0
jmp 0x14010a38c
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x280], 0
jne 0x14010a44a
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x258], 0
jne 0x14010a623
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, gethostname
call fcn.140113f90
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x60]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x70]
add eax, dword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x70], eax
cmp dword [rsp + 0x58], 2
jne 0x14010a538
mov rax, qword [rsp + 0x40]
movsxd rax, dword [rax + 8]
mov rcx, rax
call fcn.14027bb94
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x80]
mov qword [rax], rcx
cmp qword [rsp + 0x80], 0
jne 0x14010a507
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
mov r9d, 0xfe
mov r8d, 0x2bc
lea rdx, [0x1403a99b0]
xor ecx, ecx
call fcn.140124df0
mov r8d, 0x2bc
lea rdx, [0x1403a9950]
lea rcx, [0x1403a94d8]
call fcn.1400012d0
mov ecx, 0xfe
call fcn.1402742dc
mov rax, qword [rsp + 0x40]
movsxd rax, dword [rax + 8]
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
mov rdx, rax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
call fcn.140001020
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x2c], 0
jmp 0x14010a551
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x58]
mov dword [rax + 0x2c], ecx
mov rax, qword [rsp + 0x40]
mov dword [rax + 0xc], 0
cmp qword [rsp + 0xc8], 0
je 0x14010a5b8
mov rax, qword [rsp + 0xc8]
movzx eax, word [rax]
cmp eax, 0x17
jne 0x14010a586
mov qword [rsp + 0x88], 0x1c
jmp 0x14010a592
mov qword [rsp + 0x88], reloc.WS2_32.dll_recv
mov rax, qword [rsp + 0x40]
add rax, 0x10
mov r9, qword [rsp + 0x88]
mov r8, qword [rsp + 0xc8]
mov edx, 0x1c
mov rcx, rax
call fcn.140001020
mov rax, qword [rsp + 0x40]
mov qword [rax + 0x30], 0
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x280], 0
jne 0x14010a5f8
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x280], rcx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x278], rcx
jmp 0x14010a61e
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x280]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x30], rcx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x280], rcx
jmp 0x14010a8f3
mov rax, qword [rsp + 0x30]
cmp qword [rax + 0x280], 0
jne 0x14010a8f3
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x258], 0
je 0x14010a8f3
cmp qword [rsp + 0xc8], 0
je 0x14010a663
mov rax, qword [rsp + 0xc8]
movzx eax, word [rax]
cmp eax, 1
jne 0x14010a685
xor r9d, r9d
mov r8d, dword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x68]
call qword [sym.imp.WS2_32.dll_send]
mov dword [rsp + 0x38], eax
jmp 0x14010a6e7
mov rax, qword [rsp + 0xc8]
movzx eax, word [rax]
cmp eax, 0x17
jne 0x14010a6a3
mov qword [rsp + 0x90], 0x1c
jmp 0x14010a6af
mov qword [rsp + 0x90], reloc.WS2_32.dll_recv
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8d, dword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x68]
call qword [sym.imp.WS2_32.dll_sendto]
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x38], 0
jle 0x14010a6f8
mov eax, dword [rsp + 0x60]
cmp dword [rsp + 0x38], eax
jl 0x14010a714
cmp dword [rsp + 0x38], 0
jge 0x14010a874
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x14010a874
cmp dword [rsp + 0x38], 0
jge 0x14010a723
mov dword [rsp + 0x38], 0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, gethostname
call fcn.140113f90
mov qword [rsp + 0x40], rax
cmp dword [rsp + 0x58], 2
jne 0x14010a817
mov eax, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x60]
sub ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x40]
mov dword [rcx + 8], eax
mov rax, qword [rsp + 0x40]
movsxd rax, dword [rax + 8]
mov rcx, rax
call fcn.14027bb94
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x98]
mov qword [rax], rcx
cmp qword [rsp + 0x98], 0
jne 0x14010a7d4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
mov r9d, 0xfe
mov r8d, 0x2eb
lea rdx, [0x1403a9900]
xor ecx, ecx
call fcn.140124df0
mov r8d, 0x2eb
lea rdx, [0x1403a98a0]
lea rcx, [0x1403a9468]
call fcn.1400012d0
mov ecx, 0xfe
call fcn.1402742dc
mov rax, qword [rsp + 0x40]
movsxd rax, dword [rax + 8]
movsxd rcx, dword [rsp + 0x38]
mov rdx, qword [rsp + 0x68]
add rdx, rcx
mov rcx, rdx
mov rdx, qword [rsp + 0x40]
movsxd rdx, dword [rdx + 8]
mov r9, rax
mov r8, rcx
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
call fcn.140001020
mov rax, qword [rsp + 0x40]
mov dword [rax + 0x2c], 0
jmp 0x14010a848
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x60]
mov dword [rax + 8], ecx
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x38]
mov dword [rax + 0xc], ecx
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0x58]
mov dword [rax + 0x2c], ecx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x280], rcx
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
mov qword [rax + 0x278], rcx
mov dword [rsp + 0x50], 0
jmp 0x14010a8ab
mov eax, dword [rsp + 0x60]
cmp dword [rsp + 0x38], eax
jne 0x14010a899
mov dword [rsp + 0x50], 1
cmp dword [rsp + 0x58], 0
jne 0x14010a897
mov rcx, qword [rsp + 0x68]
call fcn.14027a7c0
jmp 0x14010a8ab
mov dword [rsp + 0x50], 0xfffffffc
mov rcx, qword [rsp + 0x30]
call fcn.140109ce0
cmp dword [rsp + 0x38], 0
jle 0x14010a8f3
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 0x74]
add eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x74], eax
mov rax, qword [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
mov eax, dword [rax + 0x70]
sub eax, ecx
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 0x70], eax
mov rax, qword [rsp + 0x30]
cmp dword [rax + 0x70], 0
jge 0x14010a8f3
mov rax, qword [rsp + 0x30]
mov dword [rax + 0x70], 0
jmp 0x14010a38c
mov qword [rsp + 0x48], 0
cmp dword [rsp + 0x74], 0
jne 0x14010a91b
mov rax, qword [rsp + 0x30]
add rax, 0x288
mov rcx, rax
call fcn.1400ac720
cmp dword [rsp + 0x70], 0
je 0x14010a934
mov dword [rsp + 0x50], 0xfffffffb
mov rcx, qword [rsp + 0x30]
call fcn.140109ce0
cmp dword [rsp + 0x50], 1
je 0x14010a95b
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x20]
call fcn.1401252c0
test eax, eax
jne 0x14010a95b
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x20]
call fcn.140115090
mov eax, dword [rsp + 0x50]
add rsp, 0xb8
ret