Function at 0x140020850
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov rax, qword [0x140097030]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov esi, r9d
mov dword [rsp + 0x60], r9d
mov qword [rsp + 0x90], r8
mov dword [rsp + 0x64], edx
mov rdi, rcx
mov qword [rsp + 0xa0], rcx
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x78], rax
mov r13, qword [rsp + 0x168]
mov qword [rsp + 0x98], r13
mov rbx, qword [rsp + 0x170]
mov qword [rsp + 0x70], rbx
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0x88], rax
mov rax, qword [rcx]
call qword [rax + 0x4d8]
test eax, eax
jne 0x140020e29
call fcn.14001f8c0
mov rbp, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140020e29
xor r12d, r12d
xor r15d, r15d
mov qword [rsp + 0x80], r15
xor r14d, r14d
test r13, r13
jne 0x140020915
test rbx, rbx
je 0x140020c21
mov rbx, qword [rdi + 0x200]
lea rdx, [rsp + 0xa8]
mov rcx, rdi
call fcn.140016d90
nop
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xb8]
mov word [rsp + 0x50], ax
lea rcx, [rsp + 0xa8]
call qword [sym.imp.acdb24.dll_public_virtual:_void___cdecl_AcCmColor::destructor_void____ptr64]
xor ebp, ebp
mov qword [rsp + 0xd0], rbp
cmp dword [rdi + 0x5c], ebp
jne 0x140020972
lea rdx, [rsp + 0xd0]
mov rcx, qword [rdi + 0x200]
call qword [sym.imp.acdb24.dll_public:_class_AcDbObjectId___cdecl_AcDbDatabase::continuousLinetype_void____ptr64]
jmp 0x140020987
movsxd rdx, dword [rdi + 0x5c]
mov rax, qword [rdi + 0x50]
mov rdx, qword [rax + rdx*8 - 8]
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], rbp
lea rdx, [rsp + 0xd8]
mov rcx, rbx
call qword [sym.imp.acdb24.dll_public:_class_AcDbObjectId___cdecl_AcDbDatabase::byBlockLinetype_void____ptr64]
xor r15d, r15d
mov dword [rsp + 0x54], r15d
xor ecx, ecx
test esi, esi
je 0x1400209ce
mov r8, qword [rsp + 0x78]
mov eax, dword [r8 + rcx*4]
cdq
xor eax, edx
sub eax, edx
inc r15d
add ebp, eax
inc ecx
add ecx, eax
cmp ecx, esi
jb 0x1400209b3
mov dword [rsp + 0x54], r15d
test r13, r13
je 0x140020a43
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x68]
mov rsi, rax
mov r14, qword [rsp + 0x58]
lea rdi, [r14 + 0x10]
xor edx, edx
mov rcx, rdi
test rax, rax
jne 0x140020a84
call fcn.140022210
xor r12d, r12d
mov qword [rsp + 0x68], r12
mov rbx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xd8]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x80]
mov r15, rax
add r14, 0x58
xor edx, edx
mov rcx, r14
test rax, rax
jne 0x140020b0b
call fcn.14001f560
xor r14d, r14d
mov r15d, dword [rsp + 0x54]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x70]
test rbx, rbx
je 0x140020c0f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
mov rsi, rax
lea rdi, [rbp + 0x28]
xor edx, edx
mov rcx, rdi
test rax, rax
jne 0x140020b8a
call fcn.140022210
xor r15d, r15d
jmp 0x140020c17
call fcn.140022210
xor cl, cl
test ebp, ebp
jle 0x140020af8
xor ebx, ebx
mov r14d, ebp
movzx r15d, word [rsp + 0x50]
nop word [rax + rax]
movzx edx, word [rsi + rbx*2]
test dx, dx
jne 0x140020adf
test cl, cl
jne 0x140020ad5
mov edx, ebp
mov rcx, rdi
call fcn.140022210
xor edx, edx
test rbx, rbx
jle 0x140020ad3
nop
movzx ecx, word [rsi + rdx*2]
mov rax, qword [rdi]
mov word [rax + rdx*2], cx
inc rdx
cmp rdx, rbx
jl 0x140020ac0
mov cl, 1
mov rax, qword [rdi]
mov word [rax + rbx*2], r15w
jmp 0x140020aea
test cl, cl
je 0x140020aea
mov rax, qword [rdi]
mov word [rax + rbx*2], dx
inc rbx
sub r14, 1
jne 0x140020aa0
mov r14, qword [rsp + 0x58]
cmp dword [r14 + 0x1c], 0
je 0x1400209fc
mov r12, qword [rdi]
jmp 0x1400209ff
call fcn.14001f560
xor esi, esi
movsxd r12, ebp
test ebp, ebp
jle 0x140020b65
nop dword [rax]
cmp qword [r15 + rsi*8], rdi
jne 0x140020b5d
mov edx, ebp
mov rcx, r14
call fcn.14001f560
xor edx, edx
test rsi, rsi
je 0x140020b56
nop word [rax + rax]
mov rax, qword [r14]
lea rcx, [rax + rdx*8]
mov rax, qword [r15 + rdx*8]
mov qword [rcx], rax
inc rdx
cmp rdx, rsi
jl 0x140020b40
mov rax, qword [r14]
mov qword [rax + rsi*8], rbx
inc rsi
cmp rsi, r12
jl 0x140020b20
mov rbp, qword [rsp + 0x58]
mov r15d, dword [rsp + 0x54]
mov r12, qword [rsp + 0x68]
cmp dword [rbp + 0x64], 0
je 0x140020b82
mov r14, qword [r14]
jmp 0x140020a48
xor r14d, r14d
jmp 0x140020a48
call fcn.140022210
xor cl, cl
test r15d, r15d
jle 0x140020c00
xor ebx, ebx
mov ebp, r15d
movzx r13d, word [rsp + 0x50]
movzx edx, word [rsi + rbx*2]
test dx, dx
jne 0x140020bdf
test cl, cl
jne 0x140020bd5
mov edx, r15d
mov rcx, rdi
call fcn.140022210
xor eax, eax
test rbx, rbx
jle 0x140020bd3
movzx edx, word [rsi + rax*2]
mov rcx, qword [rdi]
mov word [rcx + rax*2], dx
inc rax
cmp rax, rbx
jl 0x140020bc0
mov cl, 1
mov rax, qword [rdi]
mov word [rax + rbx*2], r13w
jmp 0x140020bea
test cl, cl
je 0x140020bea
mov rax, qword [rdi]
mov word [rax + rbx*2], dx
inc rbx
sub rbp, 1
jne 0x140020ba1
mov r13, qword [rsp + 0x98]
mov rbp, qword [rsp + 0x58]
cmp dword [rbp + 0x34], 0
je 0x140020a7c
mov r15, qword [rdi]
jmp 0x140020c17
mov r15, qword [rsp + 0x80]
test r12, r12
jne 0x140020c29
test r14, r14
jne 0x140020c29
mov rdi, r13
jmp 0x140020cec
mov rdi, qword [rbp]
test rdi, rdi
jne 0x140020c58
lea ecx, [rdi + 0x10]
call fcn.140062488
mov qword [rsp + 0x80], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov rcx, rax
call qword [sym.imp.acdb24.dll_public:_void___cdecl_AcGiEdgeData::constructor_void____ptr64]
mov rdi, rax
mov qword [rbp], rax
mov rbx, qword [rdi]
test r12, r12
je 0x140020c65
mov rdx, r12
jmp 0x140020c72
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x68]
mov rdx, rax
mov rcx, rdi
call qword [rbx + 0x38]
mov rax, qword [rdi]
mov rbx, qword [rax + 0x48]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x78]
mov rdx, rax
mov rcx, rdi
call rbx
mov rbx, qword [rdi]
test r14, r14
je 0x140020c9e
mov rdx, r14
jmp 0x140020cae
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x80]
mov rdx, rax
mov rcx, rdi
call qword [rbx + 0x50]
mov rax, qword [rdi]
mov rbx, qword [rax + 0x60]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + SysAllocStringByteLen]
mov rdx, rax
mov rcx, rdi
call rbx
mov rax, qword [rdi]
mov rbx, qword [rax + 0x58]
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x88]
mov rdx, rax
mov rcx, rdi
call rbx
test r15, r15
jne 0x140020cfb
mov rsi, qword [rsp + 0x70]
jmp 0x140020da8
mov rsi, qword [rbp + 8]
test rsi, rsi
jne 0x140020d2a
lea ecx, [rsi + 0x10]
call fcn.140062488
mov qword [rsp + 0x80], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov rcx, rax
call qword [sym.imp.acdb24.dll_public:_void___cdecl_AcGiFaceData::constructor_void____ptr64]
mov rsi, rax
mov qword [rbp + 8], rax
mov r8, qword [rsi]
mov rdx, r15
mov rcx, rsi
call qword [r8 + 0x38]
mov rcx, qword [rsi]
mov rbx, qword [rcx + 0x48]
mov r14, qword [rsp + 0x70]
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + SysAllocStringByteLen]
mov rdx, rax
mov rcx, rsi
call rbx
mov rax, qword [rsi]
mov rbx, qword [rax + 0x58]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0xa0]
mov rdx, rax
mov rcx, rsi
call rbx
mov rax, qword [rsi]
mov rbx, qword [rax + 0x50]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x98]
mov rdx, rax
mov rcx, rsi
call rbx
mov rax, qword [rsi]
mov rbx, qword [rax + 0x60]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0xa8]
mov rdx, rax
mov rcx, rsi
call rbx
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax + 0x540]
test rcx, rcx
je 0x140020dc7
mov rax, qword [rcx]
call qword [rax + 0x80]
jmp 0x140020ddc
mov rcx, qword [rax + 0x548]
test rcx, rcx
je 0x140020e29
mov rax, qword [rcx]
call qword [rax + 0x88]
mov byte [rsp + 0x48], 1
mov qword [rsp + 0x40], 0
mov rcx, qword [rsp + 0x88]
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], rcx
mov r10, qword [rax]
mov r9d, dword [rsp + 0x60]
mov r8, qword [rsp + 0x90]
mov edx, dword [rsp + 0x64]
mov rcx, rax
call qword [r10 + 0xd8]
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.1400621d0
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret