Function at 0x14008f950
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbx
push rdi
push r12
sub rsp, 0x50
mov rax, qword [rcx + 0x10]
mov rbx, r9
mov r12, r8
mov rdi, rdx
cmp qword [rcx + 8], rax
jne 0x14008f97f
call fcn.140041540
mov rcx, qword [rsp + 0x70]
test rbx, rbx
je 0x14008fdca
mov qword [rsp + 0x78], rbp
lea rax, [rdi + 4]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
lea r15, [r12 + 4]
sub r12, rdi
mov qword [rsp + 0x20], r15
sub r12, 4
mov qword [rsp + 0x80], r12
nop
movzx edi, word [rax - 4]
lea r15, [0x140000000]
movzx ebp, word [rax - 2]
mov r12d, 4
movzx r14d, word [rax]
movzx esi, word [rax + 2]
mov r13, qword [rcx + 8]
rol di, 8
rol bp, 8
rol r14w, 8
rol si, 8
add r13, 0x60
nop word [rax + rax]
movzx r10d, word [r13 + 0x16]
movzx ecx, r14w
xor cx, word [r13 + 0x14]
movzx r9d, r10w
movzx edx, cl
shr r9w, 9
movzx ecx, cx
and dl, 0x7f
shr rcx, 7
movzx r8d, dl
xor r8w, word [r15 + rcx*2 + 0x172640]
movzx ecx, dl
mov edx, r10d
movzx r10d, word [r13 + 0x1a]
and edx, 0x1ff
xor r9b, byte [rcx + r15 + 0x1725c0]
movzx ecx, r8b
and cl, 0x7f
xor r9b, cl
movzx ecx, r8w
xor rdx, rcx
movzx r8d, r9b
xor r8w, word [r15 + rdx*2 + 0x172640]
movzx edx, r9b
movzx ecx, r8b
movzx r9d, r10w
shr r9w, 9
xor cl, byte [rdx + r15 + 0x1725c0]
movzx r11d, cl
movzx ecx, si
xor cx, word [r13 + 0x18]
movzx edx, cl
shl r11w, 9
movzx ecx, cx
and dl, 0x7f
shr rcx, 7
or r11w, r8w
movzx r8d, dl
xor r11w, si
xor r8w, word [r15 + rcx*2 + 0x172640]
movzx ecx, dl
mov edx, r10d
movzx r10d, word [r13 + 0x1e]
and edx, 0x1ff
xor r9b, byte [rcx + r15 + 0x1725c0]
movzx ecx, r8b
and cl, 0x7f
xor r9b, cl
movzx ecx, r8w
xor rdx, rcx
movzx r8d, r9b
xor r8w, word [r15 + rdx*2 + 0x172640]
movzx edx, r9b
movzx ecx, r8b
movzx r9d, r10w
shr r9w, 9
xor cl, byte [rdx + r15 + 0x1725c0]
movzx ebx, cl
shl bx, 9
or bx, r8w
xor bx, r11w
xor r11w, word [r13 + 0x1c]
movzx edx, r11b
movzx ecx, r11w
shr rcx, 7
and dl, 0x7f
movzx r8d, dl
xor r8w, word [r15 + rcx*2 + 0x172640]
movzx ecx, dl
mov edx, r10d
and edx, 0x1ff
movzx r10d, bx
xor r9b, byte [rcx + r15 + 0x1725c0]
movzx ecx, r8b
and cl, 0x7f
xor r9b, cl
movzx ecx, r8w
xor rdx, rcx
movzx r8d, r9b
xor r8w, word [r15 + rdx*2 + 0x172640]
rol r10w, 1
and r10w, word [r13 + 0x10]
movzx ecx, r8b
movzx edx, r9b
xor cl, byte [rdx + r15 + 0x1725c0]
movzx edx, cl
shl dx, 9
or dx, r8w
xor r10w, dx
xor r10w, bx
movzx ecx, r10w
xor bp, r10w
movzx r10d, word [r13 + 6]
rol cx, 1
movzx r9d, r10w
or cx, word [r13 + 0x12]
xor cx, bx
shr r9w, 9
xor di, cx
movzx r11d, di
rol r11w, 1
and r11w, word [r13]
xor r11w, bp
movzx ecx, r11w
rol cx, 1
or cx, word [r13 + 2]
xor cx, word [r13 + 4]
xor cx, di
movzx edx, cl
movzx ecx, cx
shr rcx, 7
and dl, 0x7f
movzx r8d, dl
xor r8w, word [r15 + rcx*2 + 0x172640]
movzx ecx, dl
mov edx, r10d
movzx r10d, word [r13 + 0xa]
and edx, 0x1ff
xor r9b, byte [rcx + r15 + 0x1725c0]
movzx ecx, r8b
and cl, 0x7f
xor r9b, cl
movzx ecx, r8w
xor rdx, rcx
movzx r8d, r9b
xor r8w, word [r15 + rdx*2 + 0x172640]
movzx edx, r9b
movzx ecx, r8b
movzx r9d, r10w
shr r9w, 9
xor cl, byte [rdx + r15 + 0x1725c0]
movzx ebx, cl
shl bx, 9
or bx, r8w
xor bx, r11w
xor r11w, word [r13 + 8]
movzx edx, r11b
movzx ecx, r11w
shr rcx, 7
and dl, 0x7f
movzx r8d, dl
xor r8w, word [r15 + rcx*2 + 0x172640]
movzx ecx, dl
mov edx, r10d
movzx r10d, word [r13 + 0xe]
and edx, 0x1ff
xor r9b, byte [rcx + r15 + 0x1725c0]
movzx ecx, r8b
and cl, 0x7f
xor r9b, cl
movzx ecx, r8w
xor rdx, rcx
movzx r8d, r9b
xor r8w, word [r15 + rdx*2 + 0x172640]
movzx edx, r9b
movzx ecx, r8b
xor cl, byte [rdx + r15 + 0x1725c0]
movzx r11d, cl
shl r11w, 9
or r11w, r8w
xor r11w, bx
xor bx, word [r13 + 0xc]
movzx edx, bl
movzx ecx, bx
and dl, 0x7f
shr rcx, 7
movzx r8d, dl
lea r13, [r13 - 0x20]
movzx r9d, r10w
xor r14w, r11w
shr r9w, 9
xor r8w, word [r15 + rcx*2 + 0x172640]
movzx ecx, dl
mov edx, r10d
and edx, 0x1ff
xor r9b, byte [rcx + r15 + 0x1725c0]
movzx ecx, r8b
and cl, 0x7f
xor r9b, cl
movzx ecx, r8w
xor rdx, rcx
movzx r8d, r9b
xor r8w, word [r15 + rdx*2 + 0x172640]
movzx edx, r9b
movzx ecx, r8b
xor cl, byte [rdx + r15 + 0x1725c0]
movzx edx, cl
shl dx, 9
or dx, r8w
xor dx, r11w
xor si, dx
sub r12, 1
jne 0x14008fa00
mov r15, qword [rsp + 0x20]
mov r12, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x70]
rol di, 8
rol bp, 8
rol r14w, 8
rol si, 8
mov word [r12 + rax], di
add rax, 8
mov word [r15 - 2], bp
mov word [r15], r14w
mov word [r15 + 2], si
add r15, 8
sub qword [rsp + 0x88], 1
mov qword [rsp + 0x20], r15
jne 0x14008f9c0
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x78]
add rsp, 0x50
pop r12
pop rdi
pop rbx
ret