Function at 0x140045810
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, 0x38
xor edx, edx
cmp byte [0x140136d88], dl
mov qword [rsp + 0x80], rdx
je 0x140045ba7
cmp byte [0x140136d89], dl
jne 0x140045f02
lea rax, [0x140136d8a]
mov byte [0x140136d89], 1
mov ecx, 0xe
mov r9d, 3
sub rcx, rax
mov r10d, 4
mov qword [rsp + 0x90], rcx
mov r11d, 5
mov ecx, 0xf
mov ebx, 6
sub rcx, rax
mov edi, 7
mov qword [rsp + 0x98], rcx
mov esi, 8
mov ebp, 9
mov r14d, 0xa
mov r15d, 0xb
mov r12d, 0xc
mov r13d, 0xd
mov ecx, 0x10
sub r9, rax
sub r10, rax
sub r11, rax
sub rbx, rax
sub rdi, rax
sub rsi, rax
sub rbp, rax
sub r14, rax
sub r15, rax
sub r12, rax
sub r13, rax
movabs r8, 0xd28f2c51de26cd5
sub rcx, rax
mov qword [rsp + 0x28], rcx
mov rcx, qword [0x140136db0]
xor rcx, rdx
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
lea rax, [0x140136d88]
add rax, 2
add rdx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, rdx
xor byte [rdx], al
lea rax, [0x140136d89]
sub rcx, rax
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, rdx
xor byte [rdx + 1], al
lea rax, [0x140136d88]
sub rcx, rax
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r9]
xor byte [rdx + 2], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r10]
xor byte [rdx + 3], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r11]
xor byte [rdx + 4], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rbx]
xor byte [rdx + 5], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rdi]
xor byte [rdx + 6], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rsi]
xor byte [rdx + 7], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rbp]
xor byte [rdx + 8], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r14]
xor byte [rdx + 9], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r15]
xor byte [rdx + 0xa], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r12]
xor byte [rdx + 0xb], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r13]
xor byte [rdx + 0xc], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, qword [rsp + 0x90]
xor byte [rdx + 0xd], al
add rcx, rdx
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, qword [rsp + 0x98]
xor byte [rdx + 0xe], al
add rcx, rdx
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, qword [rsp + 0x28]
xor byte [rdx + 0xf], al
add rcx, rdx
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
xor byte [rdx + 0x10], al
mov rdx, qword [rsp + 0x80]
add rdx, 0x11
mov qword [rsp + 0x80], rdx
cmp rdx, 0x22
jb 0x1400458f0
jmp 0x140045f02
lea rax, [0x140136d8a]
mov ecx, 0xe
sub rcx, rax
mov r9d, 3
mov qword [rsp + 0x90], rcx
mov r10d, 4
mov ecx, 0xf
mov r11d, 5
sub rcx, rax
mov ebx, 6
mov qword [rsp + 0x98], rcx
mov edi, 7
mov esi, 8
mov ebp, 9
mov r14d, 0xa
mov r15d, 0xb
mov r12d, 0xc
mov r13d, 0xd
mov ecx, 0x10
sub r9, rax
sub r10, rax
sub r11, rax
sub rbx, rax
sub rdi, rax
sub rsi, rax
sub rbp, rax
sub r14, rax
sub r15, rax
sub r12, rax
sub r13, rax
sub rcx, rax
movabs r8, 0xd28f2c51de26cd5
mov qword [rsp + 0x28], rcx
nop dword [rax]
nop dword [rax + rax]
mov rcx, qword [0x140136db0]
xor rcx, rdx
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
lea rax, [0x140136d88]
add rax, 2
add rdx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, rdx
xor byte [rdx], al
lea rax, [0x140136d89]
sub rcx, rax
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, rdx
xor byte [rdx + 1], al
lea rax, [0x140136d88]
sub rcx, rax
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r9]
xor byte [rdx + 2], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r10]
xor byte [rdx + 3], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r11]
xor byte [rdx + 4], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rbx]
xor byte [rdx + 5], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rdi]
xor byte [rdx + 6], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rsi]
xor byte [rdx + 7], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + rbp]
xor byte [rdx + 8], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r14]
xor byte [rdx + 9], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r15]
xor byte [rdx + 0xa], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r12]
xor byte [rdx + 0xb], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
lea rcx, [rdx + r13]
xor byte [rdx + 0xc], al
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, qword [rsp + 0x90]
xor byte [rdx + 0xd], al
add rcx, rdx
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, qword [rsp + 0x98]
xor byte [rdx + 0xe], al
add rcx, rdx
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
mov rcx, qword [rsp + 0x28]
xor byte [rdx + 0xf], al
add rcx, rdx
xor rcx, qword [0x140136db0]
xor rcx, r8
mov rax, rcx
shl rax, 0xd
xor rcx, rax
mov rax, rcx
shr rax, 7
xor al, cl
xor byte [rdx + 0x10], al
mov rdx, qword [rsp + 0x80]
add rdx, 0x11
mov qword [rsp + 0x80], rdx
cmp rdx, 0x22
jb 0x140045c50
mov rcx, qword [rsp + 0x88]
lea r8, [0x140136dab]
lea rdx, [0x140136d8a]
call fcn.1400049a0
mov rax, qword [rsp + 0x88]
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret