Function at 0x140036ab0
Capabilities:
Get file version info
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x106b0]
mov eax, 0x107b0
call fcn.14004a280
sub rsp, rax
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x10800], rbx
movaps xmmword [rsp + 0x107a0], xmm6
mov rax, qword [0x14007e020]
xor rax, rsp
mov qword [rbp + 0x10690], rax
mov r13, rdx
mov r12, rcx
call fcn.1400252c0
mov rcx, r13
call fcn.1400252c0
lea r15, vtable.AcRegistryAccess.0
mov qword [rsp + 0x58], r15
xor r14d, r14d
mov qword [rsp + 0x60], r14
lea r8, str.SoftwareAutodeskHardcopy
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x58]
call qword [0x14005cbe0]
nop
cmp qword [rsp + 0x60], r14
jne 0x140036b4a
xor al, al
jmp 0x140037040
mov esi, r14d
lea rcx, [rbp + 0x100]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_void____ptr64]
nop
movsd xmm6, qword [0x14005faf8]
mov dword [rsp + 0x54], 0x400
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x54]
lea r8, [rbp + 0x490]
mov edx, esi
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
sete bl
lea rcx, [rbp + 0x100]
test bl, bl
lea rdx, [rbp + 0x490]
jne 0x140036bb6
lea rdx, [0x140053c78]
call qword [sym.imp.acdb19.dll_public:_class_AdXREFString_const____ptr64___cdecl_AdXREFString::operator_wchar_t_const____ptr64____ptr64]
inc esi
test bl, bl
je 0x14003701b
lea rdx, str.Software_
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea rdx, [rbp + 0x100]
lea rcx, [rbp - 0x80]
mov rax, qword [rbp - 0x80]
call qword [rax + 0xf0]
lea rdx, [0x14005ca64]
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
or r8, 0xffffffffffffffff
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_int___cdecl_AdXREFString::ReverseFind_class_AdXREFString_const____ptr64__unsigned_long_long_unsigned___int64__const___ptr64]
mov edi, eax
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rdx, [0x140053ca8]
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
or r8, 0xffffffffffffffff
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_int___cdecl_AdXREFString::ReverseFind_class_AdXREFString_const____ptr64__unsigned_long_long_unsigned___int64__const___ptr64]
mov ebx, eax
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
sub edi, ebx
dec edi
movsxd r9, edi
lea r8d, [rbx + 1]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_class_AdXREFString___cdecl_AdXREFString::Mid_int__unsigned_long_long_unsigned___int64_____ptr64]
nop
lea rdx, str..EXE
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x40]
mov rax, qword [rbp + 0x40]
call qword [rax + 0xf0]
nop
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rdx, str.ACADLT.EXE
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x40]
call qword [sym.imp.acdb19.dll_public_virtual:_int___cdecl_AdXREFString::CollateNoCase_class_AdXREFString_const____ptr64_const___ptr64]
test eax, eax
sete bl
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
test bl, bl
je 0x140036d07
lea rcx, [rbp + 0x40]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
jmp 0x140036b63
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public:_wchar_t_const____ptr64___cdecl_AdXREFString::operator_wchar_t_const____ptr64_void_const___ptr64]
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r14
mov r8, rax
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x40]
call qword [0x14005cbe0]
nop
cmp qword [rsp + 0x48], 0
jne 0x140036d58
mov qword [rsp + 0x40], r15
lea rcx, [rbp + 0x40]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
jmp 0x140036b63
lea rcx, [rbp + 0x160]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_void____ptr64]
nop
lea rdx, str.AcadLocation
lea rcx, [rbp + 0x220]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea r8, [rbp + 0x220]
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x40]
call fcn.140036330
nop
lea rcx, [rbp + 0x220]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rcx, [rbp - 0x20]
call qword [sym.imp.acdb19.dll_public_virtual:_bool___cdecl_AdXREFString::IsEmpty_void_const___ptr64]
test al, al
je 0x140036e03
lea rdx, str.Location
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea r8, [rbp + 0xa0]
lea rdx, [rbp + 0x1c0]
lea rcx, [rsp + 0x40]
call fcn.140036330
nop
mov rdx, rax
lea rcx, [rbp - 0x20]
call qword [sym.imp.acdb19.dll_public:_class_AdXREFString_const____ptr64___cdecl_AdXREFString::operator_class_AdXREFString_const____ptr64____ptr64]
nop
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rcx, [rbp - 0x20]
call qword [sym.imp.acdb19.dll_public_virtual:_bool___cdecl_AdXREFString::IsEmpty_void_const___ptr64]
test al, al
jne 0x140036fce
lea rdx, [0x140053ca8]
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x20]
mov rax, qword [rbp - 0x20]
call qword [rax + 0xf0]
nop
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x20]
mov rax, qword [rbp - 0x20]
call qword [rax + 0xf0]
lea rcx, [rbp - 0x20]
call qword [sym.imp.acdb19.dll_public:_wchar_t_const____ptr64___cdecl_AdXREFString::operator_wchar_t_const____ptr64_void_const___ptr64]
lea rdx, [rbp + 0x280]
sub rdx, rax
nop word [rax + rax]
movzx ecx, word [rax]
mov word [rdx + rax], cx
add rax, 2
test cx, cx
jne 0x140036e80
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x280]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x280]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
test eax, eax
je 0x140036f27
lea r9, [rbp + 0xc90]
xor edx, edx
mov r8d, 0xfa00
lea rcx, [rbp + 0x280]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x140036f27
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x68]
lea rdx, [0x140053ca8]
lea rcx, [rbp + 0xc90]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140036f27
mov rax, qword [rsp + 0x68]
mov r8d, dword [rax + 0x10]
movzx ecx, word [rax + 0x16]
movzx r9d, r8w
shr r8d, 0x10
mov dword [rsp + 0x20], ecx
lea rdx, str._d._d_d
lea rcx, [rbp + 0x160]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::Format_wchar_t_const____ptr64____ptr64]
lea rcx, [rbp + 0x160]
call qword [sym.imp.acdb19.dll_public_virtual:_bool___cdecl_AdXREFString::IsEmpty_void_const___ptr64]
test al, al
jne 0x140036fce
lea rcx, [rbp + 0x160]
call qword [sym.imp.acdb19.dll_public:_wchar_t_const____ptr64___cdecl_AdXREFString::operator_wchar_t_const____ptr64_void_const___ptr64]
mov rcx, rax
call qword [sym.imp.MSVCR100.dll__wtof]
comisd xmm0, xmm6
jb 0x140036fce
lea rdx, [0x140053f50]
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.acdb19.dll_public:_void___cdecl_AdXREFString::constructor_wchar_t_const____ptr64____ptr64]
nop
lea r8, [rbp + 0x1c0]
lea rdx, [rbp + 0xa0]
lea rcx, [rsp + 0x40]
call fcn.140036330
nop
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_bool___cdecl_AdXREFString::IsEmpty_void_const___ptr64]
test al, al
jne 0x140036fc0
lea rdx, [rbp - 0x80]
mov rcx, r12
call fcn.1400164a0
lea rdx, [rbp + 0xa0]
mov rcx, r13
call fcn.1400164a0
nop
lea rcx, [rbp + 0xa0]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x20]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp + 0x160]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
mov qword [rsp + 0x40], r15
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140037001
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x48], r14
lea rcx, [rbp + 0x40]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x80]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
jmp 0x140036b63
lea rcx, [rbp + 0x100]
call qword [sym.imp.acdb19.dll_public_virtual:_void___cdecl_AdXREFString::destructor_void____ptr64]
nop
mov qword [rsp + 0x58], r15
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14003703e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
mov rcx, qword [rbp + 0x10690]
xor rcx, rsp
call fcn.140049a80
mov rbx, qword [rsp + 0x10800]
movaps xmm6, xmmword [rsp + 0x107a0]
add rsp, 0x107b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret