Function at 0x1400164f0
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x140016b62
mov r11, rsp
mov qword [r11 + 8], rcx
push rbx
sub rsp, 0xf0
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov rax, rdx
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
neg rax
lea r14, [rdx + 2]
lea rdx, [0x140294ed0]
mov rbx, rcx
mov qword [r11 - 0x40], r15
mov qword [rsp + 0x108], rax
mov rcx, qword [rbx]
mov rdi, qword [rbx + 8]
mov rsi, qword [rbx + 0x10]
mov r9, qword [rbx + 0x18]
mov r11, qword [rbx + 0x20]
mov r12, qword [rbx + 0x28]
mov rbp, qword [rbx + 0x30]
mov r13, qword [rbx + 0x38]
mov qword [rsp + 0x28], rcx
mov r10, rcx
lea rcx, [rsp + rax + 0x36]
dec r8
mov qword [rsp + 0x118], rcx
lea rcx, [rax + rdx + 6]
mov qword [rsp + 0x110], r8
mov qword [rsp + 8], rcx
lea rcx, [rsp + rax + 0x3e]
xor r15d, r15d
mov qword [rsp], rcx
lea rcx, [rax + rdx + 0xe]
mov qword [rsp + 0x10], rcx
lea rcx, [rsp + rax + 0x46]
lea rax, [rax + rdx + 0x16]
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
movzx eax, byte [r14 - 1]
movzx edx, byte [r14 - 2]
mov r8, r11
shl rdx, 8
mov rcx, r11
or rdx, rax
movzx eax, byte [r14]
not rcx
shl rdx, 8
and rcx, rbp
or rdx, rax
movzx eax, byte [r14 + 1]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 5]
shl rdx, 8
or rdx, rax
ror r8, 0x29
mov rax, r11
ror rax, 0x12
mov qword [rsp + r15*8 + 0x30], rdx
xor r8, rax
mov rax, r11
ror rax, 0xe
xor r8, rax
mov rax, r12
and rax, r11
xor rcx, rax
lea rax, [0x140294ed0]
add r8, rcx
mov rcx, rdi
add r8, qword [rax + r15*8]
xor rcx, r10
mov rax, r10
add r8, rdx
and rcx, rsi
mov rdx, r10
add r8, r13
ror rdx, 0x27
ror rax, 0x22
xor rdx, rax
mov rax, r10
lea r13, [r8 + r9]
ror rax, 0x1c
xor rdx, rax
mov rax, rdi
and rax, r10
xor rcx, rax
movzx eax, byte [r14 + 7]
add rdx, rcx
lea r9, [rdx + r8]
movzx edx, byte [r14 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 8]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 9]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0xa]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0xb]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0xc]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0xd]
shl rdx, 8
or rdx, rax
mov rax, qword [rsp + 0x118]
mov r8, r13
mov rcx, r13
mov qword [rax + r14], rdx
ror r8, 0x29
not rcx
and rcx, r12
mov rax, r13
ror rax, 0x12
xor r8, rax
mov rax, r13
ror rax, 0xe
xor r8, rax
mov rax, r11
and rax, r13
xor rcx, rax
mov rax, qword [rsp + 8]
add r8, rcx
mov rcx, r10
add r8, qword [rax + r14]
xor rcx, r9
mov rax, r9
add r8, rdx
and rcx, rdi
mov rdx, r9
add r8, rbp
ror rdx, 0x27
ror rax, 0x22
xor rdx, rax
lea rbp, [r8 + rsi]
mov rax, r9
ror rax, 0x1c
xor rdx, rax
mov rax, r10
and rax, r9
xor rcx, rax
movzx eax, byte [r14 + 0xf]
add rdx, rcx
mov rcx, rbp
lea rsi, [rdx + r8]
movzx edx, byte [r14 + 0xe]
not rcx
shl rdx, 8
and rcx, r11
mov r8, rbp
or rdx, rax
movzx eax, byte [r14 + 0x10]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0x11]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0x12]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0x13]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0x14]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 + 0x15]
shl rdx, 8
or rdx, rax
mov rax, qword [rsp]
ror r8, 0x29
mov qword [rax + r14], rdx
mov rax, rbp
ror rax, 0x12
xor r8, rax
mov rax, rbp
ror rax, 0xe
xor r8, rax
mov rax, r13
and rax, rbp
xor rcx, rax
mov rax, qword [rsp + 0x10]
add r8, rcx
add r8, qword [rax + r14]
add r8, rdx
add r8, r12
lea r12, [r8 + rdi]
mov rdx, rsi
mov rax, rsi
ror rdx, 0x27
ror rax, 0x22
mov rcx, r9
xor rdx, rax
xor rcx, rsi
mov rax, rsi
ror rax, 0x1c
and rcx, r10
add r15, 4
xor rdx, rax
mov rax, r9
add r14, 0x20
and rax, rsi
xor rcx, rax
movzx eax, byte [r14 - 9]
add rdx, rcx
mov rcx, r12
lea rdi, [rdx + r8]
movzx edx, byte [r14 - 0xa]
not rcx
shl rdx, 8
and rcx, r13
mov r8, r12
or rdx, rax
movzx eax, byte [r14 - 8]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 - 7]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 - 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 - 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 - 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [r14 - 3]
shl rdx, 8
or rdx, rax
mov rax, qword [rsp + 0x20]
ror r8, 0x29
mov qword [rax + r14 - 0x20], rdx
mov rax, r12
ror rax, 0x12
xor r8, rax
mov rax, r12
ror rax, 0xe
xor r8, rax
mov rax, rbp
and rax, r12
xor rcx, rax
mov rax, qword [rsp + 0x18]
add r8, rcx
mov rcx, rsi
add r8, qword [rax + r14 - 0x20]
xor rcx, rdi
mov rax, rdi
add r8, rdx
and rcx, r9
mov rdx, rdi
add r8, r11
ror rdx, 0x27
ror rax, 0x22
xor rdx, rax
mov rax, rdi
lea r11, [r8 + r10]
ror rax, 0x1c
xor rdx, rax
mov rax, rsi
and rax, rdi
xor rcx, rax
add rdx, rcx
cmp r15, 0x10
lea r10, [rdx + r8]
jl 0x1400165b3
lea rax, [0x140294ed0]
mov qword [rsp + 0x18], r14
mov qword [rsp + 0x118], r13
mov r13d, reloc.WS2_32.dll_recv
lea r14, [rax + r15*8]
mov eax, reloc.WS2_32.dll_recvfrom
mov qword [rsp + 0x10], r9
mov qword [rsp + 8], 0x40
mov qword [rsp], rax
lea ebx, [r13 - 2]
lea r15d, [r13 - 7]
nop word [rax + rax]
and eax, 0xf
mov r9, r13
add r14, 8
mov rdx, qword [rsp + rax*8 + 0x30]
and r9d, 0xf
mov rax, rbx
and eax, 0xf
inc rbx
inc r13
mov rcx, qword [rsp + rax*8 + 0x30]
mov r8, rcx
mov rax, rcx
shr rcx, 6
ror r8, 0x3d
ror rax, 0x13
xor r8, rax
mov rax, rdx
xor r8, rcx
mov rcx, rdx
shr rdx, 7
ror rcx, 8
ror rax, 1
xor rcx, rax
mov rax, r15
inc r15
xor rcx, rdx
and eax, 0xf
add r8, rcx
mov rcx, r11
add r8, qword [rsp + rax*8 + 0x30]
mov rax, r11
add qword [rsp + r9*8 + 0x30], r8
mov rdx, qword [rsp + r9*8 + 0x30]
ror rcx, 0x29
ror rax, 0x12
mov r8, r11
mov r9, rbp
xor rcx, rax
not r8
mov rax, r11
ror rax, 0xe
and r8, rbp
xor rcx, rax
mov rax, r12
and rax, r11
xor r8, rax
lea rax, [rdx + rcx]
mov rdx, r10
add r8, rax
mov rax, r10
mov rcx, rdi
add r8, qword [r14 - 8]
xor rcx, r10
add r8, qword [rsp + 0x118]
ror rdx, 0x27
ror rax, 0x22
xor rdx, rax
and rcx, rsi
mov rax, r10
ror rax, 0x1c
mov qword [rsp + 0x118], rbp
mov rbp, r12
xor rdx, rax
mov rax, rdi
mov r12, r11
and rax, r10
xor rcx, rax
mov rax, qword [rsp]
add rdx, rcx
mov rcx, qword [rsp + 0x10]
inc rax
sub qword [rsp + 8], 1
lea r11, [r8 + rcx]
mov rcx, rsi
mov rsi, rdi
mov rdi, r10
mov qword [rsp + 0x10], rcx
lea r10, [rdx + r8]
mov qword [rsp], rax
jne 0x140016970
mov rbx, qword [rsp + 0x100]
mov rax, qword [rsp + 0x28]
mov r8, qword [rsp + 0x110]
mov r14, qword [rsp + 0x18]
add rax, r10
lea rdx, [0x140294ed0]
mov qword [rbx], rax
mov rax, qword [rbx + 8]
add rax, rdi
mov qword [rbx + 8], rax
mov rax, qword [rbx + 0x10]
add rax, rsi
mov qword [rbx + 0x10], rax
mov rax, qword [rbx + 0x18]
add rax, rcx
mov qword [rbx + 0x18], rax
mov rax, qword [rbx + 0x20]
add rax, r11
mov qword [rbx + 0x20], rax
mov rax, qword [rbx + 0x28]
add rax, r12
mov qword [rbx + 0x28], rax
mov rax, qword [rbx + 0x30]
add rax, rbp
mov qword [rbx + 0x30], rax
mov rax, qword [rbx + 0x38]
add rax, r9
mov qword [rbx + 0x38], rax
mov rax, qword [rsp + 0x108]
add rax, 0xffffffffffffff80
mov qword [rsp + 0x108], rax
test r8, r8
jne 0x140016540
mov r15, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xc0]
mov r13, qword [rsp + 0xc8]
mov r12, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xe8]
add rsp, 0xf0
pop rbx
repz ret