Function at 0x140018af0
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rsi
push r12
push r13
push r14
mov eax, 0x1060
call fcn.1400ea040
sub rsp, rax
mov rax, qword [0x14012df80]
xor rax, rsp
mov qword [rsp + 0x1040], rax
xor ebx, ebx
test rdx, rdx
mov r13, r9
mov r14, r8
mov rsi, rdx
mov r12, rcx
je 0x140018eb0
test r8, r8
je 0x140018eb0
test r9, r9
je 0x140018eb0
mov qword [rsp + 0x1058], rbp
mov ebp, 0x7fffffff
mov rax, rdx
mov qword [rsp + 0x1050], rdi
mov edx, ebx
mov rcx, rbp
nop
cmp word [rax], dx
je 0x140018b79
add rax, 2
sub rcx, 1
jne 0x140018b60
mov edx, 0x80070057
mov rax, rbx
jmp 0x140018b8e
test rcx, rcx
jne 0x140018b88
mov edx, 0x80070057
mov rax, rbx
jmp 0x140018b8e
mov rax, rbp
sub rax, rcx
test edx, edx
mov rdi, rbx
lea rcx, str.Epson_Laser_ESC_PageS
cmovns rdi, rax
mov rdx, rsi
mov r8, rdi
call fcn.1400ce2c0
test eax, eax
je 0x140018bef
lea rcx, str.Epson_Laser_ESC_PageS_Wide
mov r8, rdi
mov rdx, rsi
call fcn.1400ce2c0
test eax, eax
je 0x140018bef
lea rcx, str.Epson_Laser_ESC_Page_Color
mov r8, rdi
mov rdx, rsi
call fcn.1400ce2c0
test eax, eax
je 0x140018bef
lea rcx, str.Epson_Laser_ESC_Page
mov r8, rdi
mov rdx, rsi
call fcn.1400ce2c0
test eax, eax
jne 0x140018c4c
lea rax, str.PnPData
lea r9, str.SYSTEMCurrentControlSetControlPrintPrinters_
lea r8, str._s_s_s
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x840]
mov edx, 0x400
mov qword [rsp + 0x20], r12
call fcn.14000ff40
lea r11, [rsp + 0x38]
lea rdx, [rsp + 0x840]
mov r9d, 0xf003f
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140018c7e
xor eax, eax
mov rbp, qword [rsp + 0x1058]
mov rdi, qword [rsp + 0x1050]
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.1400cd6e0
add rsp, 0x1060
pop r14
pop r13
pop r12
pop rsi
pop rbx
ret
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rdx, str.HardwareID
xor r8d, r8d
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x30], ebx
mov rdi, rbx
mov rsi, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140018d7c
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x140018d7c
mov rcx, rax
call fcn.1400913a4
test rax, rax
mov rdi, rax
je 0x140018d7c
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rdx, str.HardwareID
xor r8d, r8d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, rdi
call fcn.14001a450
test rax, rax
mov r11, rax
je 0x140018d54
mov rcx, rbp
mov edx, ebx
nop
nop
cmp word [rax], dx
je 0x140018d39
add rax, 2
sub rcx, 1
jne 0x140018d20
mov edx, 0x80070057
mov rax, rbx
jmp 0x140018d4e
test rcx, rcx
jne 0x140018d48
mov edx, 0x80070057
mov rax, rbx
jmp 0x140018d4e
mov rax, rbp
sub rax, rcx
test edx, edx
jns 0x140018d5c
jmp 0x140018d59
mov edx, 0x80070057
mov rax, rbx
test edx, edx
mov r8, rbx
mov rcx, r13
cmovns r8, rax
mov rdx, r11
call fcn.1400ce2c0
test eax, eax
jne 0x140018d7c
lea ebx, [rax + 1]
jmp 0x140018e8e
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rdx, str.DeviceInstanceId
xor r8d, r8d
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x30], ebx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140018e8e
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x140018e8e
mov rcx, rax
call fcn.1400913a4
test rax, rax
mov rsi, rax
je 0x140018e8e
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x34]
mov qword [rsp + 0x28], rax
lea rdx, str.DeviceInstanceId
xor r8d, r8d
mov qword [rsp + 0x20], rsi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea r8, str.EPSON_s
lea rcx, [rsp + 0x40]
mov r9, r14
mov edx, 0x400
call fcn.14000ff40
lea rdx, [0x1400fc394]
mov rcx, rsi
call fcn.1400cec00
test rax, rax
je 0x140018e8e
mov rcx, rax
call qword [sym.imp.USER32.dll_CharNextW]
mov rdx, rbp
lea rcx, [rsp + 0x40]
mov r9d, ebx
nop
cmp word [rcx], bx
je 0x140018e5a
add rcx, 2
sub rdx, 1
jne 0x140018e40
mov r9d, 0x80070057
mov rbp, rbx
jmp 0x140018e6d
test rdx, rdx
jne 0x140018e6a
mov r9d, 0x80070057
mov rbp, rbx
jmp 0x140018e6d
sub rbp, rdx
test r9d, r9d
mov r8, rbx
lea rdx, [rsp + 0x40]
cmovns r8, rbp
mov rcx, rax
call fcn.1400ce2c0
mov ecx, 1
test eax, eax
cmove ebx, ecx
mov rcx, rdi
call fcn.1400913ac
mov rcx, rsi
call fcn.1400913ac
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
jmp 0x140018c4e
xor eax, eax
jmp 0x140018c5e