Function at 0x140014e94
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov dword [r11 + 0x20], r9d
mov qword [r11 + 0x18], r8
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov rax, qword [rsp + 0xc0]
mov r12, qword [r11 + 0x10]
mov r10d, 1
movzx r15d, byte [rax]
lea r13, [rax + 1]
mov ebp, r9d
movzx eax, byte [r13]
lea rdx, [r10 + r13]
mov qword [rsp + 0x38], r13
shl eax, 8
mov r14, r8
or r15d, eax
movzx eax, byte [rdx]
add rdx, r10
shl eax, 0x10
or r15d, eax
movzx eax, byte [rdx]
add rdx, r10
movzx ebx, byte [rdx]
shl eax, 0x18
add rdx, r10
or r15d, eax
movzx eax, byte [rdx]
add rdx, r10
shl eax, 8
or ebx, eax
movzx eax, byte [rdx]
add rdx, r10
shl eax, 0x10
or ebx, eax
movzx eax, byte [rdx]
add rdx, r10
movzx edi, byte [rdx]
shl eax, 0x18
add rdx, r10
or ebx, eax
movzx eax, byte [rdx]
add rdx, r10
shl eax, 8
mov dword [rsp + 0x20], ebx
or edi, eax
movzx eax, byte [rdx]
add rdx, r10
shl eax, 0x10
or edi, eax
movzx eax, byte [rdx]
add rdx, r10
movzx esi, byte [rdx]
shl eax, 0x18
add rdx, r10
movzx ecx, byte [rdx + r10 + 1]
or edi, eax
movzx eax, byte [rdx]
shl eax, 8
shl ecx, 8
mov dword [rsp + 0x24], edi
or esi, eax
movzx eax, byte [rdx + r10]
or ecx, eax
shl ecx, 0x10
or esi, ecx
add ebp, 0xfffffff0
mov dword [rsp + 0x28], esi
js 0x14001516f
lea eax, [rbp + 0x10]
mov r13d, ebx
shr rax, 4
mov qword [rsp + 0x30], rax
neg eax
shl eax, 4
add ebp, eax
mov dword [rsp + 0x2c], ebp
movzx ebp, byte [r14]
mov rcx, qword [rsp + 0xa0]
add r14, r10
movzx eax, byte [r14]
add r14, r10
lea rdx, [rsp + 0x40]
shl eax, 8
or ebp, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x10
or ebp, eax
movzx eax, byte [r14]
add r14, r10
movzx esi, byte [r14]
shl eax, 0x18
add r14, r10
or ebp, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 8
mov dword [rsp + 0x40], ebp
or esi, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x10
or esi, eax
movzx eax, byte [r14]
add r14, r10
movzx edi, byte [r14]
shl eax, 0x18
add r14, r10
or esi, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 8
mov dword [rsp + 0x44], esi
or edi, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x10
or edi, eax
movzx eax, byte [r14]
add r14, r10
movzx ebx, byte [r14]
shl eax, 0x18
add r14, r10
or edi, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 8
mov dword [rsp + 0x48], edi
or ebx, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x10
or ebx, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x18
or ebx, eax
mov dword [rsp + 0x4c], ebx
call fcn.140016e0c
mov r11d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
mov edx, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x4c]
xor edx, dword [rsp + 0x24]
xor r8d, dword [rsp + 0x28]
xor r11d, r15d
mov byte [r12], r11b
mov r10d, 1
mov eax, r11d
add r12, r10
shr eax, 8
xor ecx, r13d
mov byte [r12], al
add r12, r10
mov eax, r11d
shr eax, 0x10
mov byte [r12], al
add r12, r10
shr r11d, 0x18
mov eax, ecx
mov byte [r12], r11b
add r12, r10
shr eax, 8
mov byte [r12], cl
add r12, r10
mov r13d, esi
mov byte [r12], al
add r12, r10
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov r15d, ebp
mov byte [r12], al
add r12, r10
mov eax, edx
mov byte [r12], cl
add r12, r10
shr eax, 8
mov byte [r12], dl
add r12, r10
mov dword [rsp + 0x24], edi
mov byte [r12], al
add r12, r10
mov eax, edx
shr eax, 0x10
shr edx, 0x18
mov esi, ebx
mov byte [r12], al
add r12, r10
mov eax, r8d
mov byte [r12], dl
add r12, r10
shr eax, 8
mov byte [r12], r8b
add r12, r10
mov dword [rsp + 0x28], ebx
mov byte [r12], al
add r12, r10
mov eax, r8d
shr eax, 0x10
shr r8d, 0x18
mov byte [r12], al
add r12, r10
mov byte [r12], r8b
add r12, r10
sub qword [rsp + 0x30], r10
jne 0x140014fa3
mov ebp, dword [rsp + 0x2c]
mov dword [rsp + 0x20], r13d
mov r13, qword [rsp + 0x38]
mov ebx, dword [rsp + 0x20]
cmp ebp, 0xfffffff0
je 0x1400153a1
movzx ecx, byte [r14]
add r14, r10
movzx eax, byte [r14]
add r14, r10
shl eax, 8
or ecx, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x10
or ecx, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x18
or ecx, eax
mov dword [rsp + 0x40], ecx
movzx ecx, byte [r14]
add r14, r10
movzx eax, byte [r14]
add r14, r10
shl eax, 8
or ecx, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x10
or ecx, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x18
or ecx, eax
mov dword [rsp + 0x44], ecx
movzx ecx, byte [r14]
add r14, r10
movzx eax, byte [r14]
add r14, r10
shl eax, 8
or ecx, eax
movzx eax, byte [r14]
add r14, r10
shl eax, 0x10
or ecx, eax
movzx eax, byte [r14]
add r14, r10
movzx r8d, byte [r14]
shl eax, 0x18
add r14, r10
movzx edx, byte [r14 + r10 + 1]
or ecx, eax
movzx eax, byte [r14]
shl edx, 8
shl eax, 8
mov dword [rsp + 0x48], ecx
mov rcx, qword [rsp + 0xa0]
or r8d, eax
movzx eax, byte [r14 + r10]
or edx, eax
shl edx, 0x10
or edx, r8d
mov dword [rsp + 0x4c], edx
lea rdx, [rsp + 0x40]
call fcn.140016e0c
mov r11d, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x44]
mov r8d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x4c]
lea ecx, [rbp + 0x10]
movsxd rax, ecx
xor r11d, r15d
xor r9d, ebx
xor r8d, edi
xor edx, esi
add r12, rax
cmp ecx, 9
mov r10d, 1
jg 0x1400152c7
je 0x140015340
sub ecx, r10d
je 0x14001539c
sub ecx, r10d
je 0x14001538f
sub ecx, r10d
je 0x140015382
sub ecx, r10d
je 0x140015375
sub ecx, r10d
je 0x14001536e
sub ecx, r10d
je 0x140015361
sub ecx, r10d
je 0x140015354
cmp ecx, r10d
je 0x140015347
jmp 0x1400153a1
sub ecx, 0xa
je 0x140015333
sub ecx, r10d
je 0x140015326
sub ecx, r10d
je 0x140015319
sub ecx, r10d
je 0x140015312
sub ecx, r10d
je 0x140015306
sub ecx, r10d
je 0x1400152fa
cmp ecx, r10d
jne 0x1400153a1
sub r12, r10
mov eax, edx
shr eax, 0x18
mov byte [r12], al
sub r12, r10
mov eax, edx
shr eax, 0x10
mov byte [r12], al
sub r12, r10
mov eax, edx
shr eax, 8
mov byte [r12], al
sub r12, r10
mov byte [r12], dl
sub r12, r10
mov eax, r8d
shr eax, 0x18
mov byte [r12], al
sub r12, r10
mov eax, r8d
shr eax, 0x10
mov byte [r12], al
sub r12, r10
mov eax, r8d
shr eax, 8
mov byte [r12], al
sub r12, r10
mov byte [r12], r8b
sub r12, r10
mov eax, r9d
shr eax, 0x18
mov byte [r12], al
sub r12, r10
mov eax, r9d
shr eax, 0x10
mov byte [r12], al
sub r12, r10
mov eax, r9d
shr eax, 8
mov byte [r12], al
sub r12, r10
mov byte [r12], r9b
sub r12, r10
mov eax, r11d
shr eax, 0x18
mov byte [r12], al
sub r12, r10
mov eax, r11d
shr eax, 0x10
mov byte [r12], al
sub r12, r10
mov eax, r11d
shr eax, 8
mov byte [r12], al
mov byte [r12 - 1], r11b
mov rax, qword [rsp + 0xc0]
mov byte [rax], r15b
mov eax, r15d
shr eax, 8
mov byte [r13], al
add r13, r10
mov eax, r15d
shr eax, 0x10
shr r15d, 0x18
mov byte [r13], al
add r13, r10
mov eax, ebx
mov byte [r13], r15b
shr eax, 8
add r13, r10
mov byte [r13], bl
add r13, r10
mov byte [r13], al
add r13, r10
mov eax, ebx
shr eax, 0x10
shr ebx, 0x18
mov byte [r13], al
add r13, r10
mov eax, edi
mov byte [r13], bl
shr eax, 8
add r13, r10
mov byte [r13], dil
add r13, r10
mov byte [r13], al
add r13, r10
mov eax, edi
shr eax, 0x10
shr edi, 0x18
mov byte [r13], al
add r13, r10
mov eax, esi
mov byte [r13], dil
shr eax, 8
add r13, r10
mov byte [r13], sil
add r13, r10
mov byte [r13], al
mov eax, esi
shr eax, 0x10
shr esi, 0x18
mov byte [r13 + r10], al
mov byte [r13 + r10 + 1], sil
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret