Function at 0x12010f860
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov ebx, 0x2d
movzx r9d, byte [rdx + 8]
mov r13, rcx
mov rsi, rdx
mov eax, r8d
test r8d, r8d
js 0x12010f89a
mov ebx, 0x2b
test r9b, 0x10
je 0x12010fa20
lea r8, [rsp + 0x72]
mov r12, r8
nop word [rax + rax]
movsxd rdx, eax
mov r10d, eax
mov rcx, r12
sub r12, 2
imul rdx, rdx, 0x66666667
sar r10d, 0x1f
sar rdx, 0x22
sub edx, r10d
lea r10d, [rdx + rdx*4]
add r10d, r10d
sub eax, r10d
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
add eax, 0x30
mov word [r12], ax
mov eax, edx
test edx, edx
jne 0x12010f8a8
test r9b, 4
je 0x12010f9e8
sub r8, r12
mov eax, r9d
mov rbp, qword [rsi]
mov rdi, r8
and eax, 1
sar rdi, 1
test bl, bl
je 0x12010fa50
test rbp, rbp
je 0x12010fa50
lea r14, [rsp + 0x40]
xor ecx, ecx
sub rbp, 1
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], r14
mov word [rsp + 0x40], cx
test al, al
jne 0x12010faca
cmp rbp, rdi
jbe 0x12010fb2d
and r9d, 8
jne 0x12010fb2d
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x30]
sub r9, rdi
call fcn.120001ca8
test bl, bl
jne 0x12010fb2d
mov r9, qword [rsp + 0x38]
lea r8, [r9 + r9]
sar r8, 1
mov rdx, r8
cmp r9, r8
jb 0x12010fb78
mov qword [rsp + 0x20], rdi
lea r15, [rsp + 0x30]
mov r9, r12
xor r8d, r8d
mov rcx, r15
call fcn.120001cb8
mov rdx, qword [rsp + 0x38]
cmp rbp, rdi
jbe 0x12010faa2
test byte [rsi + 8], 8
je 0x12010faa2
mov dword [rsp + 0x20], 0x20
mov r9, rbp
xor r8d, r8d
mov rcx, r15
sub r9, rdi
call fcn.120001ca8
mov rdx, qword [rsp + 0x38]
jmp 0x12010faa2
test bl, bl
jne 0x12010fa38
lea rax, [r13 + 0x10]
xor r9d, r9d
mov rdx, r12
mov rcx, r13
mov qword [r13], rax
call fcn.120153650
mov rax, r13
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, r9d
mov edx, 0x20
and ebx, 2
cmovne ebx, edx
jmp 0x12010f89a
movsx bx, bl
mov word [r12 - 2], bx
lea r12, [rcx - 4]
jmp 0x12010f9ec
mov qword [rsp + 0x38], 0
lea r14, [rsp + 0x40]
xor edx, edx
mov qword [rsp + 0x30], r14
mov word [rsp + 0x40], dx
test al, al
je 0x12010fb10
test bl, bl
jne 0x12010faca
cmp rbp, rdi
ja 0x12010fb3f
xor r10d, r10d
lea r15, [rsp + 0x30]
mov qword [rsp + 0x20], rdi
mov rdx, r10
mov r9, r12
xor r8d, r8d
mov rcx, r15
call fcn.120001cb8
mov rdx, qword [rsp + 0x38]
lea rax, [r13 + 0x10]
mov qword [r13], rax
mov rax, qword [rsp + 0x30]
cmp rax, r14
je 0x12010fb20
mov qword [r13], rax
mov rax, qword [rsp + 0x40]
mov qword [r13 + 0x10], rax
mov qword [r13 + 8], rdx
jmp 0x12010fa02
lea r15, [rsp + 0x30]
movsx edx, bl
mov rcx, r15
call fcn.120001c78
mov rdx, qword [rsp + 0x38]
cmp rbp, rdi
ja 0x12010fb46
lea r8, [rdx + rdx]
sar r8, 1
mov r10, r8
cmp r8, rdx
jbe 0x12010fa87
mov r9, rdx
lea rcx, [0x1205c1030]
lea rdx, [0x1205c1019]
call fcn.120001bf0
nop dword [rax]
cmp rbp, rdi
ja 0x12010fb69
test bl, bl
jne 0x12010fb2d
xor edx, edx
jmp 0x12010f98f
movdqu xmm0, xmmword [rsp + 0x40]
movups xmmword [r13 + 0x10], xmm0
jmp 0x12010fac1
movsx edx, bl
lea rcx, [rsp + 0x30]
call fcn.120001c78
jmp 0x12010f977
xor edx, edx
lea r15, [rsp + 0x30]
mov dword [rsp + 0x20], 0x30
mov r9, rbp
xor r8d, r8d
mov rcx, r15
sub r9, rdi
call fcn.120001ca8
mov rdx, qword [rsp + 0x38]
jmp 0x12010fae4
and r9d, 8
jne 0x12010f96f
jmp 0x12010f952
lea rdx, [0x1205c1019]
lea rcx, [0x1205c1030]
call fcn.120001bf0
nop
nop
nop
nop
nop