Function at 0x140007a20
Capabilities:
Check os version
Query or enumerate registry value
Set registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0x1a18]
mov eax, 0x1b18
call fcn.1400204c0
sub rsp, rax
mov rax, qword [0x1400410e0]
xor rax, rsp
mov qword [rbp + 0x19f0], rax
mov rbx, r8
mov rdi, rcx
lea rdx, [rbp + 0xfe0]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rbp + 0xfe0]
mov edx, 0x5c
call fcn.14001ac94
xor esi, esi
test rax, rax
je 0x140007a81
mov word [rax], si
lea rdx, [rbp + 0xfe0]
mov ecx, 0x30
call qword [sym.imp.SETUPAPI.dll_SetupAddToSourceListW]
lea r8, [rsp + 0x70]
lea rdx, str.SoftwareHewlett_PackardHP_Print_Settings
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x70], rsi
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x140007af5
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x40]
lea rdx, str.MystDeviceVerify
mov r9d, 4
xor r8d, r8d
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], 0x200
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, str.Install.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x140044d00], rax
test rax, rax
je 0x140008d51
mov qword [rsp + 0x1b48], r12
test rbx, rbx
je 0x140007b98
lea rdx, [0x140037250]
mov rcx, rbx
call fcn.14001aa8c
test rax, rax
je 0x140007b98
movzx ecx, word [0x140045094]
mov r12d, esi
and ecx, 0x3ff
dec ecx
je 0x140007b4c
cmp ecx, 0xc
jne 0x140007b52
mov r12d, 1
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, qword [0x140044d00]
mov edx, 0x66
mov r8, rax
mov eax, 0x25a
test r12d, r12d
lea r9, [0x140008e30]
cmovne edx, eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.USER32.dll_DialogBoxParamW]
mov rcx, qword [0x140044d00]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x140008d49
lea rcx, str.RICHED20.DLL
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x1b10], r13
mov qword [rsp + 0x1b08], r14
call qword [sym.imp.KERNEL32.dll_LoadLibraryExW]
lea rcx, [rbp + 0x2d2]
xor edx, edx
mov r8d, 0x206
mov r13, rax
mov qword [rsp + 0x60], rax
mov qword [0x140044cf8], rdi
mov word [rbp + 0x2d0], si
call fcn.14001c640
lea rcx, [rbp + 0x11f2]
xor edx, edx
mov r8d, 0x7fe
mov word [rbp + 0x11f0], si
call fcn.14001c640
lea rcx, [rbp + 0xd2]
xor edx, edx
mov r8d, 0x1fe
mov word [rbp + 0xd0], si
call fcn.14001c640
lea rcx, [rbp + 0xbe2]
xor edx, edx
mov r8d, 0x1fe
mov word [rbp + 0xbe0], si
call fcn.14001c640
lea rdx, [rbp + 0x11f0]
mov r8d, 0x400
mov rcx, rdi
mov qword [rbp - 0x68], 7
mov qword [rbp - 0x70], rsi
mov word [rbp - 0x80], si
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rbp + 0x11f0]
lea rdx, [rbp + 0x11f0]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp - 0x80]
call fcn.14000b2e0
lea rcx, [rbp + 0xde2]
xor edx, edx
mov r8d, 0x1fe
mov word [rbp + 0xde0], si
call fcn.14001c640
lea rcx, [rbp + 0x5e2]
xor edx, edx
mov r8d, 0x1fe
mov word [rbp + 0x5e0], si
call fcn.14001c640
lea rcx, [rbp - 0x2e]
xor edx, edx
mov r8d, 0xfe
mov word [rbp - 0x30], si
call fcn.14001c640
lea rcx, [rbp + 0x4e2]
xor edx, edx
mov r8d, 0xfe
mov word [rbp + 0x4e0], si
call fcn.14001c640
lea rcx, [rbp + 0x9e2]
xor edx, edx
mov r8d, 0x1fe
mov word [rbp + 0x9e0], si
call fcn.14001c640
movzx ecx, word [0x140045094]
mov r12d, 1
lea r8, [rbp + 0x4e0]
mov edx, r12d
call fcn.1400040e0
movzx ecx, word [0x140045094]
lea r8, [rbp - 0x30]
lea edx, [r12 + 3]
call fcn.1400040e0
xor edx, edx
lea r8d, [r12 + 0x6f]
lea r14, [0x1400453e0]
mov rcx, r14
call fcn.14001c640
lea rax, [rbp + 0x4e0]
or r9d, 0xffffffff
mov qword [0x1400453e0], rax
lea rax, [rbp - 0x30]
mov r8, rbx
mov qword [0x1400453f0], rax
lea rax, [rbp + 0xde0]
mov edx, r12d
mov qword [0x1400453e8], rax
lea rax, [rbp + 0x11f0]
xor ecx, ecx
mov qword [0x140045410], rax
lea rax, [rbp + 0x9e0]
mov dword [rsp + 0x28], esi
mov qword [0x140045418], rsi
mov qword [0x140045428], rsi
mov dword [0x140045430], 0xffff
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
or r9d, 0xffffffff
lea eax, [rax + rax + 2]
mov r8, rbx
mov edx, r12d
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0x9e0]
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rax, [rbp + 0x9e0]
lea rdx, [rbp + 0x9e0]
mov qword [0x140045400], rdx
test rax, rax
je 0x140007f97
mov rax, qword [0x140044d08]
mov dword [rsp + 0x40], esi
test rax, rax
jne 0x140007e1e
call fcn.1400185b0
mov qword [0x140044d08], rax
test rax, rax
je 0x140007e63
mov r8, qword [rbp + 0x1a38]
xor edx, edx
lea r9, [rsp + 0x40]
lea ecx, [rdx + 0x28]
call rax
mov rdi, rax
test rax, rax
je 0x140007e63
mov rdx, qword [0x140045400]
lea rax, vtable.CInstallCmdConfig.0
mov rcx, rdi
mov qword [rdi + 8], rsi
mov qword [rdi + 0x10], rsi
mov dword [rdi + 0x18], esi
mov qword [rdi], rax
mov qword [rdi + 0x1c], r12
call fcn.14000cee0
jmp 0x140007e66
mov rdi, rsi
mov qword [0x140045448], rdi
cmp dword [rdi + 0x1c], r12d
jne 0x140007f97
cmp dword [rdi + 0x20], 4
jne 0x140007f97
lea rcx, [rbp + 0x7e0]
mov edi, r12d
mov dword [rbp + 0x7e0], 0x114
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x140007ea9
cmp dword [rbp + 0x7e4], 6
cmovae edi, esi
mov rax, qword [0x140045448]
cmp dword [rax + 8], r12d
jne 0x140007f3f
cmp dword [rax + 0xc], r12d
jne 0x140007f3f
test edi, edi
jne 0x140007f3f
cmp dword [rax + 0x14], r12d
jne 0x140007edc
call fcn.140006830
test eax, eax
mov rax, qword [0x140045448]
cmove esi, r12d
cmp dword [rax + 0x10], r12d
jne 0x140007ef0
mov rcx, r14
call fcn.1400068f0
test eax, eax
cmove esi, r12d
mov rcx, qword [0x140044d00]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp qword [rbp - 0x68], 8
jb 0x140007f38
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140007f38
mov rax, qword [0x140044d10]
test rax, rax
jne 0x140007f2f
call fcn.140018630
mov qword [0x140044d10], rax
test rax, rax
je 0x140007f38
lea rcx, [rsp + 0x48]
xor edx, edx
call rax
mov eax, esi
jmp 0x140008d39
movzx ecx, word [0x140045094]
mov edi, esi
and ecx, 0x3ff
dec ecx
je 0x140007f57
cmp ecx, 0xc
jne 0x140007f5a
mov edi, r12d
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, qword [0x140044d00]
test edi, edi
mov r8, rax
mov eax, 0x25a
mov edx, 0x66
lea r9, [0x140008e30]
cmovne edx, eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.USER32.dll_DialogBoxParamW]
mov rcx, qword [0x140044d00]
jmp 0x140008cf6
lea rcx, str.PRINTUI.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140008ce6
lea rdx, str.PrintUIEntryW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140008cdb
mov rcx, qword [0x140045400]
test rcx, rcx
je 0x14000804c
lea rdx, [0x140037184]
call fcn.14001acc0
test rax, rax
je 0x14000804c
mov rax, qword [0x140045448]
cmp dword [rax + 0x20], r12d
je 0x140008046
movzx ecx, word [0x140045094]
mov edi, esi
and ecx, 0x3ff
dec ecx
je 0x14000800d
cmp ecx, 0xc
jne 0x140008010
mov edi, r12d
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, qword [0x140044d00]
test edi, edi
mov r8, rax
mov eax, 0x25a
mov edx, 0x66
lea r9, [0x140008e30]
cmovne edx, eax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.USER32.dll_DialogBoxParamW]
jmp 0x140008cdb
movzx r8d, r12b
jmp 0x14000804f
xor r8d, r8d
lea rdx, [rbp + 0x2d0]
lea rcx, [rbp + 0x11f0]
call fcn.1400076b0
test al, al
je 0x140008cdb
lea r8, [rbp + 0x2d0]
lea rcx, [rbp + 0xd0]
mov edx, 0x100
mov qword [rsp + 0x1b00], r15
call fcn.14001adac
mov rcx, qword [0x140045400]
lea rdx, [rbp + 0x2d0]
call fcn.140007240
mov r14d, esi
mov rbx, rax
mov qword [0x140045400], rax
lea rax, [rbp + 0x2d0]
mov qword [0x1400453f8], rax
lea rax, [rbp + 0x2d0]
mov qword [0x140045408], rax
test rbx, rbx
je 0x1400084e0
nop
lea rdx, [0x1400372a0]
mov rcx, rbx
call fcn.14001acc0
mov rbx, rax
test rax, rax
je 0x1400084e0
lea rdx, str._npf
mov r8d, 4
mov rcx, rax
call fcn.14001ad24
test eax, eax
je 0x14000814f
lea rdx, [0x140037100]
mov r8d, 3
mov rcx, rbx
call fcn.14001ad24
test eax, eax
je 0x14000814f
lea rdx, [0x1400372a8]
mov r8d, 3
mov rcx, rbx
call fcn.14001ad24
test eax, eax
je 0x14000814f
lea rdx, str._nhpes
mov r8d, 6
mov rcx, rbx
call fcn.14001ad24
test eax, eax
jne 0x140008158
add rbx, 2
jmp 0x1400080d0
mov eax, dword [0x14004d5f0]
test r12b, al
jne 0x1400081bd
mov rdx, qword [0x140045400]
or rcx, 0xffffffffffffffff
or eax, r12d
mov dword [0x14004d5f0], eax
mov rdi, rdx
xor eax, eax
mov qword [0x14004d5e0], 7
mov qword [0x14004d5d8], rsi
mov word [0x14004d5c8], si
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [0x14004d5c8]
call fcn.14000b2e0
lea rcx, [0x14002e010]
call fcn.14001ac7c
mov eax, dword [0x14004d5f0]
lea r13, [0x14004d5a0]
test al, 2
jne 0x140008216
or rcx, 0xffffffffffffffff
or eax, 2
mov qword [0x14004d5b8], 7
mov dword [0x14004d5f0], eax
xor eax, eax
mov qword [0x14004d5b0], rsi
mov word [0x14004d5a0], si
lea rdi, [rbx + 4]
lea rdx, [rbx + 4]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, r13
call fcn.14000b2e0
lea rcx, [0x14002dfa0]
call fcn.14001ac7c
mov r14, qword [0x14004d5b0]
mov r15, qword [0x14004d5a0]
mov r8, qword [0x14004d5b8]
test r14, r14
je 0x14000830b
cmp r8, 8
mov rax, r13
mov rdx, r13
cmovae rax, r15
cmovae rdx, r15
lea r9, [rax + r14*2]
cmp rdx, r9
jae 0x1400082b5
nop
movzx edi, word [rdx]
mov ecx, 2
lea rax, [0x14003718c]
nop
cmp word [rax], di
je 0x140008279
add rax, 2
dec rcx
jne 0x140008260
add rdx, 2
cmp rdx, r9
jb 0x140008250
jmp 0x1400082b5
cmp r8, 8
mov rax, r13
cmovae rax, r15
sub rdx, rax
sar rdx, 1
cmp rdx, 0xffffffffffffffff
je 0x1400082b5
cmp rdx, r14
jae 0x1400082b5
mov r8, r14
mov rcx, r13
call fcn.14000ac80
mov r14, qword [0x14004d5b0]
mov r15, qword [0x14004d5a0]
mov r8, qword [0x14004d5b8]
test r14, r14
je 0x14000830b
cmp r8, 8
mov rax, r13
mov rdi, r13
cmovae rax, r15
cmovae rdi, r15
lea r9, [rax + r14*2]
cmp rdi, r9
jae 0x14000830b
nop word [rax + rax]
movzx edx, word [rdi]
mov rcx, r12
lea rax, [0x1400372c0]
nop dword [rax]
cmp word [rax], dx
je 0x140008383
add rax, 2
dec rcx
jne 0x1400082f0
add rdi, 2
cmp rdi, r9
jb 0x1400082e0
or rdi, 0xffffffffffffffff
cmp rdi, 0xffffffffffffffff
jne 0x14000836b
test r14, r14
je 0x140008367
cmp r8, 8
mov rax, r13
mov rdi, r13
cmovae rax, r15
cmovae rdi, r15
lea r9, [rax + r14*2]
cmp rdi, r9
jae 0x140008367
nop word [rax + rax]
movzx edx, word [rdi]
mov rcx, r12
lea rax, [0x1400372c4]
nop dword [rax]
cmp word [rax], dx
je 0x140008399
add rax, 2
dec rcx
jne 0x140008350
add rdi, 2
cmp rdi, r9
jb 0x140008340
or rdi, 0xffffffffffffffff
inc rdi
test r14, r14
je 0x14000840b
cmp r14, 0xffffffffffffffff
jbe 0x1400083ac
or rcx, 0xffffffffffffffff
jmp 0x1400083b0
cmp r8, 8
mov rax, r13
cmovae rax, r15
sub rdi, rax
sar rdi, 1
jmp 0x14000830f
cmp r8, 8
mov rax, r13
cmovae rax, r15
sub rdi, rax
sar rdi, 1
jmp 0x14000836b
lea rcx, [r14 - 1]
mov rax, r13
cmp r8, 8
cmovae rax, r15
lea rbx, [rax + rcx*2]
nop
movzx edx, word [rbx]
mov rcx, r12
lea rax, [0x1400372c0]
nop dword [rax]
cmp word [rax], dx
je 0x1400083f1
add rax, 2
dec rcx
jne 0x1400083d0
mov rcx, r13
call fcn.14000b170
cmp rbx, rax
je 0x14000840b
sub rbx, 2
jmp 0x1400083c0
mov r8, qword [0x14004d5b8]
mov rax, r13
cmp r8, 8
cmovae rax, r15
sub rbx, rax
sar rbx, 1
jmp 0x140008416
mov r8, qword [0x14004d5b8]
or rbx, 0xffffffffffffffff
cmp rbx, 0xffffffffffffffff
jne 0x14000848f
test r14, r14
je 0x14000848b
cmp r14, rbx
jbe 0x14000842b
or rcx, rbx
jmp 0x14000842f
lea rcx, [r14 - 1]
mov rax, r13
cmp r8, 8
cmovae rax, r15
lea rbx, [rax + rcx*2]
nop
movzx edx, word [rbx]
mov rcx, r12
lea rax, [0x1400372c4]
nop dword [rax]
cmp word [rax], dx
je 0x140008471
add rax, 2
dec rcx
jne 0x140008450
mov rcx, r13
call fcn.14000b170
cmp rbx, rax
je 0x14000848b
sub rbx, 2
jmp 0x140008440
mov rcx, qword [0x14004d5b8]
mov rax, r13
cmp rcx, 8
cmovae rax, r15
sub rbx, rax
sar rbx, 1
jmp 0x140008496
or rbx, 0xffffffffffffffff
mov rcx, qword [0x14004d5b8]
dec rbx
cmp rdi, 0xffffffffffffffff
je 0x1400084ce
cmp rbx, 0xffffffffffffffff
je 0x1400084ce
cmp rdi, r14
jae 0x1400084ce
cmp rbx, r14
jae 0x1400084ce
mov r9, rbx
mov r8, rdi
mov rdx, r13
mov rcx, r13
call fcn.14000ab50
mov r15, qword [0x14004d5a0]
mov rcx, qword [0x14004d5b8]
cmp rcx, 8
mov r14d, r12d
cmovae r13, r15
mov qword [0x1400453f8], r13
movzx ecx, word [0x140045094]
lea r8, [rbp + 0x5e0]
mov edx, 2
call fcn.1400040e0
lea r8, [rbp + 0xd0]
lea rdx, [rbp + 0x5e0]
lea rcx, [rbp + 0xde0]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [0x1400372e0]
lea rcx, [rbp - 0x58]
mov r8d, 3
mov edi, esi
mov qword [rbp - 0x40], 7
mov qword [rbp - 0x48], rsi
mov word [rbp - 0x58], si
call fcn.14000b2e0
mov rcx, qword [0x140045400]
test rcx, rcx
je 0x14000857c
cmp qword [rbp - 0x40], 8
lea rdx, [rbp - 0x58]
cmovae rdx, qword [rbp - 0x58]
call fcn.14001acc0
test rax, rax
je 0x14000857c
mov rcx, qword [rbp - 0x48]
movzx eax, word [rax + rcx*2]
cmp si, ax
je 0x140008576
mov ecx, 0x20
cmp cx, ax
jne 0x14000857c
mov edi, r12d
mov r14d, r12d
lea rax, [rsp + 0x50]
mov ecx, 2
xor r9d, r9d
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x54]
xor edx, edx
mov qword [rsp + 0x28], rax
mov r8d, ecx
mov dword [rsp + 0x54], esi
mov dword [rsp + 0x20], esi
mov dword [rsp + 0x50], esi
call qword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
mov edx, dword [rsp + 0x54]
mov ecx, 0x40
add edx, 0x400
mov dword [rsp + 0x54], edx
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r15, rax
test rax, rax
je 0x14000860f
mov ecx, dword [rsp + 0x54]
lea rax, [rsp + 0x50]
mov r9, r15
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x54]
xor edx, edx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov ecx, 2
mov r8d, ecx
call qword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
test eax, eax
jne 0x14000860f
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov r15, rsi
movsxd rbx, edi
mov qword [rsp + 0x58], rbx
test r15, r15
je 0x1400087b8
mov r13d, esi
movsxd r14, r14d
cmp dword [rsp + 0x50], esi
jbe 0x1400087b8
lea rbx, [r15 + 8]
nop word [rax + rax]
mov rax, qword [rbx + 0x18]
lea rdi, [rbp + 0x2d0]
sub rdi, rax
nop
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x140008663
add rax, 2
test ecx, ecx
jne 0x140008650
test edx, edx
jne 0x14000866c
test r14, r14
je 0x1400086a4
mov rax, qword [rbx]
lea rdi, [rbp + 0xd0]
sub rdi, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x140008693
add rax, 2
test ecx, ecx
jne 0x140008680
test edx, edx
jne 0x14000873d
cmp r14, r12
jne 0x14000873d
cmp qword [0x140045400], rsi
mov edi, r12d
je 0x1400086c2
mov rax, qword [0x140045448]
cmp dword [rax + 0x20], r12d
jne 0x1400086c2
test r14, r14
jne 0x140008724
mov rcx, qword [rbx]
lea rdx, [rsp + 0x48]
xor r8d, r8d
call qword [sym.imp.WINSPOOL.DRV_OpenPrinterW]
test eax, eax
je 0x140008724
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x78]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rdx, str.StaticMode
xor r8d, r8d
mov dword [rsp + 0x20], 4
mov dword [rsp + 0x40], esi
call qword [sym.imp.WINSPOOL.DRV_GetPrinterDataW]
test eax, eax
jne 0x140008719
cmp dword [rsp + 0x40], esi
je 0x140008719
cmp qword [rsp + 0x58], rsi
cmove edi, esi
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
lea rcx, str.HPPrtInit
mov rdx, r12
mov dword [0x140045428], edi
call fcn.140013d70
test edi, edi
jne 0x140008754
inc r13d
add rbx, 0x88
cmp r13d, dword [rsp + 0x50]
jb 0x140008640
jmp 0x1400087b3
movzx ecx, word [0x140045094]
lea r8, [rbp + 0x5e0]
mov edx, 6
call fcn.1400040e0
mov edi, r13d
lea rdx, [rbp + 0x5e0]
imul rdi, rdi, 0x88
mov r8, qword [rdi + r15 + 8]
lea rcx, [rbp + 0xbe0]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r11, [rbp + 0xbe0]
lea rcx, [rbp + 0xd0]
mov qword [0x1400453f0], r11
mov r8, qword [rdi + r15 + 8]
mov edx, 0x100
call fcn.14001adac
mov rbx, qword [rsp + 0x58]
mov eax, dword [rsp + 0x50]
mov r13d, 0x25b
mov qword [0x140045438], r15
mov dword [0x140045440], eax
lea r14d, [r13 + 1]
call fcn.140004220
mov edi, 0x67
test eax, eax
mov rax, qword [0x140045400]
cmovne edi, r13d
test rax, rax
je 0x1400087fb
mov rcx, qword [0x140045448]
cmp dword [rcx + 8], esi
jne 0x14000883e
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, qword [0x140044d00]
lea r9, [0x140009370]
mov r8, rax
lea rax, [0x1400453e0]
movzx edx, di
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_DialogBoxParamW]
cmp rax, r12
jne 0x140008a22
mov rcx, qword [0x140045448]
mov rax, qword [0x140045400]
mov edi, dword [rcx + 0x20]
cmp edi, 2
je 0x140008994
test rax, rax
je 0x140008858
cmp edi, r12d
je 0x140008994
test rbx, rbx
jne 0x140008994
call fcn.140004220
mov ebx, 0x68
test eax, eax
cmovne ebx, r14d
cmp edi, 4
jne 0x140008896
cmp dword [rcx + 0x14], r12d
jne 0x140008896
movzx ecx, word [0x140045094]
lea r8, [rbp - 0x30]
lea edx, [rdi + 0x37]
call fcn.1400040e0
mov rcx, qword [0x140045448]
cmp dword [rcx + 0x20], 4
jne 0x1400088b7
cmp dword [rcx + 0x10], r12d
jne 0x1400088b7
movzx ecx, word [0x140045094]
lea r8, [rbp - 0x30]
mov edx, 0x39
call fcn.1400040e0
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, qword [0x140044d00]
movzx edx, bx
lea rbx, [0x1400453e0]
lea r9, [0x1400095f0]
mov r8, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.USER32.dll_DialogBoxParamW]
cmp rax, r12
je 0x140008906
cmp rax, 0x70
jne 0x140008a22
mov rax, qword [0x140045448]
mov rbx, qword [rsp + 0x58]
mov dword [rax + 0x20], esi
jmp 0x1400087d3
mov rcx, qword [0x140045448]
cmp dword [rcx + 0x20], 3
jne 0x14000899b
cmp dword [0x140045428], esi
jne 0x14000899b
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0xd0]
xor r8d, r8d
call qword [sym.imp.WINSPOOL.DRV_OpenPrinterW]
test eax, eax
je 0x14000898b
movzx ecx, word [0x140045094]
lea r8, [rbp + 0x5e0]
mov edx, 6
mov dword [0x140045428], r12d
call fcn.1400040e0
lea r8, [rbp + 0xd0]
lea rdx, [rbp + 0x5e0]
lea rcx, [rbp + 0xbe0]
call qword [sym.imp.USER32.dll_wsprintfW]
mov rcx, qword [rsp + 0x48]
lea rdx, [rbp + 0xbe0]
mov qword [0x1400453f0], rdx
call qword [sym.imp.WINSPOOL.DRV_ClosePrinter]
mov rcx, qword [0x140045448]
jmp 0x14000899b
lea rbx, [0x1400453e0]
cmp dword [rcx + 0x20], 4
jne 0x1400089d4
cmp dword [rcx + 0x14], r12d
jne 0x1400089c3
movzx ecx, word [0x140045094]
lea r8, [rbp - 0x30]
mov edx, 0x3b
call fcn.1400040e0
mov rcx, qword [0x140045448]
cmp dword [rcx + 0x20], 4
jne 0x1400089d4
mov edx, 0x39
cmp dword [rcx + 0x10], r12d
je 0x1400089d9
mov edx, 4
movzx ecx, word [0x140045094]
lea r8, [rbp - 0x30]
call fcn.1400040e0
call fcn.140004220
mov ecx, 0x25d
test eax, eax
mov edi, 0x69
cmovne edi, ecx
call qword [sym.imp.USER32.dll_GetDesktopWindow]
mov rcx, qword [0x140044d00]
lea r9, [0x140009cc0]
movzx edx, di
mov r8, rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.USER32.dll_DialogBoxParamW]
lea rcx, str.HPPrtInit
xor edx, edx
call fcn.140013d70
lea rcx, str.HPPrtInit
call fcn.140014280
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GlobalFree]
cmp dword [0x140045430], esi
mov r15, qword [rsp + 0x1b00]
jne 0x140008c9b
lea rax, [rsp + 0x58]
lea rdx, str.SoftwareMicrosoftWindows_NTCurrentVersionWindows
mov r9d, 0xf003f
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140008c9b
mov rcx, qword [rsp + 0x58]
lea rax, [rsp + 0x40]
lea rdx, str.Device
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x7e0]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x40], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140008c90
mov rdx, qword [0x1400453f8]
lea rcx, [rbp + 0x7e0]
call fcn.14001acc0
mov rcx, qword [0x140045400]
test rax, rax
jne 0x140008c4e
test rcx, rcx
je 0x140008c90
lea rdx, [0x1400372a8]
call fcn.14001acc0
test rax, rax
jne 0x140008c90
mov rdx, qword [0x1400453f8]
lea rcx, [rbp + 0xd0]
sub rcx, rdx
nop dword [rax + rax]
movzx eax, word [rdx]
add rdx, 2
mov word [rdx + rcx - 2], ax
test ax, ax
jne 0x140008b20
lea rax, [rsp + 0x48]
lea rdx, str.SoftwareMicrosoftWindows_NTCurrentVersionDevices
mov r9d, 0xf003f
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140008bef
mov rcx, qword [rsp + 0x48]
lea rax, [rsp + 0x40]
lea rdx, [rbp + 0xd0]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x7e0]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140008be2
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0xd0]
repne scasw ax, word [rdi]
mov eax, dword [0x1400373dc]
or rcx, 0xffffffffffffffff
mov dword [rdi - 2], eax
xor eax, eax
lea rdi, [rbp + 0xd0]
repne scasw ax, word [rdi]
xor ecx, ecx
lea rdx, [rbp + 0x7e0]
nop word [rax + rax]
movzx eax, word [rdx + rcx]
add rcx, 2
mov word [rdi + rcx - 4], ax
test ax, ax
jne 0x140008bd0
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140008c2b
xor eax, eax
lea rdi, [rbp + 0xd0]
or rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [0x1400373e0]
mov qword [rdi - 2], rax
mov rax, qword [0x1400373e8]
mov qword [rdi + 6], rax
mov rax, qword [0x1400373f0]
mov qword [rdi + 0xe], rax
mov rax, qword [0x1400373f8]
mov qword [rdi + 0x16], rax
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0xd0]
repne scasw ax, word [rdi]
not rcx
lea eax, [rcx + rcx]
mov dword [rsp + 0x28], eax
lea rax, [rbp + 0xd0]
jmp 0x140008c73
test rcx, rcx
je 0x140008c90
lea rdx, [0x1400372a8]
call fcn.14001acc0
test rax, rax
je 0x140008c90
mov dword [rsp + 0x28], 2
lea rax, [0x140036d20]
mov rcx, qword [rsp + 0x58]
lea rdx, str.Device
mov r9d, r12d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp qword [rbp - 0x40], 8
jb 0x140008cd6
mov rax, qword [rbp - 0x58]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140008cd6
mov rax, qword [0x140044d10]
test rax, rax
jne 0x140008ccd
call fcn.140018630
mov qword [0x140044d10], rax
test rax, rax
je 0x140008cd6
lea rcx, [rsp + 0x48]
xor edx, edx
call rax
mov r13, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, qword [0x140044d00]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp qword [rbp - 0x68], 8
jb 0x140008d37
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x48], rax
test rax, rax
je 0x140008d37
mov rax, qword [0x140044d10]
test rax, rax
jne 0x140008d2e
call fcn.140018630
mov qword [0x140044d10], rax
test rax, rax
je 0x140008d37
lea rcx, [rsp + 0x48]
xor edx, edx
call rax
xor eax, eax
mov r13, qword [rsp + 0x1b10]
mov r14, qword [rsp + 0x1b08]
mov r12, qword [rsp + 0x1b48]
mov rcx, qword [rbp + 0x19f0]
xor rcx, rsp
call fcn.14001a510
add rsp, 0x1b18
pop rdi
pop rsi
pop rbx
pop rbp
ret