Function at 0x7fffb6dc32a0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x48], edx
push rbx
push rbp
push rdi
push r13
push r15
sub rsp, 0x70
xor ebp, ebp
mov r15d, edx
mov ebx, r9d
add r15, rcx
add rbx, r8
mov qword [rsp + 0xd0], rbp
mov qword [rsp + 0x30], rbx
mov rdi, r8
mov r13, rcx
cmp r9d, 0x40
jb 0x7fffb6dc3907
cmp edx, 8
jb 0x7fffb6dc3907
cmp rcx, 0x2001
ja 0x7fffb6dc3302
mov eax, 0xc00000bb
add rsp, 0x70
pop r15
pop r13
pop rdi
pop rbp
pop rbx
ret
mov qword [rsp + 0xa8], rsi
xor edx, edx
mov qword [rsp + 0x68], r12
mov r8d, 0x40000
mov qword [rsp + 0x60], r14
mov r14, qword [rsp + 0xc8]
mov rcx, r14
call sub.msvcrt.dll_memset
movzx eax, byte [r13]
lea rsi, [rdi + 4]
mov r8d, dword [rsp + 0xe0]
lea rdx, [r15 - 5]
mov byte [rsi], al
lea rbx, [r13 + 1]
inc rsi
mov qword [rsp + 0xd8], rdi
mov r10, rdi
mov qword [rsp + 0x20], rbp
xor ecx, ecx
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], rbp
mov r12d, 2
mov dword [rsp + 0x58], r8d
mov rdi, r13
mov qword [rsp + 0xa0], 3
mov qword [rsp + 0x38], r13
nop word [rax + rax]
lea r9, [rdi + 0x2000]
mov r11d, r8d
cmp r9, rdx
cmova r9, rdx
add r11, rbx
cmp r9, r11
mov qword [rsp + 0x28], r9
cmovb r11, r9
and ecx, 0x3fff
mov qword [rsp + 0x40], rcx
cmp rdi, r9
jae 0x7fffb6dc3430
lea r8, [rcx + 0x8000]
mov rax, r9
sub rax, rdi
lea r8, [r14 + r8*8]
add rcx, rax
lea r10, [0x7fffb6de3630]
mov qword [rsp + 0x40], rcx
movzx eax, byte [rdi + 2]
lea rdx, [rdi + 1]
lea r8, [r8 + 8]
movzx ecx, word [r10 + rax*2 + 0x400]
movzx eax, byte [rdi]
movzx eax, word [r10 + rax*2]
xor rcx, rax
movzx eax, byte [rdx]
movzx eax, word [r10 + rax*2 + 0x200]
xor rcx, rax
mov rax, qword [r14 + rcx*8]
mov qword [r8 - 8], rax
mov qword [r14 + rcx*8], rdi
mov rdi, rdx
cmp rdx, r9
jb 0x7fffb6dc33e0
mov r10, qword [rsp + 0xd8]
mov qword [rsp + 0x38], rdx
mov r8, qword [rsp + 0xc8]
lea r14, [rbx - 0x2000]
mov edi, 0x2000
sub rdi, r13
cmp rbx, r11
jb 0x7fffb6dc3478
cmp rbx, r9
jae 0x7fffb6dc3833
mov r8, rbx
lea rcx, [rsp + 0x48]
mov rdx, r9
call fcn.7fffb6dc2ad0
mov r10, qword [rsp + 0xd8]
mov r11, rax
mov r8, qword [rsp + 0xc8]
mov r9d, dword [rbx]
lea rcx, [rdi + r14]
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, r14
jb 0x7fffb6dc34f5
mov edx, dword [rcx]
xor edx, r9d
je 0x7fffb6dc356d
test edx, 0xffffff
je 0x7fffb6dc354b
sub rcx, r13
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, r14
jb 0x7fffb6dc34f5
mov eax, dword [rcx]
xor eax, r9d
je 0x7fffb6dc356d
test eax, 0xffffff
je 0x7fffb6dc354b
sub rcx, r13
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, r14
jb 0x7fffb6dc34f5
mov eax, dword [rcx]
xor eax, r9d
je 0x7fffb6dc356d
test eax, 0xffffff
je 0x7fffb6dc354b
mov byte [rsi], r9b
inc rbx
inc rsi
inc r14
test r12d, r12d
jle 0x7fffb6dc3513
mov r9, qword [rsp + 0x28]
add r12d, r12d
jmp 0x7fffb6dc3447
mov rcx, qword [rsp + 0x30]
lea eax, [r12 + r12]
mov dword [r10], eax
mov r12d, 1
mov r10, rsi
mov qword [rsp + 0xd8], rsi
add rsi, 4
lea rax, [rcx - 0x29]
cmp rsi, rax
jae 0x7fffb6dc385f
mov r9, qword [rsp + 0x28]
jmp 0x7fffb6dc3447
mov rdi, qword [rsp + 0xa0]
lea r14, [rbx - 0x2000]
mov r10, rbx
sub r10, rcx
mov qword [rsp + 0xd0], r10
jmp 0x7fffb6dc3731
mov rdi, qword [rsp + 0xa0]
mov r10, rbx
add rcx, 4
add rbx, 4
lea rdx, [rbx + 0x20]
cmp rdx, r15
jae 0x7fffb6dc35fe
nop dword [rax]
mov eax, dword [rcx]
cmp dword [rbx], eax
jne 0x7fffb6dc36c9
mov eax, dword [rcx + 4]
cmp dword [rbx + 4], eax
jne 0x7fffb6dc36c1
mov eax, dword [rcx + 8]
cmp dword [rbx + 8], eax
jne 0x7fffb6dc36b7
mov eax, dword [rcx + 0xc]
cmp dword [rbx + 0xc], eax
jne 0x7fffb6dc36ad
mov eax, dword [rcx + 0x10]
cmp dword [rbx + 0x10], eax
jne 0x7fffb6dc36a3
mov eax, dword [rcx + 0x14]
cmp dword [rbx + 0x14], eax
jne 0x7fffb6dc3699
mov eax, dword [rcx + 0x18]
cmp dword [rbx + 0x18], eax
jne 0x7fffb6dc368f
mov eax, dword [rcx + 0x1c]
cmp dword [rbx + 0x1c], eax
jne 0x7fffb6dc3685
mov rbx, rdx
add rcx, 0x20
add rdx, 0x20
cmp rdx, r15
jb 0x7fffb6dc3590
cmp rbx, r15
jae 0x7fffb6dc3615
movzx eax, byte [rcx]
cmp byte [rbx], al
jne 0x7fffb6dc3615
inc rbx
inc rcx
cmp rbx, r15
jb 0x7fffb6dc3603
mov rax, rbx
sub rax, r10
cmp rax, rdi
jbe 0x7fffb6dc3713
mov rdx, rbx
mov rdi, rax
sub rdx, rcx
mov qword [rsp + 0xd0], rdx
cmp rcx, r10
jbe 0x7fffb6dc3716
mov rbx, r10
mov r10, rdx
xor edx, edx
mov qword [rsp + 0xa0], 3
add rbx, rdi
lea rax, [rdi - 3]
lea r10, [r10*8 - 8]
mov ebp, edx
cmp rax, 7
jae 0x7fffb6dc3755
add r10, rax
mov word [rsi], r10w
add rsi, 2
mov qword [rsp + 0xd0], r10
jmp 0x7fffb6dc37dd
add rbx, 0x1c
add rcx, 0x1c
jmp 0x7fffb6dc36c9
add rbx, 0x18
add rcx, 0x18
jmp 0x7fffb6dc36c9
add rbx, 0x14
add rcx, 0x14
jmp 0x7fffb6dc36c9
add rbx, 0x10
add rcx, 0x10
jmp 0x7fffb6dc36c9
add rbx, 0xc
add rcx, 0xc
jmp 0x7fffb6dc36c9
add rbx, 8
add rcx, 8
jmp 0x7fffb6dc36c9
add rbx, 4
add rcx, 4
movzx eax, byte [rcx]
cmp byte [rbx], al
jne 0x7fffb6dc3615
movzx eax, byte [rcx + 1]
mov r8, qword [rsp + 0xc8]
cmp byte [rbx + 1], al
je 0x7fffb6dc36f0
inc rbx
inc rcx
jmp 0x7fffb6dc3615
movzx eax, byte [rcx + 2]
cmp byte [rbx + 2], al
je 0x7fffb6dc3706
add rbx, 2
add rcx, 2
jmp 0x7fffb6dc3615
add rbx, 3
add rcx, 3
jmp 0x7fffb6dc3615
add rbp, rax
mov rbx, r10
sub rcx, rax
mov r10, qword [rsp + 0xd0]
inc rbp
cmp rbp, 0x18
jae 0x7fffb6dc3644
sub rcx, r13
and ecx, 0x3fff
mov rcx, qword [r8 + rcx*8 + 0x40000]
cmp rcx, r14
jb 0x7fffb6dc3644
cmp r9d, dword [rcx]
jne 0x7fffb6dc3724
jmp 0x7fffb6dc3575
mov rcx, qword [rsp + 0x20]
or r10, 7
mov word [rsi], r10w
sub rax, 7
add rsi, 2
mov qword [rsp + 0xd0], r10
test rcx, rcx
jne 0x7fffb6dc3791
mov qword [rsp + 0x20], rsi
cmp rax, 0xf
jae 0x7fffb6dc3789
mov byte [rsi], al
inc rsi
jmp 0x7fffb6dc37dd
mov byte [rsi], 0xf
inc rsi
jmp 0x7fffb6dc37a6
mov qword [rsp + 0x20], rdx
cmp rax, 0xf
jae 0x7fffb6dc37a3
shl al, 4
or byte [rcx], al
jmp 0x7fffb6dc37dd
or byte [rcx], 0xf0
sub rax, 0xf
cmp rax, 0xff
jae 0x7fffb6dc37b9
mov byte [rsi], al
inc rsi
jmp 0x7fffb6dc37dd
add rax, 0x16
mov byte [rsi], 0xff
cmp rax, 0x10000
jae 0x7fffb6dc37d2
mov word [rsi + 1], ax
add rsi, 3
jmp 0x7fffb6dc37dd
mov word [rsi + 1], dx
mov dword [rsi + 3], eax
add rsi, 7
test r12d, r12d
jle 0x7fffb6dc37f4
mov r10, qword [rsp + 0xd8]
lea r12d, [r12*2 + 1]
jmp 0x7fffb6dc381b
mov rcx, qword [rsp + 0xd8]
lea eax, [r12*2 + 1]
mov r10, rsi
mov qword [rsp + 0xd8], rsi
mov r12d, 1
add rsi, 4
mov dword [rcx], eax
mov rcx, qword [rsp + 0x30]
lea rax, [rcx - 0x29]
cmp rsi, rax
jae 0x7fffb6dc385f
mov r9, qword [rsp + 0x28]
jmp 0x7fffb6dc3430
mov rdi, qword [rsp + 0x38]
lea rdx, [r15 - 5]
mov rcx, qword [rsp + 0x40]
mov r14, qword [rsp + 0xc8]
mov r8d, dword [rsp + 0xe0]
cmp rbx, rdx
jb 0x7fffb6dc3390
mov rcx, qword [rsp + 0x30]
mov r14, qword [rsp + 0x60]
cmp rbx, r15
jae 0x7fffb6dc38a3
nop dword [rax]
cmp rsi, rcx
jae 0x7fffb6dc38a8
movzx eax, byte [rbx]
inc rbx
mov byte [rsi], al
inc rsi
test r12d, r12d
jle 0x7fffb6dc388a
add r12d, r12d
jmp 0x7fffb6dc389e
lea eax, [r12 + r12]
mov r12d, 1
mov dword [r10], eax
mov r10, rsi
add rsi, 4
cmp rbx, r15
jb 0x7fffb6dc3870
cmp rsi, rcx
jb 0x7fffb6dc38c6
mov eax, 0xc0000023
mov rsi, qword [rsp + 0xa8]
mov r12, qword [rsp + 0x68]
add rsp, 0x70
pop r15
pop r13
pop rdi
pop rbp
pop rbx
ret
test r12d, r12d
jle 0x7fffb6dc38dd
nop dword [rax + rax]
lea r12d, [r12*2 + 1]
test r12d, r12d
jg 0x7fffb6dc38d0
sub esi, dword [rsp + 0xb0]
lea eax, [r12*2 + 1]
mov dword [r10], eax
mov ecx, 8
mov rax, qword [rsp + 0xc0]
cmp esi, ecx
cmovb esi, ecx
mov dword [rax], esi
xor eax, eax
jmp 0x7fffb6dc38ad
mov eax, 0xc0000023
add rsp, 0x70
pop r15
pop r13
pop rdi
pop rbp
pop rbx
ret