Function at 0x10008c80c
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 r13, rdx
mov r12, rcx
mov rcx, qword [rcx + 0x10]
lea rbp, [rcx + 1]
mov rdx, rbp
mov qword [rsp + 0x20], rbp
mov eax, 0x3ea4222
mov eax, 0xfffffff
mov r15, 0xfffffffffffff000
mov r10d, dword [rbp]
lea rsi, [0x100000000]
mov r8d, dword [rbp + 0xc]
mov rcx, rsi
and qword [rsp + 0xb0], 0
and r10, rax
and r8, rax
add r10, rsi
mov rax, qword [0x10014dad0]
sub rcx, rax
mov qword [rsp + 0x28], rcx
jne 0x10008c91d
xor r11d, r11d
test r8, r8
je 0x10008cc78
mov ecx, dword [rsp + 0xb4]
mov r9d, dword [rsp + 0xb0]
movzx eax, byte [r11 + r10]
inc r11
add eax, 0x4c8b1f5c
add r9d, eax
add eax, ecx
imul rax, rax, 0x4c8b1f5c
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 eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
mov ecx, eax
imul ecx, ecx, 0x4282
rol ecx, 0xc
ror eax, 0xc
xor ecx, eax
imul ecx, ecx, 0x4c8b1f5c
ror ecx, 2
add r9d, ecx
cmp r11, r8
jb 0x10008c8a1
mov dword [rsp + 0xb4], ecx
mov dword [rsp + 0xb0], r9d
jmp 0x10008cc78
lea rax, [r10 + r8]
movsxd rdx, dword [0x10000003c]
mov qword [rsp + 0x40], rax
lea rax, [0x1000000b0]
add rdx, rax
mov eax, r10d
sub eax, esi
mov ebx, eax
lea rbp, [rax + r8]
mov r8d, dword [rdx]
mov r9d, eax
and r9, r15
mov rdi, rbp
add r8, rsi
and rdi, r15
sub rbx, r9
sub rbp, rdi
mov esi, dword [rdx + 4]
add rsi, r8
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], rbp
jmp 0x10008c97b
mov eax, dword [r8]
cmp rax, r9
jae 0x10008c980
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, rsi
jne 0x10008c96c
xor r11d, r11d
cmp r8, rsi
mov r14d, 0xfff
je 0x10008c9be
mov eax, dword [r8]
cmp rax, r9
jne 0x10008c9be
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x10008c9be
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and rax, r14
cmp rax, rbx
jae 0x10008c9be
inc r11
add rdx, 2
cmp r11, rcx
jne 0x10008c9a7
mov ebx, dword [rsp + 0xb4]
mov r13, qword [rsp + 0x28]
mov r15d, dword [rsp + 0xb0]
lea r12, [0x100000000]
cmp r8, rsi
je 0x10008cbd1
mov eax, dword [r8]
cmp rax, rdi
ja 0x10008cbd1
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x10008ca1b
add r8, rcx
cmp r8, rsi
je 0x10008cbd1
mov eax, dword [r8]
cmp rax, rdi
ja 0x10008cbd1
xor r11d, r11d
jmp 0x10008c9ee
mov eax, dword [r8]
cmp rax, rdi
jne 0x10008ca35
movzx eax, word [r8 + r11*2 + 8]
and rax, r14
cmp rax, rbp
jae 0x10008cbd1
mov rax, r11
mov ecx, 0xf000
inc r11
test word [r8 + rax*2 + 8], cx
je 0x10008c9d9
movzx r9d, word [r8 + rax*2 + 8]
mov edi, r9d
and edi, r14d
xor r14d, r14d
add edi, dword [r8]
add rdi, r12
mov rbp, rdi
sub rbp, r10
je 0x10008cadc
movzx eax, byte [r14 + r10]
inc r14
add eax, 0x4c8b1f5c
add r15d, eax
add eax, ebx
imul rax, rax, 0x4c8b1f5c
mov qword [rsp + 0xb8], rax
mov ecx, dword [rsp + 0xb8]
shr rax, 0x20
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
mov ebx, eax
imul ebx, ebx, 0x4282
rol ebx, 0xc
ror eax, 0xc
xor ebx, eax
imul ebx, ebx, 0x4c8b1f5c
ror ebx, 2
add r15d, ebx
cmp r14, rbp
jb 0x10008ca65
mov dword [rsp + 0xb4], ebx
mov dword [rsp + 0xb0], r15d
mov rax, qword [rdi]
shr r9d, 0xc
cmp r9d, 3
mov qword [rsp + 0xb8], rax
je 0x10008caff
sub r9d, 0xa
neg r9d
sbb edx, edx
add edx, 3
jmp 0x10008cb04
mov edx, 2
mov r9, r13
neg r9
sub edx, 2
je 0x10008cb2d
cmp edx, 1
je 0x10008cb1a
or r9, 0xffffffffffffffff
jmp 0x10008cb3b
add rax, r9
mov qword [rsp + 0xb8], rax
mov r9d, 8
jmp 0x10008cb3b
add dword [rsp + 0xb8], r9d
mov r9d, 4
xor r10d, r10d
test r9, r9
je 0x10008cbb8
movzx eax, byte [rsp + r10 + 0xb8]
inc r10
add eax, 0x4c8b1f5c
add r15d, eax
add eax, ebx
imul rax, rax, 0x4c8b1f5c
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov ecx, dword [rsp + 0x28]
lea edx, [rcx + rax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
mov ebx, eax
imul ebx, ebx, 0x4282
rol ebx, 0xc
ror eax, 0xc
xor ebx, eax
imul ebx, ebx, 0x4c8b1f5c
ror ebx, 2
add r15d, ebx
cmp r10, r9
jb 0x10008cb43
mov dword [rsp + 0xb4], ebx
mov dword [rsp + 0xb0], r15d
mov rbp, qword [rsp + 0x38]
mov r14d, 0xfff
lea r10, [r9 + rdi]
mov rdi, qword [rsp + 0x30]
jmp 0x10008c9d9
mov r12, qword [rsp + 0xa0]
xor r8d, r8d
mov r13, qword [rsp + 0xa8]
mov r14, qword [rsp + 0x40]
sub r14, r10
je 0x10008cc65
movzx eax, byte [r8 + r10]
inc r8
add eax, 0x4c8b1f5c
add r15d, eax
add eax, ebx
imul rax, rax, 0x4c8b1f5c
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 eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
mov ebx, eax
imul ebx, ebx, 0x4282
rol ebx, 0xc
ror eax, 0xc
xor ebx, eax
imul ebx, ebx, 0x4c8b1f5c
ror ebx, 2
add r15d, ebx
cmp r8, r14
jb 0x10008cbee
mov dword [rsp + 0xb4], ebx
mov dword [rsp + 0xb0], r15d
lea rsi, [0x100000000]
mov r15, 0xfffffffffffff000
mov rbp, qword [rsp + 0x20]
mov r14d, 0xfffffff
add qword [r12 + 0x10], 0x11
mov eax, dword [rbp + 4]
and rax, r14
mov rax, qword [rax + rsi]
xor rax, qword [rsp + 0xb0]
je 0x10008cd9d
call fcn.10000228c
mov r11d, 0xffff
mov rbx, rax
lea rdi, [0x10006d7ac]
mov qword [r12 + 0x10], rdi
lea r9, [r12 + 0x18]
mov rcx, qword [0x1003fe198]
and r9, 0xfffffffffffffff8
lea r10, [r9 + 0xfff]
and rbx, r15
and r10, r15
xor r8d, r8d
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 0x10008ccd6
mov qword [0x1003fe198], rcx
movabs rax, 0x8000800080008001
mov qword [r13 + 0x98], rbx
mul r8
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r8, rdx
inc r8
mov qword [r13 + 0xb0], r8
mov qword [rsp + 0xa0], r11
jmp 0x10008cd4a
mov rax, qword [rsp + 0xa0]
mov qword [r9], rax
add r9, 8
cmp r9, r10
jb 0x10008cd3b
movabs r8, 0x24b7a250000
mov qword [r12 + 0x10], rdi
mov rdx, qword [r13 + 0xb0]
mov rcx, rdx
mov eax, dword [rbp + 8]
mov qword [r13 + 0x80], rdx
and rax, r14
mov eax, dword [rax + rsi]
xor rcx, r8
shl rcx, 0x10
xor rcx, rax
mov eax, dword [0x10041caf0]
xor rcx, rax
xor rcx, rdx
and qword [r13 + 0xb0], 0
mov qword [r13 + 0xa0], rcx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret