Function at 0x140035970
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
push r15
lea edi, [rdx - 0x21524111]
mov r14, r9
add edi, dword [r8]
mov r15, r8
mov r10d, edi
mov r11d, edi
add edi, dword [r9]
mov rsi, rdx
mov rbx, rcx
test cl, 3
jne 0x140035afb
cmp rdx, 0xc
jbe 0x140035a57
lea rcx, [rdx - 0xd]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
shr rdx, 3
inc rdx
imul rax, rdx, 0xfffffffffffffff4
add rsi, rax
nop dword [rax + rax]
add edi, dword [rbx + 8]
add r10d, dword [rbx + 4]
mov r8d, edi
mov eax, dword [rbx]
add rbx, 0xc
sub eax, edi
rol r8d, 4
add eax, r11d
add edi, r10d
xor r8d, eax
sub r10d, r8d
mov eax, r8d
add r8d, edi
rol eax, 6
xor eax, r10d
sub edi, eax
mov ecx, eax
rol ecx, 8
add eax, r8d
xor ecx, edi
sub r8d, ecx
mov r11d, ecx
add ecx, eax
rol r11d, 0x10
xor r11d, r8d
sub eax, r11d
mov r10d, r11d
ror r10d, 0xd
add r11d, ecx
xor r10d, eax
sub ecx, r10d
mov edi, r10d
rol edi, 4
add r10d, r11d
xor edi, ecx
sub rdx, 1
jne 0x1400359e0
cmp rsi, 0xc
ja 0x140035dde
lea rcx, [0x140000000]
mov eax, dword [rcx + rsi*4 + 0x35e4c]
add rax, rcx
jmp rax
add edi, dword [rbx + 8]
add r10d, dword [rbx + 4]
add r11d, dword [rbx]
jmp 0x140035dde
mov eax, dword [rbx + 8]
add r10d, dword [rbx + 4]
and eax, 0xffffff
add edi, eax
add r11d, dword [rbx]
jmp 0x140035dde
movzx eax, word [rbx + 8]
add r10d, dword [rbx + 4]
add edi, eax
add r11d, dword [rbx]
jmp 0x140035dde
movzx eax, byte [rbx + 8]
add r10d, dword [rbx + 4]
add edi, eax
add r11d, dword [rbx]
jmp 0x140035dde
mov eax, dword [rbx + 4]
and eax, 0xffffff
add r10d, eax
add r11d, dword [rbx]
jmp 0x140035dde
movzx eax, word [rbx + 4]
add r10d, eax
add r11d, dword [rbx]
jmp 0x140035dde
movzx eax, byte [rbx + 4]
add r10d, eax
add r11d, dword [rbx]
jmp 0x140035dde
mov eax, dword [rbx]
and eax, 0xffffff
jmp 0x140035ddb
mov dword [r15], edi
mov dword [r9], r10d
jmp 0x140035e32
test cl, 1
jne 0x140035c5e
cmp rsi, 0xc
jbe 0x140035bcf
lea rcx, [rdx - 0xd]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
mov rbp, rdx
shr rbp, 3
inc rbp
imul rax, rbp, 0xfffffffffffffff4
add rsi, rax
movzx eax, word [rbx]
movzx ecx, word [rbx + 6]
movzx r8d, word [rbx + 4]
movzx edx, word [rbx + 8]
add r8d, r10d
shl ecx, 0x10
add edx, edi
add r8d, ecx
movzx ecx, word [rbx + 0xa]
shl ecx, 0x10
add edx, ecx
movzx ecx, word [rbx + 2]
shl ecx, 0x10
mov r9d, edx
add ecx, eax
rol r9d, 4
sub ecx, edx
add rbx, 0xc
add ecx, r11d
add edx, r8d
xor r9d, ecx
sub r8d, r9d
mov eax, r9d
rol eax, 6
add r9d, edx
xor eax, r8d
sub edx, eax
mov ecx, eax
rol ecx, 8
add eax, r9d
xor ecx, edx
sub r9d, ecx
mov r11d, ecx
add ecx, eax
rol r11d, 0x10
xor r11d, r9d
sub eax, r11d
mov r10d, r11d
ror r10d, 0xd
add r11d, ecx
xor r10d, eax
sub ecx, r10d
mov edi, r10d
rol edi, 4
add r10d, r11d
xor edi, ecx
sub rbp, 1
jne 0x140035b30
cmp rsi, 0xc
ja 0x140035dde
lea rcx, [0x140000000]
mov eax, dword [rcx + rsi*4 + 0x35e80]
add rax, rcx
jmp rax
movzx ecx, word [rbx + 0xa]
movzx eax, word [rbx + 8]
shl ecx, 0x10
add edi, eax
add edi, ecx
movzx ecx, word [rbx + 6]
movzx eax, word [rbx + 4]
shl ecx, 0x10
add r10d, eax
add r10d, ecx
movzx ecx, word [rbx + 2]
movzx eax, word [rbx]
shl ecx, 0x10
add r11d, eax
add r11d, ecx
jmp 0x140035dde
movzx eax, byte [rbx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, word [rbx + 8]
add edi, eax
jmp case.0x140035be0.8
movzx eax, byte [rbx + 8]
add edi, eax
jmp case.0x140035be0.8
movzx eax, byte [rbx + 6]
shl eax, 0x10
add r10d, eax
movzx eax, word [rbx + 4]
add r10d, eax
jmp case.0x140035be0.4
movzx eax, byte [rbx + 4]
add r10d, eax
jmp case.0x140035be0.4
movzx eax, byte [rbx + 2]
shl eax, 0x10
add r11d, eax
movzx eax, word [rbx]
jmp 0x140035ddb
cmp rsi, 0xc
jbe 0x140035d61
lea rcx, [rdx - 0xd]
movabs rax, 0xaaaaaaaaaaaaaaab
mul rcx
mov rbp, rdx
shr rbp, 3
inc rbp
imul rax, rbp, 0xfffffffffffffff4
add rsi, rax
nop word [rax + rax]
movzx eax, byte [rbx + 6]
movzx ecx, byte [rbx + 7]
movzx r8d, byte [rbx + 4]
movzx edx, byte [rbx + 8]
add r8d, r10d
shl ecx, 8
add edx, edi
add ecx, eax
movzx eax, byte [rbx + 5]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbx + 0xa]
shl ecx, 8
add r8d, ecx
movzx ecx, byte [rbx + 0xb]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbx + 9]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbx + 2]
shl ecx, 8
add edx, ecx
movzx ecx, byte [rbx + 3]
shl ecx, 8
mov r9d, edx
add ecx, eax
rol r9d, 4
movzx eax, byte [rbx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [rbx]
shl ecx, 8
add rbx, 0xc
add ecx, eax
sub ecx, edx
add edx, r8d
add ecx, r11d
xor r9d, ecx
sub r8d, r9d
mov eax, r9d
rol eax, 6
add r9d, edx
xor eax, r8d
sub edx, eax
mov ecx, eax
rol ecx, 8
add eax, r9d
xor ecx, edx
sub r9d, ecx
mov r11d, ecx
add ecx, eax
rol r11d, 0x10
xor r11d, r9d
sub eax, r11d
mov r10d, r11d
ror r10d, 0xd
add r11d, ecx
xor r10d, eax
sub ecx, r10d
mov edi, r10d
rol edi, 4
add r10d, r11d
xor edi, ecx
sub rbp, 1
jne 0x140035c90
cmp rsi, 0xc
ja 0x140035dde
lea rcx, [0x140000000]
mov eax, dword [rcx + rsi*4 + 0x35eb4]
add rax, rcx
jmp rax
movzx eax, byte [rbx + 0xb]
shl eax, 0x18
add edi, eax
movzx eax, byte [rbx + 0xa]
shl eax, 0x10
add edi, eax
movzx eax, byte [rbx + 9]
shl eax, 8
add edi, eax
movzx eax, byte [rbx + 8]
add edi, eax
movzx eax, byte [rbx + 7]
shl eax, 0x18
add r10d, eax
movzx eax, byte [rbx + 6]
shl eax, 0x10
add r10d, eax
movzx eax, byte [rbx + 5]
shl eax, 8
add r10d, eax
movzx eax, byte [rbx + 4]
add r10d, eax
movzx eax, byte [rbx + 3]
shl eax, 0x18
add r11d, eax
movzx eax, byte [rbx + 2]
shl eax, 0x10
add r11d, eax
movzx eax, byte [rbx + 1]
shl eax, 8
add r11d, eax
movzx eax, byte [rbx]
add r11d, eax
xor edi, r10d
mov eax, r10d
rol eax, 0xe
sub edi, eax
mov eax, edi
mov edx, edi
rol eax, 0xb
xor edx, r11d
sub edx, eax
xor r10d, edx
mov eax, edx
ror eax, 7
sub r10d, eax
xor edi, r10d
mov eax, r10d
rol eax, 0x10
sub edi, eax
mov eax, edi
mov ecx, edi
rol eax, 4
xor ecx, edx
sub ecx, eax
xor r10d, ecx
mov eax, ecx
rol eax, 0xe
sub r10d, eax
mov eax, r10d
xor edi, r10d
ror eax, 8
sub edi, eax
mov dword [r15], edi
mov dword [r14], r10d
mov rbx, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
pop r15
pop r14
ret