Function at 0x100123968
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r14, rcx
mov r15, rdx
mov rcx, qword [rcx + 0x10]
lea rsi, [rcx + 1]
mov rdx, rsi
mov qword [rsp + 0x20], rsi
mov eax, 0xb397028
lea rbp, [0x100000000]
mov eax, 0xfffffff
mov rcx, rbp
mov r8d, dword [rsi]
mov r11d, dword [rsi + 8]
and qword [rsp + 0xb0], 0
and r11, rax
and r8, rax
add r11, rbp
mov rax, qword [0x100037580]
sub rcx, rax
mov r13, 0xfffffffffffff000
mov qword [rsp + 0x28], rcx
jne 0x100123a6b
xor r10d, r10d
test r8, r8
je 0x100123da7
mov r9d, dword [rsp + 0xb0]
mov ecx, dword [rsp + 0xb4]
mov ebx, 0x97b054d0
movzx eax, byte [r10 + r11]
inc r10
sub eax, 0x684fab30
add r9d, eax
add eax, ecx
imul rax, rbx
mov qword [rsp + 0xa0], rax
mov ecx, dword [rsp + 0xa0]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, eax, 0x4abb
xor ecx, eax
add r9d, ecx
cmp r10, r8
jb 0x100123a01
mov dword [rsp + 0xb4], ecx
mov dword [rsp + 0xb0], r9d
jmp 0x100123da7
movsxd rdx, dword [0x10000003c]
lea rax, [r11 + r8]
mov qword [rsp + 0x40], rax
lea rax, [0x1000000b0]
add rdx, rax
mov eax, r11d
sub eax, ebp
mov r10d, eax
lea rsi, [rax + r8]
mov r8d, dword [rdx]
mov rdi, rsi
mov r9d, eax
and r9, r13
add r8, rbp
sub r10, r9
and rdi, r13
mov r13d, dword [rdx + 4]
sub rsi, rdi
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rsi
add r13, r8
jmp 0x100123acb
mov eax, dword [r8]
cmp rax, r9
jae 0x100123ad0
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r13
jne 0x100123abc
xor ebx, ebx
cmp r8, r13
je 0x100123b09
mov eax, dword [r8]
cmp rax, r9
jne 0x100123b09
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x100123b09
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, r10
jae 0x100123b09
inc rbx
add rdx, 2
cmp rbx, rcx
jne 0x100123af0
mov r10d, dword [rsp + 0xb4]
mov r12d, dword [rsp + 0xb0]
mov r14, qword [rsp + 0x28]
mov r15d, 0x97b054d0
cmp r8, r13
je 0x100123d0c
mov eax, dword [r8]
cmp rax, rdi
ja 0x100123d0c
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp rbx, rax
jne 0x100123b65
add r8, rcx
cmp r8, r13
je 0x100123d0c
mov eax, dword [r8]
cmp rax, rdi
ja 0x100123d0c
xor ebx, ebx
jmp 0x100123b39
mov eax, dword [r8]
cmp rax, rdi
jne 0x100123b81
movzx eax, word [r8 + rbx*2 + 8]
and eax, 0xfff
cmp rax, rsi
jae 0x100123d0c
mov ecx, 0xf000
mov rax, rbx
inc rbx
test word [r8 + rax*2 + 8], cx
je 0x100123b24
movzx r9d, word [r8 + rax*2 + 8]
mov esi, r9d
and esi, 0xfff
add esi, dword [r8]
add rsi, rbp
mov rdi, rsi
xor ebp, ebp
sub rdi, r11
je 0x100123c20
movzx eax, byte [r11 + rbp]
inc rbp
sub eax, 0x684fab30
add r12d, eax
add eax, r10d
imul rax, r15
mov qword [rsp + 0xb8], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xb8]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r10d, edx
sar r10d, 0x1f
btr r10d, 0x1f
add r10d, edx
mov eax, r10d
imul eax, eax, 0x4abb
xor r10d, eax
add r12d, r10d
cmp rbp, rdi
jb 0x100123bb3
mov dword [rsp + 0xb4], r10d
mov dword [rsp + 0xb0], r12d
mov rax, qword [rsi]
mov qword [rsp + 0xb8], rax
shr r9d, 0xc
cmp r9d, 3
je 0x100123c43
sub r9d, 0xa
neg r9d
sbb edx, edx
add edx, 3
jmp 0x100123c48
mov edx, 2
mov r9, r14
neg r9
sub edx, 2
je 0x100123c71
cmp edx, 1
je 0x100123c5e
or r9, 0xffffffffffffffff
jmp 0x100123c7f
add rax, r9
mov r9d, 8
mov qword [rsp + 0xb8], rax
jmp 0x100123c7f
add dword [rsp + 0xb8], r9d
mov r9d, 4
xor r11d, r11d
test r9, r9
je 0x100123cf2
movzx eax, byte [rsp + r11 + 0xb8]
inc r11
sub eax, 0x684fab30
add r12d, eax
add eax, r10d
imul rax, r15
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r10d, edx
sar r10d, 0x1f
btr r10d, 0x1f
add r10d, edx
mov eax, r10d
imul eax, eax, 0x4abb
xor r10d, eax
add r12d, r10d
cmp r11, r9
jb 0x100123c87
mov dword [rsp + 0xb4], r10d
mov dword [rsp + 0xb0], r12d
lea r11, [r9 + rsi]
mov rsi, qword [rsp + 0x38]
lea rbp, [0x100000000]
mov rdi, qword [rsp + 0x30]
jmp 0x100123b24
mov r14, qword [rsp + 0xa0]
xor r8d, r8d
mov rsi, qword [rsp + 0x40]
mov r15, qword [rsp + 0xa8]
sub rsi, r11
je 0x100123d9b
mov ebx, 0x97b054d0
movzx eax, byte [r8 + r11]
inc r8
sub eax, 0x684fab30
add r12d, eax
add eax, r10d
imul rax, rbx
mov qword [rsp + 0xa0], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xa0]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov r10d, edx
sar r10d, 0x1f
btr r10d, 0x1f
add r10d, edx
mov eax, r10d
imul eax, eax, 0x4abb
xor r10d, eax
add r12d, r10d
cmp r8, rsi
jb 0x100123d2e
mov dword [rsp + 0xb4], r10d
mov dword [rsp + 0xb0], r12d
mov rsi, qword [rsp + 0x20]
mov r13, 0xfffffffffffff000
mov r12d, 0xfffffff
add qword [r14 + 0x10], 0x11
mov rax, qword [rsp + 0xb0]
mov ecx, dword [rsi + 0xc]
and rcx, r12
cmp rax, qword [rcx + rbp]
je 0x100123ec8
call fcn.1000de678
lea r9, [r14 + 0x18]
mov r11d, 0xffff
and r9, 0xfffffffffffffff8
lea r10, [r9 + 0xfff]
lea rdi, [0x100046aec]
mov rbx, rax
and rbx, r13
and r10, r13
xor r8d, r8d
mov qword [r14 + 0x10], rdi
mov rcx, qword [0x100346e50]
imul rcx, rcx, 0x343fd
shl r8, 0x10
shr r11, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or r8, rdx
test r11, r11
jne 0x100123e02
mov qword [0x100346e50], rcx
mov qword [r15 + 0x98], rbx
movabs rax, 0x8000800080008001
mul r8
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r8, rdx
inc r8
mov qword [r15 + 0xb0], r8
mov qword [rsp + 0xa0], r11
jmp 0x100123e76
mov rax, qword [rsp + 0xa0]
mov qword [r9], rax
add r9, 8
cmp r9, r10
jb 0x100123e67
mov qword [r14 + 0x10], rdi
mov eax, dword [rsi + 4]
movabs r8, 0x540a7620000
and rax, r12
mov rdx, qword [r15 + 0xb0]
mov rcx, rdx
xor rcx, r8
shl rcx, 0x10
mov qword [r15 + 0x80], rdx
mov eax, dword [rax + rbp]
xor rcx, rax
mov eax, dword [0x100331938]
xor rcx, rax
xor rcx, rdx
and qword [r15 + 0xb0], 0
mov qword [r15 + 0xa0], rcx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret