Function at 0x140037e30
Capabilities:
Get common file path
Set current directory

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xac0
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rsp + 0xab0], rax
mov rdi, rcx
mov qword [rsp + 0x68], rcx
mov r8, rdx
mov edx, 0xbdf
call fcn.1401166d0
nop
lea rax, vtable.CBaseDlgPrinterSelectDirect.0
mov qword [rdi], rax
lea rcx, [rdi + 0x118]
call fcn.14010fa00
lea rsi, vtable.CListCtrl.0
mov qword [rdi + 0x118], rsi
lea rcx, [rdi + 0x1f0]
call fcn.14010fa00
mov qword [rdi + 0x1f0], rsi
lea rcx, [rdi + 0x2c8]
call fcn.14010fa00
mov qword [rdi + 0x2c8], rsi
lea rcx, [rdi + 0x3a8]
call fcn.14010fa00
lea r11, vtable.CTabCtrl.0
mov qword [rdi + 0x3a8], r11
lea rcx, [rdi + 0x488]
call fcn.140029c60
lea rsi, vtable.CPDLCustomStatic.0
mov qword [rdi + 0x488], rsi
lea rcx, [rdi + 0x570]
call fcn.140029c60
mov qword [rdi + 0x570], rsi
lea rcx, [rdi + 0x658]
call fcn.14010fa00
lea rsi, vtable.CButton.0
mov qword [rdi + 0x658], rsi
lea rcx, [rdi + 0x730]
call fcn.14010fa00
mov qword [rdi + 0x730], rsi
lea rcx, [rdi + 0x808]
call fcn.14010fa00
mov qword [rdi + 0x808], rsi
lea rcx, [rdi + 0x8e0]
call fcn.14010fa00
mov qword [rdi + 0x8e0], rsi
lea rcx, [rdi + 0x9b8]
call fcn.14010fa00
xor r14d, r14d
mov qword [rdi + 0xa90], r14
mov qword [rdi + 0xaa4], r14
mov qword [rdi + 0xa98], r14
mov dword [rdi + 0xaa0], r14d
lea rax, vtable.CPDLCustomPicture.0
mov qword [rdi + 0x9b8], rax
lea rcx, [rdi + 0xab0]
call fcn.14010fa00
lea r11, vtable.CStatic.0
mov qword [rdi + 0xab0], r11
mov qword [rdi + 0xb98], r14
mov qword [rdi + 0xba0], r14
mov qword [rdi + 0xba8], r14
mov qword [rdi + 0xbb8], r14
mov qword [rdi + 0xbc0], r14
mov qword [rdi + 0xbc8], r14
mov qword [rdi + 0xbd8], r14
mov qword [rdi + 0xbe0], r14
mov qword [rdi + 0xbe8], r14
xor ebx, ebx
mov qword [rdi + 0xbf8], rbx
mov qword [rdi + 0xc00], rbx
mov qword [rdi + 0xc08], rbx
lea rcx, [rdi + 0xe30]
call fcn.14010fa00
mov qword [rdi + 0xe30], rsi
lea rax, vtable.UtilityDeviceDiscovery.0
mov qword [rdi + 0xf20], rax
xor esi, esi
mov qword [rdi + 0xf58], rsi
mov qword [rdi + 0xf60], rsi
mov qword [rdi + 0xf68], rsi
mov qword [rdi + 0xf28], rsi
mov qword [rdi + 0xf30], rsi
mov qword [rdi + 0xf38], rsi
mov qword [rdi + 0xf40], rsi
mov qword [rdi + 0xf48], rsi
mov qword [rdi + 0xf50], rsi
xor r8d, r8d
lea rdx, [0x1402e90a0]
lea rcx, [rsp + 0x58]
call fcn.1400075a0
nop
mov r9d, 0xbdf
lea r8, str.dwIDD___d
lea edx, [rbx + 1]
lea rcx, [rsp + 0x58]
call fcn.140007780
call fcn.14010b1bc
call fcn.14010b1bc
mov edx, 0xfa0
mov rcx, qword [rax + 0x18]
call qword [sym.imp.USER32.dll_LoadIconW]
mov qword [rdi + 0x480], rax
mov word [rsp + 0x2b0], si
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rsp + 0x2b2]
call fcn.14024b970
mov word [rsp + 0xa0], si
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0xa2]
call fcn.14024b970
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov r9, qword [rax]
lea r8, [rsp + 0x2b0]
lea rdx, str.TEMPPATH
mov rcx, rax
call qword [r9 + 0x18]
xor edx, edx
mov r8d, 0x208
lea rcx, [rdi + 0xc20]
call fcn.14024b970
lea rdx, [rdi + 0xc20]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea r9, [0x1402dda38]
lea r8, [rsp + 0x2b0]
lea rdx, str._s_s_
lea rcx, [rsp + 0xa0]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov qword [rdi + 0xc18], rsi
lea rcx, str.CDDI_SDK.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rdi + 0xc18], rax
call fcn.140102a14
mov r11, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x1400381ac
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
lea rdx, str.DeviceDiscovery.dll
test rdx, 0xffffffffffff0000
jne 0x1400381f4
movzx esi, dx
mov ecx, esi
call fcn.1401027e8
test rax, rax
je 0x14003820b
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140005b00
mov rbx, qword [rsp + 0x40]
jmp 0x14003820b
mov r8d, reloc.WSOCK32.dll_send
lea rcx, [rsp + 0x40]
call fcn.140005d50
mov rbx, qword [rsp + 0x40]
jmp 0x14003820d
xor esi, esi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rdi + 0xf28], rax
test rax, rax
je 0x140038274
lea rdx, str.StartDiscovery
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rdi + 0xf30], rax
lea rdx, str.TerminateDiscovery
mov rcx, qword [rdi + 0xf28]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rdi + 0xf38], rax
lea rdx, str.SendWakeUpPackageToDevices
mov rcx, qword [rdi + 0xf28]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rdi + 0xf40], rax
mov esi, 1
lea rdx, [rbx - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003828f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp qword [rdi + 0xc18], 0
je 0x1400382de
test esi, esi
je 0x1400382de
mov qword [0x1403b95c0], rdi
mov ecx, 0x200
call fcn.1401026a0
mov rbx, rax
mov qword [rsp + 0x50], rax
test rax, rax
je 0x1400382d1
xor edx, edx
mov rcx, rax
call fcn.140048590
lea rax, vtable.CPDLDlgWait.0
mov qword [rbx], rax
jmp 0x1400382d3
xor ebx, ebx
mov qword [rdi + 0xe28], rbx
xor ebx, ebx
jmp 0x14003833c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0x1300
mov r9d, 0x400
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
mov r8, qword [rsp + 0x48]
lea edx, [rbx + 7]
lea rcx, [rsp + 0x58]
call fcn.140007780
xor r8d, r8d
lea edx, [rbx + 0x40]
mov rcx, qword [rsp + 0x48]
call fcn.1401090f8
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_LocalFree]
lea rcx, [rdi + 0xb98]
call fcn.140035f10
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x108]
mov dword [rdi + 0xf0c], eax
call fcn.140024200
cmp eax, 2
jne 0x140038377
mov dword [rdi + 0xf0c], ebx
mov qword [rdi + 0xf10], rbx
mov qword [rdi + 0xf18], rbx
mov qword [rdi + 0xb90], rbx
mov qword [rdi + 0x3a0], rbx
lea rcx, [rdi + 0xbb8]
call fcn.140035f10
lea rcx, [rdi + 0xbd8]
call fcn.140035f10
lea rcx, [rdi + 0xbf8]
call fcn.140035f10
lea r8, str.______tCBaseDirectPrintersSilent::CBaseDlgPrinterSelectDirect__.
mov edx, 2
lea rcx, [rsp + 0x58]
call fcn.140007780
nop
lea rcx, [rsp + 0x58]
call fcn.140007730
nop
mov rax, rdi
mov rcx, qword [rsp + 0xab0]
xor rcx, rsp
call fcn.140245660
lea r11, [rsp + 0xac0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret