Function at 0x140047950
Capabilities:
Encode data using xor

Disassembly:
mov r8d, r8d
jmp 0x140047950
push rsi
sub rsp, 0x40
mov rsi, r8
mov r11, rdx
mov r9d, ecx
test rdx, rdx
jne 0x14004796c
xor eax, eax
add rsp, 0x40
pop rsi
ret
mov qword [rsp + 0x50], rbx
not r9d
lea rbx, [0x140000000]
cmp r8, 0x17
jb 0x140047d08
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x18], r14
mov qword [rsp + 0x10], r15
nop dword [rax]
test r11b, 3
je 0x1400479c9
movzx ecx, byte [r11]
mov eax, r9d
inc r11
xor rcx, rax
shr eax, 8
movzx edx, cl
mov r9d, dword [rbx + rdx*4 + 0x97690]
xor r9d, eax
dec rsi
jne 0x1400479a0
xor edi, edi
movabs rax, 0xcccccccccccccccd
mov ebp, edi
mov r14d, edi
mov r15d, edi
mul rsi
mov rcx, rdx
shr rcx, 4
lea rax, [rcx + rcx*4]
shl rax, 2
sub rsi, rax
dec rcx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rsi
je 0x140047b6a
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r13
nop
mov eax, dword [r11]
mov edx, dword [r11 + 8]
mov r10d, dword [r11 + 0x10]
mov ecx, dword [r11 + 4]
mov r8d, dword [r11 + 0xc]
xor eax, r9d
mov r12d, eax
movzx eax, al
xor edx, ebp
mov r9d, dword [rbx + rax*4 + 0x97e90]
xor r10d, r15d
xor ecx, edi
xor r8d, r14d
movzx eax, cl
add r11, 0x14
mov edi, dword [rbx + rax*4 + 0x97e90]
movzx eax, dl
mov esi, edx
mov ebp, dword [rbx + rax*4 + 0x97e90]
mov eax, r8d
mov qword [rsp + 8], r11
mov qword [rsp + 0x68], rax
movzx eax, r8b
mov r13d, ecx
mov r14d, dword [rbx + rax*4 + 0x97e90]
mov r11, qword [rsp + 0x68]
mov eax, r10d
mov qword [rsp], rax
movzx eax, r10b
lea rdx, [0x140000000]
mov r15d, dword [rbx + rax*4 + 0x97e90]
mov ebx, 1
mov r10d, 0x100
nop
lea eax, [rbx*8]
inc ebx
movsxd r8, eax
mov rax, r12
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, r13
add rcx, r10
xor r9d, dword [rdx + rcx*4 + 0x97e90]
mov rcx, r8
shr rax, cl
movzx ecx, al
mov rax, rsi
add rcx, r10
xor edi, dword [rdx + rcx*4 + 0x97e90]
mov rcx, r8
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor ebp, dword [rax + rdx*4 + 0x97e90]
mov rax, r11
shr rax, cl
movzx edx, al
lea rax, [0x140000000]
add rdx, r10
xor r14d, dword [rax + rdx*4 + 0x97e90]
mov rax, qword [rsp]
lea rdx, [0x140000000]
shr rax, cl
movzx ecx, al
add rcx, r10
add r10, 0x100
xor r15d, dword [rdx + rcx*4 + 0x97e90]
cmp ebx, 4
jl 0x140047aa0
dec qword [rsp + 0x58]
mov r11, qword [rsp + 8]
lea rbx, [0x140000000]
jne 0x140047a10
mov rsi, qword [rsp + 0x60]
mov r13, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
lea rbx, [0x140000000]
mov edx, dword [r11]
xor edx, r9d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x97690]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x97690]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov eax, dword [rbx + rcx*4 + 0x97690]
xor eax, r8d
mov r8d, dword [r11 + 4]
xor r8d, eax
xor r8d, edi
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x97690]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
mov r8d, dword [r11 + 8]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x97690]
xor eax, edx
xor r8d, eax
xor r8d, ebp
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x97690]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
mov r8d, dword [r11 + 0xc]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x97690]
xor eax, edx
xor r8d, eax
xor r8d, r14d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x97690]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
mov r8d, dword [r11 + 0x10]
movzx ecx, dl
shr edx, 8
mov eax, dword [rbx + rcx*4 + 0x97690]
xor eax, edx
xor r8d, eax
xor r8d, r15d
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
mov r15, qword [rsp + 0x10]
mov r14, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r8d, dword [rbx + rcx*4 + 0x97690]
xor r8d, edx
movzx ecx, r8b
shr r8d, 8
mov edx, dword [rbx + rcx*4 + 0x97690]
xor edx, r8d
movzx ecx, dl
shr edx, 8
mov r9d, dword [rbx + rcx*4 + 0x97690]
xor r9d, edx
add r11, 0x14
cmp rsi, 8
jb 0x140047e08
mov r10, rsi
shr r10, 3
imul rax, r10, 0xfffffffffffffff8
add rsi, rax
movzx ecx, byte [r11]
mov eax, r9d
shr r9d, 8
xor rcx, rax
add r11, 8
movzx eax, cl
movzx ecx, byte [r11 - 7]
mov edx, dword [rbx + rax*4 + 0x97690]
xor edx, r9d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 - 6]
mov r8d, dword [rbx + rax*4 + 0x97690]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 - 5]
mov edx, dword [rbx + rax*4 + 0x97690]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 - 4]
mov r8d, dword [rbx + rax*4 + 0x97690]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 - 3]
mov edx, dword [rbx + rax*4 + 0x97690]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 - 2]
mov r8d, dword [rbx + rax*4 + 0x97690]
xor r8d, edx
mov eax, r8d
shr r8d, 8
xor rcx, rax
movzx eax, cl
movzx ecx, byte [r11 - 1]
mov edx, dword [rbx + rax*4 + 0x97690]
xor edx, r8d
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
mov r9d, dword [rbx + rax*4 + 0x97690]
xor r9d, edx
dec r10
jne 0x140047d20
test rsi, rsi
je 0x140047e34
nop dword [rax]
movzx ecx, byte [r11]
mov eax, r9d
lea r11, [r11 + 1]
xor rcx, rax
shr eax, 8
movzx edx, cl
mov r9d, dword [rbx + rdx*4 + 0x97690]
xor r9d, eax
dec rsi
jne 0x140047e10
mov rbx, qword [rsp + 0x50]
not r9d
mov eax, r9d
add rsp, 0x40
pop rsi
ret