Function at 0x14008fcb0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, rdx
movzx r14d, word [rdx + 0x10]
mov rdi, qword [rdx]
mov r15, qword [rdx + 8]
xor ebp, ebp
mov r11, 0xffffffffffffffff
mov r13d, 0x8b36b65d
mov qword [rsp + 0x30], r15
nop word cs:[rax + rax]
mov eax, dword [0x141dcc828]
imul eax, dword [0x141dcc82c]
xor eax, 0xb0572db0
imul eax, eax, 0x1c1923bc
add eax, 0x78d6dee4
cmp eax, 0xf824cfa3
ja 0x14008fcf0
test r14w, r14w
je 0x14008fd50
mov word [rsi + 0x10], 0
mov eax, dword [0x141dcc898]
or eax, dword [0x141dcc89c]
xor eax, 0xd3396ec7
add eax, 0xbea8c54f
cmp eax, 0xf1dc52a3
jae 0x14008fd20
xor r12d, r12d
jmp 0x14008ff10
mov eax, dword [0x141dcc830]
add eax, dword [0x141dcc834]
imul eax, eax, 0x3a2b906b
or eax, 0xce09cb29
add eax, 0x1162e9ae
cmp eax, 0xac2a4e08
ja 0x14008fd50
nop word cs:[rax + rax]
mov eax, dword [0x141dcc838]
or eax, dword [0x141dcc83c]
imul eax, eax, 0x73c3cdec
add eax, 0x8866c401
cmp eax, 0x4077a57c
jb 0x14008fd80
nop
test bpl, bpl
jne 0x14008fda0
cmp rdi, r15
je 0x140090270
mov eax, dword [0x141dcc840]
xor edx, edx
div dword [0x141dcc844]
nop dword [rax]
mov eax, dword [0x141dcc848]
xor eax, dword [0x141dcc84c]
xor eax, 0x2583d559
imul eax, eax, 0x585fca0e
shr eax, 1
imul rax, rax, 0x215df9df
shr rax, 0x3c
cmp eax, 0xc15ea3f
ja 0x14008fdc0
lea rax, [rdi + 1]
mov edx, dword [0x141dcc850]
xor edx, dword [0x141dcc854]
add edx, 0x5b5be6a2
or edx, 0x20aea290
and edx, 0x69ffa2b1
cmp edx, 0xbb7ddce7
jne 0x14008fe20
mov qword [rsi], rax
nop dword [rax + rax]
mov edx, dword [0x141dcc858]
add edx, dword [0x141dcc85c]
xor edx, 0x5217422
add edx, 0x2866af26
imul rdx, rdx, 0x4c3b8523
shr rdx, 0x3e
mov qword [rsi], rax
cmp edx, 0xf9ae3efd
ja 0x14008fe20
movzx r10d, byte [rdi]
test r10b, r10b
js 0x14008fe80
nop word [rax + rax]
mov edx, dword [0x141dcc868]
add edx, dword [0x141dcc86c]
or edx, 0x7b273f3b
cmp edx, 0x61c9b4a4
je 0x14008fe60
jmp 0x14008fef8
mov eax, dword [0x141dcc860]
and eax, dword [0x141dcc864]
and eax, 0x747dd46d
imul rax, rax, 0x252dc917
shr rax, 0x3b
xor eax, 0xd8c954ba
cmp eax, 0x21566a59
jb 0x14008fe80
mov edx, r10d
and edx, 0x1f
lea rax, [rdi + 2]
mov qword [rsi], rax
movzx r9d, byte [rdi + 1]
and r9d, 0x3f
cmp r10b, 0xdf
jbe 0x14008feef
mov eax, dword [0x141dcc870]
and eax, dword [0x141dcc874]
xor eax, 0x744c17f
add eax, 0xfff5c336
or eax, 0xf854b6f9
cmp eax, 0x15e48293
jae 0x14009009c
jmp 0x14009018e
shl edx, 6
or edx, r9d
mov r10d, edx
xor r12d, r12d
mov rdi, rax
mov r14d, r10d
nop word cs:[rax + rax]
mov eax, dword [0x141dcc8b8]
sub eax, dword [0x141dcc8bc]
xor eax, 0x73fb55c5
add eax, 0xcfdf889
and eax, 0x55d0a508
cmp eax, 0x7d384d09
ja 0x14008ff10
mov rbx, qword [rcx + 0x10]
cmp rbx, qword [rcx]
je 0x14008ff80
nop dword [rax + rax]
mov eax, dword [0x141dcc8c0]
xor edx, edx
div dword [0x141dcc8c4]
imul rax, r13
shr rax, 0x3a
imul eax, eax, 0x5832546a
xor eax, 0x309d86aa
cmp eax, 0x20ed4914
jb 0x14008ff40
mov rax, qword [rcx + 8]
mov word [rax + rbx*2], r14w
inc rbx
mov qword [rcx + 0x10], rbx
mov r14d, r12d
jmp 0x14008fcf0
test bpl, bpl
jne 0x14008ff80
mov eax, dword [0x141dcc8c8]
xor eax, dword [0x141dcc8cc]
add eax, 0x4b632a1d
and eax, 0x8f00320d
cmp eax, 0x1ea32809
mov qword [rsp + 0x28], rdi
jbe 0x14008ffec
mov r8, r15
sub r8, qword [rsp + 0x28]
add r8, 3
cmovb r8, r11
shr r8, 2
cmp r12w, 1
sbb r8, 0
add r8, 2
mov qword [rsp + 0x20], 2
mov r9d, 2
mov rdx, rbx
mov rdi, rcx
call fcn.1400faca0
mov r11, 0xffffffffffffffff
mov rcx, rdi
mov edi, dword [0x141dcc8d0]
xor edi, dword [0x141dcc8d4]
add edi, 0x2203348c
xor edi, 0xa0fc6466
add edi, 0x7f19efa7
mov r8, r15
sub r8, qword [rsp + 0x28]
add r8, 3
cmovb r8, r11
shr r8, 2
cmp r12w, 1
sbb r8, 0
add r8, 2
mov qword [rsp + 0x20], 2
mov r9d, 2
mov rdx, rbx
mov r15, rcx
call fcn.1400faca0
mov r11, 0xffffffffffffffff
mov rcx, r15
mov r15, qword [rsp + 0x30]
cmp edi, 0x73a50c8c
ja 0x14008ffa7
mov rdi, qword [rsp + 0x28]
nop word cs:[rax + rax]
mov eax, dword [0x141dcc8d8]
add eax, dword [0x141dcc8dc]
imul rax, rax, 0x6ca9bca1
shr rax, 0x3c
and eax, 3
imul eax, eax, 0xa9df5de7
cmp eax, 0x7db974d6
jbe 0x140090070
jmp 0x14008ff40
mov eax, dword [0x141dcc878]
or eax, dword [0x141dcc87c]
xor eax, 0x15c50c00
imul rax, rax, 0x10591143
shr rax, 0x3c
imul r8d, eax, 0x15244c24
lea rax, [rdi + 3]
mov qword [rsi], rax
cmp r8d, 0x74e10f7e
je 0x14009018e
shl r9d, 6
movzx r8d, byte [rdi + 2]
and r8d, 0x3f
or r8d, r9d
cmp r10b, 0xf0
jb 0x14009019a
nop dword [rax]
mov eax, dword [0x141dcc880]
or eax, dword [0x141dcc884]
or eax, 0x284b011
and eax, 0x294b113
cmp eax, 0x7e54b623
je 0x1400900f0
mov eax, dword [0x141dcc888]
xor eax, dword [0x141dcc88c]
xor eax, 0x75996a75
imul eax, eax, 0xe24d686
cmp eax, 0x4187dada
jne 0x140090140
lea rax, [rdi + 4]
mov qword [rsi], rax
nop word cs:[rax + rax]
mov r9d, dword [0x141dcc890]
xor r9d, dword [0x141dcc894]
add r9d, 0x9cf05fe1
or r9d, 0x24c20000
and r9d, 0xa7c67011
lea rax, [rdi + 4]
mov qword [rsi], rax
cmp r9d, 0x8af2056b
jb 0x140090140
movzx r10d, byte [rdi + 3]
and edx, 7
shl edx, 0x12
shl r8d, 6
and r10d, 0x3f
or r10d, r8d
or r10d, edx
jmp 0x1400901a3
lea rax, [rdi + 3]
mov qword [rsi], rax
jmp 0x14009009c
shl edx, 0xc
or r8d, edx
mov r10d, r8d
mov edx, dword [0x141dcc8a0]
add edx, dword [0x141dcc8a4]
or edx, 0x5f7e3cdf
cmp edx, 0x746f99e9
je 0x1400901a3
cmp r10d, 0xffff
jbe 0x14008fef8
lea r14d, [r10 + 0xff0000]
test bpl, bpl
jne 0x1400901d1
shr r14d, 0xa
or r14d, 0xd800
mov edx, dword [0x141dcc8a8]
imul edx, dword [0x141dcc8ac]
and edx, 0xcaf8441b
mov r8d, 0xdb06efa5
imul rdx, r8
shr rdx, 0x3e
or edx, 0x3241915d
cmp edx, 0x2a48e7e4
jb 0x140090259
mov edx, dword [0x141dcc8b0]
add edx, dword [0x141dcc8b4]
and edx, 0xa78e7588
imul edx, edx, 0x810c6a9
imul rdx, rdx, 0x1ba99017
shr rdx, 0x3c
mov r12d, r10d
and r12d, 0x3ff
or r12d, 0xdc00
mov word [rsi + 0x10], r12w
cmp edx, 0x83d6e09
ja 0x140090259
mov rdi, rax
jmp 0x14008ff10
mov edx, r10d
and edx, 0x3ff
or edx, 0xdc00
mov word [rsi + 0x10], dx
jmp 0x140090210
mov eax, dword [0x141dcc8e0]
xor edx, edx
div dword [0x141dcc8e4]
cmp eax, 0xcad74e65
je 0x140090270
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret