Function at 0x14000e9e0
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x14000f118
mov r11, rsp
push rsi
sub rsp, 0x2f0
mov rax, qword [0x1400a5028]
xor rax, rsp
mov qword [rsp + 0x2c0], rax
mov qword [r11 + 0x10], rbx
mov rsi, rcx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rdi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x18], r13
mov qword [rsp + 0x20], rcx
xor ecx, ecx
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x30], rdx
mov dword [rsp], ecx
nop dword [rax]
mov r9d, ecx
lea r11, [rsp + 0x50]
shl r9d, 7
mov r10d, 3
add r9, rdx
nop word [rax + rax]
lea eax, [r10*8 - 0x18]
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 - 0x10]
mov qword [r11 - 0x10], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 - 8]
mov qword [r11 - 8], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8]
mov qword [r11], rdx
movzx edx, byte [rax + r9]
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
shl rdx, 8
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 8]
mov qword [r11 + 8], rdx
movzx edx, byte [rax + r9]
shl rdx, 8
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x10]
mov qword [r11 + 0x10], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x18]
mov qword [r11 + 0x18], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
lea r11, [r11 + 0x40]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x20]
mov qword [r11 - 0x20], rdx
lea r10d, [r10 + 8]
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10 - 3]
mov qword [r11 - 0x18], rdx
cmp eax, 0x10
jb 0x14000ea60
mov r10, qword [rsp + 0xb0]
lea rax, [rsp + 0xb0]
mov ebp, recvfrom
nop dword [rax]
mov r11, qword [rax - 0x68]
lea rax, [rax + 0x20]
mov r8, r10
mov rcx, r10
rol rcx, 3
mov rdx, r11
ror rdx, 8
ror r8, 0x13
xor r8, rcx
shr r10, 6
xor r10, r8
mov rcx, r11
ror rcx, 1
xor rdx, rcx
mov rcx, r11
shr rcx, 7
xor rdx, rcx
add r10, rdx
add r10, qword [rax - 0x90]
add r10, qword [rax - 0x48]
mov qword [rax - 0x10], r10
mov rbx, qword [rax - 0x80]
mov r8, qword [rax - 0x18]
mov r9, rbx
mov rdx, r8
ror r9, 8
ror rdx, 0x13
mov rcx, rbx
ror rcx, 1
xor r9, rcx
mov rcx, rbx
shr rcx, 7
xor r9, rcx
mov rcx, r8
rol rcx, 3
xor rdx, rcx
shr r8, 6
xor rdx, r8
mov rcx, r10
add r9, rdx
rol rcx, 3
add r9, qword [rax - 0x40]
mov r8, r10
ror r8, 0x13
add r11, r9
xor r8, rcx
mov qword [rax - 8], r11
mov rdi, qword [rax - 0x78]
shr r10, 6
mov rdx, rdi
xor r10, r8
ror rdx, 8
mov rcx, rdi
ror rcx, 1
xor rdx, rcx
mov rcx, rdi
shr rcx, 7
xor rdx, rcx
add r10, rdx
add r10, qword [rax - 0x38]
add r10, rbx
mov qword [rax], r10
mov rdx, qword [rax - 0x70]
mov r8, rdx
mov rcx, rdx
shr rdx, 7
ror r8, 8
ror rcx, 1
xor r8, rcx
mov rcx, r11
xor r8, rdx
rol rcx, 3
mov rdx, r11
shr r11, 6
ror rdx, 0x13
xor rdx, rcx
xor rdx, r11
add r8, rdx
add r8, qword [rax - 0x30]
add r8, rdi
mov qword [rax + 8], r8
sub rbp, 1
jne 0x14000ee00
mov rax, qword [rsi + 8]
mov r14, qword [rsi + 0x10]
mov rbx, rax
mov r15, qword [rsi + 0x18]
mov r8, qword [rsi + 0x20]
mov rdi, qword [rsi + 0x28]
mov r12, qword [rsi + 0x30]
mov r13, qword [rsi + 0x38]
mov qword [rsp + 0x18], rax
mov rax, qword [rsi + 0x40]
mov rsi, rax
mov qword [rsp + 0x10], 0x28
nop word [rax + rax]
mov r10, rbx
lea rbp, [rbp + 0x10]
rol r10, 0x1e
mov r9, rdi
rol r9, 0x17
mov rax, rdi
ror rax, 0x12
mov rcx, rdi
xor r9, rax
not rcx
and rcx, r13
mov rax, rdi
ror rax, 0xe
mov r11, r14
xor r9, rax
mov rax, r12
and rax, rdi
xor rcx, rax
lea rax, [0x140098180]
add r9, rcx
mov rcx, r14
add r9, qword [rax + rbp - 0x10]
xor rcx, r15
add r9, qword [rsp + rbp + 0x30]
and rcx, rbx
add r9, rsi
mov rax, rbx
ror rax, 0x1c
add r8, r9
xor r10, rax
mov rsi, r12
mov rax, rbx
rol rax, 0x19
xor r10, rax
mov rax, r14
and rax, r15
xor rcx, rax
mov rax, r8
ror rax, 0x12
add r10, rcx
add r10, r9
mov rcx, r8
not rcx
mov r9, r8
rol r9, 0x17
and rcx, r12
xor r9, rax
mov rdx, r10
mov rax, r8
ror rdx, 0x1c
ror rax, 0xe
mov r12, r8
xor r9, rax
mov rax, r8
and rax, rdi
mov r8, r14
xor rcx, rax
mov r14, r10
add r9, rcx
lea rax, [0x140098180]
add r9, qword [rsp + rbp + 0x38]
mov rcx, r8
add r9, qword [rax + rbp - 8]
xor rcx, rbx
add r9, r13
and rcx, r10
mov rax, r10
mov r13, rdi
rol rax, 0x19
xor rdx, rax
mov rax, r10
rol rax, 0x1e
lea rdi, [r15 + r9]
mov r15, rbx
xor rax, rdx
and rbx, r8
add rax, r9
xor rbx, rcx
add rbx, rax
sub qword [rsp + 0x10], 1
jne 0x14000ef60
mov ecx, dword [rsp]
mov rax, qword [rsp + 0x18]
inc ecx
mov rdx, qword [rsp + 0x30]
add rax, rbx
mov qword [rsp + 8], rsi
mov rsi, qword [rsp + 0x20]
mov dword [rsp], ecx
mov qword [rsi + 8], rax
add qword [rsi + 0x10], r10
add qword [rsi + 0x18], r15
add qword [rsi + 0x20], r8
add qword [rsi + 0x28], rdi
add qword [rsi + 0x30], r12
mov rax, qword [rsp + 8]
add qword [rsi + 0x38], r13
add qword [rsi + 0x40], rax
mov eax, ecx
cmp rax, qword [rsp + 0x28]
jb 0x14000ea40
mov r15, qword [rsp + 0x2d0]
mov r14, qword [rsp + 0x2d8]
mov r13, qword [rsp + 0x2e0]
mov r12, qword [rsp + 0x2e8]
mov rdi, qword [rsp + 0x318]
mov rbp, qword [rsp + 0x310]
mov rbx, qword [rsp + 0x308]
mov rcx, qword [rsp + 0x2c0]
xor rcx, rsp
call fcn.140056cc0
add rsp, 0x2f0
pop rsi
ret