Function at 0x14000df80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x898
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x810], 0xfffffffffffffffe
mov rbx, r9
mov r14, r8
mov rsi, rcx
movzx r15d, dl
test r9, r9
mov byte [rbp + 0x80f], dl
je 0x14000e058
mov rcx, rbx
mov edi, edx
mov rax, r14
and rcx, 7
je 0x14000dfe1
movzx edx, byte [rax]
inc rax
xor dil, dl
add r15, rdx
dec rcx
jne 0x14000dfd0
cmp rbx, 8
jb 0x14000e05a
lea rcx, [r14 + rbx]
nop dword [rax + rax]
movzx edx, byte [rax]
xor dil, dl
add r15, rdx
movzx r8d, byte [rax + 1]
movzx edx, byte [rax + 2]
mov r9d, edx
xor r9b, r8b
xor r9b, dil
add r8, rdx
add r8, r15
movzx edx, byte [rax + 3]
movzx r10d, byte [rax + 4]
mov r11d, r10d
xor r11b, dl
add rdx, r10
movzx r10d, byte [rax + 5]
xor r11b, r10b
xor r11b, r9b
add rdx, r10
add rdx, r8
movzx r15d, byte [rax + 6]
movzx r8d, byte [rax + 7]
add rax, 8
mov edi, r8d
xor dil, r15b
xor dil, r11b
add r15, r8
add r15, rdx
cmp rax, rcx
jne 0x14000dff0
jmp 0x14000e05a
mov edi, edx
bswap r15
mov qword [rbp + 0x7f0], r15
lea rcx, [rbp - 0x60]
call fcn.14000efb0
cmp byte [rbp + 0x7d8], 0
mov qword [rbp + 0x7f8], rbx
mov qword [rbp + 0x7e8], r14
je 0x14000e0fd
mov r13, r15
shr r13, 8
mov r12, r15
shr r12, 0x10
mov r14, r15
shr r14, 0x18
mov r11, r15
shr r11, 0x20
mov r10, r15
shr r10, 0x28
mov r9, r15
shr r9, 0x30
mov r8, r15
shr r8, 0x38
movzx ecx, byte [rbp + 0x7db]
cmp cl, 8
jne 0x14000e3e2
mov rax, qword [rbp - 0x60]
mov edx, 0x100
test rax, rax
jne 0x14000e0d7
mov rdx, qword [rbp - 0x50]
xor dil, byte [rbp + 0x7b0]
movzx ecx, dil
cmp rdx, rcx
jbe 0x14000ec79
test rax, rax
jne 0x14000e431
mov rax, qword [rbp - 0x58]
jmp 0x14000e435
mov rax, qword [rbp + 0x7b8]
mov rcx, qword [rbp + 0x7a8]
mov r9, qword [rbp + 0x7b0]
lea r8, [r9 + r9]
and r9, rax
cmp byte [rbp + 0x7d9], 0
je 0x14000e51c
rol dil, 4
mov edx, edi
and dl, 0x33
shl dl, 2
shr dil, 2
and dil, 0x33
or dil, dl
mov edx, edi
and dl, 0x55
add dl, dl
shr dil, 1
and dil, 0x55
or dil, dl
xor edx, edx
test dil, dil
mov r10, rax
cmovns r10, rdx
cmp r9, r10
mov r9, rcx
cmove r9, rdx
xor r9, r8
mov r8, r9
and r8, rax
add r9, r9
test dil, 0x40
mov r10, rax
cmove r10, rdx
cmp r8, r10
mov r8, rcx
cmove r8, rdx
xor r8, r9
mov r9, r8
and r9, rax
add r8, r8
test dil, 0x20
mov r10, rax
cmove r10, rdx
cmp r9, r10
mov r9, rcx
cmove r9, rdx
xor r9, r8
mov r8, r9
and r8, rax
add r9, r9
test dil, 0x10
mov r10, rax
cmove r10, rdx
cmp r8, r10
mov r8, rcx
cmove r8, rdx
xor r8, r9
mov r9, r8
and r9, rax
add r8, r8
test dil, 8
mov r10, rax
cmove r10, rdx
cmp r9, r10
mov r9, rcx
cmove r9, rdx
xor r9, r8
mov r8, r9
and r8, rax
add r9, r9
test dil, 4
mov r10, rax
cmove r10, rdx
cmp r8, r10
mov r8, rcx
cmove r8, rdx
xor r8, r9
mov r9, r8
and r9, rax
add r8, r8
test dil, 2
mov r10, rax
cmove r10, rdx
cmp r9, r10
mov r10, rcx
cmove r10, rdx
xor r10, r8
mov r8, r10
and r8, rax
add r10, r10
test dil, 1
mov r9, rax
cmove r9, rdx
cmp r8, r9
mov r9, rcx
cmove r9, rdx
xor r9, r10
jmp 0x14000e263
add r9, r9
xor r9, r8
inc rdx
cmp rdx, 8
je 0x14000e784
movzx r8d, byte [rbp + rdx + 0x7f0]
rol r8b, 4
mov r10d, r8d
and r10b, 0x33
shl r10b, 2
shr r8b, 2
and r8b, 0x33
or r8b, r10b
mov r10d, r8d
and r10b, 0x55
add r10b, r10b
shr r8b, 1
and r8b, 0x55
or r8b, r10b
mov r11d, 0
test r8b, r8b
jns 0x14000e2a8
mov r11, rax
mov rdi, r9
and rdi, rax
mov r10d, 0
cmp rdi, r11
je 0x14000e2bc
mov r10, rcx
mov r11d, 0
test r8b, 0x40
je 0x14000e2cb
mov r11, rax
add r9, r9
xor r10, r9
mov rdi, r10
and rdi, rax
mov r9d, 0
cmp rdi, r11
je 0x14000e2e5
mov r9, rcx
mov r11d, 0
test r8b, 0x20
je 0x14000e2f4
mov r11, rax
add r10, r10
xor r9, r10
mov rdi, r9
and rdi, rax
mov r10d, 0
cmp rdi, r11
je 0x14000e30e
mov r10, rcx
mov r11d, 0
test r8b, 0x10
je 0x14000e31d
mov r11, rax
add r9, r9
xor r10, r9
mov rdi, r10
and rdi, rax
mov r9d, 0
cmp rdi, r11
je 0x14000e337
mov r9, rcx
mov r11d, 0
test r8b, 8
je 0x14000e346
mov r11, rax
add r10, r10
xor r9, r10
mov rdi, r9
and rdi, rax
mov r10d, 0
cmp rdi, r11
je 0x14000e360
mov r10, rcx
mov edi, 0
test r8b, 4
je 0x14000e36e
mov rdi, rax
add r9, r9
xor r10, r9
mov r9, r10
and r9, rax
mov r11d, 0
cmp r9, rdi
je 0x14000e388
mov r11, rcx
mov edi, 0
test r8b, 2
je 0x14000e396
mov rdi, rax
add r10, r10
xor r11, r10
mov r10, r11
and r10, rax
mov r9d, 0
cmp r10, rdi
je 0x14000e3b0
mov r9, rcx
mov r10d, 0
test r8b, 1
je 0x14000e3bf
mov r10, rax
add r11, r11
xor r9, r11
mov r11, r9
and r11, rax
mov r8d, 0
cmp r11, r10
je 0x14000e250
mov r8, rcx
jmp 0x14000e250
cmp byte [rbp + 0x7d9], 0
mov qword [rbp + 0x800], r8
je 0x14000e790
mov r8, qword [rbp - 0x60]
mov edx, 0x100
test r8, r8
jne 0x14000e408
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp + 0x7b0]
xor dil, al
movzx ecx, dil
cmp rdx, rcx
jbe 0x14000ec87
test r8, r8
jne 0x14000e7da
mov r8, qword [rbp - 0x58]
jmp 0x14000e7de
lea rax, [rbp - 0x58]
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
xor r15d, ecx
movzx ecx, r15b
cmp rdx, rcx
jbe 0x14000ec79
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
xor r13d, ecx
movzx ecx, r13b
cmp rdx, rcx
jbe 0x14000ec79
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
xor r12d, ecx
movzx ecx, r12b
cmp rdx, rcx
jbe 0x14000ec79
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
xor r14d, ecx
movzx ecx, r14b
cmp rdx, rcx
jbe 0x14000ec79
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
xor r11d, ecx
movzx ecx, r11b
cmp rdx, rcx
jbe 0x14000ec79
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
xor r10d, ecx
movzx ecx, r10b
cmp rdx, rcx
jbe 0x14000ec79
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
xor r9d, ecx
movzx ecx, r9b
cmp rdx, rcx
jbe 0x14000ec79
mov rcx, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rcx
movzx ecx, cl
xor rcx, r8
cmp rdx, rcx
jbe 0x14000ec79
mov rax, qword [rax + rcx*8]
mov qword [rbp + 0x7b0], rax
jmp 0x14000ea32
xor edx, edx
test dil, dil
mov r10, rax
cmovns r10, rdx
cmp r9, r10
mov r9, rcx
cmove r9, rdx
xor r9, r8
mov r8, r9
and r8, rax
add r9, r9
test dil, 0x40
mov r10, rax
cmove r10, rdx
cmp r8, r10
mov r8, rcx
cmove r8, rdx
xor r8, r9
mov r9, r8
and r9, rax
add r8, r8
test dil, 0x20
mov r10, rax
cmove r10, rdx
cmp r9, r10
mov r9, rcx
cmove r9, rdx
xor r9, r8
mov r8, r9
and r8, rax
add r9, r9
test dil, 0x10
mov r10, rax
cmove r10, rdx
cmp r8, r10
mov r8, rcx
cmove r8, rdx
xor r8, r9
mov r9, r8
and r9, rax
add r8, r8
test dil, 8
mov r10, rax
cmove r10, rdx
cmp r9, r10
mov r9, rcx
cmove r9, rdx
xor r9, r8
mov r8, r9
and r8, rax
add r9, r9
test dil, 4
mov r10, rax
cmove r10, rdx
cmp r8, r10
mov r8, rcx
cmove r8, rdx
xor r8, r9
mov r9, r8
and r9, rax
add r8, r8
test dil, 2
mov r10, rax
cmove r10, rdx
cmp r9, r10
mov r10, rcx
cmove r10, rdx
xor r10, r8
mov r8, r10
and r8, rax
add r10, r10
test dil, 1
mov r9, rax
cmove r9, rdx
cmp r8, r9
mov r9, rcx
cmove r9, rdx
xor r9, r10
jmp 0x14000e633
add r9, r9
xor r9, r8
inc rdx
cmp rdx, 8
je 0x14000e784
movzx r8d, byte [rbp + rdx + 0x7f0]
mov r11d, 0
test r8b, r8b
jns 0x14000e64a
mov r11, rax
mov rdi, r9
and rdi, rax
mov r10d, 0
cmp rdi, r11
je 0x14000e65e
mov r10, rcx
mov r11d, 0
test r8b, 0x40
je 0x14000e66d
mov r11, rax
add r9, r9
xor r10, r9
mov rdi, r10
and rdi, rax
mov r9d, 0
cmp rdi, r11
je 0x14000e687
mov r9, rcx
mov r11d, 0
test r8b, 0x20
je 0x14000e696
mov r11, rax
add r10, r10
xor r9, r10
mov rdi, r9
and rdi, rax
mov r10d, 0
cmp rdi, r11
je 0x14000e6b0
mov r10, rcx
mov r11d, 0
test r8b, 0x10
je 0x14000e6bf
mov r11, rax
add r9, r9
xor r10, r9
mov rdi, r10
and rdi, rax
mov r9d, 0
cmp rdi, r11
je 0x14000e6d9
mov r9, rcx
mov r11d, 0
test r8b, 8
je 0x14000e6e8
mov r11, rax
add r10, r10
xor r9, r10
mov rdi, r9
and rdi, rax
mov r10d, 0
cmp rdi, r11
je 0x14000e702
mov r10, rcx
mov edi, 0
test r8b, 4
je 0x14000e710
mov rdi, rax
add r9, r9
xor r10, r9
mov r9, r10
and r9, rax
mov r11d, 0
cmp r9, rdi
je 0x14000e72a
mov r11, rcx
mov edi, 0
test r8b, 2
je 0x14000e738
mov rdi, rax
add r10, r10
xor r11, r10
mov r10, r11
and r10, rax
mov r9d, 0
cmp r10, rdi
je 0x14000e752
mov r9, rcx
mov r10d, 0
test r8b, 1
je 0x14000e761
mov r10, rax
add r11, r11
xor r9, r11
mov r11, r9
and r11, rax
mov r8d, 0
cmp r11, r10
je 0x14000e620
mov r8, rcx
jmp 0x14000e620
mov qword [rbp + 0x7b0], r9
jmp 0x14000ea32
add cl, 0x38
mov rbx, qword [rbp - 0x60]
mov edx, 0x100
test rbx, rbx
jne 0x14000e7a5
mov rdx, qword [rbp - 0x50]
mov r8, qword [rbp + 0x7b0]
mov rax, r8
shr rax, cl
xor dil, al
movzx eax, dil
cmp rdx, rax
jbe 0x14000ec95
and cl, 0x3f
movzx ecx, cl
test rbx, rbx
jne 0x14000e8ed
mov rdi, qword [rbp - 0x58]
jmp 0x14000e8f1
lea r8, [rbp - 0x58]
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
xor r15d, eax
movzx ecx, r15b
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
xor r13d, eax
movzx ecx, r13b
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
xor r12d, eax
movzx ecx, r12b
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
xor r14d, eax
movzx ecx, r14b
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
xor r11d, eax
movzx ecx, r11b
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
xor r10d, eax
movzx ecx, r10b
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
xor r9d, eax
movzx ecx, r9b
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
movzx ecx, al
xor rcx, qword [rbp + 0x800]
cmp rdx, rcx
jbe 0x14000ec87
shr rax, 8
xor rax, qword [r8 + rcx*8]
mov qword [rbp + 0x7b0], rax
jmp 0x14000ea32
lea rdi, [rbp - 0x58]
mov rbx, qword [rbp + 0x7f8]
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
xor r15d, eax
movzx eax, r15b
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
xor r13d, eax
movzx eax, r13b
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
xor r12d, eax
movzx eax, r12b
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
xor r14d, eax
movzx eax, r14b
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
xor r11d, eax
movzx eax, r11b
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
xor r10d, eax
movzx eax, r10b
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
xor r9d, eax
movzx eax, r9b
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov rax, r8
shr rax, cl
mov qword [rbp + 0x7b0], r8
movzx eax, al
xor rax, qword [rbp + 0x800]
cmp rdx, rax
jbe 0x14000ec95
shl r8, 8
xor r8, qword [rdi + rax*8]
mov qword [rbp + 0x7b0], r8
lea rcx, [rbp - 0x60]
call fcn.14000ed60
bswap rax
mov qword [rbp + 0x7e0], rax
mov r14d, 8
test rbx, rbx
je 0x14000ea8a
mov rax, rbx
shr rax, 0x3c
jne 0x14000eca6
lea rdi, [rbx*8]
test rdi, rdi
je 0x14000ea8a
movzx eax, byte [0x1401e1329]
mov edx, 8
mov rcx, rdi
call fcn.14000a780
mov r14, rax
test rax, rax
je 0x14000ecb4
mov r15, qword [rbp + 0x880]
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], rbx
xor r12d, r12d
lea r13, [rbp - 0x60]
xor ebx, ebx
jmp 0x14000eac2
mov r14, qword [rbp - 0x60]
mov r12, qword [rbp - 0x50]
inc rbx
mov qword [r14 + r12*8], rdi
inc r12
mov qword [rbp - 0x50], r12
mov r8, qword [rbp + 0x7f8]
cmp rbx, r8
jae 0x14000eb06
mov eax, ebx
and eax, 7
movzx ecx, byte [rsi + rax]
xor cl, byte [rbp + rax + 0x7e0]
movzx edi, cl
cmp rdi, r8
jb 0x14000eaf3
mov eax, edi
xor edx, edx
div r8d
mov edi, edx
cmp r12, qword [rbp - 0x58]
jne 0x14000eab8
mov rcx, r13
mov rdx, r12
call fcn.14000dce0
jmp 0x14000eab0
test r8, r8
mov rdi, r8
je 0x14000eb42
js 0x14000ecad
movzx eax, byte [0x1401e1329]
mov edx, 1
mov rcx, rdi
call fcn.14000a780
mov rbx, rax
test rax, rax
jne 0x14000eb47
mov ecx, 1
mov rdx, rdi
call fcn.14011cc30
jmp 0x14000ecb2
mov ebx, 1
mov rcx, rbx
mov rdx, qword [rbp + 0x7e8]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
test r12, r12
mov qword [rbp + 0x800], rbx
je 0x14000ebb0
lea rdx, [r12*8 - 8]
jmp 0x14000eb7a
add rdx, 0xfffffffffffffff8
cmp rdx, 0xfffffffffffffff8
je 0x14000ebb0
mov rcx, qword [r14 + rdx]
mov rax, rdx
shr rax, 3
cmp rax, rcx
je 0x14000eb70
cmp rax, rdi
jae 0x14000ec54
cmp rcx, rdi
jae 0x14000ec68
movzx r8d, byte [rbx + rax]
movzx r9d, byte [rbx + rcx]
mov byte [rbx + rax], r9b
mov byte [rbx + rcx], r8b
jmp 0x14000eb70
add rdi, rbx
mov r12, rbx
xor ebx, ebx
jmp 0x14000ebdb
inc r12
inc rbx
xor r13b, byte [rbp + 0x80f]
mov rax, qword [r15]
mov byte [rax + rdx], r13b
inc rdx
mov qword [r15 + 0x10], rdx
cmp r12, rdi
je 0x14000ec06
mov eax, ebx
and eax, 7
movzx r13d, byte [rsi + rax]
xor r13b, byte [r12]
mov rdx, qword [r15 + 0x10]
cmp rdx, qword [r15 + 8]
jne 0x14000ebc0
mov rcx, r15
call fcn.14000ddb0
mov rdx, qword [r15 + 0x10]
jmp 0x14000ebc0
mov rdx, qword [rbp + 0x7f8]
test rdx, rdx
je 0x14000ec24
mov r8d, 1
mov rcx, qword [rbp + 0x800]
call fcn.14000a790
mov rdx, qword [rbp - 0x58]
test rdx, rdx
je 0x14000ec3f
shl rdx, 3
mov r8d, 8
mov rcx, r14
call fcn.14000a790
nop
add rsp, 0x898
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r8, [0x1401226b0]
mov rcx, rax
mov rdx, rdi
call fcn.14011cec0
jmp 0x14000ecb2
lea r8, [0x1401226b0]
mov rdx, rdi
call fcn.14011cec0
jmp 0x14000ecb2
lea r8, [0x1401225e8]
call fcn.14011cec0
ud2
lea r8, [0x140122618]
call fcn.14011cec0
ud2
lea r8, [0x140122600]
mov rcx, rax
call fcn.14011cec0
ud2
call fcn.1400fe590
ud2
call fcn.1400fe590
ud2
mov ecx, 8
mov rdx, rdi
call fcn.14011cc30
ud2