Function at 0x14021bba0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rax, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xc0]
mov r15, qword [rsp + 0xc8]
mov ebx, dword [rax]
mov esi, dword [rax + 4]
mov rdi, rcx
mov eax, r8d
mov ecx, dword [rsp + 0xd8]
mov qword [rsp + 0xa8], rdx
sub eax, 8
mov dword [rsp + 0xb0], r8d
mov r14, r9
mov dword [rsp + 0x38], eax
test ecx, ecx
je 0x14021bcf0
test eax, eax
js 0x14021bf80
shr eax, 3
mov rbp, rdx
lea rcx, [rsp + 0x48]
lea r13, [rax*8 + 8]
mov dword [rsp + 0x20], eax
mov eax, esi
lea rdx, [rdi + r13]
mov rsi, rdx
nop dword [rax]
mov r8d, dword [rdi]
mov edx, dword [rdi + 4]
mov r9, r15
add rbp, 8
add rdi, 8
xor eax, edx
xor ebx, r8d
mov rdx, r14
mov r8, r12
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x4c], eax
call fcn.14021b420
mov ebx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
mov edx, ebx
mov byte [rbp - 8], bl
shr edx, 0x10
mov byte [rbp - 7], bh
mov byte [rbp - 6], dl
mov edx, ebx
shr edx, 0x18
mov byte [rbp - 4], al
mov byte [rbp - 5], dl
mov edx, eax
shr edx, 0x10
mov byte [rbp - 3], ah
mov byte [rbp - 2], dl
mov edx, eax
shr edx, 0x18
mov byte [rbp - 1], dl
cmp rsi, rdi
jne 0x14021bc28
mov esi, eax
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0xb0]
add qword [rsp + 0xa8], r13
neg eax
shl eax, 3
lea ecx, [rcx + rax - 0x10]
add eax, dword [rsp + 0x38]
mov dword [rsp + 0xb0], eax
cmp ecx, 0xfffffff8
je 0x14021bfa0
movsxd rcx, ecx
cmp dword [rsp + 0xb0], 7
lea rax, [rdi + rcx + 8]
ja case.0x14021bce7.0
mov edx, dword [rsp + 0xb0]
lea r10, [0x1405e0060]
movsxd rcx, dword [r10 + rdx*4]
add rcx, r10
jmp rcx
test eax, eax
js 0x14021bf90
shr eax, 3
lea rcx, [rsp + 0x48]
mov qword [rsp + 0xc0], r12
mov rbp, rdx
mov dword [rsp + 0x3c], eax
lea rax, [rax*8 + 8]
mov qword [rsp + 0x30], rax
add rax, rdi
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov eax, esi
mov esi, ebx
mov ebx, eax
nop
mov r12d, esi
mov r8, qword [rsp + 0xc0]
mov esi, dword [rdi]
mov r13d, ebx
mov rcx, qword [rsp + 0x28]
mov ebx, dword [rdi + 4]
mov rdx, r14
mov r9, r15
mov dword [rsp + 0x48], esi
add rbp, 8
add rdi, 8
mov dword [rsp + 0x4c], ebx
call fcn.14021b580
mov edx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
xor edx, r12d
xor eax, r13d
mov byte [rbp - 8], dl
mov r8d, edx
mov byte [rbp - 7], dh
shr edx, 0x18
shr r8d, 0x10
mov byte [rbp - 5], dl
mov edx, eax
mov byte [rbp - 4], al
shr edx, 0x10
mov byte [rbp - 3], ah
shr eax, 0x18
mov byte [rbp - 6], r8b
mov byte [rbp - 2], dl
mov byte [rbp - 1], al
cmp qword [rsp + 0x20], rdi
jne 0x14021bd30
mov eax, ebx
mov ebx, esi
mov ecx, dword [rsp + 0xb0]
mov r12, qword [rsp + 0xc0]
mov esi, eax
mov rax, qword [rsp + 0x30]
add qword [rsp + 0xa8], rax
mov eax, dword [rsp + 0x3c]
neg eax
shl eax, 3
lea ebp, [rcx + rax - 0x10]
add eax, dword [rsp + 0x38]
mov dword [rsp + 0xb0], eax
cmp ebp, 0xfffffff8
je 0x14021be88
mov r13d, dword [rdi]
mov edi, dword [rdi + 4]
lea rcx, [rsp + 0x48]
mov r9, r15
mov r8, r12
mov rdx, r14
movsxd rbp, ebp
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x4c], edi
call fcn.14021b580
xor ebx, dword [rsp + 0x48]
xor esi, dword [rsp + 0x4c]
mov rax, qword [rsp + 0xa8]
cmp dword [rsp + 0xb0], 7
lea rax, [rax + rbp + 8]
ja case.0x14021be44.0
mov r12d, dword [rsp + 0xb0]
lea rcx, [0x1405e0080]
movsxd rdx, dword [rcx + r12*4]
add rdx, rcx
jmp rdx
mov edx, esi
sub rax, 1
shr edx, 0x10
mov byte [rax], dl
mov ecx, esi
sub rax, 1
mov byte [rax], ch
mov byte [rax - 1], sil
lea rdx, [rax - 1]
mov ecx, ebx
lea rax, [rdx - 1]
shr ecx, 0x18
mov byte [rdx - 1], cl
mov ecx, ebx
lea rdx, [rax - 1]
shr ecx, 0x10
mov byte [rax - 1], cl
mov byte [rdx - 1], bh
lea rax, [rdx - 1]
mov byte [rax - 1], bl
mov esi, edi
mov ebx, r13d
mov rax, qword [rsp + 0xd0]
mov dword [rax], ebx
mov dword [rax + 4], esi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r10d, r10d
movzx ecx, byte [rax - 1]
sub rax, 1
shl ecx, 8
or ecx, r10d
lea r10, [rax - 1]
movzx eax, byte [rax - 1]
or ecx, eax
xor esi, ecx
lea rax, [r10 - 1]
movzx r10d, byte [r10 - 1]
shl r10d, 0x18
movzx ecx, byte [rax - 1]
lea r11, [rax - 1]
shl ecx, 0x10
or r10d, ecx
movzx ecx, byte [r11 - 1]
lea rax, [r11 - 1]
shl ecx, 8
or ecx, r10d
movzx eax, byte [rax - 1]
or ecx, eax
xor ebx, ecx
lea rcx, [rsp + 0x48]
mov r9, r15
mov r8, r12
mov rdx, r14
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x4c], esi
call fcn.14021b420
mov ebx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
mov rdi, qword [rsp + 0xa8]
movzx esi, bh
mov ecx, ebx
mov edx, eax
mov r10d, ebx
shr ecx, 0x10
mov r9d, esi
movzx esi, ah
mov r11d, eax
shr ebx, 0x18
mov r8d, esi
mov rsi, qword [rsp + 0x48]
shr edx, 0x10
shr eax, 0x18
mov qword [rdi], rsi
mov rsi, qword [rsp + 0xd0]
mov byte [rsi], r10b
mov byte [rsi + 1], r9b
mov byte [rsi + 2], cl
mov byte [rsi + 3], bl
mov byte [rsi + 4], r11b
mov byte [rsi + 5], r8b
mov byte [rsi + 6], dl
mov byte [rsi + 7], al
jmp 0x14021be95
mov ecx, eax
jmp 0x14021bcb3
mov ebp, eax
jmp 0x14021bddd
movzx eax, bh
mov ecx, ebx
mov edx, esi
mov r11d, esi
shr ecx, 0x10
mov r9d, eax
mov eax, esi
shr esi, 0x18
movzx eax, ah
mov r10d, ebx
shr edx, 0x10
mov r8d, eax
shr ebx, 0x18
mov eax, esi
jmp 0x14021bf54
xor ecx, ecx
jmp 0x14021bef7
mov r11, rax
xor r10d, r10d
jmp 0x14021bee8
xor r10d, r10d
jmp 0x14021beda
mov r10, rax
jmp 0x14021becd
xor ecx, ecx
jmp 0x14021bec1
movzx ecx, byte [rax - 1]
sub rax, 1
shl ecx, 0x10
mov r10d, ecx
jmp 0x14021beb3
mov rdx, rax
jmp 0x14021be61
mov rdx, rax
jmp 0x14021be79
mov esi, edi
mov ebx, r13d
jmp 0x14021be88