Function at 0x14001a580
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb8
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov r13d, r9d
mov rsi, rcx
mov rax, qword [rcx]
call qword [rax + 0x4d0]
test eax, eax
jne 0x14001ac1d
call fcn.140019360
mov rdi, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x14001ac1d
xor r8d, r8d
mov r12d, r8d
mov ebp, r8d
mov qword [rsp + 0x60], r8
mov r14d, r8d
mov qword [rsp + 0x68], r8
mov r15, qword [rsp + reloc.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____]
test r15, r15
jne 0x14001a613
mov rax, qword [rsp + 0x130]
test rax, rax
je 0x14001a9f9
mov rbx, qword [rsi + 0x200]
lea rdx, [rsp + 0x88]
mov rcx, rsi
call fcn.140010b60
nop
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + SysAllocStringByteLen]
mov word [rsp + 0x50], ax
lea rcx, [rsp + 0x88]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AcCmColor::destructor_void____ptr64]
cmp dword [rsi + 0x5c], 0
jne 0x14001a664
lea rdx, [rsp + 0x70]
mov rcx, qword [rsi + 0x200]
call qword [sym.imp.acdb19.dll_public:_class_AcDbObjectId___cdecl_AcDbDatabase::continuousLinetype_void____ptr64]
jmp 0x14001a676
movsxd rdx, dword [rsi + 0x5c]
mov rax, qword [rsi + 0x50]
mov rdx, qword [rax + rdx*8 - 8]
mov qword [rsp + 0x70], rdx
lea rdx, [rsp + 0x78]
mov rcx, rbx
call qword [sym.imp.acdb19.dll_public:_class_AcDbObjectId___cdecl_AcDbDatabase::byBlockLinetype_void____ptr64]
xor eax, eax
mov esi, eax
mov r13d, eax
mov ecx, eax
mov r8d, dword [rsp + 0x118]
test r8d, r8d
je 0x14001a6bb
mov r9, qword [rsp + 0x120]
mov eax, ecx
mov eax, dword [r9 + rax*4]
cdq
xor eax, edx
sub eax, edx
inc r13d
add esi, eax
lea ecx, [rcx + rax + 1]
cmp ecx, r8d
jb 0x14001a6a2
mov ebx, 0x8000
test r15, r15
je 0x14001a863
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x68]
mov rbp, rax
movsxd rdx, dword [rdi + 0x18]
test rax, rax
jne 0x14001a719
test edx, edx
jns 0x14001a70c
mov rax, rdx
add rax, rax
mov ecx, ebx
cmp rax, 0x10000
cmovb ecx, edx
mov eax, dword [rdi + 0x20]
cmp ecx, eax
cmovg eax, ecx
add edx, eax
mov rcx, rbp
cmovs edx, ecx
lea rcx, [rdi + 0x10]
call fcn.14001bdb0
xor eax, eax
mov dword [rdi + 0x1c], eax
mov r12d, eax
jmp 0x14001a829
mov r14d, ebx
test edx, edx
jns 0x14001a74c
mov rax, rdx
add rax, rax
mov ecx, ebx
cmp rax, 0x10000
cmovb ecx, edx
mov eax, dword [rdi + 0x20]
cmp ecx, eax
cmovg eax, ecx
add edx, eax
mov ecx, 0
cmovs edx, ecx
lea rcx, [rdi + 0x10]
call fcn.14001bdb0
xor r8d, r8d
mov dword [rdi + 0x1c], r8d
xor dl, dl
mov ebx, r8d
test esi, esi
jle 0x14001a812
mov r12d, esi
movzx r15d, word [rsp + 0x50]
nop dword [rax]
movzx ecx, word [rbp + rbx*2]
test cx, cx
jne 0x14001a7f2
test dl, dl
jne 0x14001a7e7
movsxd rdx, dword [rdi + 0x18]
cmp esi, edx
jle 0x14001a7b3
mov rax, rdx
add rax, rax
mov ecx, r14d
cmp rax, 0x10000
cmovb ecx, edx
mov eax, dword [rdi + 0x20]
cmp ecx, eax
cmovg eax, ecx
add edx, eax
cmp esi, edx
cmovg edx, esi
lea rcx, [rdi + 0x10]
call fcn.14001bdb0
xor r8d, r8d
mov eax, r8d
test esi, esi
cmovns eax, esi
mov dword [rdi + 0x1c], eax
mov rdx, r8
test rbx, rbx
jle 0x14001a7e5
nop word [rax + rax]
mov rcx, qword [rdi + 0x10]
movzx eax, word [rbp + rdx*2]
mov word [rcx + rdx*2], ax
inc rdx
cmp rdx, rbx
jl 0x14001a7d0
mov dl, 1
mov rax, qword [rdi + 0x10]
mov word [rax + rbx*2], r15w
jmp 0x14001a7fe
test dl, dl
je 0x14001a7fe
mov rax, qword [rdi + 0x10]
mov word [rax + rbx*2], cx
inc rbx
dec r12
jne 0x14001a770
mov r15, qword [rsp + reloc.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____]
mov rbx, qword [rsp + 0x58]
cmp dword [rbx + 0x1c], 0
je 0x14001a823
mov r12, qword [rdi + 0x10]
jmp 0x14001a826
mov r12, r8
mov rdi, rbx
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x80]
mov r8, rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x78]
mov edx, esi
mov rcx, rdi
call fcn.14001a3f0
mov r14, rax
mov qword [rsp + 0x68], rax
mov rbp, qword [rsp + 0x60]
mov ebx, 0x8000
mov rax, qword [rsp + 0x130]
test rax, rax
je 0x14001a9dd
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x80]
mov rsi, rax
test rax, rax
jne 0x14001a8cc
movsxd rcx, dword [rdi + 0x30]
test ecx, ecx
jns 0x14001a8bf
mov rax, rcx
add rax, rax
cmp rax, 0x10000
mov edx, 0x8000
cmovb edx, ecx
mov eax, dword [rdi + 0x38]
cmp edx, eax
cmovg eax, edx
lea edx, [rcx + rax]
test edx, edx
cmovs edx, esi
lea rcx, [rdi + 0x28]
call fcn.14001bdb0
jmp 0x14001a8c1
xor esi, esi
mov dword [rdi + 0x34], esi
mov rbp, rsi
jmp 0x14001a9df
movsxd rdx, dword [rdi + 0x30]
test edx, edx
jns 0x14001a900
mov rax, rdx
add rax, rax
mov ecx, ebx
cmp rax, 0x10000
cmovb ecx, edx
mov eax, dword [rdi + 0x38]
cmp ecx, eax
cmovg eax, ecx
add edx, eax
mov ecx, 0
cmovs edx, ecx
lea rcx, [rdi + 0x28]
call fcn.14001bdb0
xor r8d, r8d
mov dword [rdi + 0x34], r8d
xor dl, dl
mov ebx, r8d
test r13d, r13d
jle 0x14001a9c6
mov ebp, r13d
mov r15d, 0x8000
movzx r14d, word [rsp + 0x50]
movzx ecx, word [rsi + rbx*2]
test cx, cx
jne 0x14001a9a1
test dl, dl
jne 0x14001a996
movsxd rdx, dword [rdi + 0x30]
cmp r13d, edx
jle 0x14001a969
mov rax, rdx
add rax, rax
mov ecx, r15d
cmp rax, 0x10000
cmovb ecx, edx
mov eax, dword [rdi + 0x38]
cmp ecx, eax
cmovg eax, ecx
add edx, eax
cmp r13d, edx
cmovg edx, r13d
lea rcx, [rdi + 0x28]
call fcn.14001bdb0
xor r8d, r8d
mov eax, r8d
test r13d, r13d
cmovns eax, r13d
mov dword [rdi + 0x34], eax
mov rdx, r8
test rbx, rbx
jle 0x14001a994
nop
mov rcx, qword [rdi + 0x28]
movzx eax, word [rsi + rdx*2]
mov word [rcx + rdx*2], ax
inc rdx
cmp rdx, rbx
jl 0x14001a980
mov dl, 1
mov rax, qword [rdi + 0x28]
mov word [rax + rbx*2], r14w
jmp 0x14001a9ad
test dl, dl
je 0x14001a9ad
mov rax, qword [rdi + 0x28]
mov word [rax + rbx*2], cx
inc rbx
dec rbp
jne 0x14001a924
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + reloc.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____]
mov rbx, qword [rsp + 0x58]
cmp dword [rbx + 0x34], 0
je 0x14001a9d7
mov rbp, qword [rdi + 0x28]
jmp 0x14001a9da
mov rbp, r8
mov rdi, rbx
xor esi, esi
test r12, r12
jne 0x14001aa01
test r14, r14
jne 0x14001aa01
mov rax, qword [rsp + 0x130]
mov r13d, dword [rsp + 0x118]
mov rdi, r15
jmp 0x14001aad8
cmp qword [rdi], 0
jne 0x14001aa2d
mov ecx, 0x10
call qword [sym.imp.mfc100u.dll_CTagManager::CTagManager]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14001aa27
mov rcx, rax
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AcGiEdgeData::constructor_void____ptr64]
jmp 0x14001aa2a
mov rax, rsi
mov qword [rdi], rax
mov rdi, qword [rdi]
test r12, r12
je 0x14001aa43
mov rax, qword [rdi]
mov rdx, r12
mov rcx, rdi
call qword [rax + 0x38]
jmp 0x14001aa58
mov rbx, qword [rdi]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x68]
mov rdx, rax
mov rcx, rdi
call qword [rbx + 0x38]
mov rbx, qword [rdi]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x78]
mov rdx, rax
mov rcx, rdi
call qword [rbx + 0x48]
test r14, r14
je 0x14001aa80
mov rax, qword [rdi]
mov rdx, r14
mov rcx, rdi
call qword [rax + 0x50]
jmp 0x14001aa98
mov rbx, qword [rdi]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x80]
mov rdx, rax
mov rcx, rdi
call qword [rbx + 0x50]
mov rbx, qword [rdi]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + SysAllocStringByteLen]
mov rdx, rax
mov rcx, rdi
call qword [rbx + 0x60]
mov rbx, qword [rdi]
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x88]
mov rdx, rax
mov rcx, rdi
call qword [rbx + 0x58]
mov rax, qword [rsp + 0x130]
mov r13d, dword [rsp + 0x118]
test rbp, rbp
jne 0x14001aae5
mov rsi, rax
jmp 0x14001ab90
mov rbx, qword [rsp + 0x58]
cmp qword [rbx + 8], 0
jne 0x14001ab14
mov ecx, 0x10
call qword [sym.imp.mfc100u.dll_CTagManager::CTagManager]
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14001ab10
mov rcx, rax
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AcGiFaceData::constructor_void____ptr64]
nop
mov qword [rbx + 8], rax
mov rsi, qword [rbx + 8]
mov rax, qword [rsi]
mov rdx, rbp
mov rcx, rsi
call qword [rax + 0x38]
mov rbx, qword [rsi]
mov rbp, qword [rsp + 0x130]
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + SysAllocStringByteLen]
mov rdx, rax
mov rcx, rsi
call qword [rbx + 0x48]
mov rbx, qword [rsi]
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0xa0]
mov rdx, rax
mov rcx, rsi
call qword [rbx + 0x58]
mov rbx, qword [rsi]
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0x98]
mov rdx, rax
mov rcx, rsi
call qword [rbx + 0x50]
mov rbx, qword [rsi]
mov rax, qword [rbp]
mov rcx, rbp
call qword [rax + 0xa8]
mov rdx, rax
mov rcx, rsi
call qword [rbx + 0x60]
mov rcx, qword [rsp + 0x100]
cmp qword [rcx + 0x568], 0
je 0x14001abb4
mov rcx, qword [rcx + 0x568]
mov rax, qword [rcx]
call qword [rax + 0x80]
jmp 0x14001abce
cmp qword [rcx + 0x570], 0
je 0x14001ac1d
mov rcx, qword [rcx + 0x570]
mov rax, qword [rcx]
call qword [rax + 0x88]
mov byte [rsp + 0x48], 1
xor ecx, ecx
mov qword [rsp + 0x40], rcx
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x20], rcx
mov r10, qword [rax]
mov r9d, r13d
mov r8, qword [rsp + 0x110]
mov edx, dword [rsp + 0x108]
mov rcx, rax
call qword [r10 + 0xd8]
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret