Function at 0x14016e2e0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0xb8
mov dword [rsp + 0x8c], r8d
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x80], rcx
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
call fcn.14000eaf8
mov r8d, dword [rsp + 0x8c]
mov rcx, rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rcx
mov ecx, 8
cqo
idiv rcx
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0xa0], rax
xor eax, eax
cmp rdx, 7
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0xb4], r8d
jle 0x14016e392
mov ecx, dword [rsp + 0x8c]
mov rax, qword [rsp + 0x90]
cmp byte [rax + 0x60], 0
sete al
mov byte [rsp + 0x6b], al
xor eax, eax
mov dword [rsp + 0x6c], ecx
mov rcx, rax
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
jmp 0x14016e495
mov rax, qword [rsp + 0xa8]
mov ecx, dword [rsp + 0xb4]
mov dword [rsp + 0x5c], ecx
mov qword [rsp + 0x60], rax
mov ecx, dword [0x1402b16c0]
xor ecx, 0x64780000
mov edx, dword [0x1402b16c4]
mov eax, ecx
xor eax, edx
xor eax, 0xffffffff
mov r8d, edx
and r8d, eax
mov eax, 0x9b2e412c
xor eax, 0x9b2e412e
imul eax, r8d
sub eax, edx
sub ecx, eax
and ecx, 0xc0b5236e
mov eax, 0x8088fa9e
xor eax, 0x2b7d52a7
or ecx, eax
mov eax, ecx
and eax, 0xc4cfa312
or ecx, 0xc4cfa312
add eax, ecx
cmp eax, 0x13f4b564
jb 0x14016e799
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x98]
mov eax, dword [0x1402b16c8]
mov ecx, 0x8b13b5fe
xor ecx, 0x9d473daf
xor eax, ecx
xor eax, dword [0x1402b16cc]
and eax, 0x1ccb3978
mov ecx, 0xffffffff
xor ecx, 0xd160073
xor r9d, r9d
sub r9d, 1
sub ecx, r9d
sub eax, ecx
or eax, 0x68dee786
mov ecx, 0xe475ccd5
xor ecx, 0xd8a53304
cmp rdx, r8
setl dl
mov byte [rsp + 0x5b], dl
cmp eax, ecx
jb 0x14016e799
mov eax, dword [rsp + 0x5c]
mov rcx, qword [rsp + 0x60]
mov dl, byte [rsp + 0x5b]
test dl, 1
mov qword [rsp + 0x48], rcx
mov ecx, eax
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x54], eax
jne 0x14016e700
jmp 0x14016e78b
mov eax, dword [rsp + 0x8c]
mov cl, byte [rsp + 0x6b]
mov edx, dword [rsp + 0x6c]
mov r8, qword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x38], r8
mov dword [rsp + 0x44], edx
test cl, 1
mov dword [rsp + 0x54], eax
jne 0x14016e4ce
jmp 0x14016e78b
mov r8, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x30]
mov edx, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x80]
mov r11d, dword [rcx + rax]
mov r9, rax
or r9, 4
mov r9d, dword [rcx + r9]
mov r10d, r11d
xor r10d, 0xffffffff
and r10d, 0x41810e83
mov esi, 0xffffffff
xor esi, 0x41810e83
and r11d, esi
mov edi, 0xe98d46ca
xor edi, 0x1672b935
mov ecx, edx
xor ecx, edi
and ecx, 0x41810e83
and edx, esi
or r10d, r11d
or ecx, edx
xor r10d, ecx
mov dword [rsp + 0x2c], r10d
mov ecx, r10d
and ecx, 0xff
mov ecx, ecx
mov edx, ecx
lea rcx, [0x1402d5aa0]
mov edx, dword [rcx + rdx*4 + 0x1c00]
mov ecx, 0x6f61cd17
xor ecx, 0x6f61cd1f
shr r10d, cl
mov ecx, dword [rsp + 0x2c]
mov r11d, 0x9095c749
xor r11d, 0x9095c7b6
and r10d, r11d
mov r10d, r10d
mov r11d, r10d
lea r10, [0x1402d5aa0]
xor edx, dword [r10 + r11*4 + 0x1800]
mov r11d, ecx
shr r11d, 0x10
mov esi, 0xc3282dd7
xor esi, 0xc3282d28
mov r10d, 0x1b3da311
xor r10d, 0xe4c25cee
xor esi, r10d
mov r10d, r11d
xor r10d, esi
and r10d, r11d
mov r10d, r10d
mov r11d, r10d
lea r10, [0x1402d5aa0]
xor edx, dword [r10 + r11*4 + 0x1400]
shr ecx, 0x18
mov ecx, ecx
mov r10d, ecx
lea rcx, [0x1402d5aa0]
xor edx, dword [rcx + r10*4 + 0x1000]
mov ecx, r9d
and ecx, 0xff
mov ecx, ecx
mov r10d, ecx
lea rcx, [0x1402d5aa0]
xor edx, dword [rcx + r10*4 + 0xc00]
mov ecx, 0xe28ef275
xor ecx, 0xe28ef27d
mov r10d, r9d
shr r10d, cl
mov ecx, r10d
and ecx, 0xff
mov ecx, ecx
mov r10d, ecx
lea rcx, [0x1402d5aa0]
xor edx, dword [rcx + r10*4 + 0x800]
mov ecx, 0x94179326
xor ecx, 0x94179336
mov r10d, r9d
shr r10d, cl
mov rcx, qword [rsp + 0x38]
and r10d, 0xff
mov r10d, r10d
mov r11d, r10d
lea r10, [0x1402d5aa0]
xor edx, dword [r10 + r11*4 + 0x400]
shr r9d, 0x18
mov r9d, r9d
mov r10d, r9d
lea r9, [0x1402d5aa0]
mov r10d, dword [r9 + r10*4]
mov r11d, edx
xor r11d, r10d
xor r11d, 0xffffffff
mov r9d, r10d
and r9d, r11d
shl r9d, 1
sub r9d, r10d
sub edx, r9d
movabs r10, 0x813c738d4465fdc7
movabs r9, 0x813c738d4465fdcf
xor r10, r9
mov r9, rax
and r9, r10
movabs r10, 0x53431d6f30c26fcf
movabs r11, 0x53431d6f30c26fcd
xor r10, r11
imul r9, r10
xor rax, 8
add rax, r9
add rcx, 1
cmp rcx, r8
mov r8, rax
mov qword [rsp + 0xa8], r8
mov r8d, edx
mov dword [rsp + 0xb4], r8d
mov dword [rsp + 0x6c], edx
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rax
je 0x14016e392
jmp 0x14016e495
mov r9d, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x98]
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x20], rcx
mov al, byte [rax + rcx]
mov cl, r9b
xor al, cl
movzx eax, al
mov ecx, eax
lea rax, [0x1402d5aa0]
mov eax, dword [rax + rcx*4]
mov ecx, 0x6c4d4287
xor ecx, 0x6c4d428f
shr r9d, cl
mov rcx, qword [rsp + 0x20]
mov r8d, eax
and r8d, r9d
shl r8d, 1
add eax, r9d
sub eax, r8d
movabs r8, 0x7a83bc0af4826d9d
movabs r9, 0x7a83bc0af4826d9c
xor r8, r9
add rcx, r8
cmp rcx, rdx
mov qword [rsp + 0x48], rcx
mov ecx, eax
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x54], eax
jne 0x14016e700
mov eax, dword [rsp + 0x54]
add rsp, 0xb8
pop rdi
pop rsi
ret
iretd