Function at 0x1003b2d24
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, rcx
mov rdi, rdx
mov rcx, qword [rcx + 0x10]
lea rsi, [rcx + 1]
mov qword [rsp + 0x20], rsi
mov rdx, rsi
mov eax, 0xb077b748
mov r8d, dword [rsi + 0xc]
mov rbp, 0xfffffffffffff000
mov r10d, dword [rsi]
mov eax, 0xfffffff
lea r12, [0x100000000]
mov rcx, r12
and qword [rsp + 0xb0], 0
and r10, rax
and r8, rax
add r10, r12
mov rax, qword [0x1003f4900]
sub rcx, rax
mov qword [rsp + 0x28], rcx
jne 0x1003b2e16
xor r11d, r11d
test r8, r8
je 0x1003b3105
mov r14d, 0x6056ace2
mov r15d, 0x9fa9531e
mov edx, dword [rsp + 0xb4]
mov r9d, dword [rsp + 0xb0]
movzx eax, byte [r10 + r11]
add r11, 1
sub eax, r14d
add r9d, eax
add eax, edx
imul rax, r15
mov qword [rsp + 0xa0], rax
mov ecx, dword [rsp + 0xa0]
shr rax, 0x20
add ecx, eax
mov edx, ecx
imul edx, edx, 0xc010
rol edx, 0xe
ror ecx, 0xe
xor edx, ecx
add r9d, edx
cmp r11, r8
jb 0x1003b2dc0
mov dword [rsp + 0xb4], edx
mov dword [rsp + 0xb0], r9d
jmp 0x1003b3105
movsxd rdx, dword [0x10000003c]
lea rax, [r10 + r8]
mov qword [rsp + 0x40], rax
lea rax, [0x1000000b0]
add rdx, rax
mov eax, r10d
sub eax, r12d
mov r11d, eax
mov ebx, eax
lea rsi, [rax + r8]
mov rdi, rsi
and r11, rbp
mov r8d, dword [rdx]
add r8, r12
mov r12d, dword [rdx + 4]
and rdi, rbp
mov qword [rsp + 0x30], rdi
sub rbx, r11
sub rsi, rdi
add r12, r8
mov qword [rsp + 0x38], rsi
jmp 0x1003b2e76
mov eax, dword [r8]
cmp rax, r11
jae 0x1003b2e7b
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r12
jne 0x1003b2e67
xor r9d, r9d
cmp r8, r12
je 0x1003b2eb1
mov eax, dword [r8]
cmp rax, r11
jne 0x1003b2eb1
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x1003b2eb1
mov ax, word [r8 + r9*2 + 8]
and eax, 0xfff
cmp rax, rbx
jae 0x1003b2eb1
add r9, 1
cmp r9, rcx
jne 0x1003b2e98
mov r13, qword [rsp + 0x28]
mov r15d, 0x9fa9531e
mov r11d, dword [rsp + 0xb4]
mov r14d, 0x6056ace2
mov ebp, dword [rsp + 0xb0]
cmp r8, r12
je 0x1003b3081
mov eax, dword [r8]
cmp rax, rdi
ja 0x1003b3081
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r9, rax
jne 0x1003b2f13
add r8, rcx
cmp r8, r12
je 0x1003b3081
mov eax, dword [r8]
cmp rax, rdi
ja 0x1003b3081
xor r9d, r9d
jmp 0x1003b2ee6
mov eax, dword [r8]
cmp rax, rdi
jne 0x1003b2f2f
mov ax, word [r8 + r9*2 + 8]
and eax, 0xfff
cmp rax, rsi
jae 0x1003b3081
mov rax, r9
add r9, 1
test word [r8 + rax*2 + 8], 0xf000
je 0x1003b2ed1
xor esi, esi
movzx edx, word [r8 + rax*2 + 8]
lea rax, [0x100000000]
mov edi, edx
and edi, 0xfff
add edi, dword [r8]
add rdi, rax
mov rbx, rdi
sub rbx, r10
je 0x1003b2fba
movzx eax, byte [rsi + r10]
add rsi, 1
sub eax, r14d
add ebp, eax
add eax, r11d
imul rax, r15
mov qword [rsp + 0xb8], rax
shr rax, 0x20
mov ecx, dword [rsp + 0xb8]
add ecx, eax
mov r11d, ecx
imul r11d, r11d, 0xc010
rol r11d, 0xe
ror ecx, 0xe
xor r11d, ecx
add ebp, r11d
cmp rsi, rbx
jb 0x1003b2f65
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xb0], ebp
shr edx, 0xc
cmp edx, 3
mov rax, qword [rdi]
mov qword [rsp + 0xb8], rax
je 0x1003b2fd9
sub edx, 0xa
neg edx
sbb edx, edx
add edx, 3
jmp 0x1003b2fde
mov edx, 2
mov r10, r13
neg r10
sub edx, 2
je 0x1003b3006
cmp edx, 1
je 0x1003b2ff4
or rdx, 0xffffffffffffffff
jmp 0x1003b3013
mov edx, 8
add rax, r10
mov qword [rsp + 0xb8], rax
jmp 0x1003b3013
mov edx, 4
add dword [rsp + 0xb8], r10d
xor r10d, r10d
test rdx, rdx
je 0x1003b306e
movzx eax, byte [rsp + r10 + 0xb8]
add r10, 1
sub eax, r14d
add ebp, eax
add eax, r11d
imul rax, r15
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0x28]
shr rax, 0x20
add ecx, eax
mov r11d, ecx
imul r11d, r11d, 0xc010
rol r11d, 0xe
ror ecx, 0xe
xor r11d, ecx
add ebp, r11d
cmp r10, rdx
jb 0x1003b301b
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xb0], ebp
lea r10, [rdx + rdi]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
jmp 0x1003b2ed1
mov rsi, qword [rsp + 0x40]
xor edx, edx
sub rsi, r10
mov r13, qword [rsp + 0xa0]
je 0x1003b30ea
movzx eax, byte [rdx + r10]
add rdx, 1
sub eax, r14d
add ebp, eax
add eax, r11d
imul rax, r15
mov qword [rsp + 0xa0], rax
mov ecx, dword [rsp + 0xa0]
shr rax, 0x20
add ecx, eax
mov r11d, ecx
imul r11d, r11d, 0xc010
rol r11d, 0xe
ror ecx, 0xe
xor r11d, ecx
add ebp, r11d
cmp rdx, rsi
jb 0x1003b3095
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xb0], ebp
lea r12, [0x100000000]
mov rdi, qword [rsp + 0xa8]
mov rbp, 0xfffffffffffff000
mov rsi, qword [rsp + 0x20]
mov r14d, 0xfffffff
add qword [r13 + 0x10], 0x11
mov eax, dword [rsi + 4]
and rax, r14
mov rax, qword [rax + r12]
cmp qword [rsp + 0xb0], rax
je 0x1003b3228
call fcn.1002d3e40
mov ebx, 0xffff
mov r11, rax
lea r9, [r13 + 0x18]
and r9, 0xfffffffffffffff8
lea r10, [r9 + 0xfff]
and r11, rbp
and r10, rbp
xor r8d, r8d
lea rbp, [0x1003e8888]
mov qword [r13 + 0x10], rbp
mov rcx, qword [0x100495210]
imul rcx, rcx, 0x343fd
shl r8, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or r8, rdx
shr rbx, 0x10
jne 0x1003b315f
movabs rax, 0x8000800080008001
mul r8
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub r8, rdx
add r8, 1
mov qword [0x100495210], rcx
mov qword [rdi + 0x98], r11
mov qword [rdi + 0xb0], r8
mov qword [rsp + 0xa0], 0
jmp 0x1003b31d5
mov rax, qword [rsp + 0xa0]
mov qword [r9], rax
add r9, 8
cmp r9, r10
jb 0x1003b31c6
mov qword [r13 + 0x10], rbp
movabs r8, 0xffffe3ae22b90000
mov eax, dword [rsi + 8]
and rax, r14
mov rdx, qword [rdi + 0xb0]
mov rcx, rdx
xor rcx, r8
mov qword [rdi + 0x80], rdx
shl rcx, 0x10
mov eax, dword [rax + r12]
xor rcx, rax
mov eax, dword [0x100494f98]
xor rcx, rax
xor rcx, rdx
and qword [rdi + 0xb0], 0
mov qword [rdi + 0xa0], rcx
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret