Function at 0x1000396a4
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x60
xor r14d, r14d
mov rbx, r8
mov r12d, r14d
mov rdi, r14
mov rbp, r14
mov qword [rsp + 0x58], r14
mov r13d, r14d
call sym.spoolsv.exe_PrvWaitForSpoolerInitialization
lea rcx, [0x100080500]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp rbx, r14
je 0x1000398cf
cmp word [rbx], r14w
je 0x1000398cf
mov qword [rsp + 0x40], r14
lea rax, [rsp + 0x58]
lea rdx, str.SystemCurrentControlSetControlPrintProviders
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r14
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x3001f
mov dword [rsp + 0x20], r14d
call qword [sym.imp.API_MS_Win_Core_LocalRegistry_L1_1_0.dll_RegCreateKeyExW]
cmp eax, r14d
je 0x10003973d
mov ecx, eax
jmp 0x1000398d4
mov rcx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.1000393fc
mov rsi, rax
cmp rax, r14
je 0x1000398da
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0xa0]
lea rdx, str.Order
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], r14
mov dword [rsp + 0xa0], r14d
call qword [sym.imp.API_MS_Win_Core_LocalRegistry_L1_1_0.dll_RegQueryValueExW]
cmp eax, r14d
jne 0x100039736
mov ecx, dword [rsp + 0xa0]
cmp ecx, r14d
je 0x1000398da
call sym.spoolsv.exe_PrvDllAllocSplMem
mov rdi, rax
cmp rax, r14
je 0x1000398da
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0xa0]
lea rdx, str.Order
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.API_MS_Win_Core_LocalRegistry_L1_1_0.dll_RegQueryValueExW]
cmp eax, r14d
jne 0x100039736
mov edx, dword [rsp + 0xa0]
lea r9, [rsp + 0xa8]
mov r8, rbx
mov rcx, rdi
call fcn.1000352f0
mov rbp, rax
cmp rax, r14
je 0x1000398da
mov eax, dword [rsp + 0xa8]
mov rcx, qword [rsp + 0x58]
lea rdx, str.Order
mov dword [rsp + 0x28], eax
mov r9d, 7
xor r8d, r8d
mov qword [rsp + 0x20], rbp
call qword [sym.imp.API_MS_Win_Core_LocalRegistry_L1_1_0.dll_RegSetValueExW]
cmp eax, r14d
jne 0x100039736
lea rcx, str.LanMan_Print_Services
mov rdx, rbx
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, r14d
jne 0x100039874
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x50]
lea r8, str.AddPrinterDrivers
lea rdx, str.LanMan_Print_ServicesServers
call fcn.100034fac
cmp eax, r14d
sete r13b
mov rcx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.100034b34
cmp r13d, r14d
je 0x1000398a3
mov r9d, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
lea r8, str.AddPrinterDrivers
lea rdx, str.LanMan_Print_ServicesServers
call fcn.100035088
mov rcx, qword [0x1000802f0]
cmp qword [rcx], r14
je 0x1000398c7
mov rax, qword [rcx]
cmp rax, rsi
je 0x1000398c1
mov rcx, rax
cmp qword [rax], r14
jne 0x1000398af
jmp 0x1000398c7
mov rax, qword [rsi]
mov qword [rcx], rax
mov r12d, 1
jmp 0x1000398f0
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r14d
jne 0x1000398f0
mov ecx, 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
cmp rdi, r14
je 0x1000398fd
mov rcx, rdi
call sym.spoolsv.exe_PrvDllFreeSplMem
cmp rbp, r14
je 0x10003990a
mov rcx, rbp
call sym.spoolsv.exe_PrvDllFreeSplMem
mov rcx, qword [rsp + 0x58]
cmp rcx, r14
je 0x10003991a
call qword [sym.imp.API_MS_Win_Core_LocalRegistry_L1_1_0.dll_RegCloseKey]
lea rcx, [0x100080500]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea r11, [rsp + 0x60]
mov eax, r12d
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret