Function at 0x14001cdc0
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
cmp dword [rcx + 0x3d5ec], 0
mov rdi, rcx
je 0x14001cdf7
mov rcx, qword [rcx + 0x30]
call qword [rdi]
and dword [rdi + 0x3d5ec], 0
cmp dword [rdi + 0x3d5dc], 0
je 0x14001ce0b
mov eax, dword [rdi + 0x3d5e4]
jmp 0x14001d420
mov rcx, rdi
call fcn.14001c874
test eax, eax
jne 0x14001d420
cmp qword [rdi + 0x3d5d0], 0
mov esi, dword [rdi + 0x3d5d0]
lea r14, [0x140000000]
mov r13d, esi
mov dword [rsp + 0x30], esi
jne 0x14001cec0
mov rcx, qword [rdi + 0x30]
call qword [rdi + reloc.SHELL32.dll_ILFindLastID]
mov rcx, rdi
test eax, eax
je 0x14001d419
lea rdx, [rsp + 0x90]
call fcn.14001adfc
mov edx, dword [rdi + 0x33218]
lea rbx, [rdi + 0x3d580]
add rdx, 0x19f4
xor r8d, r8d
mov rcx, rbx
shl rdx, 5
add rdx, rdi
call fcn.14001a910
mov eax, dword [rdi + 0x33218]
mov edx, dword [rdi + 0x33204]
mov eax, dword [r14 + rax*4 + 0x106780]
mov rcx, qword [rdi + 0x30]
neg edx
mov dword [rdi + 0x33218], eax
call qword [rdi + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rdi + 0x33e78]
movzx r8d, al
mov rcx, rbx
call fcn.14001a970
dec dword [rdi + 0x33204]
inc esi
mov rcx, qword [rdi + 0x30]
call qword [rdi + reloc.SHELL32.dll_ILFindLastID]
test eax, eax
je 0x14001d40a
cmp dword [rdi + 0x3d578], 0
mov rcx, rdi
je 0x14001ceea
lea rdx, [rsp + 0x90]
call fcn.14001c464
jmp 0x14001cef9
lea r8, [rsp + 0x90]
mov edx, esi
call fcn.14001b098
mov r14d, dword [rdi + 0x33e74]
mov ebx, dword [rsp + 0x90]
mov r15d, eax
and r14d, esi
cmp eax, 1
jne 0x14001d035
cmp ebx, 0xffffffff
jne 0x14001d035
mov ecx, dword [rdi + 0x33218]
mov eax, r14d
lea r12, [rdi + 0x3d580]
add rcx, 0x19f4
xor r8d, r8d
shl rcx, 4
add rcx, rax
lea rdx, [rdi + rcx*2]
mov rcx, r12
call fcn.14001a910
mov rcx, qword [rdi + 0x30]
call qword [rdi + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov ecx, dword [rdi + 0x33204]
mov edx, dword [rdi + 0x33e70]
and edx, esi
mov r9, rax
mov rax, qword [rdi + 0x33e78]
sub r9, rcx
lea ecx, [r15 + 7]
sub cl, byte [rdi + 0x33e64]
movzx r8d, byte [r9 - 1]
mov r10b, byte [r9]
shr r8d, cl
mov ecx, dword [rdi + 0x33e64]
shl edx, cl
add r8d, edx
lea edx, [r8 + r8*2]
shl edx, 8
cmp dword [rdi + 0x33218], 7
lea r13, [rax + rdx*2]
jae 0x14001cfb3
movzx r8d, r10b
mov rdx, r13
mov rcx, r12
call fcn.14001a970
jmp 0x14001d011
mov eax, dword [rdi + 0x33208]
movzx ebx, r10b
sub r9, rax
mov eax, 0x100
movzx ebp, byte [r9 - 1]
mov r14d, eax
or ebx, eax
mov ecx, ebx
mov eax, r14d
mov r8d, ebx
shr ecx, 8
shr r8d, 7
add ebp, ebp
and eax, ebp
and r8d, 1
add eax, r14d
add ecx, eax
lea rdx, [rcx*2]
mov rcx, r12
add rdx, r13
call fcn.14001a910
add ebx, ebx
mov eax, ebx
xor eax, ebp
not eax
and r14d, eax
cmp ebx, 0x10000
jb 0x14001cfcf
mov eax, dword [rdi + 0x33218]
mov r13d, dword [rsp + 0x30]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x106780]
mov dword [rdi + 0x33218], eax
jmp 0x14001d368
mov eax, dword [rdi + 0x33218]
mov r12d, r14d
lea rbp, [rdi + 0x3d580]
add rax, 0x19f4
mov r8d, 1
mov rcx, rbp
shl rax, 4
add rax, r12
lea rdx, [rdi + rax*2]
call fcn.14001a910
mov rcx, rbp
cmp ebx, 4
jae 0x14001d1e9
mov edx, dword [rdi + 0x33218]
mov r8d, 1
add rdx, 0x1a000
lea rdx, [rdi + rdx*2]
call fcn.14001a910
mov rcx, rbp
test ebx, ebx
jne 0x14001d0da
mov eax, dword [rdi + 0x33218]
xor r8d, r8d
add rax, 0x1a00c
lea rdx, [rdi + rax*2]
call fcn.14001a910
mov eax, dword [rdi + 0x33218]
xor r8d, r8d
cmp r15d, 1
mov rcx, rbp
setne r8b
add rax, 0x1a03
shl rax, 4
add rax, r12
lea rdx, [rdi + rax*2]
call fcn.14001a910
jmp 0x14001d179
mov edx, dword [rdi + 0x33218]
mov r12d, dword [rdi + rbx*4 + 0x33208]
mov r8d, 1
add rdx, 0x1a00c
lea rdx, [rdi + rdx*2]
call fcn.14001a910
mov edx, dword [rdi + 0x33218]
mov rcx, rbp
add rdx, 0x1a018
lea rdx, [rdi + rdx*2]
cmp ebx, 1
jne 0x14001d121
xor r8d, r8d
call fcn.14001a910
jmp 0x14001d166
mov r8d, 1
call fcn.14001a910
mov edx, dword [rdi + 0x33218]
lea r8d, [rbx - 2]
add rdx, 0x1a024
mov rcx, rbp
lea rdx, [rdi + rdx*2]
call fcn.14001a910
cmp ebx, 3
jne 0x14001d15a
mov eax, dword [rdi + 0x33210]
mov dword [rdi + 0x33214], eax
mov eax, dword [rdi + 0x3320c]
mov dword [rdi + 0x33210], eax
mov eax, dword [rdi + 0x33208]
mov dword [rdi + 0x33208], r12d
mov dword [rdi + 0x3320c], eax
cmp r15d, 1
jne 0x14001d195
mov eax, dword [rdi + 0x33218]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x106750]
jmp 0x14001d1de
xor r10d, r10d
lea rax, [rdi + 0x3276c]
lea r8d, [r15 - 2]
cmp dword [rdi + 0x3d578], r10d
mov qword [rsp + 0x28], rax
lea rcx, [rdi + 0x38d2c]
sete r10b
mov r9d, r14d
mov rdx, rbp
mov dword [rsp + 0x20], r10d
call fcn.14001ad20
mov eax, dword [rdi + 0x33218]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x1066f0]
mov dword [rdi + 0x33218], eax
jmp 0x14001d368
mov eax, dword [rdi + 0x33218]
xor r8d, r8d
add rax, 0x1a000
lea rdx, [rdi + rax*2]
call fcn.14001a910
mov eax, dword [rdi + 0x33218]
xor edx, edx
cmp dword [rdi + 0x3d578], edx
lea rcx, [0x140000000]
lea r12d, [r15 - 2]
mov eax, dword [rcx + rax*4 + 0x106720]
sete dl
lea rcx, [rdi + 0x344e4]
mov dword [rdi + 0x33218], eax
lea rax, [rdi + 0x3276c]
mov r9d, r14d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edx
mov rdx, rbp
mov r8d, r12d
call fcn.14001ad20
add ebx, 0xfffffffc
mov dword [rsp + 0x90], ebx
cmp ebx, 0x80
jae 0x14001d26c
movzx r14d, byte [rbx + rdi + 0x3076c]
jmp 0x14001d28f
mov ecx, 0x7ffff
mov eax, ebx
sub ecx, ebx
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rdi + 0x3076c]
lea r14d, [rax + rcx*2]
mov eax, 3
cmp r15d, 5
lea rdx, [rdi + 0x341e0]
cmovb eax, r12d
mov r9d, r14d
mov r8d, 6
shl rax, 7
mov rcx, rbp
add rdx, rax
call fcn.14001aa48
cmp r14d, 4
jb 0x14001d338
mov r8d, r14d
mov eax, r14d
mov r12d, ebx
and eax, 1
shr r8d, 1
dec r8d
or eax, 2
mov ecx, r8d
shl eax, cl
sub r12d, eax
cmp r14d, 0xe
jae 0x14001d304
mov ecx, eax
mov eax, r14d
mov r9d, r12d
sub rcx, rax
add rcx, 0x1a1ef
lea rdx, [rdi + rcx*2]
mov rcx, rbp
call fcn.14001aab4
jmp 0x14001d338
mov edx, r12d
add r8d, 0xfffffffc
mov rcx, rbp
shr edx, 4
call fcn.14001a8b4
and r12d, 0xf
lea rdx, [rdi + 0x344c4]
mov r9d, r12d
mov r8d, 4
mov rcx, rbp
call fcn.14001aab4
inc dword [rdi + 0x33e5c]
mov eax, dword [rdi + 0x33210]
mov dword [rdi + 0x33214], eax
mov eax, dword [rdi + 0x3320c]
mov dword [rdi + 0x33210], eax
mov eax, dword [rdi + 0x33208]
mov dword [rdi + 0x33208], ebx
mov dword [rdi + 0x3320c], eax
inc dword [rdi + 0x3d5d8]
sub dword [rdi + 0x33204], r15d
add esi, r15d
cmp dword [rdi + 0x33204], 0
jne 0x14001cecf
cmp dword [rdi + 0x3d578], 0
jne 0x14001d3ad
cmp dword [rdi + 0x3d5d8], 0x80
jb 0x14001d39c
mov rcx, rdi
call fcn.14001c994
cmp dword [rdi + 0x33e5c], 0x10
jb 0x14001d3ad
mov rcx, rdi
call fcn.14001c924
mov rcx, qword [rdi + 0x30]
call qword [rdi + reloc.SHELL32.dll_ILFindLastID]
test eax, eax
je 0x14001d40a
mov eax, esi
sub eax, r13d
cmp dword [rsp + 0x98], 0
je 0x14001d431
add eax, 0x112c
cmp eax, dword [rsp + 0xa8]
jae 0x14001d40a
mov rcx, qword [rdi + 0x3d5b8]
mov rax, qword [rdi + 0x3d590]
sub rcx, qword [rdi + 0x3d5a8]
add rax, 0x2000
add rcx, qword [rdi + 0x3d598]
add rcx, rax
mov eax, dword [rsp + 0xa0]
cmp rcx, rax
jb 0x14001cecf
mov eax, esi
mov rcx, rdi
sub eax, r13d
add qword [rdi + 0x3d5d0], rax
mov edx, esi
call fcn.14001c8b8
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
cmp eax, 0x8000
jb 0x14001cecf
sub esi, r13d
mov rcx, rdi
mov eax, esi
add qword [rdi + 0x3d5d0], rax
call fcn.14001c874
jmp 0x14001d420