Function at 0x1800a8540
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x10], edx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
movsxd rbp, r8d
xor ebx, ebx
mov r11d, r9d
mov qword [rsp], rbp
mov rsi, rcx
mov edx, ebx
lea rax, [rbp*8]
add rax, rbp
lea r14, [rax + rax]
movzx r13d, byte [r14 + rcx + 0x550]
movzx r15d, r13b
shr r15b, 5
and r9d, 0x80000001
jge 0x1800a85a4
dec r9d
or r9d, 0xfffffffe
inc r9d
movzx r10d, r15b
movzx edi, r9b
test r15b, r15b
je 0x1800a85d5
movzx r8d, byte [r14 + rcx + 0x550]
nop word [rax + rax]
movzx ecx, dl
movzx eax, r8b
shr al, cl
inc edx
and al, 1
xor dil, al
cmp edx, r10d
jl 0x1800a85c0
mov eax, r11d
mov r8d, ebx
cdq
sub eax, edx
sar eax, 1
mov r12d, eax
movzx r11d, al
test r15b, r15b
je 0x1800a861c
movzx ebp, byte [r14 + rsi + 0x551]
nop word [rax + rax]
movzx ecx, r8b
movzx edx, bpl
shr dl, cl
inc r8d
and dl, 1
xor r11b, dl
cmp r8d, r10d
jl 0x1800a8600
mov rbp, qword [rsp]
movsxd rax, dword [rsp + 0x48]
and r13b, 0x1f
add r13b, 0x10
shl r15b, 4
add r13b, r15b
add r13b, r13b
lea rax, [rax + rax*8]
add r13b, dil
lea rcx, [rax + rax]
mov byte [rsi + rax*2 + 0x550], r13b
movzx eax, byte [r14 + rsi + 0x551]
mov edi, 1
and al, 0x1f
mov qword [rsp], rcx
add al, 0x10
add al, r15b
mov r15, rcx
add al, al
add al, r11b
mov byte [rcx + rsi + 0x551], al
movzx ecx, word [r14 + rsi + 0x540]
mov word [r15 + rsi + 0x540], cx
movsx eax, word [r14 + rsi + 0x544]
imul eax, r9d
cdq
sub eax, edx
sar eax, 1
mov edx, eax
add dx, cx
mov word [r15 + rsi + 0x540], dx
test byte [r14 + rsi + 0x544], dil
je 0x1800a86be
test r9d, r9d
je 0x1800a86be
test byte [r14 + rsi + 0x550], dil
jne 0x1800a86be
movzx eax, di
jmp 0x1800a86c0
mov eax, ebx
add dx, ax
lea rax, [rbp + 0x4b]
lea rax, [rax + rax*8]
mov word [r15 + rsi + 0x540], dx
movzx ecx, word [r14 + rsi + 0x542]
lea r8, [rsi + rax*2]
mov word [r15 + rsi + 0x542], cx
movsx eax, word [r8]
imul eax, r12d
cdq
sub eax, edx
sar eax, 1
add ax, cx
mov word [r15 + rsi + 0x542], ax
test byte [r8], dil
je 0x1800a871c
test r12d, r12d
je 0x1800a871c
test byte [r14 + rsi + 0x551], dil
jne 0x1800a871c
movzx ecx, di
jmp 0x1800a871e
mov ecx, ebx
add ax, cx
mov ecx, ebx
mov word [r15 + rsi + 0x542], ax
movsx eax, word [r14 + rsi + 0x544]
cdq
sub eax, edx
sar eax, 1
mov word [r15 + rsi + 0x544], ax
movzx edx, byte [r14 + rsi + 0x550]
and edx, edi
test r9d, r9d
sete cl
cmp edx, ecx
je 0x1800a8767
test byte [r14 + rsi + 0x544], dil
je 0x1800a8767
movzx ecx, di
jmp 0x1800a8769
mov ecx, ebx
add ax, cx
mov ecx, ebx
mov word [r15 + rsi + 0x544], ax
movsxd rax, dword [rsp + 0x48]
add rax, 0x4b
lea rax, [rax + rax*8]
lea r9, [rsi + rax*2]
movsx eax, word [r8]
cdq
mov qword [rsp + 8], r9
sub eax, edx
sar eax, 1
mov word [r9], ax
movzx edx, byte [r14 + rsi + 0x551]
and edx, edi
test r12d, r12d
sete cl
cmp edx, ecx
je 0x1800a87b4
test byte [r8], dil
jne 0x1800a87b7
movzx edi, bx
add di, ax
lea r8d, [r10 + 1]
xor r11b, r11b
mov word [r9], di
mov edx, ebx
test r8d, r8d
je 0x1800a87f5
movzx r9d, byte [r15 + rsi + 0x550]
nop word [rax + rax]
movzx ecx, dl
movzx eax, r9b
shr al, cl
inc edx
and al, 1
xor r11b, al
cmp edx, r8d
jl 0x1800a87e0
xor r10b, r10b
mov edx, ebx
test r8d, r8d
je 0x1800a8825
movzx r9d, byte [r15 + rsi + 0x551]
nop dword [rax + rax]
movzx ecx, dl
movzx eax, r9b
shr al, cl
inc edx
and al, 1
xor r10b, al
cmp edx, r8d
jl 0x1800a8810
movsx r9d, word [r15 + rsi + 0x544]
movzx ebp, word [r15 + rsi + 0x540]
mov eax, r9d
cdq
movzx r8d, r11b
sub eax, edx
sar eax, 1
movsx edx, ax
imul r8d, edx
add r8w, bp
mov word [r15 + rsi + 0x548], r8w
and r9d, 0x80000001
jge 0x1800a886a
dec r9d
or r9d, 0xfffffffe
inc r9d
movzx r14d, word [r15 + rsi + 0x542]
add r9w, ax
test r11b, r11b
movzx r8d, r10b
mov eax, ebx
cmove ax, r9w
movsx r9d, di
add ax, bp
mov word [r15 + rsi + 0x54a], ax
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
movsx edx, ax
imul r8d, edx
add r8w, r14w
mov word [r15 + rsi + 0x54c], r8w
and r9d, 0x80000001
jge 0x1800a88c4
dec r9d
or r9d, 0xfffffffe
inc r9d
movsxd r8, dword [rsp + 0x60]
add r9w, ax
test r10b, r10b
mov eax, ebx
cmove ax, r9w
add ax, r14w
mov word [r15 + rsi + 0x54e], ax
cmp r8d, 0xffffffff
je 0x1800a8a32
mov r12, qword [rsp]
lea rdx, [r8 + 2]
lea rax, [rdx + 0x14]
mov rcx, r8
add rax, rax
lea r13, [r8 + 1]
add rcx, rcx
add r13, r13
mov rdi, r8
mov word [rsi + rax*8], bp
lea rax, [r8 + 0x14]
add rax, rax
lea r14, [rsi + rcx*8]
mov word [rsi + rax*8], bp
movzx r15d, word [r15 + rsi + 0x542]
mov word [rsi + r13*8 + 0x144], r15w
mov word [r14 + 0x144], r15w
movsx eax, word [r12 + rsi + 0x544]
test al, 1
je 0x1800a894e
mov ecx, ebx
test r11b, r11b
je 0x1800a8953
mov ecx, 0xffffffff
add rdx, rdx
lea r11, [rsi + rdx*8]
cdq
sub eax, edx
sar eax, 1
mov r9d, eax
add r9w, bp
mov rbp, qword [rsp + 8]
add r9w, cx
mov word [r11 + 0x142], r9w
mov word [r14 + 0x142], r9w
movsx eax, word [rbp]
test al, 1
je 0x1800a898c
test r10b, r10b
je 0x1800a8991
mov ebx, 0xffffffff
cdq
inc r9w
sub eax, edx
movsxd rdx, dword [rsp + 0x60]
sar eax, 1
add rdx, 3
lea r8d, [r15 + rax]
add r8w, bx
lea rcx, [rdx + 0x14]
mov word [rsi + r13*8 + 0x146], r8w
lea rax, [rdi + 0x15]
add rax, rax
mov word [r14 + 0x146], r8w
add rdx, rdx
inc r8w
add rcx, rcx
mov word [rsi + rax*8], r9w
mov word [rsi + rcx*8], r9w
movzx eax, word [r12 + rsi + 0x540]
dec ax
add ax, word [r12 + rsi + 0x544]
mov word [rsi + rdx*8 + 0x142], ax
mov word [rsi + r13*8 + 0x142], ax
mov word [rsi + rdx*8 + 0x144], r8w
mov word [r11 + 0x144], r8w
movzx eax, word [r12 + rsi + 0x542]
dec ax
add ax, word [rbp]
mov word [rsi + rdx*8 + 0x146], ax
mov word [r11 + 0x146], ax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
ret