Function at 0x14017dd70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov qword [rsp + 0x58], r8
mov rbp, rdx
mov r14, rcx
mov rax, qword [0x140682ee8]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x8c], 0
lea rcx, [rsp + 0x8c]
mov edx, 0x48b96e48
mov r8d, 0x9d56d263
mov r9d, 0x3f9dd710
call fcn.1401821e0
lea rbx, [r14 + 0x30]
mov eax, dword [rsp + 0x8c]
mov r8, qword [r14 + 0x30]
mov rcx, qword [r14 + 0x38]
movabs r9, 0x500c7590388b91d9
movabs rdx, 0x636c858a144e6acb
mov r10, rdx
sub r10, r9
add r10, r9
add r10, r8
sub rdx, r10
add rdx, rcx
sar rdx, 3
cmp rdx, rax
jbe 0x14017de15
lea rax, [r8 + rax*8]
mov qword [r14 + 0x38], rax
jmp 0x14017de78
cmp byte [0x140693da8], 0
jne 0x14017de23
cmp rdx, rax
jae 0x14017de78
mov r9, qword [0x140693de8]
add r9, qword [r14 + 0x40]
movabs r10, 0xe4a48ff0917dbb3b
sub r9, r10
sub r9, r8
add r9, r10
sar r9, 3
cmp r9, rax
jae 0x14017de5f
lea r8, [rsp + 0x80]
mov rcx, rbx
mov rdx, rax
call fcn.14017f570
jmp 0x14017de78
sub rax, rdx
lea rsi, [rcx + rax*8]
shl rax, 3
xor edx, edx
mov r8, rax
call fcn.140512320
mov qword [r14 + 0x38], rsi
mov qword [rsp + 0x80], 0
mov rdx, qword [r14 + 0x30]
mov rax, qword [r14 + 0x38]
movabs rcx, 0x54bfaf8d35a0febf
movabs r8, 0xb54ca3f317f56765
lea r9, [r8 + rcx]
sub r9, rdx
sub r9, rcx
sub r9, r8
mov rcx, rax
xor rcx, r9
and r9, rax
lea r8, [rcx + r9*2]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x40], 0xe3525608
mov dword [rsp + 0x38], 0xe3ede4dc
mov dword [rsp + 0x30], 0xa83288a2
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x8c]
xor r9d, r9d
call fcn.140182200
mov ecx, eax
xor ecx, 0xfffffffd
add eax, eax
and eax, 0xfffffffa
mov edx, ecx
xor edx, eax
and eax, ecx
lea eax, [rdx + rax*2]
cmp eax, 0xfffffffe
jb 0x14017e517
cmp dword [rsp + 0x8c], 0
je 0x14017e517
mov rax, qword [rbx]
mov qword [rsp + 0x60], rax
mov r14, qword [rsp + 0x58]
mov rcx, qword [r14 + 0x10]
sub rcx, qword [r14]
mov r8d, 0x6a821268
nop dword [rax + rax]
mov eax, dword [0x140693de4]
cmp eax, 0x51
jg 0x14017df74
mov rsi, qword [0x140611a98]
movsxd r15, dword [rsi]
mov edx, dword [0x140693de0]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x140611cf8]
add r9d, r8d
xor edx, edx
div r9d
test edx, edx
je 0x14017df99
mov rax, qword [0x140611a98]
mov eax, dword [rax]
mov eax, dword [0x140693de0]
mov edx, dword [0x140611cf8]
neg edx
add edx, eax
inc edx
imul edx, eax
test dl, 1
jne 0x14017df40
jmp 0x14017df4b
mov eax, dword [0x140532010]
mov dword [rsp + 0x54], eax
cmp rcx, 0x80
jae 0x14017dfb9
mov edx, 0x20
mov rcx, r14
call fcn.14017f810
cmp dword [rsp + 0x8c], 0
je 0x14017e4bd
add r15, rsi
xor r13d, r13d
mov bl, 1
mov r12d, 0x6a82128a
xor edi, edi
mov qword [rsp + 0x68], rbp
jmp 0x14017e001
mov rax, qword [rsp + 0x70]
mov qword [r14 + 8], rax
mov rbp, qword [rsp + 0x68]
inc rdi
mov eax, dword [rsp + 0x8c]
cmp rdi, rax
jae 0x14017e4bd
mov rcx, qword [rbp]
mov rdx, qword [rbp + 8]
cmp rcx, rdx
je 0x14017e1b0
mov rax, qword [0x140611cf0]
mov r9, rdx
movabs r11, 0x1ee632ddf6115524
sub r9, r11
sub r9, rax
movabs r10, 0x9a69ebc85e92b2ec
add r9, r10
add r9, r11
sub r9, r10
movabs r10, 0xd4afde682da1e00d
sub r9, r10
movabs r8, 0xde104db0d0e43f70
add r9, r8
sub r9, rcx
sub r9, r8
movabs r8, 0xe5fd14c702b7a6a8
add r9, r8
movabs r11, 0x50c7cf156de2d356
sub r9, r11
sub r9, r8
lea r8, [r10 + r11]
movabs r10, 0x3f8c2052a8ea8119
add r8, r10
add r8, r9
mov r9, rax
xor r9, rax
not r9
movabs r10, 0xc073dfad57157ee7
and r9, r10
xor r9, rax
and rax, r10
lea r9, [r9 + rax*2]
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + rdi*8]
cmp r8, r9
jle 0x14017e0f8
shr r8, 2
nop word cs:[rax + rax]
mov r9, r8
shr r9, 1
mov r10, r9
not r10
add r10, r8
cmp dword [rcx + r9*4], eax
lea r8, [rcx + r9*4 + 4]
cmovb rcx, r8
cmovae r10, r9
mov r8, r10
test r10, r10
jg 0x14017e0d0
cmp rcx, rdx
je 0x14017e105
cmp dword [rcx], eax
jbe 0x14017dfee
mov edx, dword [0x140611a88]
lea r8d, [rdx - 0x6966c499]
mov ecx, dword [0x140611cf8]
lea r9d, [rcx + 0x6a821267]
mov r10d, r8d
not r10d
mov r11d, r10d
and r11d, r9d
mov esi, r8d
xor r8d, r9d
not r9d
and esi, r9d
or esi, r11d
xor r9d, r10d
not r9d
and r9d, r10d
or r9d, r8d
not r9d
lea r8d, [rsi + r9*2]
sub r8d, ecx
add r8d, 0x3b380b9b
mov r9d, r8d
xor r9d, 0xc3aca698
and r8d, 0x43aca698
lea r10d, [r9 + r8*2]
mov dword [0x140611a88], r10d
mov r8d, edx
not r8d
mov r9d, r8d
and r9d, r10d
not r10d
and edx, r10d
or edx, r9d
and r10d, r8d
or r10d, edx
not r10d
add ecx, 0x6a821266
xor ebp, ebp
cmp r10d, ecx
jne 0x14017e200
test r13b, r13b
lea r9, [fcn.14017dd70]
jne 0x14017e250
jmp 0x14017e1f0
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + rdi*8]
mov dword [rsp + 0x7c], eax
mov rdx, qword [r14 + 8]
cmp rdx, qword [r14 + 0x10]
je 0x14017e1d2
mov dword [rdx], eax
add qword [r14 + 8], 4
jmp 0x14017dfee
mov rcx, r14
lea r8, [rsp + 0x7c]
call fcn.14017f120
jmp 0x14017dfee
test r14, r14
je 0x14017e250
cmp dword [rsp + 0x54], 0
jg 0x14017e279
nop dword [rax]
test r13b, r13b
jne 0x14017e200
mov dword [rsp + 0x7c], eax
mov r14, qword [rsp + 0x58]
mov rdx, qword [r14 + 8]
cmp rdx, qword [r14 + 0x10]
je 0x14017e267
mov dword [rdx], eax
mov rax, qword [r14 + 8]
add rax, 4
mov qword [rsp + 0x70], rax
mov eax, dword [0x140693de4]
mov edx, dword [0x140611cf8]
mov r8d, 0x6a821280
add edx, r8d
cmp eax, edx
jge 0x14017e3d0
jmp 0x14017e390
lea edx, [r9 + r9]
add edx, 0x3b40
mov r8d, edx
not r8d
test r8d, edx
jne 0x14017e250
jmp 0x14017e1f0
mov rcx, r14
lea r8, [rsp + 0x7c]
call fcn.14017f120
jmp 0x14017dfe9
xor edx, edx
xor ebp, ebp
jmp 0x14017e290
cmp edx, dword [rsp + 0x54]
jge 0x14017e200
nop dword [rax]
mov r8d, dword [0x140693de4]
cmp r8d, 0x12
jg 0x14017e2b2
mov r8d, dword [0x140693de0]
lea r11d, [r8 - 1]
imul r11d, r8d
test r11b, 1
je 0x14017e2cb
mov r8d, dword [0x140693de0]
mov r9d, r8d
not r9d
imul r9d, r8d
test r9b, 1
jne 0x14017e290
jmp 0x14017e29d
movsxd rdx, edx
lea r8, [r15 + rdx]
mov r8d, dword [r8]
mov r9d, ebp
not r9d
mov esi, ebp
and esi, r8d
xor ebp, r8d
not r8d
mov r11d, r9d
xor r11d, r8d
and r11d, r9d
and r8d, r9d
or esi, r8d
and ebp, r9d
or ebp, esi
mov r8d, ebp
not r8d
xor ebp, r8d
and ebp, r11d
and r11d, r8d
xor ebp, r8d
or ebp, r11d
add edx, 4
mov r8d, dword [0x140693de4]
cmp r8d, 0x39
jge 0x14017e370
mov r8d, dword [0x140693de4]
mov r9d, dword [0x140611cf8]
mov r11d, r9d
not r11d
mov esi, r9d
xor esi, 0x957ded7f
mov r14d, r11d
and r14d, 0x6a821280
or esi, r14d
not esi
or esi, r14d
xor r9d, 0x6a821280
and r11d, 0x157ded7f
or r11d, r9d
not r11d
lea r9d, [rsi + r11*2]
cmp r8d, r9d
jl 0x14017e27f
nop
mov r8d, dword [0x140693de4]
mov r9d, dword [0x140611cf8]
add r9d, r12d
cmp r8d, r9d
jge 0x14017e370
jmp 0x14017e31f
xor r8d, r8d
cmp r10d, ecx
setne r11b
mov esi, dword [0x140532020]
mov edx, dword [0x140693de0]
lea eax, [rdx - 1]
imul eax, edx
mov r9d, dword [0x140611cf8]
mov edx, 0x6a821268
add r9d, edx
xor edx, edx
div r9d
test edx, edx
je 0x14017e3f0
nop word cs:[rax + rax]
mov eax, dword [0x140532020]
mov eax, dword [0x140693de4]
cmp eax, 0x17
jge 0x14017e3d0
jmp 0x14017e390
mov r8b, r11b
dec r8d
mov eax, dword [0x140693de4]
cmp eax, 0x5b
jg 0x14017e440
nop word cs:[rax + rax]
mov eax, esi
sub eax, ebp
test eax, r8d
setne al
or al, byte [0x140693da8]
and al, 1
mov byte [0x140693da8], al
mov eax, dword [0x140693de0]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
je 0x14017dfe0
nop
mov eax, ebp
neg eax
imul eax, ebp
mov ecx, eax
neg ecx
imul ecx, eax
neg cl
mov eax, esi
shl eax, cl
add eax, esi
mov edx, eax
mov ecx, r8d
shl edx, cl
mov ecx, 0xe586c9e4
sub ecx, eax
mov r9d, ecx
xor r9d, 0x1a79361c
and ecx, 0x1a79361c
add ecx, ecx
mov r10d, r9d
xor r10d, ecx
and ecx, r9d
lea ecx, [r10 + rcx*2]
add ecx, edx
test eax, ecx
setne dl
movzx eax, byte [0x140693da8]
add al, dl
mul dl
mov ecx, eax
sub al, dl
mul dl
mov edx, eax
mov eax, ecx
sub al, dl
mul dl
mov edx, eax
lea eax, [rcx + rdx]
mul dl
or al, cl
and al, 1
mov byte [0x140693da8], al
test bl, bl
je 0x14017e440
jmp 0x14017e410
mov rcx, r14
call fcn.14017e540
mov rcx, qword [r14]
mov rdx, qword [r14 + 8]
movabs rax, 0x1847df5e7b56e0fe
mov r8, rdx
xor r8, rax
mov r9, rdx
not r9
mov r10, rax
not r10
and r10, r9
or r10, r8
not r10
lea r9, [r8 + r10*2]
movabs r10, 0xbb8420b1d20bf404
mov r8, r10
sub r8, rcx
sub r8, r10
add r8, r9
sub r8, rax
sar r8, 2
call fcn.14017fa30
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.1404e9d20
nop
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret