Function at 0x7fffb6dc4e00
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x48], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x98
mov edi, edx
mov r14, r8
mov eax, r9d
mov rsi, rcx
add rax, r8
mov qword [rsp + 0x60], rax
lea rbp, [rcx + rdi]
cmp r9d, 0x12c
jae 0x7fffb6dc4e4c
mov eax, 0xc0000023
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbp
ret
cmp rcx, 0x10001
ja 0x7fffb6dc4e67
mov eax, 0xc00000bb
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 0xc8], rbx
xor edx, edx
mov qword [rsp + 0x90], r12
mov r8d, 0x40000
mov qword [rsp + 0x88], r13
mov r13, qword [rsp + 0xe8]
mov rcx, r13
mov qword [rsp + 0x80], r15
call sub.msvcrt.dll_memset
xor edx, edx
mov qword [rsp + 0x50], r14
mov rbx, rsi
mov qword [r13 + 0x40000], rdx
mov qword [rsp + 0x68], rdx
mov r14d, edx
mov qword [rsp + 0x70], rdx
lea r12d, [rdx + 3]
mov dword [rsp + 0x78], edi
mov qword [rsp + 0x30], rdx
nop word [rax + rax]
mov qword [rsp + 0x40], rdx
lea rcx, [r13 + 0x147220]
mov qword [rsp + 0xf8], rdx
mov r8d, 0x800
xor edx, edx
call sub.msvcrt.dll_memset
lea rdx, [rbx + 0x10000]
mov eax, edi
cmp rdx, rbp
lea r15, [r13 + 0x147b20]
mov rcx, r15
mov edi, 1
cmova rdx, rbp
mov qword [rsp + 0xf0], rcx
add rax, rbx
mov qword [rsp + 0x58], rdx
lea r11, [rdx - 5]
cmp r11, rax
mov qword [rsp + 0x38], r11
cmovb rax, r11
add r15, 4
mov qword [rsp + 0x48], rax
cmp rbx, rsi
jne 0x7fffb6dc4f5a
movzx eax, byte [rbx]
mov edi, 2
inc dword [r13 + rax*4 + 0x147220]
movzx eax, byte [rbx]
inc rbx
mov byte [r15], al
inc r15
cmp rbx, r11
jae 0x7fffb6dc5413
mov rax, rbx
mov r10, rbx
sub rax, rsi
lea rsi, [0x7fffb6d80000]
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov r9, rax
nop dword [rax]
movzx ecx, byte [r10 + 2]
lea r8, [r10 + 1]
movzx eax, byte [r10]
movzx edx, word [rsi + rcx*2 + 0x63a30]
movzx ecx, byte [r8]
movzx eax, word [rsi + rax*2 + 0x63630]
movzx ecx, word [rsi + rcx*2 + 0x63830]
xor rdx, rcx
xor rdx, rax
mov rax, qword [r13 + rdx*8]
mov qword [r13 + rdx*8], r10
mov r10, r8
mov qword [r13 + r9*8 + 0x40000], rax
inc r9
and r9d, 0x1ffff
cmp r8, r11
jb 0x7fffb6dc4f90
mov rsi, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xf0]
cmp rbx, qword [rsp + 0x48]
jb 0x7fffb6dc5018
cmp rbx, r11
jae 0x7fffb6dc540e
mov r8, rbx
lea rcx, [rsp + 0x68]
mov rdx, r11
call fcn.7fffb6dc2ad0
mov qword [rsp + 0x48], rax
mov r10d, dword [rbx]
mov rax, rbx
sub rax, rsi
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r13 + rax*8 + 0x40000]
lea rcx, [rdx + 0x10000]
cmp rcx, rbx
jbe 0x7fffb6dc52c6
mov eax, dword [rdx]
xor eax, r10d
jne 0x7fffb6dc5062
mov r9, rbx
lea r11, [rbx - 0x10000]
jmp 0x7fffb6dc514f
test eax, 0xffffff
je 0x7fffb6dc510a
sub rdx, rsi
mov rax, rdx
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r13 + rax*8 + 0x40000]
lea rax, [rdx + 0x10000]
cmp rax, rbx
jbe 0x7fffb6dc52c6
mov eax, dword [rdx]
xor eax, r10d
jne 0x7fffb6dc50b4
mov r9, rbx
lea r11, [rbx - 0x10000]
jmp 0x7fffb6dc514f
test eax, 0xffffff
je 0x7fffb6dc510a
sub rdx, rsi
mov rax, rdx
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r13 + rax*8 + 0x40000]
lea rax, [rdx + 0x10000]
cmp rax, rbx
jbe 0x7fffb6dc52c6
mov eax, dword [rdx]
xor eax, r10d
jne 0x7fffb6dc50ff
mov r9, rbx
lea r11, [rbx - 0x10000]
jmp 0x7fffb6dc514f
test eax, 0xffffff
jne 0x7fffb6dc52c6
mov r9, rbx
mov qword [rsp + 0x30], rdx
lea r11, [rbx - 0x10000]
sub rdx, rsi
mov rax, rdx
cqo
and edx, 0x1ffff
add rax, rdx
and eax, 0x1ffff
sub rax, rdx
mov rdx, qword [r13 + rax*8 + 0x40000]
cmp rdx, r11
jbe 0x7fffb6dc5297
cmp r10d, dword [rdx]
jne 0x7fffb6dc528a
mov rbx, r9
add rbx, 4
add rdx, 4
lea rcx, [rbx + 0x20]
cmp rcx, rbp
jae 0x7fffb6dc51c2
mov eax, dword [rdx]
cmp dword [rbx], eax
jne 0x7fffb6dc5249
mov eax, dword [rdx + 4]
cmp dword [rbx + 4], eax
jne 0x7fffb6dc5241
mov eax, dword [rdx + 8]
cmp dword [rbx + 8], eax
jne 0x7fffb6dc5237
mov eax, dword [rdx + 0xc]
cmp dword [rbx + 0xc], eax
jne 0x7fffb6dc522d
mov eax, dword [rdx + 0x10]
cmp dword [rbx + 0x10], eax
jne 0x7fffb6dc5223
mov eax, dword [rdx + 0x14]
cmp dword [rbx + 0x14], eax
jne 0x7fffb6dc5219
mov eax, dword [rdx + 0x18]
cmp dword [rbx + 0x18], eax
jne 0x7fffb6dc520f
mov eax, dword [rdx + 0x1c]
cmp dword [rbx + 0x1c], eax
jne 0x7fffb6dc5205
mov rbx, rcx
add rdx, 0x20
add rcx, 0x20
cmp rcx, rbp
jb 0x7fffb6dc5160
cmp rbx, rbp
jae 0x7fffb6dc51d9
movzx eax, byte [rdx]
cmp byte [rbx], al
jne 0x7fffb6dc51d9
inc rbx
inc rdx
cmp rbx, rbp
jb 0x7fffb6dc51c7
sub rbx, r9
sub rdx, rbx
cmp rbx, r12
jbe 0x7fffb6dc5287
lea rax, [rbx + rdx]
mov qword [rsp + 0x30], rdx
mov r12, rbx
mov rcx, rdx
cmp rax, r9
ja 0x7fffb6dc529c
jmp 0x7fffb6dc528a
add rbx, 0x1c
add rdx, 0x1c
jmp 0x7fffb6dc5249
add rbx, 0x18
add rdx, 0x18
jmp 0x7fffb6dc5249
add rbx, 0x14
add rdx, 0x14
jmp 0x7fffb6dc5249
add rbx, 0x10
add rdx, 0x10
jmp 0x7fffb6dc5249
add rbx, 0xc
add rdx, 0xc
jmp 0x7fffb6dc5249
add rbx, 8
add rdx, 8
jmp 0x7fffb6dc5249
add rbx, 4
add rdx, 4
movzx eax, byte [rdx]
cmp byte [rbx], al
jne 0x7fffb6dc51d9
movzx eax, byte [rdx + 1]
cmp byte [rbx + 1], al
je 0x7fffb6dc5264
inc rbx
inc rdx
jmp 0x7fffb6dc51d9
movzx eax, byte [rdx + 2]
cmp byte [rbx + 2], al
je 0x7fffb6dc527a
add rbx, 2
add rdx, 2
jmp 0x7fffb6dc51d9
add rbx, 3
add rdx, 3
jmp 0x7fffb6dc51d9
add r14, rbx
inc r14
cmp r14, 0xc
jb 0x7fffb6dc5119
mov rcx, qword [rsp + 0x30]
mov rdx, r12
xor r11d, r11d
mov r8, r9
mov r12d, 3
sub r8, rcx
mov r14d, r11d
lea rbx, [rdx + r9]
cmp rdx, r12
jne 0x7fffb6dc5316
cmp r8, 0x1000
jbe 0x7fffb6dc5316
mov rbx, r9
movzx eax, r10b
inc rbx
inc dword [r13 + rax*4 + 0x147220]
mov byte [r15], r10b
inc r15
test edi, edi
jle 0x7fffb6dc52eb
mov r11, qword [rsp + 0x38]
add edi, edi
jmp 0x7fffb6dc4feb
lea eax, [rdi + rdi]
mov rcx, qword [rsp + 0xf0]
mov edi, 1
mov r11, qword [rsp + 0x38]
mov dword [rcx], eax
mov rcx, r15
mov qword [rsp + 0xf0], rcx
add r15, 4
jmp 0x7fffb6dc4ff3
cmp r8, 0x100
jb 0x7fffb6dc533d
lea rcx, [0x7fffb6d80000]
mov rax, r8
shr rax, 8
movzx eax, byte [rax + rcx + 0x63c30]
add eax, 8
movsxd rcx, eax
jmp 0x7fffb6dc534d
lea rax, [0x7fffb6d80000]
movzx ecx, byte [r8 + rax + 0x63c30]
add qword [rsp + 0x40], rcx
mov eax, 1
shl rax, cl
sub rdx, r12
sub r8, rax
shl cl, 4
cmp rdx, 0xf
jb 0x7fffb6dc53cb
add cl, 0xf
sub rdx, 0xf
mov byte [r15], cl
cmp rdx, 0xff
jae 0x7fffb6dc538e
mov byte [r15 + 1], dl
add r15, 2
inc qword [rsp + 0xf8]
jmp 0x7fffb6dc53d3
add rdx, 0xf
mov byte [r15 + 1], 0xff
cmp rdx, 0x10000
jae 0x7fffb6dc53b3
mov word [r15 + 2], dx
add r15, 4
add qword [rsp + 0xf8], r12
jmp 0x7fffb6dc53d3
mov word [r15 + 2], r11w
mov dword [r15 + 4], edx
add r15, 8
add qword [rsp + 0xf8], 7
jmp 0x7fffb6dc53d3
add cl, dl
mov byte [r15], cl
inc r15
movzx eax, cl
add eax, 0x100
cdqe
inc dword [r13 + rax*4 + 0x147220]
mov word [r15], r8w
add r15, 2
test edi, edi
jle 0x7fffb6dc5402
mov r11, qword [rsp + 0x38]
lea edi, [rdi*2 + 1]
jmp 0x7fffb6dc4feb
lea eax, [rdi*2 + 1]
jmp 0x7fffb6dc52ee
mov rdx, qword [rsp + 0x58]
cmp rbx, rdx
jae 0x7fffb6dc5455
nop dword [rax + rax]
movzx eax, byte [rbx]
inc dword [r13 + rax*4 + 0x147220]
movzx eax, byte [rbx]
inc rbx
mov byte [r15], al
inc r15
test edi, edi
jle 0x7fffb6dc543f
add edi, edi
jmp 0x7fffb6dc5450
lea eax, [rdi + rdi]
mov edi, 1
mov dword [rcx], eax
mov rcx, r15
add r15, 4
cmp rbx, rdx
jb 0x7fffb6dc5420
test edi, edi
jle 0x7fffb6dc546b
nop dword [rax]
lea edi, [rdi*2 + 1]
test edi, edi
jg 0x7fffb6dc5460
lea eax, [rdi*2 + 1]
mov dword [rcx], eax
cmp rbx, rbp
jb 0x7fffb6dc5487
inc dword [r13 + 0x147620]
mov edi, 1
jmp 0x7fffb6dc5489
xor edi, edi
lea rcx, [r13 + 0x140000]
call fcn.7fffb6dc3e00
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
add rdx, 0x1f
add rdx, rax
mov rax, qword [rsp + 0xf8]
shr rdx, 5
lea rax, [rax + rdx*4]
lea rdx, [rcx + 0x102]
add rdx, rax
cmp rdx, qword [rsp + 0x60]
jae 0x7fffb6dc551d
mov r9, rcx
mov dword [rsp + 0x20], edi
lea rcx, [r13 + 0x140000]
mov r8, r15
lea rdx, [r13 + 0x147b20]
call fcn.7fffb6dc4230
mov rsi, qword [rsp + 0xc0]
test edi, edi
mov edi, dword [rsp + 0x100]
mov rcx, rax
mov qword [rsp + 0x50], rax
mov edx, 0
je 0x7fffb6dc4ed0
mov rax, qword [rsp + 0xe0]
sub ecx, dword [rsp + 0xd0]
mov dword [rax], ecx
xor eax, eax
jmp 0x7fffb6dc5522
mov eax, 0xc0000023
mov r13, qword [rsp + 0x88]
mov r12, qword [rsp + 0x90]
mov rbx, qword [rsp + 0xc8]
mov r15, qword [rsp + 0x80]
add rsp, 0x98
pop r14
pop rdi
pop rsi
pop rbp
ret