Function at 0x14002d400
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rax, qword [0x1401550c0]
xor rax, rsp
mov qword [rbp], rax
mov rbx, rcx
mov qword [rsp + 0x30], r8
mov rsi, rdx
lea rcx, [rbp - 0x80]
mov rdx, r9
mov r13, r8
call fcn.14002d0c0
mov rcx, qword [rbp + 0x60]
xor edi, edi
mov r15, qword [rbp + 0x68]
mov r14, r15
mov dword [rbp - 0x50], r15d
shr r14, 0x20
movzx eax, byte [rcx + 2]
movzx r12d, byte [rcx + 3]
movzx edx, byte [rcx + 7]
shl r12d, 8
or r12d, eax
shl edx, 8
movzx eax, byte [rcx + 1]
shl r12d, 8
or r12d, eax
mov dword [rbp - 0x4c], r14d
movzx eax, byte [rcx]
shl r12d, 8
or r12d, eax
movzx eax, byte [rcx + 6]
or edx, eax
mov dword [rsp + 0x24], r12d
movzx eax, byte [rcx + 5]
shl edx, 8
or edx, eax
mov dword [rbp - 0x48], r12d
movzx eax, byte [rcx + 4]
shl edx, 8
or edx, eax
mov rax, r13
shr rax, 6
mov dword [rsp + 0x20], edx
mov dword [rbp - 0x44], edx
mov qword [rsp + 0x28], rax
test rax, rax
je 0x14002d945
mov r13d, edx
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x40]
call fcn.14002cd10
test rsi, rsi
je 0x14002d720
mov rdx, rdi
nop dword [rax + rax]
movzx eax, byte [rsi + 2]
movzx ecx, byte [rsi + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi]
shl ecx, 8
or ecx, eax
mov eax, dword [rsp + rdx + 0x40]
add eax, dword [rbp + rdx - 0x80]
xor ecx, eax
mov byte [rbx], cl
mov eax, ecx
shr eax, 8
mov byte [rbx + 1], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbx + 3], cl
shr eax, 0x10
mov byte [rbx + 2], al
movzx eax, byte [rsi + 6]
movzx ecx, byte [rsi + 7]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 4]
shl ecx, 8
or ecx, eax
mov eax, dword [rbp + rdx - 0x7c]
add eax, dword [rsp + rdx + 0x44]
xor ecx, eax
mov byte [rbx + 4], cl
mov eax, ecx
shr eax, 8
mov byte [rbx + 5], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbx + 7], cl
shr eax, 0x10
mov byte [rbx + 6], al
movzx eax, byte [rsi + 0xa]
movzx ecx, byte [rsi + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 8]
shl ecx, 8
or ecx, eax
mov eax, dword [rbp + rdx - 0x78]
add eax, dword [rsp + rdx + 0x48]
xor ecx, eax
mov byte [rbx + 8], cl
mov eax, ecx
shr eax, 8
mov byte [rbx + 9], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbx + 0xb], cl
shr eax, 0x10
mov byte [rbx + 0xa], al
movzx eax, byte [rsi + 0xe]
movzx ecx, byte [rsi + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0xc]
shl ecx, 8
or ecx, eax
mov eax, dword [rbp + rdx - 0x74]
add eax, dword [rsp + rdx + 0x4c]
xor ecx, eax
mov byte [rbx + 0xc], cl
mov eax, ecx
shr eax, 8
mov byte [rbx + 0xd], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbx + 0xf], cl
shr eax, 0x10
mov byte [rbx + 0xe], al
movzx eax, byte [rsi + 0x12]
movzx ecx, byte [rsi + 0x13]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x10]
shl ecx, 8
or ecx, eax
mov eax, dword [rbp + rdx - 0x70]
add eax, dword [rsp + rdx + 0x50]
xor ecx, eax
mov byte [rbx + 0x10], cl
mov eax, ecx
shr eax, 8
mov byte [rbx + 0x11], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbx + 0x13], cl
shr eax, 0x10
mov byte [rbx + 0x12], al
movzx eax, byte [rsi + 0x16]
movzx ecx, byte [rsi + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x14]
shl ecx, 8
or ecx, eax
mov eax, dword [rbp + rdx - 0x6c]
add eax, dword [rsp + rdx + 0x54]
xor ecx, eax
mov byte [rbx + 0x14], cl
mov eax, ecx
shr eax, 8
mov byte [rbx + 0x15], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbx + 0x17], cl
shr eax, 0x10
mov byte [rbx + 0x16], al
movzx eax, byte [rsi + 0x1a]
movzx ecx, byte [rsi + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x19]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x18]
shl ecx, 8
or ecx, eax
mov eax, dword [rbp + rdx - 0x68]
add eax, dword [rsp + rdx + 0x58]
xor ecx, eax
mov byte [rbx + 0x18], cl
mov eax, ecx
shr eax, 8
mov byte [rbx + 0x19], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbx + 0x1b], cl
shr eax, 0x10
mov byte [rbx + 0x1a], al
movzx eax, byte [rsi + 0x1e]
movzx ecx, byte [rsi + 0x1f]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsi + 0x1d]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, byte [rsi + 0x1c]
add rsi, 0x20
or ecx, eax
mov eax, dword [rbp + rdx - 0x64]
add eax, dword [rsp + rdx + 0x5c]
add rdx, 0x20
xor ecx, eax
mov eax, ecx
mov byte [rbx + 0x1c], cl
shr eax, 8
mov byte [rbx + 0x1d], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbx + 0x1e], al
mov byte [rbx + 0x1f], cl
add rbx, 0x20
cmp rdx, 0x40
jb 0x14002d4f0
jmp 0x14002d923
mov ecx, dword [rbp - 0x80]
add ecx, dword [rsp + 0x40]
mov eax, ecx
mov byte [rbx], cl
shr eax, 8
mov byte [rbx + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 2], al
shr ecx, 0x18
mov byte [rbx + 3], cl
mov ecx, dword [rbp - 0x7c]
add ecx, dword [rsp + 0x44]
mov eax, ecx
mov byte [rbx + 4], cl
shr eax, 8
mov byte [rbx + 5], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 6], al
shr ecx, 0x18
mov byte [rbx + 7], cl
mov ecx, dword [rbp - 0x78]
add ecx, dword [rsp + 0x48]
mov eax, ecx
mov byte [rbx + 8], cl
shr eax, 8
mov byte [rbx + 9], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0xa], al
shr ecx, 0x18
mov byte [rbx + 0xb], cl
mov ecx, dword [rbp - 0x74]
add ecx, dword [rsp + 0x4c]
mov eax, ecx
mov byte [rbx + 0xc], cl
shr eax, 8
mov byte [rbx + 0xd], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0xe], al
shr ecx, 0x18
mov byte [rbx + 0xf], cl
mov ecx, dword [rbp - 0x70]
add ecx, dword [rsp + 0x50]
mov eax, ecx
mov byte [rbx + 0x10], cl
shr eax, 8
mov byte [rbx + 0x11], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbx + 0x12], al
mov byte [rbx + 0x13], cl
mov ecx, dword [rbp - 0x6c]
add ecx, dword [rsp + 0x54]
mov eax, ecx
mov byte [rbx + 0x14], cl
shr eax, 8
mov byte [rbx + 0x15], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbx + 0x17], cl
mov ecx, dword [rbp - 0x68]
add ecx, dword [rsp + 0x58]
mov byte [rbx + 0x16], al
mov eax, ecx
shr eax, 8
mov byte [rbx + 0x19], al
mov eax, ecx
mov byte [rbx + 0x18], cl
shr ecx, 0x18
shr eax, 0x10
mov byte [rbx + 0x1b], cl
mov ecx, dword [rbp - 0x64]
add ecx, dword [rsp + 0x5c]
mov byte [rbx + 0x1a], al
mov eax, ecx
mov byte [rbx + 0x1c], cl
shr eax, 8
mov byte [rbx + 0x1d], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0x1e], al
shr ecx, 0x18
mov byte [rbx + 0x1f], cl
mov ecx, dword [rbp - 0x60]
add ecx, dword [rsp + 0x60]
mov eax, ecx
mov byte [rbx + 0x20], cl
shr eax, 8
mov byte [rbx + 0x21], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0x22], al
shr ecx, 0x18
mov byte [rbx + 0x23], cl
mov ecx, dword [rbp - 0x5c]
add ecx, dword [rsp + 0x64]
mov eax, ecx
mov byte [rbx + 0x24], cl
shr eax, 8
mov byte [rbx + 0x25], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0x26], al
shr ecx, 0x18
mov byte [rbx + 0x27], cl
mov ecx, dword [rbp - 0x58]
add ecx, dword [rsp + 0x68]
mov eax, ecx
mov byte [rbx + 0x28], cl
shr eax, 8
mov byte [rbx + 0x29], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0x2a], al
shr ecx, 0x18
mov byte [rbx + 0x2b], cl
mov ecx, dword [rbp - 0x54]
add ecx, dword [rsp + 0x6c]
mov eax, ecx
mov byte [rbx + 0x2c], cl
shr eax, 8
mov byte [rbx + 0x2d], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0x2e], al
shr ecx, 0x18
mov byte [rbx + 0x2f], cl
mov ecx, dword [rsp + 0x70]
add ecx, r15d
mov eax, ecx
mov byte [rbx + 0x30], cl
shr eax, 8
mov byte [rbx + 0x31], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 0x32], al
shr ecx, 0x18
mov byte [rbx + 0x33], cl
mov ecx, dword [rsp + 0x74]
add ecx, r14d
mov eax, ecx
mov byte [rbx + 0x34], cl
shr eax, 8
mov byte [rbx + 0x35], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbx + 0x36], al
mov byte [rbx + 0x37], cl
mov ecx, dword [rsp + 0x78]
add ecx, r12d
mov eax, ecx
mov byte [rbx + 0x38], cl
shr eax, 8
mov byte [rbx + 0x39], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbx + 0x3a], al
mov byte [rbx + 0x3b], cl
mov ecx, dword [rsp + 0x7c]
add ecx, r13d
mov eax, ecx
mov byte [rbx + 0x3c], cl
shr eax, 8
mov byte [rbx + 0x3d], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbx + 0x3e], al
mov byte [rbx + 0x3f], cl
add rbx, 0x40
add r15d, 1
mov dword [rbp - 0x50], r15d
jne 0x14002d934
inc r14d
mov dword [rbp - 0x4c], r14d
sub qword [rsp + 0x28], 1
jne 0x14002d4d1
mov r13, qword [rsp + 0x30]
and r13d, 0x3f
test r13, r13
je 0x14002dc0e
test rsi, rsi
lea r12, [0x140130060]
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x40]
cmovne r12, rsi
call fcn.14002cd10
mov ecx, dword [rbp - 0x80]
add ecx, dword [rsp + 0x40]
mov eax, ecx
mov byte [rbp - 0x40], cl
shr eax, 8
mov byte [rbp - 0x3f], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x3e], al
shr ecx, 0x18
mov byte [rbp - 0x3d], cl
mov ecx, dword [rbp - 0x7c]
add ecx, dword [rsp + 0x44]
mov eax, ecx
mov byte [rbp - 0x3c], cl
shr eax, 8
mov byte [rbp - 0x3b], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x3a], al
shr ecx, 0x18
mov byte [rbp - 0x39], cl
mov ecx, dword [rbp - 0x78]
add ecx, dword [rsp + 0x48]
mov eax, ecx
mov byte [rbp - 0x38], cl
shr eax, 8
mov byte [rbp - 0x37], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x36], al
shr ecx, 0x18
mov byte [rbp - 0x35], cl
mov ecx, dword [rbp - 0x74]
add ecx, dword [rsp + 0x4c]
mov eax, ecx
mov byte [rbp - 0x34], cl
shr eax, 8
mov byte [rbp - 0x33], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x32], al
shr ecx, 0x18
mov byte [rbp - 0x31], cl
mov ecx, dword [rbp - 0x70]
add ecx, dword [rsp + 0x50]
mov eax, ecx
mov byte [rbp - 0x30], cl
shr eax, 8
mov byte [rbp - 0x2f], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x2e], al
shr ecx, 0x18
mov byte [rbp - 0x2d], cl
mov ecx, dword [rbp - 0x6c]
add ecx, dword [rsp + 0x54]
mov eax, ecx
mov byte [rbp - 0x2c], cl
shr eax, 8
mov byte [rbp - 0x2b], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp - 0x2a], al
mov byte [rbp - 0x29], cl
mov ecx, dword [rbp - 0x68]
add ecx, dword [rsp + 0x58]
mov eax, ecx
mov byte [rbp - 0x28], cl
shr eax, 8
mov byte [rbp - 0x27], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x26], al
shr ecx, 0x18
mov byte [rbp - 0x25], cl
mov ecx, dword [rbp - 0x64]
add ecx, dword [rsp + 0x5c]
mov eax, ecx
mov byte [rbp - 0x24], cl
shr eax, 8
mov byte [rbp - 0x23], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x22], al
shr ecx, 0x18
mov byte [rbp - 0x21], cl
mov ecx, dword [rbp - 0x60]
add ecx, dword [rsp + 0x60]
mov eax, ecx
mov byte [rbp - 0x20], cl
shr eax, 8
mov byte [rbp - 0x1f], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x1e], al
shr ecx, 0x18
mov byte [rbp - 0x1d], cl
mov ecx, dword [rbp - 0x5c]
add ecx, dword [rsp + 0x64]
mov eax, ecx
mov byte [rbp - 0x1c], cl
shr eax, 8
mov byte [rbp - 0x1b], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp - 0x1a], al
shr ecx, 0x18
mov byte [rbp - 0x19], cl
mov ecx, dword [rbp - 0x58]
add ecx, dword [rsp + 0x68]
mov eax, ecx
mov byte [rbp - 0x18], cl
shr eax, 8
mov byte [rbp - 0x17], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp - 0x16], al
mov byte [rbp - 0x15], cl
mov ecx, dword [rbp - 0x54]
add ecx, dword [rsp + 0x6c]
mov eax, ecx
mov byte [rbp - 0x14], cl
shr eax, 8
mov byte [rbp - 0x13], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp - 0x11], cl
mov ecx, dword [rsp + 0x70]
add ecx, r15d
mov byte [rbp - 0x12], al
mov eax, ecx
mov byte [rbp - 0x10], cl
shr eax, 8
mov byte [rbp - 0xf], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [rbp - 0xd], cl
mov ecx, dword [rsp + 0x74]
add ecx, r14d
mov byte [rbp - 0xe], al
mov eax, ecx
mov byte [rbp - 0xc], cl
shr eax, 8
mov byte [rbp - 0xb], al
mov eax, ecx
shr ecx, 0x18
mov byte [rbp - 9], cl
mov ecx, dword [rsp + 0x24]
shr eax, 0x10
add ecx, dword [rsp + 0x78]
mov byte [rbp - 0xa], al
mov eax, ecx
mov byte [rbp - 8], cl
shr eax, 8
mov rdx, rdi
mov byte [rbp - 7], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp - 6], al
mov byte [rbp - 5], cl
mov ecx, dword [rsp + 0x20]
add ecx, dword [rsp + 0x7c]
mov eax, ecx
mov byte [rbp - 4], cl
shr eax, 8
mov byte [rbp - 3], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp - 2], al
mov byte [rbp - 1], cl
cmp r13, 8
jb 0x14002dbd2
lea rcx, [r13 - 1]
add rcx, rbx
lea rax, [rbp + r13 - 0x41]
cmp rbx, rax
ja 0x14002db93
lea rax, [rbp - 0x40]
cmp rcx, rax
jae 0x14002dbd2
lea rax, [r13 - 1]
add rax, r12
cmp rbx, rax
ja 0x14002dba4
cmp rcx, r12
jae 0x14002dbd2
mov rax, r13
and rax, 0xfffffffffffffff8
nop dword [rax + rax]
movq xmm1, qword [r12 + rdx]
movq xmm0, qword [rbp + rdx - 0x40]
xorps xmm1, xmm0
movq qword [rbx + rdx], xmm1
add rdx, 8
cmp rdx, rax
jb 0x14002dbb0
cmp rdx, r13
jae 0x14002dbf9
lea rax, [rbp - 0x40]
sub r12, rax
lea rax, [rbp - 0x40]
sub rbx, rax
lea rcx, [rbp - 0x40]
add rcx, rdx
inc rdx
movzx eax, byte [rcx + r12]
xor al, byte [rcx]
mov byte [rcx + rbx], al
cmp rdx, r13
jb 0x14002dbe0
mov rax, rdi
nop dword [rax]
mov byte [rbp + rax - 0x40], dil
inc rax
cmp rax, 0x40
jb 0x14002dc00
mov rax, rdi
mov edx, r14d
shl rdx, 0x20
mov rcx, rdi
test r13, r13
setne al
add rdx, rax
mov eax, r15d
add rdx, rax
nop word [rax + rax]
mov byte [rsp + rcx + 0x40], dil
inc rcx
cmp rcx, 0x40
jb 0x14002dc30
nop
mov byte [rbp + rdi - 0x80], 0
inc rdi
cmp rdi, 0x40
jb 0x14002dc40
mov rax, rdx
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.1400cc9e0
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret