Function at 0x7ffbf1cc0788
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r13, rcx
mov rcx, qword [rcx + 0x10]
lea rbp, [rcx + 1]
mov qword [rsp + 0x28], rbp
mov r15, rdx
mov rdx, rbp
mov eax, 0x2d5c010a
mov r14, 0xfffffffffffff000
mov r9d, dword [rbp + 8]
mov r8d, dword [rbp]
lea rsi, [0x7ffbf1ca0000]
mov eax, 0xfffffff
and qword [rsp + 0xb0], 0
and r9, rax
mov rcx, rsi
and r8, rax
mov rax, qword [0x7ffbf1cf0238]
add r9, rsi
sub rcx, rax
mov qword [rsp + 0x20], rcx
jne 0x7ffbf1cc0893
xor r11d, r11d
test r8, r8
je 0x7ffbf1cc0bd3
mov edx, dword [rsp + 0xb4]
mov r10d, dword [rsp + 0xb0]
mov r12d, 0xe2739be8
movzx eax, byte [r11 + r9]
inc r11
sub eax, 0x1d8c6418
add r10d, eax
add eax, edx
imul rax, r12
mov qword [rsp + 0xa0], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xa0]
add eax, ecx
imul rax, r12
mov qword [rsp + 0xa0], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xa0]
add ecx, eax
mov edx, ecx
imul edx, edx, 0x8283
rol edx, 8
ror ecx, 8
xor edx, ecx
add r10d, edx
cmp r11, r8
jb 0x7ffbf1cc0823
mov dword [rsp + 0xb4], edx
mov dword [rsp + 0xb0], r10d
jmp 0x7ffbf1cc0bd3
movsxd rdx, dword [0x7ffbf1ca003c]
lea rax, [r9 + r8]
mov qword [rsp + 0x40], rax
lea rax, [0x7ffbf1ca00b0]
add rdx, rax
mov eax, r9d
sub eax, esi
mov r11d, eax
and r11, r14
mov ebx, eax
lea rbp, [rax + r8]
mov rdi, rbp
mov r8d, dword [rdx]
add r8, rsi
mov esi, dword [rdx + 4]
and rdi, r14
mov qword [rsp + 0x30], rdi
sub rbx, r11
sub rbp, rdi
mov qword [rsp + 0x38], rbp
add rsi, r8
jmp 0x7ffbf1cc08f1
mov eax, dword [r8]
cmp rax, r11
jae 0x7ffbf1cc08f6
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rsi
jne 0x7ffbf1cc08e2
xor r10d, r10d
cmp r8, rsi
je 0x7ffbf1cc0930
mov eax, dword [r8]
cmp rax, r11
jne 0x7ffbf1cc0930
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x7ffbf1cc0930
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbx
jae 0x7ffbf1cc0930
inc r10
add rdx, 2
cmp r10, rcx
jne 0x7ffbf1cc0917
mov r15, qword [rsp + 0x20]
lea r13, [0x7ffbf1ca0000]
mov r11d, dword [rsp + 0xb4]
mov r14d, dword [rsp + 0xb0]
mov r12d, 0xe2739be8
cmp r8, rsi
je 0x7ffbf1cc0b33
mov eax, dword [r8]
cmp rax, rdi
ja 0x7ffbf1cc0b33
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r10, rax
jne 0x7ffbf1cc0994
add r8, rcx
cmp r8, rsi
je 0x7ffbf1cc0b33
mov eax, dword [r8]
cmp rax, rdi
ja 0x7ffbf1cc0b33
xor r10d, r10d
jmp 0x7ffbf1cc0967
mov eax, dword [r8]
cmp rax, rdi
jne 0x7ffbf1cc09b0
movzx eax, word [r8 + r10*2 + 8]
and eax, 0xfff
cmp rax, rbp
jae 0x7ffbf1cc0b33
mov rax, r10
inc r10
mov ecx, 0xf000
test word [r8 + rax*2 + 8], cx
je 0x7ffbf1cc0952
movzx edx, word [r8 + rax*2 + 8]
mov ebx, edx
xor ebp, ebp
and ebx, 0xfff
add ebx, dword [r8]
add rbx, r13
mov rdi, rbx
sub rdi, r9
je 0x7ffbf1cc0a52
movzx eax, byte [r9 + rbp]
inc rbp
sub eax, 0x1d8c6418
add r14d, eax
add eax, r11d
imul rax, r12
mov qword [rsp + 0xb8], rax
mov ecx, dword [rsp + 0xb8]
shr rax, 0x20
add eax, ecx
imul rax, r12
mov qword [rsp + 0xb8], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xb8]
add ecx, eax
mov r11d, ecx
imul r11d, r11d, 0x8283
rol r11d, 8
ror ecx, 8
xor r11d, ecx
add r14d, r11d
cmp rbp, rdi
jb 0x7ffbf1cc09e1
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xb0], r14d
shr edx, 0xc
mov rax, qword [rbx]
cmp edx, 3
mov qword [rsp + 0xb8], rax
je 0x7ffbf1cc0a73
sub edx, 0xa
neg edx
sbb r9d, r9d
add r9d, 3
jmp 0x7ffbf1cc0a79
mov r9d, 2
mov rdx, r15
neg rdx
sub r9d, 2
je 0x7ffbf1cc0aa3
cmp r9d, 1
je 0x7ffbf1cc0a91
or rdx, 0xffffffffffffffff
jmp 0x7ffbf1cc0aaf
add rax, rdx
mov qword [rsp + 0xb8], rax
mov edx, 8
jmp 0x7ffbf1cc0aaf
add dword [rsp + 0xb8], edx
mov edx, 4
xor r9d, r9d
test rdx, rdx
je 0x7ffbf1cc0b20
movzx eax, byte [rsp + r9 + 0xb8]
inc r9
sub eax, 0x1d8c6418
add r14d, eax
add eax, r11d
imul rax, r12
mov qword [rsp + 0x20], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x20]
add eax, ecx
imul rax, r12
mov qword [rsp + 0x20], rax
mov ecx, dword [rsp + 0x20]
shr rax, 0x20
add ecx, eax
mov r11d, ecx
imul r11d, r11d, 0x8283
rol r11d, 8
ror ecx, 8
xor r11d, ecx
add r14d, r11d
cmp r9, rdx
jb 0x7ffbf1cc0ab7
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xb0], r14d
mov rdi, qword [rsp + 0x30]
lea r9, [rdx + rbx]
mov rbp, qword [rsp + 0x38]
jmp 0x7ffbf1cc0952
mov r15, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0x40]
xor edx, edx
sub rbp, r9
mov r13, qword [rsp + 0xa0]
je 0x7ffbf1cc0bc0
movzx eax, byte [rdx + r9]
inc rdx
sub eax, 0x1d8c6418
add r14d, eax
add eax, r11d
imul rax, r12
mov qword [rsp + 0xa0], rax
mov ecx, dword [rsp + 0xa0]
shr rax, 0x20
add eax, ecx
imul rax, r12
mov qword [rsp + 0xa0], rax
mov ecx, dword [rsp + 0xa0]
shr rax, 0x20
add ecx, eax
mov r11d, ecx
imul r11d, r11d, 0x8283
rol r11d, 8
ror ecx, 8
xor r11d, ecx
add r14d, r11d
cmp rdx, rbp
jb 0x7ffbf1cc0b4f
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xb0], r14d
mov rbp, qword [rsp + 0x28]
lea rsi, [0x7ffbf1ca0000]
mov r14, 0xfffffffffffff000
add qword [r13 + 0x10], 0x11
mov eax, dword [rbp + 4]
mov r12d, 0xfffffff
and rax, r12
mov rax, qword [rax + rsi]
cmp qword [rsp + 0xb0], rax
je 0x7ffbf1cc0cf4
call fcn.7ffbf1d47140
mov r11d, 0xffff
lea rdi, [fcn.7ffbf1cb7480]
mov qword [r13 + 0x10], rdi
mov rbx, rax
mov rcx, qword [0x7ffbf1d6a520]
lea r9, [r13 + 0x18]
and r9, 0xfffffffffffffff8
lea r10, [r9 + 0xfff]
and rbx, r14
and r10, r14
xor r8d, r8d
imul rcx, rcx, 0x343fd
shl r8, 0x10
shr r11, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or r8, rdx
test r11, r11
jne 0x7ffbf1cc0c2e
movabs rax, 0x8000800080008001
mov qword [0x7ffbf1d6a520], rcx
mul r8
mov qword [r15 + 0x98], rbx
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r8, rdx
inc r8
mov qword [r15 + 0xb0], r8
mov qword [rsp + 0xa0], r11
jmp 0x7ffbf1cc0ca2
mov rax, qword [rsp + 0xa0]
mov qword [r9], rax
add r9, 8
cmp r9, r10
jb 0x7ffbf1cc0c93
movabs r8, 0x421f2c390000
mov qword [r13 + 0x10], rdi
mov eax, dword [rbp + 0xc]
and rax, r12
mov rdx, qword [r15 + 0xb0]
mov rcx, rdx
xor rcx, r8
shl rcx, 0x10
mov qword [r15 + 0x80], rdx
mov eax, dword [rax + rsi]
xor rcx, rax
mov eax, dword [0x7ffbf1d676a0]
xor rcx, rax
xor rcx, rdx
and qword [r15 + 0xb0], 0
mov qword [r15 + 0xa0], rcx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret