Function at 0x7ffbf1cd8628
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rax, qword [0x7ffbf1d68270]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r13, r8
mov r12d, edx
mov r14, rcx
test r8, r8
je 0x7ffbf1cd891b
test rcx, rcx
je 0x7ffbf1cd891b
cmp dword [rcx + 4], 0
jne 0x7ffbf1cd8675
mov ebx, 0x800480d2
jmp 0x7ffbf1cd8920
cmp dword [rcx], 1
jne 0x7ffbf1cd8755
cmp edx, 0x10
jae 0x7ffbf1cd8696
call fcn.7ffbf1cfc2dc
nop
invalid
shr edx, 3
mov r15d, 8
lea rdi, [rsp + 0x20]
add edx, edx
mov rcx, r15
lea r9, [r14 + 0xac]
lea ebx, [rdx*4 - 8]
mov ebp, edx
add rbx, r8
lea r8, [rsp + 0x28]
mov rsi, rbx
rep movsb byte [rdi], byte [rsi]
mov rcx, r13
call fcn.7ffbf1d01844
lea r8, [rsp + 0x28]
lea rcx, [r14 + 0x110]
mov edx, r15d
call fcn.7ffbf1d0f390
lea rcx, [r14 + 0x110]
mov r8, r13
mov edx, r12d
call fcn.7ffbf1d0f1d8
mov edx, dword [r14 + 0x1c]
mov eax, dword [r14 + 0x20]
xor dword [rsp + 0x28], edx
xor dword [rsp + 0x2c], eax
lea r8, [r14 + 0x2c]
lea rdx, [rsp + 0x20]
lea r9d, [r15 - 7]
lea rcx, [rsp + 0x28]
call fcn.7ffbf1d0dc74
mov edx, dword [r14 + 0x24]
mov eax, dword [r14 + 0x28]
xor dword [rsp + 0x20], edx
xor dword [rsp + 0x24], eax
lea edx, [r15 - 4]
lea rsi, [rsp + 0x20]
mov rcx, rdx
mov rdi, rbx
rep movsb byte [rdi], byte [rsi]
lea edi, [rbp*4 - 4]
lea rsi, [rsp + 0x24]
add rdi, r13
mov rcx, rdx
rep movsb byte [rdi], byte [rsi]
jmp 0x7ffbf1cd8917
cmp dword [rcx], 3
jne 0x7ffbf1cd87a3
mov eax, edx
shr eax, 4
test dl, 0xf
jne 0x7ffbf1cd891b
test eax, eax
je 0x7ffbf1cd8917
mov ebx, eax
mov rcx, qword [r14 + 8]
lea rdx, [rsp + 0x50]
mov r9d, 1
mov r8, r13
call fcn.7ffbf1d1ed3c
sub rbx, 1
lea rsi, [rsp + 0x50]
mov rdi, r13
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
jne 0x7ffbf1cd8772
jmp 0x7ffbf1cd8917
test r9, r9
je 0x7ffbf1cd891b
mov rcx, qword [r9 + 8]
mov rdx, qword [r14 + 8]
xor ebx, ebx
mov eax, ecx
shr rcx, 4
lea ebp, [rbx + 0x10]
and eax, 0xf
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x38], ebx
sub ebp, eax
mov r14d, ecx
test r12d, r12d
je 0x7ffbf1cd890e
test rdx, rdx
je 0x7ffbf1cd890e
mov rax, qword [r9]
lea r15d, [rbx + 8]
lea rcx, [rsp + 0x40]
mov edx, r15d
mov qword [rsp + 0x40], rax
call fcn.7ffbf1d03a08
lea rdi, [rsp + 0x60]
lea rsi, [rsp + 0x40]
mov rcx, r15
rep movsb byte [rdi], byte [rsi]
test ebp, ebp
je 0x7ffbf1cd8889
lea edx, [rbx + 8]
lea rcx, [rsp + 0x48]
mov r15d, ebp
cmp r12d, ebp
mov qword [rsp + 0x48], r14
cmovb r15d, r12d
call fcn.7ffbf1d03a08
lea rdi, [rsp + 0x68]
lea rsi, [rsp + 0x48]
lea ecx, [rbx + 8]
lea r9d, [rbx + 1]
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x50]
call fcn.7ffbf1d1ed3c
movsxd rax, ebp
test r15d, r15d
je 0x7ffbf1cd8877
lea rcx, [rsp + 0x60]
mov rdx, r13
mov edi, r15d
sub rcx, rax
mov al, byte [rcx]
inc rcx
xor byte [rdx], al
inc rdx
sub rdi, 1
jne 0x7ffbf1cd8867
mov eax, r15d
sub r12d, r15d
mov r15d, 8
add r13, rax
inc r14
test r12d, r12d
je 0x7ffbf1cd8913
mov rbx, qword [rsp + 0x30]
mov ebp, 0x10
lea rcx, [rsp + 0x30]
mov edx, r15d
cmp r12d, ebp
mov qword [rsp + 0x30], r14
cmovb ebp, r12d
call fcn.7ffbf1d03a08
lea rdi, [rsp + 0x68]
lea rsi, [rsp + 0x30]
mov rcx, r15
lea r8, [rsp + 0x60]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x50]
mov r9d, 1
mov rcx, rbx
call fcn.7ffbf1d1ed3c
test ebp, ebp
je 0x7ffbf1cd88fb
lea rdx, [rsp + 0x50]
mov rcx, r13
mov edi, ebp
sub rdx, r13
mov al, byte [rdx + rcx]
xor byte [rcx], al
inc rcx
sub rdi, 1
jne 0x7ffbf1cd88ed
mov eax, ebp
inc r14
add r13, rax
sub r12d, ebp
jne 0x7ffbf1cd8897
mov ebx, dword [rsp + 0x38]
jmp 0x7ffbf1cd8913
mov ebx, 0x80070057
test ebx, ebx
js 0x7ffbf1cd8920
xor ebx, ebx
jmp 0x7ffbf1cd8920
mov ebx, 0x80070057
mov eax, ebx
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.7ffbf1d2cc34
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret