Function at 0x140054d34
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x18
movsxd rax, edx
mov r15, r8
xor ebp, ebp
sub rax, r8
xor r11d, r11d
mov rsi, r8
add rax, rcx
neg r15
mov qword [rsp], rax
mov r12, qword [rsp]
xor r10d, r10d
mov r9d, r11d
mov r14d, r11d
sar r9d, 1
mov rbx, rsi
and r14d, 1
lea edi, [r10 + 4]
lea rsi, [0x14010ee00]
mov r8d, r14d
mov eax, r9d
mov ecx, r9d
shl eax, 3
sar ecx, 0xe
or ecx, eax
mov eax, ecx
mov edx, ecx
xor ecx, r9d
and eax, 0x1f
and edx, 3
shl edx, 3
xor edx, eax
movzx eax, cl
shl edx, 3
xor edx, eax
mov eax, r9d
sar eax, 8
shl edx, 9
mov r9d, edx
or r9d, eax
movzx eax, byte [r12 + rbx]
movzx ecx, byte [rax + rsi]
movzx eax, byte [rbx]
inc rbx
xor ecx, eax
mov eax, r9d
xor eax, 0x1fe00
sar eax, 9
sub ecx, eax
mov eax, r10d
sub ecx, r8d
sar eax, 8
mov r8d, ecx
movzx ecx, cl
shl ecx, 0x11
sar r8d, 8
mov r10d, ecx
and r8d, 1
or r10d, eax
dec rdi
jne 0x140054d96
mov rbx, qword [rsp + 0x70]
mov r12, qword [rsp + 0x60]
mov r13, qword [rsp]
mov edi, 4
lea rsi, [0x14010ee00]
add rbx, rdi
mov eax, r9d
mov ecx, r9d
sar ecx, 0xe
shl eax, 3
or ecx, eax
mov eax, ecx
mov edx, ecx
xor ecx, r9d
and eax, 0x1f
and edx, 3
shl edx, 3
xor edx, eax
movzx eax, cl
mov ecx, r10d
shl ecx, 3
shl edx, 3
xor ecx, r10d
xor edx, eax
mov eax, r9d
add ecx, ecx
sar eax, 8
shl edx, 9
xor ecx, r10d
mov r9d, edx
shl ecx, 8
or r9d, eax
mov eax, r10d
xor ecx, r10d
sar eax, 8
and ecx, 0xff000
shl ecx, 5
mov r10d, ecx
mov ecx, r9d
or r10d, eax
xor ecx, 0x1fe00
sar ecx, 9
mov eax, r10d
sar eax, 0x11
add r8d, eax
movzx eax, byte [rbx + r13]
add r8d, ecx
movzx ecx, byte [rax + rsi]
movzx eax, byte [rbx]
xor ecx, eax
movzx eax, r8b
cmp eax, ecx
jne 0x140054ed2
inc rbx
sar r8d, 8
inc edi
lea rax, [rbx + r15]
cmp rax, 7
jl 0x140054e2d
mov rsi, qword [rsp + 0x70]
movsxd r13, dword [rsp + 0x68]
cmp edi, 7
jne 0x140055032
mov ebx, 6
mov edi, 0x1ff
mov eax, r9d
sar eax, 3
xor eax, r9d
and r9d, edi
sar eax, 6
shl r9d, 8
movzx ecx, al
mov eax, r10d
sar eax, 0xd
xor r9d, ecx
xor eax, r10d
sar eax, 4
movzx r8d, al
mov eax, r10d
and r10d, 0x1ffff
shl eax, 5
mov ecx, r8d
sar ecx, 3
or ecx, eax
mov eax, ecx
sar eax, 1
xor eax, ecx
movzx ecx, al
mov eax, r10d
shl eax, 8
mov edx, ecx
sar edx, 2
xor edx, ecx
sar edx, 1
xor edx, ecx
sar edx, 3
xor edx, ecx
xor edx, r8d
and edx, 0x1ffffff
mov r10d, edx
or r10d, eax
dec rbx
jne 0x140054eef
mov eax, r9d
mov ecx, r10d
sar eax, 9
sar ecx, 0x11
not eax
add eax, r14d
add ecx, eax
movzx eax, byte [r13 + r12]
movzx edx, cl
lea rcx, [0x14010ee00]
movzx ecx, byte [rax + rcx]
movzx eax, byte [rsi]
xor ecx, eax
cmp edx, ecx
jne 0x140055032
lea eax, [r13 + 1]
test eax, eax
jle 0x14005500f
mov ebx, eax
mov eax, r9d
sar eax, 3
xor eax, r9d
and r9d, edi
sar eax, 6
shl r9d, 8
movzx ecx, al
mov eax, r10d
sar eax, 0xd
xor r9d, ecx
xor eax, r10d
sar eax, 4
movzx r8d, al
mov eax, r10d
and r10d, 0x1ffff
shl eax, 5
mov ecx, r8d
sar ecx, 3
or ecx, eax
mov eax, ecx
sar eax, 1
xor eax, ecx
movzx ecx, al
mov eax, r10d
shl eax, 8
mov edx, ecx
sar edx, 2
xor edx, ecx
sar edx, 1
xor edx, ecx
sar edx, 3
xor edx, ecx
xor edx, r8d
and edx, 0x1ffffff
mov r10d, edx
or r10d, eax
dec rbx
jne 0x140054f9e
bt r9d, 8
jae 0x140055032
bt r10d, 0x15
jae 0x140055032
mov rax, qword [rsp + 0x78]
inc ebp
mov dword [rax], r9d
mov rax, qword [rsp + 0x80]
mov dword [rax], r10d
inc r11d
cmp r11d, 0x40000
jl 0x140054d71
mov eax, ebp
add rsp, 0x18
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret