Function at 0x100069c94
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 r12, rdx
mov rsi, rcx
mov rcx, qword [rcx + 0x10]
lea rbp, [rcx + 1]
mov qword [rsp + 0x30], rbp
mov rdx, rbp
mov eax, 0x6b37f573
mov r8d, dword [rbp + 4]
mov rdi, 0xfffffffffffff000
lea r15, [0x100000000]
mov rcx, r15
mov eax, 0xfffffff
mov r10d, dword [rbp + 0xc]
and qword [rsp + 0x20], 0
and r10, rax
and r8, rax
mov rax, qword [0x10014dad0]
add r10, r15
sub rcx, rax
mov qword [rsp + 0x38], rcx
jne 0x100069da9
xor r11d, r11d
test r8, r8
je 0x10006a14d
mov r14d, 0x8be5c71a
mov ecx, dword [rsp + 0x24]
mov r9d, dword [rsp + 0x20]
movzx eax, byte [r11 + r10]
inc r11
sub eax, 0x741a38e6
add r9d, eax
add eax, ecx
imul rax, r14
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 ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, eax, 0x3f6d
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul rax, r14
mov qword [rsp + 0xa0], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xa0]
add ecx, eax
add r9d, ecx
cmp r11, r8
jb 0x100069d26
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x20], r9d
jmp 0x10006a14d
movsxd rdx, dword [0x10000003c]
lea rax, [r10 + r8]
mov qword [rsp + 0x48], rax
lea rax, [0x1000000b0]
add rdx, rax
mov eax, r10d
sub eax, r15d
mov r9d, eax
lea rbp, [rax + r8]
mov ebx, eax
mov r8d, dword [rdx]
mov r13, rbp
and r9, rdi
add r8, r15
sub rbx, r9
and r13, rdi
sub rbp, r13
mov edi, dword [rdx + 4]
mov qword [rsp + 0x40], rbp
add rdi, r8
jmp 0x100069e03
mov eax, dword [r8]
cmp rax, r9
jae 0x100069e08
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rdi
jne 0x100069df4
xor r11d, r11d
cmp r8, rdi
je 0x100069e42
mov eax, dword [r8]
cmp rax, r9
jne 0x100069e42
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x100069e42
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbx
jae 0x100069e42
inc r11
add rdx, 2
cmp r11, rcx
jne 0x100069e29
mov r14d, 0x8be5c71a
mov r12d, dword [rsp + 0x20]
mov rsi, qword [rsp + 0x38]
mov edx, dword [rsp + 0x24]
mov dword [rsp + 0xb0], edx
mov dword [rsp + 0xb8], r12d
cmp r8, rdi
je 0x10006a093
mov eax, dword [r8]
cmp rax, r13
ja 0x10006a093
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x100069ea7
add r8, rcx
cmp r8, rdi
je 0x10006a093
mov eax, dword [r8]
cmp rax, r13
ja 0x10006a093
xor r11d, r11d
jmp 0x100069e7a
mov eax, dword [r8]
cmp rax, r13
jne 0x100069ec3
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, rbp
jae 0x10006a093
mov rax, r11
inc r11
mov ecx, 0xf000
test word [r8 + rax*2 + 8], cx
je 0x100069e65
movzx r9d, word [r8 + rax*2 + 8]
mov ebx, r9d
and ebx, 0xfff
add ebx, dword [r8]
add rbx, r15
mov rbp, rbx
xor r15d, r15d
sub rbp, r10
je 0x100069f87
movzx eax, byte [r15 + r10]
inc r15
sub eax, 0x741a38e6
add r12d, eax
add eax, edx
imul rax, r14
mov qword [rsp + 0xb0], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xb0]
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, 0x3f6d
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul rax, r14
mov qword [rsp + 0xb0], rax
mov edx, dword [rsp + 0xb0]
shr rax, 0x20
add edx, eax
add r12d, edx
cmp r15, rbp
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x20], r12d
jb 0x100069efa
mov dword [rsp + 0xb0], edx
mov dword [rsp + 0xb8], r12d
shr r9d, 0xc
mov rax, qword [rbx]
cmp r9d, 3
mov qword [rsp + 0x28], rax
je 0x100069fa7
sub r9d, 0xa
neg r9d
sbb edx, edx
add edx, 3
jmp 0x100069fac
mov edx, 2
mov r9, rsi
neg r9
sub edx, 2
je 0x100069fd2
cmp edx, 1
je 0x100069fc2
or r9, 0xffffffffffffffff
jmp 0x100069fdd
add rax, r9
mov r9d, 8
mov qword [rsp + 0x28], rax
jmp 0x100069fdd
add dword [rsp + 0x28], r9d
mov r9d, 4
xor r10d, r10d
test r9, r9
mov edx, dword [rsp + 0xb0]
je 0x10006a07e
movzx eax, byte [rsp + r10 + 0x28]
inc r10
sub eax, 0x741a38e6
add r12d, eax
add eax, edx
imul rax, r14
mov qword [rsp + 0xb0], rax
mov ecx, dword [rsp + 0xb0]
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, 0x3f6d
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul rax, r14
mov qword [rsp + 0xb0], rax
mov edx, dword [rsp + 0xb0]
shr rax, 0x20
add edx, eax
mov dword [rsp + 0x24], edx
add r12d, edx
mov dword [rsp + 0x20], r12d
cmp r10, r9
jb 0x100069ff0
mov dword [rsp + 0xb0], edx
mov dword [rsp + 0xb8], r12d
lea r15, [0x100000000]
lea r10, [r9 + rbx]
mov rbp, qword [rsp + 0x40]
jmp 0x100069e65
mov r12, qword [rsp + 0xa8]
mov r15, qword [rsp + 0x48]
mov rsi, qword [rsp + 0xa0]
xor r8d, r8d
sub r15, r10
je 0x10006a13a
mov r9d, dword [rsp + 0xb8]
movzx eax, byte [r8 + r10]
inc r8
sub eax, 0x741a38e6
add r9d, eax
add eax, edx
imul rax, r14
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 ecx, edx
sar ecx, 0x1f
btr ecx, 0x1f
add ecx, edx
mov eax, ecx
imul eax, eax, 0x3f6d
rol eax, 0xa
ror ecx, 0xa
xor eax, ecx
imul rax, r14
mov qword [rsp + 0xa0], rax
shr rax, 0x20
mov edx, dword [rsp + 0xa0]
add edx, eax
add r9d, edx
cmp r8, r15
jb 0x10006a0bc
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x24], edx
mov rbp, qword [rsp + 0x30]
lea r15, [0x100000000]
mov rdi, 0xfffffffffffff000
add qword [rsi + 0x10], 0x11
mov eax, dword [rbp]
mov r13d, 0xfffffff
and rax, r13
mov rax, qword [rax + r15]
xor rax, qword [rsp + 0x20]
je 0x10006a272
call fcn.10000228c
mov rbx, rax
mov r11d, 0xffff
lea r9, [rsi + 0x18]
and r9, 0xfffffffffffffff8
and rbx, rdi
lea r10, [r9 + 0xfff]
and r10, rdi
lea rdi, [0x10006d7ac]
mov qword [rsi + 0x10], rdi
xor r8d, r8d
mov rcx, qword [0x1003fe198]
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 0x10006a1a5
mov qword [0x1003fe198], rcx
movabs rax, 0x8000800080008001
mul r8
shr rdx, 0xf
imul rdx, rdx, 0xffff
mov qword [r12 + 0x98], rbx
sub r8, rdx
inc r8
mov qword [r12 + 0xb0], r8
mov qword [rsp + 0xa0], r11
jmp 0x10006a21b
mov rax, qword [rsp + 0xa0]
mov qword [r9], rax
add r9, 8
cmp r9, r10
jb 0x10006a20c
movabs r8, 0xfffff945b9340000
mov qword [rsi + 0x10], rdi
mov eax, dword [rbp + 8]
and rax, r13
mov rdx, qword [r12 + 0xb0]
mov qword [r12 + 0x80], rdx
mov rcx, rdx
mov eax, dword [rax + r15]
xor rcx, r8
shl rcx, 0x10
xor rcx, rax
mov eax, dword [0x1003fea68]
xor rcx, rax
xor rcx, rdx
and qword [r12 + 0xb0], 0
mov qword [r12 + 0xa0], rcx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret