Function at 0x1003908e4
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 r15
sub rsp, 0x50
mov r15, rdx
mov r13, rcx
mov rcx, qword [rcx + 0x10]
lea rsi, [rcx + 1]
mov qword [rsp + 0x20], rsi
mov rdx, rsi
mov eax, 0xdcf81cd4
mov r10d, dword [rsi + 8]
mov eax, 0xfffffff
mov r8d, dword [rsi]
lea r11, [0x100000000]
mov rcx, r11
and qword [rsp + 0xa0], 0
and r10, rax
and r8, rax
mov rax, qword [0x10014d838]
add r10, r11
sub rcx, rax
mov qword [rsp + 0x28], rcx
jne 0x1003909b9
xor r11d, r11d
test r8, r8
je 0x100390c8a
mov r9d, dword [rsp + 0xa0]
mov edx, dword [rsp + 0xa4]
movzx eax, byte [r11 + r10]
inc r11
sub eax, 0xb5abc7d
add r9d, eax
add eax, edx
mov ecx, eax
imul ecx, ecx, 0x2fae
rol ecx, 3
ror eax, 3
xor ecx, eax
mov edx, ecx
imul edx, edx, 0x2fae
rol edx, 3
ror ecx, 3
xor edx, ecx
add r9d, edx
cmp r11, r8
jb 0x10039096b
mov dword [rsp + 0xa4], edx
mov dword [rsp + 0xa0], r9d
jmp 0x100390c8a
movsxd rdx, dword [0x10000003c]
lea rax, [r10 + r8]
mov qword [rsp + 0x40], rax
lea rax, [0x1000000b0]
add rdx, rax
mov r12d, dword [rdx + 4]
mov eax, r10d
sub eax, r11d
lea rsi, [rax + r8]
mov rdi, rsi
mov r9d, eax
mov r8d, dword [rdx]
mov ebx, eax
and r9, 0xfffffffffffff000
and rdi, 0xfffffffffffff000
add r8, r11
mov qword [rsp + 0x30], rdi
sub rbx, r9
sub rsi, rdi
mov qword [rsp + 0x38], rsi
add r12, r8
jmp 0x100390a21
mov eax, dword [r8]
cmp rax, r9
jae 0x100390a26
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r12
jne 0x100390a12
xor r11d, r11d
cmp r8, r12
je 0x100390a60
mov eax, dword [r8]
cmp rax, r9
jne 0x100390a60
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x100390a60
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rbx
jae 0x100390a60
inc r11
add rdx, 2
cmp r11, rcx
jne 0x100390a47
lea r13, [0x100000000]
mov r15, qword [rsp + 0x28]
mov r9d, dword [rsp + 0xa4]
mov ebp, dword [rsp + 0xa0]
cmp r8, r12
je 0x100390c1c
mov eax, dword [r8]
cmp rax, rdi
ja 0x100390c1c
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r11, rax
jne 0x100390abd
add r8, rcx
cmp r8, r12
je 0x100390c1c
mov eax, dword [r8]
cmp rax, rdi
ja 0x100390c1c
xor r11d, r11d
jmp 0x100390a90
mov eax, dword [r8]
cmp rax, rdi
jne 0x100390ad9
movzx eax, word [r8 + r11*2 + 8]
and eax, 0xfff
cmp rax, rsi
jae 0x100390c1c
mov rax, r11
inc r11
mov ecx, 0xf000
test word [r8 + rax*2 + 8], cx
je 0x100390a7b
movzx edx, word [r8 + rax*2 + 8]
mov edi, edx
xor esi, esi
and edi, 0xfff
add edi, dword [r8]
add rdi, r13
mov rbx, rdi
sub rbx, r10
je 0x100390b57
movzx eax, byte [rsi + r10]
inc rsi
sub eax, 0xb5abc7d
add ebp, eax
add eax, r9d
mov ecx, eax
imul ecx, ecx, 0x2fae
rol ecx, 3
ror eax, 3
xor ecx, eax
mov r9d, ecx
imul r9d, r9d, 0x2fae
rol r9d, 3
ror ecx, 3
xor r9d, ecx
add ebp, r9d
cmp rsi, rbx
jb 0x100390b0a
mov dword [rsp + 0xa4], r9d
mov dword [rsp + 0xa0], ebp
shr edx, 0xc
cmp edx, 3
mov rax, qword [rdi]
mov qword [rsp + 0xa8], rax
je 0x100390b76
sub edx, 0xa
neg edx
sbb edx, edx
add edx, 3
jmp 0x100390b7b
mov edx, 2
mov r10, r15
neg r10
sub edx, 2
je 0x100390ba3
cmp edx, 1
je 0x100390b91
or rdx, 0xffffffffffffffff
jmp 0x100390bb0
add rax, r10
mov edx, 8
mov qword [rsp + 0xa8], rax
jmp 0x100390bb0
mov edx, 4
add dword [rsp + 0xa8], r10d
xor r10d, r10d
test rdx, rdx
je 0x100390c09
movzx eax, byte [rsp + r10 + 0xa8]
inc r10
sub eax, 0xb5abc7d
add ebp, eax
add eax, r9d
mov ecx, eax
imul ecx, ecx, 0x2fae
rol ecx, 3
ror eax, 3
xor ecx, eax
mov r9d, ecx
imul r9d, r9d, 0x2fae
rol r9d, 3
ror ecx, 3
xor r9d, ecx
add ebp, r9d
cmp r10, rdx
jb 0x100390bb8
mov dword [rsp + 0xa4], r9d
mov dword [rsp + 0xa0], ebp
lea r10, [rdx + rdi]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
jmp 0x100390a7b
mov rsi, qword [rsp + 0x40]
mov r13, qword [rsp + 0x90]
mov r15, qword [rsp + 0x98]
xor edx, edx
sub rsi, r10
je 0x100390c85
movzx eax, byte [rdx + r10]
inc rdx
sub eax, 0xb5abc7d
add ebp, eax
add eax, r9d
mov ecx, eax
imul ecx, ecx, 0x2fae
rol ecx, 3
ror eax, 3
xor ecx, eax
mov r9d, ecx
imul r9d, r9d, 0x2fae
rol r9d, 3
ror ecx, 3
xor r9d, ecx
add ebp, r9d
cmp rdx, rsi
jb 0x100390c38
mov dword [rsp + 0xa4], r9d
mov dword [rsp + 0xa0], ebp
mov rsi, qword [rsp + 0x20]
lea rbp, [0x100000000]
add qword [r13 + 0x10], 0x11
mov eax, dword [rsi + 0xc]
mov r12d, 0xfffffff
and rax, r12
mov rax, qword [rax + rbp]
xor rax, qword [rsp + 0xa0]
je 0x100390dba
call fcn.1000024bc
lea rdi, [0x100059e28]
lea r9, [r13 + 0x18]
mov rbx, rax
mov qword [r13 + 0x10], rdi
mov r11d, 0xffff
mov rcx, qword [0x1003feeb8]
and r9, 0xfffffffffffffff8
and rbx, 0xfffffffffffff000
lea r10, [r9 + 0xfff]
and r10, 0xfffffffffffff000
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 0x100390cf4
movabs rax, 0x8000800080008001
mul r8
shr rdx, 0xf
mov qword [0x1003feeb8], rcx
mov qword [r15 + 0x98], rbx
imul rdx, rdx, 0xffff
sub r8, rdx
inc r8
mov qword [r15 + 0xb0], r8
mov qword [rsp + 0x90], r11
jmp 0x100390d68
mov rax, qword [rsp + 0x90]
mov qword [r9], rax
add r9, 8
cmp r9, r10
jb 0x100390d59
mov qword [r13 + 0x10], rdi
mov eax, dword [rsi + 4]
mov rdx, qword [r15 + 0xb0]
mov rcx, rdx
movabs r8, 0xffffc9e40a620000
and rax, r12
xor rcx, r8
mov qword [r15 + 0x80], rdx
shl rcx, 0x10
mov eax, dword [rax + rbp]
xor rcx, rax
mov eax, dword [0x1003ff0d8]
xor rcx, rax
xor rcx, rdx
and qword [r15 + 0xb0], 0
mov qword [r15 + 0xa0], rcx
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret