Function at 0x100039604
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, [0x10007f500]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp rbx, r14
je 0x10003982f
cmp word [rbx], r14w
je 0x10003982f
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 0x10003969d
mov ecx, eax
jmp 0x100039834
mov rcx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.10003935c
mov rsi, rax
cmp rax, r14
je 0x10003983a
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 0x100039696
mov ecx, dword [rsp + 0xa0]
cmp ecx, r14d
je 0x10003983a
call sym.spoolsv.exe_PrvDllAllocSplMem
mov rdi, rax
cmp rax, r14
je 0x10003983a
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 0x100039696
mov edx, dword [rsp + 0xa0]
lea r9, [rsp + 0xa8]
mov r8, rbx
mov rcx, rdi
call fcn.100035250
mov rbp, rax
cmp rax, r14
je 0x10003983a
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 0x100039696
lea rcx, str.LanMan_Print_Services
mov rdx, rbx
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, r14d
jne 0x1000397d4
mov rcx, qword [rsp + 0x58]
lea r9, [rsp + 0x50]
lea r8, str.AddPrinterDrivers
lea rdx, str.LanMan_Print_ServicesServers
call fcn.100034f0c
cmp eax, r14d
sete r13b
mov rcx, qword [rsp + 0x58]
mov rdx, rbx
call fcn.100034a94
cmp r13d, r14d
je 0x100039803
mov r9d, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
lea r8, str.AddPrinterDrivers
lea rdx, str.LanMan_Print_ServicesServers
call fcn.100034fe8
mov rcx, qword [0x10007f2f0]
cmp qword [rcx], r14
je 0x100039827
mov rax, qword [rcx]
cmp rax, rsi
je 0x100039821
mov rcx, rax
cmp qword [rax], r14
jne 0x10003980f
jmp 0x100039827
mov rax, qword [rsi]
mov qword [rcx], rax
mov r12d, 1
jmp 0x100039850
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r14d
jne 0x100039850
mov ecx, 8
call qword [sym.imp.KERNEL32.dll_SetLastError]
cmp rdi, r14
je 0x10003985d
mov rcx, rdi
call sym.spoolsv.exe_PrvDllFreeSplMem
cmp rbp, r14
je 0x10003986a
mov rcx, rbp
call sym.spoolsv.exe_PrvDllFreeSplMem
mov rcx, qword [rsp + 0x58]
cmp rcx, r14
je 0x10003987a
call qword [sym.imp.API_MS_Win_Core_LocalRegistry_L1_1_0.dll_RegCloseKey]
lea rcx, [0x10007f500]
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