Function at 0x7ffbf1d2bc54
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
xor eax, eax
test byte [rcx], 1
mov rbp, rdx
mov qword [r11 + 0x18], rax
mov r12, rcx
je 0x7ffbf1d2bb9e
xor esi, esi
mov qword [rsp + 0x20], rsi
cmp dword [rcx + 4], eax
jbe 0x7ffbf1d2bb9e
mov rax, qword [rsp + 0xa8]
lea r15, [rcx + 8]
lea rbp, [0x7ffbf1ca0000]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x28], r15
mov rdx, r15
mov rcx, rax
mov eax, 0x43c84e6c
mov r10d, dword [r15]
mov rax, qword [0x7ffbf1cf0238]
mov r11d, dword [r15 + 4]
and r10d, 0xfffffff
mov rcx, rbp
add r10, rbp
and r11d, 0xfffffff
sub rcx, rax
mov qword [rsp + 0xc8], rcx
jne 0x7ffbf1d2b826
xor r9d, r9d
test r11, r11
je 0x7ffbf1d2bb65
mov eax, dword [rsp + 0xc4]
mov r8d, dword [rsp + 0xc0]
movzx ecx, byte [r9 + r10]
inc r9
add ecx, 0x5d320f68
add r8d, ecx
add ecx, eax
mov eax, ecx
imul eax, eax, 0x70da
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rax, 0x5d320f68
mov qword [rsp + 0xc8], rax
mov ecx, dword [rsp + 0xc8]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
add r8d, eax
cmp r9, r11
jb 0x7ffbf1d2b7b2
mov dword [rsp + 0xc4], eax
mov dword [rsp + 0xc0], r8d
jmp 0x7ffbf1d2bb65
movsxd rdx, dword [0x7ffbf1ca003c]
lea rax, [r10 + r11]
mov qword [rsp + 0x48], rax
lea rax, [0x7ffbf1ca00b0]
add rdx, rax
mov eax, r10d
mov r8d, dword [rdx]
mov r13d, dword [rdx + 4]
sub eax, ebp
lea rsi, [rax + r11]
mov r9d, eax
mov ebx, eax
mov rdi, rsi
and r9, 0xfffffffffffff000
add r8, rbp
and rdi, 0xfffffffffffff000
sub rbx, r9
sub rsi, rdi
mov qword [rsp + 0x38], rdi
add r13, r8
mov qword [rsp + 0x40], rsi
jmp 0x7ffbf1d2b88d
mov eax, dword [r8]
cmp rax, r9
jae 0x7ffbf1d2b892
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r13
jne 0x7ffbf1d2b87e
xor r11d, r11d
cmp r8, r13
je 0x7ffbf1d2b8cc
mov eax, dword [r8]
cmp rax, r9
jne 0x7ffbf1d2b8cc
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x7ffbf1d2b8cc
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbx
jae 0x7ffbf1d2b8cc
inc r11
add rdx, 2
cmp r11, rcx
jne 0x7ffbf1d2b8b3
mov ebx, dword [rsp + 0xc4]
mov r14d, dword [rsp + 0xc0]
mov r12, qword [rsp + 0xc8]
lea r15, [0x7ffbf1ca0000]
cmp r8, r13
je 0x7ffbf1d2bad0
mov eax, dword [r8]
cmp rax, rdi
ja 0x7ffbf1d2bad0
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x7ffbf1d2b92c
add r8, rcx
cmp r8, r13
je 0x7ffbf1d2bad0
mov eax, dword [r8]
cmp rax, rdi
ja 0x7ffbf1d2bad0
xor r11d, r11d
jmp 0x7ffbf1d2b8ff
mov eax, dword [r8]
cmp rax, rdi
jne 0x7ffbf1d2b948
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, rsi
jae 0x7ffbf1d2bad0
mov rax, r11
mov ecx, 0xf000
inc r11
test word [r8 + rax*2 + 8], cx
je 0x7ffbf1d2b8ea
movzx r9d, word [r8 + rax*2 + 8]
xor ebp, ebp
mov edi, r9d
and edi, 0xfff
add edi, dword [r8]
add rdi, r15
mov rsi, rdi
sub rsi, r10
je 0x7ffbf1d2b9e9
movzx ecx, byte [r10 + rbp]
inc rbp
add ecx, 0x5d320f68
add r14d, ecx
add ecx, ebx
mov eax, ecx
imul eax, eax, 0x70da
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rax, 0x5d320f68
mov qword [rsp + 0xc8], rax
mov ecx, dword [rsp + 0xc8]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ebx, edx
sar ebx, 0x1f
btr ebx, 0x1f
add ebx, edx
add r14d, ebx
cmp rbp, rsi
jb 0x7ffbf1d2b97a
mov dword [rsp + 0xc4], ebx
mov dword [rsp + 0xc0], r14d
mov rax, qword [rdi]
shr r9d, 0xc
mov qword [rsp + 0xc8], rax
cmp r9d, 3
je 0x7ffbf1d2ba0c
sub r9d, 0xa
neg r9d
sbb edx, edx
add edx, 3
jmp 0x7ffbf1d2ba11
mov edx, 2
mov r9, r12
neg r9
sub edx, 2
je 0x7ffbf1d2ba3a
cmp edx, 1
je 0x7ffbf1d2ba27
or r9, 0xffffffffffffffff
jmp 0x7ffbf1d2ba48
add rax, r9
mov r9d, 8
mov qword [rsp + 0xc8], rax
jmp 0x7ffbf1d2ba48
add dword [rsp + 0xc8], r9d
mov r9d, 4
xor r10d, r10d
test r9, r9
je 0x7ffbf1d2babd
movzx ecx, byte [rsp + r10 + 0xc8]
inc r10
add ecx, 0x5d320f68
add r14d, ecx
add ecx, ebx
mov eax, ecx
imul eax, eax, 0x70da
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rax, 0x5d320f68
mov qword [rsp + 0x30], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x30]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ebx, edx
sar ebx, 0x1f
btr ebx, 0x1f
add ebx, edx
add r14d, ebx
cmp r10, r9
jb 0x7ffbf1d2ba50
mov dword [rsp + 0xc4], ebx
mov dword [rsp + 0xc0], r14d
mov rsi, qword [rsp + 0x40]
lea r10, [r9 + rdi]
mov rdi, qword [rsp + 0x38]
jmp 0x7ffbf1d2b8ea
mov rsi, qword [rsp + 0x48]
mov r12, qword [rsp + 0xb0]
mov r15, qword [rsp + 0x28]
xor r8d, r8d
sub rsi, r10
je 0x7ffbf1d2bb59
movzx ecx, byte [r8 + r10]
inc r8
add ecx, 0x5d320f68
add r14d, ecx
add ecx, ebx
mov eax, ecx
imul eax, eax, 0x70da
rol eax, 8
ror ecx, 8
xor eax, ecx
imul rax, rax, 0x5d320f68
mov qword [rsp + 0xc8], rax
mov ecx, dword [rsp + 0xc8]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ebx, edx
sar ebx, 0x1f
btr ebx, 0x1f
add ebx, edx
add r14d, ebx
cmp r8, rsi
jb 0x7ffbf1d2baea
mov dword [rsp + 0xc4], ebx
mov dword [rsp + 0xc0], r14d
mov rsi, qword [rsp + 0x20]
lea rbp, [0x7ffbf1ca0000]
mov eax, 0x6709467
mov eax, dword [r12 + 4]
inc rsi
add r15, 8
cmp rsi, rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], r15
jb 0x7ffbf1d2b759
mov rax, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xb8]
cmp rax, qword [rbp]
je 0x7ffbf1d2bc18
mov rax, qword [0x7ffbf1d6a520]
xor r9d, r9d
mov r8d, 0xffff
imul rax, rax, 0x343fd
shl r9, 0x10
shr r8, 0x10
add rax, 0x269ec3
mov rcx, rax
shr rcx, 0x10
movzx edx, cx
or r9, rdx
test r8, r8
jne 0x7ffbf1d2bbb4
mov qword [0x7ffbf1d6a520], rax
call fcn.7ffbf1d47140
mov r8, rax
movabs rax, 0x8000800080008001
and r8, 0xfffffffffffff000
mul r9
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r9, rdx
mov rdx, r8
lea rcx, [r9 + 1]
call fcn.7ffbf1cb7480
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea rdx, [0x7ffbf1d69520]
lea rcx, str.qH__
jmp 0x7ffbf1d2b6fc