Function at 0x18023ea80
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x20
mov ebx, dword [rcx + 0xb8]
mov eax, r9d
mov qword [rsp + 0x50], rbp
mov r11, rdx
mov edx, dword [rcx + 0xa0]
mov esi, r9d
mov qword [rsp + 0x18], r12
sar eax, 0x10
imul eax, ebx
mov qword [rsp + 0x10], r13
mov qword [rsp + 8], r14
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x40], edx
movsxd r10, eax
mov rax, qword [rcx + 0xa8]
mov ecx, dword [r8]
mov qword [rsp], r15
lea r10, [rax + r10*4]
mov qword [rsp + 0x48], r10
nop dword [rax]
mov eax, dword [r11]
xor r9d, r9d
test eax, eax
cmovns r9d, eax
mov eax, ecx
sar eax, 0x10
cmp eax, edx
jl 0x18023eafc
mov ecx, edx
shl ecx, 0x10
dec ecx
cmp ecx, r9d
jle 0x18023ec56
mov edi, ecx
mov r15d, r9d
movzx ecx, cx
mov eax, 0xa000a001
add ecx, 0x199a
sar r15d, 0x10
mul ecx
movzx ecx, r9w
mov eax, 0xa000a001
add ecx, 0x199a
movsxd rbx, r15d
mov r13d, edx
sar rbx, 1
mul ecx
add rbx, r10
sar edi, 0x10
shr edx, 0xd
mov r10d, r15d
and r10d, 1
shr r13d, 0xd
movzx r14d, r10b
mov r9d, send
movzx ebp, byte [rbx]
shl r14b, 2
movzx eax, bpl
lea r12d, [r10*4]
mov ecx, r12d
shl r9b, cl
movzx ecx, r14b
shr al, cl
not r9b
and al, 0xf
and r9b, bpl
sub al, dl
mov ecx, r12d
cmp r15d, edi
jne 0x18023eba1
add al, r13b
movzx edx, al
shr dl, 4
neg dl
or dl, al
and dl, 0xf
shl dl, cl
or dl, r9b
jmp 0x18023ec4b
add al, 5
movzx edx, al
shr dl, 4
neg dl
or dl, al
mov eax, r10d
and dl, 0xf
xor r10d, 1
shl dl, cl
or dl, r9b
mov byte [rbx], dl
add rbx, rax
lea eax, [r15 + 1]
cmp eax, edi
jge 0x18023ec16
sub edi, eax
nop dword [rax + rax]
movzx eax, byte [rbx]
movzx ecx, r10b
shl cl, 2
shr al, cl
lea ecx, [r10*4]
and al, 0xf
add al, 5
movzx edx, al
shr dl, 4
neg dl
or dl, al
mov eax, send
shl al, cl
and dl, 0xf
not al
shl dl, cl
and al, byte [rbx]
or dl, al
movsxd rax, r10d
mov byte [rbx], dl
xor r10d, 1
add rbx, rax
sub rdi, 1
jne 0x18023ebd0
movzx eax, byte [rbx]
movzx ecx, r10b
shl cl, 2
shr al, cl
lea ecx, [r10*4]
and al, 0xf
add al, r13b
movzx edx, al
shr dl, 4
neg dl
or dl, al
mov eax, send
shl al, cl
and dl, 0xf
not al
shl dl, cl
and al, byte [rbx]
or dl, al
mov r10, qword [rsp + 0x48]
mov byte [rbx], dl
mov ebx, dword [rsp + 0x58]
cmp esi, dword [rsp + 0x60]
je 0x18023ed40
mov ecx, dword [r11]
mov edx, dword [r11 + 4]
cmp si, 0xd555
je 0x18023ecd1
mov r9d, dword [r11 + 0x18]
add r9d, ecx
mov ecx, dword [r11 + 0x20]
add ecx, edx
mov dword [r11], r9d
mov dword [r11 + 4], ecx
test ecx, ecx
jle 0x18023ec98
sub ecx, dword [r11 + 0x10]
mov dword [r11 + 4], ecx
mov ecx, dword [r11 + 0xc]
add ecx, r9d
mov dword [r11], ecx
mov eax, dword [r8 + 0x20]
add dword [r8 + 4], eax
mov ecx, dword [r8 + 0x18]
add ecx, dword [r8]
mov eax, dword [r8 + 4]
mov dword [r8], ecx
test eax, eax
jle 0x18023ecc1
sub eax, dword [r8 + 0x10]
add ecx, dword [r8 + 0xc]
mov dword [r8], ecx
mov dword [r8 + 4], eax
mov edx, dword [rsp + 0x40]
mov eax, 0x5555
add esi, eax
jmp 0x18023eae0
mov r9d, dword [r11 + 0x1c]
add r9d, ecx
mov ecx, dword [r11 + 0x24]
add ecx, edx
mov dword [r11], r9d
mov dword [r11 + 4], ecx
test ecx, ecx
jle 0x18023ecfb
sub ecx, dword [r11 + 0x10]
mov dword [r11 + 4], ecx
mov ecx, dword [r11 + 0xc]
add ecx, r9d
mov dword [r11], ecx
mov eax, dword [r8 + 0x24]
add dword [r8 + 4], eax
mov ecx, dword [r8 + 0x1c]
add ecx, dword [r8]
mov eax, dword [r8 + 4]
mov dword [r8], ecx
test eax, eax
jle 0x18023ed24
sub eax, dword [r8 + 0x10]
add ecx, dword [r8 + 0xc]
mov dword [r8], ecx
mov dword [r8 + 4], eax
mov edx, dword [rsp + 0x40]
movsxd rax, ebx
lea r10, [r10 + rax*4]
mov eax, 0x5556
add esi, eax
mov qword [rsp + 0x48], r10
jmp 0x18023eae0
mov r15, qword [rsp]
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x10]
mov r12, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop rdi
pop rsi
pop rbx
ret