Function at 0x140012a80
Capabilities:
Encode data using xor
Send data
Send data on socket

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x180
mov rax, qword [0x1400e5558]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov ebx, dword [rdx + 9]
mov eax, 0x100
mov edi, dword [rsp + 0x1e0]
movzx r14d, r8w
mov r15, rdx
mov r12, rcx
mov esi, edi
lea rcx, [rsp + 0x20]
shl esi, 8
lea r8d, [rax + 0x4f]
mov r13d, ebx
mov ebp, r9d
sub r13d, esi
cmp r13d, eax
cmova r13d, eax
xor edx, edx
call fcn.14007c9f0
movzx eax, byte [r15 + 0xd]
lea rcx, [rsp + 0x6f]
mov byte [rsp + 0x6e], al
movzx eax, byte [r15]
mov dword [rsp + 0x59], ebp
mov edx, esi
add rdx, qword [r15 + 1]
mov r8d, r13d
mov byte [rsp + 0x41], al
mov dword [rsp + 0x27], ebx
mov word [rsp + 0x51], r13w
mov word [rsp + 0x38], r14w
mov dword [rsp + 0x3b], edi
mov ebp, r13d
call fcn.14007c340
xor ecx, ecx
mov esi, 4
xor ebx, ebx
mov edi, esi
xor r8d, r8d
mov r14d, 0x15ae
nop word [rax + rax]
xor r9d, r9d
xor r10d, r10d
cmp rdi, r14
mov r11, rdi
cmova r11, r14
sub rdi, r11
cmp r11, 2
jb 0x140012b96
lea rdx, [r11 - 2]
shr rdx, 1
inc rdx
imul rax, rdx, 0xfffffffffffffffe
add r11, rax
nop word [rax + rax]
movsx eax, byte [r8 + r12 + 0x1454]
add ecx, eax
movsx eax, byte [r8 + r12 + 0x1455]
add r9d, ecx
add r8, 2
add ecx, eax
add r10d, ecx
sub rdx, 1
jne 0x140012b70
test r11, r11
je 0x140012bab
movsx eax, byte [r8 + r12 + 0x1454]
add ecx, eax
add ebx, ecx
inc r8
lea eax, [r9 + r10]
add ebx, eax
mov eax, 0x7ff87f8f
imul ecx
sub edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfff1
add ecx, eax
mov eax, 0x7ff87f8f
imul ebx
sub edx, ebx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfff1
add ebx, eax
test rdi, rdi
jne 0x140012b40
shl ebx, 0x10
movzx eax, cx
or ebx, eax
cmp ebx, dword [r12 + 0x1458]
jne 0x140012ed8
xor ecx, ecx
xor ebx, ebx
xor r8d, r8d
nop dword [rax]
xor r9d, r9d
xor r10d, r10d
cmp rsi, r14
mov r11, rsi
cmova r11, r14
sub rsi, r11
cmp r11, 2
jb 0x140012c66
lea rdx, [r11 - 2]
shr rdx, 1
inc rdx
imul rax, rdx, 0xfffffffffffffffe
add r11, rax
nop word [rax + rax]
movsx eax, byte [r8 + r12 + 0x145c]
add ecx, eax
movsx eax, byte [r8 + r12 + 0x145d]
add r9d, ecx
add r8, 2
add ecx, eax
add r10d, ecx
sub rdx, 1
jne 0x140012c40
test r11, r11
je 0x140012c7b
movsx eax, byte [r8 + r12 + 0x145c]
add ecx, eax
add ebx, ecx
inc r8
lea eax, [r10 + r9]
add ebx, eax
mov eax, 0x7ff87f8f
imul ecx
sub edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfff1
add ecx, eax
mov eax, 0x7ff87f8f
imul ebx
sub edx, ebx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfff1
add ebx, eax
test rsi, rsi
jne 0x140012c10
shl ebx, 0x10
movzx eax, cx
or ebx, eax
cmp ebx, dword [r12 + 0x1460]
jne 0x140012ed8
mov r9d, dword [r12 + 0x145c]
mov ecx, dword [r12 + 0x1454]
test r13d, r13d
je 0x140012d15
lea rdx, [rsp + 0x6f]
mov r8, rbp
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
ror al, cl
xor al, r9b
mov byte [rdx - 1], al
sub r8, 1
jne 0x140012d00
mov eax, r13d
shr eax, 1
je 0x140012d55
lea r8, [rsp + 0x6f]
mov r10d, eax
lea r9d, [r13 - 1]
nop dword [rax + rax]
movsxd rax, r9d
lea rcx, [rsp + 0x6f]
add rcx, rax
movzx eax, byte [r8]
dec r9d
lea r8, [r8 + 1]
movzx edx, byte [rcx]
mov byte [rcx], al
mov byte [r8 - 1], dl
sub r10, 1
jne 0x140012d30
xor ecx, ecx
xor ebx, ebx
test r13d, r13d
je 0x140012e17
xor r8d, r8d
nop word [rax + rax]
xor r9d, r9d
xor r10d, r10d
cmp rbp, r14
mov r11, rbp
cmova r11, r14
sub rbp, r11
cmp r11, 2
jb 0x140012dc0
lea rdx, [r11 - 2]
shr rdx, 1
inc rdx
imul rax, rdx, 0xfffffffffffffffe
add r11, rax
nop word [rax + rax]
movsx eax, byte [rsp + r8 + 0x6f]
add ecx, eax
movsx eax, byte [rsp + r8 + 0x70]
add r9d, ecx
add r8, 2
add ecx, eax
add r10d, ecx
sub rdx, 1
jne 0x140012da0
test r11, r11
je 0x140012dd2
movsx eax, byte [rsp + r8 + 0x6f]
add ecx, eax
add ebx, ecx
inc r8
lea eax, [r10 + r9]
add ebx, eax
mov eax, 0x7ff87f8f
imul ecx
sub edx, ecx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfff1
add ecx, eax
mov eax, 0x7ff87f8f
imul ebx
sub edx, ebx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfff1
add ebx, eax
test rbp, rbp
jne 0x140012d70
movzx eax, cx
lea rdi, [rsp + 0x20]
shl ebx, 0x10
or ebx, eax
lea eax, [r13 + 0x4f]
movsxd rcx, eax
lea rax, [rsp + 0x20]
add rdi, rcx
mov dword [rsp + 0x6a], ebx
lea rbx, [rsp + 0x20]
cmp rax, rdi
jae 0x140012ed8
movabs rsi, 0x82121723712743
nop
mov rax, rdi
sub rax, rbx
cmp rax, 0x7fffffff
ja 0x140012e95
mov rcx, qword [r12 + 0x1a0]
xor r9d, r9d
xor rcx, rsi
mov r8d, eax
mov rdx, rbx
call sub.WS2_32.dll_send
test eax, eax
jg 0x140012e89
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
jne 0x140012ece
jmp 0x140012e8e
cdqe
add rbx, rax
cmp rbx, rdi
jb 0x140012e50
jmp 0x140012ed8
lea rdx, [0x1400b5428]
lea rcx, [0x1400ec9f0]
call fcn.140004f40
mov rcx, rax
lea rdx, str.NetworkManager::send_fragment
call fcn.140004f40
mov rcx, rax
lea rdx, str.__ERROR__Attempting_to_send_more_than_INT32_MAX_data_over_socket
call fcn.140004f40
mov rcx, rax
call fcn.140005c50
mov rax, qword [r12]
mov rcx, r12
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.140076350
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret