Function at 0x140003b30
Capabilities:
Print debug messages

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3d0
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x428], rbx
mov rax, qword [0x1400a5de0]
xor rax, rsp
mov qword [rsp + 0x3c0], rax
mov r15, r8
mov rbp, rdx
mov rsi, rcx
mov rbx, qword [0x1400ae080]
test rbx, rbx
jne 0x140003c32
mov ecx, 0x310
call fcn.1400278b8
mov rbx, rax
mov qword [rsp + 0x58], rax
test rax, rax
je 0x140003c29
call fcn.14002790c
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140003bb9
mov ecx, 0x80004005
call fcn.140007e00
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbx], rax
mov word [rbx + 0x64], 0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [0x14008a5b0]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x14008a5b0]
mov rcx, rbx
call fcn.140008260
lea rcx, [rbx + 8]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rbx + 0x30]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rbx + 0x26c]
mov word [rcx], 0
lea r8, [0x14008a5b8]
mov edx, 0x50
call fcn.140052920
nop
jmp 0x140003c2b
xor ebx, ebx
mov qword [0x1400ae080], rbx
lea rdx, str.GetPrinterInfoNew__
mov rcx, rbx
call fcn.14000d860
lea rcx, [rsp + 0x70]
call fcn.140002350
nop
mov r8, rbp
lea rdx, [rsp + 0x70]
mov rcx, rsi
call fcn.140003050
test eax, eax
jne 0x140003c93
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140003c7c
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x140003c7c
call rax
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140003c8c
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor eax, eax
jmp 0x14000469d
xor ebx, ebx
lea r14d, [rbx + 1]
mov dword [rsp + 0x330], ebx
xor edx, edx
mov r8d, 0x84
lea rcx, [rsp + 0x334]
call fcn.140057420
mov qword [rsp + 0x280], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x278], rbx
mov byte [rsp + 0x268], bl
mov qword [rsp + 0x2d0], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x2c8], rbx
mov byte [rsp + 0x2b8], bl
mov qword [rsp + 0x320], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x318], rbx
mov byte [rsp + 0x308], bl
mov qword [rsp + 0x2f8], 7
mov qword [rsp + 0x2f0], rbx
mov word [rsp + 0x2e0], bx
xor r8d, r8d
lea edx, [rbx + 0x1d]
lea rcx, [rsp + 0x2d8]
call fcn.1400062b0
lea rcx, [rsp + 0x2e0]
mov rdx, qword [rsp + 0x2f8]
cmp rdx, 8
cmovae rcx, qword [rsp + 0x2e0]
add rdx, rdx
lea r9d, [rbx + 0x3a]
lea r8, str._DevMgmt_ProductConfigDyn.xml
call fcn.140052f70
mov qword [rsp + 0x2f0], 0x1d
lea rax, [rsp + 0x2e0]
cmp qword [rsp + 0x2f8], 8
cmovae rax, qword [rsp + 0x2e0]
mov word [rax + 0x3a], bx
lea r8, [rsp + 0x2e0]
cmp qword [rsp + 0x2f8], 8
cmovae r8, qword [rsp + 0x2e0]
lea rdx, [rsp + 0x288]
lea rcx, [rsp + 0x70]
call fcn.1400029b0
nop
lea r13, [rsp + 0x290]
cmp qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], 0x10
cmovae r13, qword [rsp + 0x290]
mov rbp, qword [rsp + 0x78]
mov r12, qword [rsp + 0x80]
test r12, r12
je 0x14000400f
mov rdi, qword [rsp + 0xf0]
test rdi, rdi
jne 0x140003e52
test rbp, rbp
je 0x140003e38
lea rdx, str.GetPage
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
mov qword [rsp + 0xf0], rax
test rax, rax
jne 0x140003e52
mov dword [rsp + 0x70], 0x7f
lea rcx, str.EWSIntf::get_page:_Function_not_found_in_DLL:_GetPage_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x14000400f
mov dword [rsp + 0x70], 6
lea rcx, str.EWSIntf::get_page:_Attempting_to_lookup_GetPage_with_no_DLL_handle_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x14000400f
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], 0x800
mov edx, 0x10000
lea rcx, [rsp + 0x30]
call fcn.140002290
mov rbx, qword [rsp + 0x30]
cmp al, 1
jne 0x140003ffc
mov dword [rsp + 0x58], 0
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
mov r9, rbx
lea r8, [rsp + 0x330]
mov rdx, r13
mov rcx, r12
call rdi
test eax, eax
je 0x140003ffc
mov eax, dword [rsp + 0x58]
mov qword [rsp + 0x38], rax
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbx
repne scasb al, byte [rdi]
not rcx
lea rdi, [rcx - 1]
lea rax, [rsp + 0x268]
mov r8, qword [rsp + 0x268]
mov rdx, qword [rsp + 0x280]
cmp rdx, 0x10
cmovae rax, r8
cmp rbx, rax
jb 0x140003f4e
lea rcx, [rsp + 0x268]
cmp rdx, 0x10
cmovae rcx, r8
mov rax, qword [rsp + 0x278]
add rcx, rax
cmp rcx, rbx
jbe 0x140003f4e
lea rax, [rsp + 0x268]
cmp rdx, 0x10
cmovae rax, r8
mov r8, rbx
sub r8, rax
mov r9, rdi
lea rdx, [rsp + 0x260]
lea rcx, [rsp + 0x260]
call fcn.140005720
jmp 0x140003ffc
cmp rdi, 0xfffffffffffffffe
jbe 0x140003f59
call fcn.140077eb0
cmp qword [rsp + 0x280], rdi
jae 0x140003f7d
mov r8, qword [rsp + 0x278]
mov rdx, rdi
lea rcx, [rsp + 0x260]
call fcn.140005e80
jmp 0x140003fa9
test rdi, rdi
jne 0x140003fa9
mov qword [rsp + 0x278], rdi
lea rax, [rsp + 0x268]
cmp qword [rsp + 0x280], 0x10
cmovae rax, qword [rsp + 0x268]
mov byte [rax], dil
jmp 0x140003ffc
test rdi, rdi
je 0x140003ffc
lea rcx, [rsp + 0x268]
mov rdx, qword [rsp + 0x280]
cmp rdx, 0x10
cmovae rcx, qword [rsp + 0x268]
mov r9, rdi
mov r8, rbx
call fcn.140052f70
mov qword [rsp + 0x278], rdi
lea rax, [rsp + 0x268]
cmp qword [rsp + 0x280], 0x10
cmovae rax, qword [rsp + 0x268]
mov byte [rax + rdi], 0
test rbx, rbx
je 0x14000400d
mov rcx, rbx
call fcn.1400278fc
xor ebx, ebx
jmp 0x14000400f
xor ebx, ebx
cmp qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], 0x10
jb 0x140004027
mov rcx, qword [rsp + 0x290]
call fcn.1400278fc
cmp qword [rsp + 0x278], 0
jne 0x14000403a
mov r14d, ebx
jmp 0x1400045a3
xor edx, edx
mov r8d, 0x240
mov rcx, r15
call fcn.140057420
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x38], 0
mov r9d, reloc.WS2_32.dll_ntohs
lea r8, str.dd:MakeAndModel
mov rdx, r9
lea rcx, [rsp + 0x38]
call fcn.140052f70
mov qword [rsp + 0x48], reloc.WS2_32.dll_ntohs
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax + 0xf], 0
mov qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x2a0], rbx
mov byte [rsp + 0x290], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x260]
lea rcx, [rsp + 0x288]
call fcn.140005720
nop
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x288]
mov rcx, rsi
call fcn.140002c10
lea rdi, [rsp + 0x2b8]
cmp qword [rsp + 0x2d0], 0x10
cmovae rdi, qword [rsp + 0x2b8]
xor edx, edx
mov r8d, 0x400
lea r13, [0x1400aea30]
mov rcx, r13
call fcn.140057420
mov dword [rsp + 0x28], 0x400
mov qword [rsp + 0x20], r13
or r9d, 0xffffffff
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r8, r13
mov edx, 0x80
mov rcx, r15
call fcn.140052920
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x38], 0
xor r8d, r8d
lea edx, [r8 + 0x10]
lea rcx, [rsp + 0x30]
call fcn.140005e80
lea rcx, [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
cmovae rcx, qword [rsp + 0x38]
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea r8, str.dd:ProductNumber
call fcn.140052f70
mov qword [rsp + 0x48], reloc.OLEAUT32.dll_SafeArrayGetDim
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax + 0x10], 0
mov qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x2a0], rbx
mov byte [rsp + 0x290], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x260]
lea rcx, [rsp + 0x288]
call fcn.140005720
nop
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x288]
mov rcx, rsi
call fcn.140002c10
lea rdi, [rsp + 0x2b8]
cmp qword [rsp + 0x2d0], 0x10
cmovae rdi, qword [rsp + 0x2b8]
xor edx, edx
mov r8d, 0x400
mov rcx, r13
call fcn.140057420
mov dword [rsp + 0x28], 0x400
mov qword [rsp + 0x20], r13
or r9d, 0xffffffff
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rcx, [r15 + 0x150]
mov r8, r13
mov edx, 0x28
call fcn.140052920
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x38], 0
mov r9d, reloc.WS2_32.dll_ntohs
lea r8, str.dd:SerialNumber
mov rdx, r9
lea rcx, [rsp + 0x38]
call fcn.140052f70
mov qword [rsp + 0x48], reloc.WS2_32.dll_ntohs
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax + 0xf], 0
mov qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x2a0], rbx
mov byte [rsp + 0x290], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x260]
lea rcx, [rsp + 0x288]
call fcn.140005720
nop
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x288]
mov rcx, rsi
call fcn.140002c10
lea rdi, [rsp + 0x2b8]
cmp qword [rsp + 0x2d0], 0x10
cmovae rdi, qword [rsp + 0x2b8]
xor edx, edx
mov r8d, 0x400
mov rcx, r13
call fcn.140057420
mov dword [rsp + 0x28], 0x400
mov qword [rsp + 0x20], r13
or r9d, 0xffffffff
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rcx, [r15 + 0x100]
mov r8, r13
mov edx, 0x28
call fcn.140052920
mov edi, ebx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x58], rax
nop
mov qword [rsp + 0x50], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x38], 0
xor r8d, r8d
lea edx, [r8 + 0x10]
lea rcx, [rsp + 0x30]
call fcn.140005e80
lea rcx, [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
cmp rdx, 0x10
cmovae rcx, qword [rsp + 0x38]
mov r9d, reloc.OLEAUT32.dll_SafeArrayGetDim
lea r8, str.dd:BoardTypeEnum
call fcn.140052f70
mov qword [rsp + 0x48], reloc.OLEAUT32.dll_SafeArrayGetDim
lea rax, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rax, qword [rsp + 0x38]
mov byte [rax + 0x10], 0
mov qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x2a0], rbx
mov byte [rsp + 0x290], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x260]
lea rcx, [rsp + 0x288]
call fcn.140005720
nop
lea rax, [rsp + 0x300]
mov qword [rsp + 0x20], rax
mov r9d, edi
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x288]
mov rcx, rsi
call fcn.140002c10
lea rcx, [rsp + 0x308]
cmp qword [rsp + 0x320], 0x10
cmovae rcx, qword [rsp + 0x308]
lea rdx, str.system
call fcn.1400526b0
test rax, rax
jne 0x1400044ad
add edi, 1
cmp edi, 0xa
jb 0x1400043b0
lea rax, [rsp + 0x288]
mov qword [rsp + 0x58], rax
mov qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x2a0], rbx
mov byte [rsp + 0x290], 0
mov r8d, SafeArrayGetDim
lea rdx, str.dd:ModelNumber
lea rcx, [rsp + 0x288]
call fcn.140005b00
nop
mov qword [rsp + 0x50], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x48], rbx
mov byte [rsp + 0x38], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x260]
lea rcx, [rsp + 0x30]
call fcn.140005720
nop
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x20], rax
mov r9d, edi
lea r8, [rsp + 0x288]
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.140002c10
lea rdi, [rsp + 0x2b8]
cmp qword [rsp + 0x2d0], 0x10
cmovae rdi, qword [rsp + 0x2b8]
xor edx, edx
mov r8d, 0x400
mov rcx, r13
call fcn.140057420
mov dword [rsp + 0x28], 0x400
mov qword [rsp + 0x20], r13
or r9d, 0xffffffff
mov r8, rdi
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea rcx, [r15 + 0x1f0]
mov r8, r13
mov edx, 0x28
call fcn.140052920
nop
cmp qword [rsp + 0x2f8], 8
jb 0x1400045bb
mov rcx, qword [rsp + 0x2e0]
call fcn.1400278fc
mov qword [rsp + 0x2f8], 7
mov qword [rsp + 0x2f0], rbx
mov word [rsp + 0x2e0], 0
cmp qword [rsp + 0x320], 0x10
jb 0x1400045f1
mov rcx, qword [rsp + 0x308]
call fcn.1400278fc
mov qword [rsp + 0x320], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x318], rbx
mov byte [rsp + 0x308], 0
cmp qword [rsp + 0x2d0], 0x10
jb 0x140004625
mov rcx, qword [rsp + 0x2b8]
call fcn.1400278fc
mov qword [rsp + 0x2d0], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x2c8], rbx
mov byte [rsp + 0x2b8], 0
cmp qword [rsp + 0x280], 0x10
jb 0x140004659
mov rcx, qword [rsp + 0x268]
call fcn.1400278fc
mov qword [rsp + 0x280], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x278], rbx
mov byte [rsp + 0x268], 0
test r12, r12
je 0x14000468c
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x14000468c
mov rcx, r12
call rdx
test rbp, rbp
je 0x14000469a
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, r14d
mov rcx, qword [rsp + 0x3c0]
xor rcx, rsp
call fcn.1400524a0
mov rbx, qword [rsp + 0x428]
add rsp, 0x3d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret