Function at 0x1400044c0
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Get file attributes
Query environment variable
Query or enumerate registry value

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2830]
mov eax, 0x2930
call fcn.14001dff0
sub rsp, rax
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov qword [rsp + 0x2960], rbx
mov qword [rsp + 0x2970], rsi
mov qword [rsp + 0x2978], rdi
mov rax, qword [0x1400375a0]
xor rax, rsp
mov qword [rbp + 0x2820], rax
mov r15, rdx
mov ebx, ecx
xor r12d, r12d
mov r13d, r12d
mov dword [rsp + 0x54], r12d
cmp ecx, 4
jne 0x140004ed2
mov rax, qword [rdx + 8]
lea rdi, str.1234
mov rsi, rax
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x1400045a8
mov r8, qword [rdx + 0x10]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.WINSPOOL.DRV_DeleteMonitorW]
test eax, eax
je 0x140004f06
mov edx, 0x200
lea rcx, [rbp + 0x2020]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea r8, [0x14002ee44]
mov edx, 0x200
lea rcx, [rbp + 0x2020]
call fcn.140018d20
mov r8, qword [r15 + 0x18]
mov edx, 0x200
lea rcx, [rbp + 0x2020]
call fcn.140018d20
lea rcx, [rbp + 0x2020]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x140006b0d
lea rdi, [0x14002ee48]
mov rsi, rax
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x14000461f
mov r8, qword [rdx + 0x10]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.WINSPOOL.DRV_DeleteMonitorW]
xor ecx, ecx
mov qword [rbp + 0x158], rcx
mov qword [rbp + 0x160], rcx
mov qword [rbp + 0x168], rcx
mov qword [rbp + 0x160], r12
mov rax, qword [r15 + 0x10]
mov qword [rbp + 0x158], rax
mov rax, qword [r15 + 0x18]
mov qword [rbp + 0x168], rax
lea r8, [rbp + 0x158]
lea edx, [rcx + 2]
call qword [sym.imp.WINSPOOL.DRV_AddMonitorW]
test eax, eax
jne 0x140006b0d
lea r13d, [rax + 1]
jmp 0x140006b0d
lea rdi, [0x14002f018]
mov rsi, rax
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x140004cb7
mov qword [rbp + 0x228], 7
mov qword [rbp + 0x220], r12
mov word [rbp + 0x210], r12w
mov qword [rbp + 0x120], r12
mov ecx, 0x70
call fcn.140016550
test rax, rax
je 0x140004c7f
mov qword [rbp + 0x118], rax
mov qword [rax], rax
mov rax, qword [rbp + 0x118]
mov qword [rax + 8], rax
mov rax, qword [rbp + 0x118]
mov qword [rax + 0x10], rax
mov rax, qword [rbp + 0x118]
mov byte [rax + 0x68], 1
mov rax, qword [rbp + 0x118]
mov byte [rax + 0x69], 1
mov qword [rbp + 0x1d0], r12
mov ecx, 0x70
call fcn.140016550
test rax, rax
je 0x140004c47
mov qword [rbp + 0x1c8], rax
mov qword [rax], rax
mov rax, qword [rbp + 0x1c8]
mov qword [rax + 8], rax
mov rax, qword [rbp + 0x1c8]
mov qword [rax + 0x10], rax
mov rax, qword [rbp + 0x1c8]
mov byte [rax + 0x68], 1
mov rax, qword [rbp + 0x1c8]
mov byte [rax + 0x69], 1
lea rcx, [rbp + 0x170]
call fcn.140009c30
nop
mov r8, qword [r15 + 0x10]
mov edx, 0xc8
lea rcx, [rbp + 0x3a0]
call fcn.140018cb4
lea r8, str._USBPRINT
mov edx, 0xc8
lea rcx, [rbp + 0x5b0]
call fcn.140018cb4
mov rdx, qword [r15 + 0x18]
mov qword [rbp + 0x1b0], 7
mov qword [rbp + 0x1a8], r12
mov word [rbp + 0x198], r12w
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp + 0x198]
call fcn.14000bca0
nop
lea rdx, [rbp + 0x198]
lea rcx, [rbp + 0x210]
call fcn.1400093c0
nop
cmp qword [rbp + 0x1b0], 8
jb 0x140004793
mov rcx, qword [rbp + 0x198]
call fcn.1400161a0
mov qword [rbp + 0x148], r12
lea rax, [rbp + 0x110]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x148]
xor r8d, r8d
lea rdx, [rbp + 0x3a0]
xor ecx, ecx
call fcn.1400035a0
test eax, eax
jne 0x140004b9d
mov qword [rbp + 0x148], r12
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x148]
xor r8d, r8d
lea rdx, [rbp + 0x3a0]
lea ecx, [r8 + 2]
call fcn.1400035a0
test eax, eax
jne 0x140004b9d
mov rax, qword [rbp + 0x1c8]
mov rdi, qword [rax]
cmp rdi, rax
je 0x1400048d3
nop
lea rdx, [rdi + 0x18]
lea rcx, [rbp + 0x110]
call fcn.14000c260
mov qword [rsp + 0x60], rax
mov rdx, qword [rbp + 0x118]
cmp rax, rdx
je 0x140004850
lea rdx, [rax + 0x18]
lea rcx, [rdi + 0x18]
call fcn.1400128b0
mov rdx, qword [rbp + 0x118]
test eax, eax
js 0x140004850
lea r8, [rsp + 0x60]
jmp 0x14000485a
mov qword [rsp + 0x58], rdx
lea r8, [rsp + 0x58]
mov r8, qword [r8]
cmp r8, rdx
je 0x140004875
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x110]
call fcn.140007be0
cmp byte [rdi + 0x69], 0
jne 0x1400048c6
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x69], 0
jne 0x14000489f
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
jne 0x1400048c6
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
je 0x140004891
jmp 0x1400048c6
mov rax, qword [rdi + 8]
cmp byte [rax + 0x69], 0
jne 0x1400048c3
nop dword [rax]
cmp rdi, qword [rax + 0x10]
jne 0x1400048c3
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x69], 0
je 0x1400048b0
mov rdi, rax
cmp rdi, qword [rbp + 0x1c8]
jne 0x140004810
mov qword [rbp + 0x148], r12
lea rax, [rbp + 0x170]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x148]
xor r8d, r8d
lea rdx, [rbp + 0x5b0]
xor ecx, ecx
call fcn.1400035a0
test eax, eax
jne 0x140004b9d
mov rax, qword [rbp + 0x118]
mov rsi, qword [rax]
cmp rsi, rax
je 0x140004ba3
nop dword [rax]
mov r14b, 1
mov r8, qword [rbp + 0x178]
mov rdi, qword [r8]
cmp rdi, r8
je 0x140004a94
nop word [rax + rax]
lea rdx, [rdi + 0x40]
lea rcx, [rsi + 0x40]
call fcn.1400128b0
test eax, eax
jne 0x140004a32
lea rdx, [rbp + 0x210]
cmp qword [rbp + 0x228], 8
cmovae rdx, qword [rbp + 0x210]
mov r8, qword [rbp + 0x220]
lea rcx, [rdi + 0x18]
call fcn.140009590
cmp rax, 0xffffffffffffffff
je 0x140004a2f
mov qword [rbp + 0x1b0], 7
mov qword [rbp + 0x1a8], r12
mov word [rbp + 0x198], r12w
mov dword [rbp + 0x140], r12d
mov dword [rbp + 0x138], r12d
lea rdx, [rdi + 0x18]
lea rcx, [rbp + 0x238]
call fcn.140011cd0
nop
mov rdx, rax
lea rcx, [rbp + 0x198]
call fcn.1400093c0
nop
cmp qword [rbp + 0x250], 8
jb 0x1400049e5
mov rcx, qword [rbp + 0x238]
call fcn.1400161a0
lea rdx, [rbp + 0x198]
cmp qword [rbp + 0x1b0], 8
cmovae rdx, qword [rbp + 0x198]
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x138]
lea r8, [0x140003980]
xor ecx, ecx
call fcn.1400035a0
nop
cmp qword [rbp + 0x1b0], 8
jb 0x140004a32
mov rcx, qword [rbp + 0x198]
call fcn.1400161a0
jmp 0x140004a32
xor r14b, r14b
cmp byte [rdi + 0x69], 0
jne 0x140004a7e
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x69], 0
jne 0x140004a5e
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
jne 0x140004a7e
nop
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
je 0x140004a50
jmp 0x140004a7e
mov rax, qword [rdi + 8]
cmp byte [rax + 0x69], 0
jne 0x140004a7b
cmp rdi, qword [rax + 0x10]
jne 0x140004a7b
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x69], 0
je 0x140004a68
mov rdi, rax
cmp rdi, qword [rbp + 0x178]
jne 0x140004940
test r14b, r14b
je 0x140004b3b
mov qword [rbp + 0x1b0], 7
mov qword [rbp + 0x1a8], r12
mov word [rbp + 0x198], r12w
mov dword [rbp + 0x1f0], r12d
mov dword [rbp + 0x1e8], r12d
lea rdx, [rsi + 0x18]
lea rcx, [rbp + 0x238]
call fcn.140011cd0
nop
mov rdx, rax
lea rcx, [rbp + 0x198]
call fcn.1400093c0
nop
cmp qword [rbp + 0x250], 8
jb 0x140004af3
mov rcx, qword [rbp + 0x238]
call fcn.1400161a0
lea rdx, [rbp + 0x198]
cmp qword [rbp + 0x1b0], 8
cmovae rdx, qword [rbp + 0x198]
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x1e8]
lea r8, [0x140003980]
xor ecx, ecx
call fcn.1400035a0
nop
cmp qword [rbp + 0x1b0], 8
jb 0x140004b3b
mov rcx, qword [rbp + 0x198]
call fcn.1400161a0
cmp byte [rsi + 0x69], 0
jne 0x140004b8e
mov rax, qword [rsi + 0x10]
cmp byte [rax + 0x69], 0
jne 0x140004b6e
mov rsi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
jne 0x140004b8e
nop word [rax + rax]
mov rsi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
je 0x140004b60
jmp 0x140004b8e
mov rax, qword [rsi + 8]
cmp byte [rax + 0x69], 0
jne 0x140004b8b
cmp rsi, qword [rax + 0x10]
jne 0x140004b8b
mov rsi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x69], 0
je 0x140004b78
mov rsi, rax
cmp rsi, qword [rbp + 0x118]
jne 0x140004920
jmp 0x140004ba3
mov r13d, 1
mov r8, qword [rbp + 0x178]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x170]
call fcn.14000c160
nop
mov rcx, qword [rbp + 0x178]
call fcn.1400161a0
nop
mov r8, qword [rbp + 0x1c8]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x1c0]
call fcn.14000c160
nop
mov rcx, qword [rbp + 0x1c8]
call fcn.1400161a0
nop
mov r8, qword [rbp + 0x118]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x110]
call fcn.14000c160
nop
mov rcx, qword [rbp + 0x118]
call fcn.1400161a0
nop
cmp qword [rbp + 0x228], 8
jb 0x140006b0d
mov rcx, qword [rbp + 0x210]
jmp 0x140006b08
mov qword [rsp + 0x60], r12
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x158]
call fcn.140016064
lea rdx, vtable.std::bad_alloc.0
mov qword [rbp + 0x158], rdx
lea rdx, [0x140035218]
lea rcx, [rbp + 0x158]
call fcn.140019760
nop
mov qword [rsp + 0x58], r12
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x1f8]
call fcn.140016064
lea rdx, vtable.std::bad_alloc.0
mov qword [rbp + 0x1f8], rdx
lea rdx, [0x140035218]
lea rcx, [rbp + 0x1f8]
call fcn.140019760
nop
lea rdi, [0x14002f040]
mov rsi, rax
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x140004e5e
lea r8, str._USBPRINT
mov edx, 0xc8
lea rcx, [rbp + 0x3a0]
call fcn.140018cb4
mov dword [rsp + 0x50], r12d
lea r9, [rsp + 0x50]
mov r8, qword [r15 + 0x18]
mov rdx, qword [r15 + 0x10]
lea rcx, [rbp + 0x3a0]
call fcn.140003da0
test eax, eax
jne 0x140004d1d
cmp dword [rsp + 0x50], r12d
je 0x140006b0d
lea r13d, [rax + 1]
jmp 0x140006b0d
cmp eax, 0x800b0101
jne 0x140004d2f
mov r13d, 3
jmp 0x140006b0d
cmp eax, 0x800b0109
jne 0x140004d41
mov r13d, 4
jmp 0x140006b0d
cmp eax, 0x800b0110
jne 0x140004d53
mov r13d, 5
jmp 0x140006b0d
cmp eax, 0x80092003
jne 0x140004d65
mov r13d, 6
jmp 0x140006b0d
cmp eax, 5
jne 0x140004d73
lea r13d, [rax + 2]
jmp 0x140006b0d
cmp eax, 0xa
jne 0x140004d81
lea r13d, [rax - 2]
jmp 0x140006b0d
cmp eax, 0x780
jne 0x140004d93
mov r13d, 0xa
jmp 0x140006b0d
cmp eax, 2
jne 0x140004da1
lea r13d, [rax + 9]
jmp 0x140006b0d
cmp eax, 0xce
jne 0x140004db3
mov r13d, 0xc
jmp 0x140006b0d
cmp eax, 0xe0000235
jne 0x140004dc5
mov r13d, 0xd
jmp 0x140006b0d
cmp eax, 0x7b
jne 0x140004dd3
lea r13d, [rax - 0x6b]
jmp 0x140006b0d
cmp eax, 0x57
jne 0x140004de1
lea r13d, [rax - 0x46]
jmp 0x140006b0d
cmp eax, 0xe
jne 0x140004def
lea r13d, [rax + 7]
jmp 0x140006b0d
cmp eax, 0x20
jne 0x140004dfd
lea r13d, [rax - 0xa]
jmp 0x140006b0d
cmp eax, 0xe0000244
jne 0x140004e0f
mov r13d, 0x17
jmp 0x140006b0d
cmp eax, 0x800b0100
jne 0x140004e21
mov r13d, 0x18
jmp 0x140006b0d
cmp eax, 0x643
jne 0x140004e33
mov r13d, 0x19
jmp 0x140006b0d
cmp eax, 0x65e
jne 0x140004e45
mov r13d, 0x1b
jmp 0x140006b0d
mov ecx, 0x1c
mov r13d, 2
cmp eax, 0xe0000203
cmove r13d, ecx
jmp 0x140006b0d
lea rdi, [0x14002f050]
mov rsi, rax
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x140006b0d
lea rcx, str.Winspool.drv
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rdi, rax
test rax, rax
je 0x140006b0d
lea rdx, str.InstallPrinterDriverFromPackageW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140004ec4
mov r14d, 1
mov dword [rsp + 0x20], r14d
xor r9d, r9d
mov r8, qword [r15 + 0x18]
mov rdx, qword [r15 + 0x10]
xor ecx, ecx
call rax
test eax, eax
cmove r13d, r14d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x140006b0d
cmp ecx, 3
jne 0x140004f11
lea rdi, [0x14002ee4c]
mov rsi, qword [rdx + 8]
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x140006b0d
mov r8, qword [rdx + 0x10]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.WINSPOOL.DRV_DeletePrinterDriverW]
test eax, eax
jne 0x140006b0d
mov r13d, 1
jmp 0x140006b0d
cmp ecx, 2
jne 0x140006021
lea rdi, [0x14002ee50]
mov rsi, qword [rdx + 8]
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x140006b0d
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x104
lea r9, [rbp + 0x5b0]
mov r14d, 1
mov r8d, r14d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.WINSPOOL.DRV_GetPrinterDriverDirectoryW]
test eax, eax
je 0x140004f8e
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0x20119
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionSetup
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x140004f96
mov r13d, r14d
jmp 0x140006b0d
mov dword [rsp + 0x54], 2
mov dword [rsp + 0x50], 0x104
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x2020]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x54]
xor r8d, r8d
lea rdx, str.DriverCachePath
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14000600e
mov r8d, 0x104
lea rdx, [rbp + 0xbc0]
lea rcx, [rbp + 0x2020]
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x14000600e
mov word [rbp + 0x1800], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x1802]
call fcn.14001e0b0
mov word [rbp + 0x1a10], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x1a12]
call fcn.14001e0b0
mov word [rbp + 0x11d0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x11d2]
call fcn.14001e0b0
mov word [rbp + 0x15f0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x15f2]
call fcn.14001e0b0
mov word [rbp + 0x13e0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x13e2]
call fcn.14001e0b0
lea r8, [rbp + 0xbc0]
mov edx, 0x104
lea rcx, [rbp + 0x1800]
call fcn.140018cb4
lea r8, str.i386_
mov edx, 0x104
lea rcx, [rbp + 0x1800]
call fcn.140018d20
lea r8, [0x14002eef0]
mov edx, 0x104
lea rcx, [rbp + 0x1800]
call fcn.140018d20
lea r8, [rbp + 0xbc0]
mov edx, 0x104
lea rcx, [rbp + 0x1a10]
call fcn.140018cb4
lea r8, str.i386_
mov edx, 0x104
lea rcx, [rbp + 0x1a10]
call fcn.140018d20
lea r8, [0x14002ef10]
mov edx, 0x104
lea rcx, [rbp + 0x1a10]
call fcn.140018d20
lea r8, [rbp + 0xbc0]
mov edx, 0x104
lea rcx, [rbp + 0x11d0]
call fcn.140018cb4
lea r8, str.i386_
mov edx, 0x104
lea rcx, [rbp + 0x11d0]
call fcn.140018d20
lea r8, [0x14002ef28]
mov edx, 0x104
lea rcx, [rbp + 0x11d0]
call fcn.140018d20
lea r8, [rbp + 0xbc0]
mov edx, 0x104
lea rcx, [rbp + 0x15f0]
call fcn.140018cb4
lea r8, str.i386_
mov edx, 0x104
lea rcx, [rbp + 0x15f0]
call fcn.140018d20
lea r8, [0x14002ef40]
mov edx, 0x104
lea rcx, [rbp + 0x15f0]
call fcn.140018d20
lea r8, [rbp + 0xbc0]
mov edx, 0x104
lea rcx, [rbp + 0x13e0]
call fcn.140018cb4
lea r8, str.i386_
mov edx, 0x104
lea rcx, [rbp + 0x13e0]
call fcn.140018d20
lea r8, [0x14002ef60]
mov edx, 0x104
lea rcx, [rbp + 0x13e0]
call fcn.140018d20
lea rcx, [rbp + 0x1800]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000551e
test al, 0x10
jne 0x14000551e
lea rcx, [rbp + 0x1a10]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000551e
test al, 0x10
jne 0x14000551e
lea rcx, [rbp + 0x11d0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000551e
test al, 0x10
jne 0x14000551e
lea rcx, [rbp + 0x15f0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000551e
test al, 0x10
jne 0x14000551e
lea rcx, [rbp + 0x13e0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000551e
test al, 0x10
jne 0x14000551e
mov word [rbp + 0x3a0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x3a2]
call fcn.14001e0b0
mov word [rbp + 0x2420], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x2422]
call fcn.14001e0b0
mov word [rbp + 0x1c20], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x1c22]
call fcn.14001e0b0
mov word [rbp + 0xdd0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0xdd2]
call fcn.14001e0b0
mov word [rbp + 0x7c0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x7c2]
call fcn.14001e0b0
lea r8, [rbp + 0x5b0]
mov edx, 0x104
lea rcx, [rbp + 0x3a0]
call fcn.140018cb4
lea r8, [0x14002ee44]
mov edx, 0x104
lea rcx, [rbp + 0x3a0]
call fcn.140018d20
lea r8, [0x14002eef0]
mov edx, 0x104
lea rcx, [rbp + 0x3a0]
call fcn.140018d20
lea r8, [rbp + 0x5b0]
mov edx, 0x104
lea rcx, [rbp + 0x2420]
call fcn.140018cb4
lea r8, [0x14002ee44]
mov edx, 0x104
lea rcx, [rbp + 0x2420]
call fcn.140018d20
lea r8, [0x14002ef10]
mov edx, 0x104
lea rcx, [rbp + 0x2420]
call fcn.140018d20
lea r8, [rbp + 0x5b0]
mov edx, 0x104
lea rcx, [rbp + 0x1c20]
call fcn.140018cb4
lea r8, [0x14002ee44]
mov edx, 0x104
lea rcx, [rbp + 0x1c20]
call fcn.140018d20
lea r8, [0x14002ef28]
mov edx, 0x104
lea rcx, [rbp + 0x1c20]
call fcn.140018d20
lea r8, [rbp + 0x5b0]
mov edx, 0x104
lea rcx, [rbp + 0xdd0]
call fcn.140018cb4
lea r8, [0x14002ee44]
mov edx, 0x104
lea rcx, [rbp + 0xdd0]
call fcn.140018d20
lea r8, [0x14002ef40]
mov edx, 0x104
lea rcx, [rbp + 0xdd0]
call fcn.140018d20
lea r8, [rbp + 0x5b0]
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.140018cb4
lea r8, [0x14002ee44]
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.140018d20
lea r8, [0x14002ef60]
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.140018d20
xor r8d, r8d
lea rdx, [rbp + 0x3a0]
lea rcx, [rbp + 0x1800]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14000600e
xor r8d, r8d
lea rdx, [rbp + 0x2420]
lea rcx, [rbp + 0x1a10]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14000600e
xor r8d, r8d
lea rdx, [rbp + 0x1c20]
lea rcx, [rbp + 0x11d0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14000600e
xor r8d, r8d
lea rdx, [rbp + 0xdd0]
lea rcx, [rbp + 0x15f0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14000600e
xor r8d, r8d
lea rdx, [rbp + 0x7c0]
lea rcx, [rbp + 0x13e0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x140006011
jmp 0x14000600e
mov word [rbp + 0x7c0], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rbp + 0x7c2]
call fcn.14001e0b0
lea r8, [rbp + 0xbc0]
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.140018cb4
lea r8, str.i386_
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.140018d20
lea r8, str.sp3.cab
mov edx, 0x104
lea rcx, [rbp + 0x7c0]
call fcn.140018d20
lea rcx, [rbp + 0x7c0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000600e
test al, 0x10
jne 0x14000600e
lea rcx, str.Cabinet.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r15, rax
lea rdx, str.FDICreate
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
lea rdx, str.FDICopy
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rsi, rax
mov qword [rbp + 0x1e8], rax
lea rdx, str.FDIDestroy
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbp + 0x148], rax
test rdi, rdi
je 0x14000600e
test rsi, rsi
je 0x14000600e
test rax, rax
je 0x14000600e
lea rax, [rbp + 0x1f8]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r14d
lea rax, [0x1400013d0]
mov qword [rsp + 0x30], rax
lea rax, [0x1400013c0]
mov qword [rsp + 0x28], rax
lea rax, [0x1400013b0]
mov qword [rsp + 0x20], rax
lea r9, [0x1400013a0]
lea r8, [0x1400012d0]
lea rdx, [0x1400012c0]
lea rcx, [0x1400012b0]
call rdi
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140005ffb
mov qword [rbp + 0x120], r12
mov ecx, 0x70
call fcn.140016550
test rax, rax
je 0x140005fbf
mov qword [rbp + 0x118], rax
mov qword [rax], rax
mov rcx, qword [rbp + 0x118]
mov qword [rcx + 8], rcx
mov rax, qword [rbp + 0x118]
mov qword [rax + 0x10], rax
mov rax, qword [rbp + 0x118]
mov byte [rax + 0x68], r14b
mov rax, qword [rbp + 0x118]
mov byte [rax + 0x69], r14b
mov qword [rbp + 0x158], r12
mov dword [rbp + 0x160], r12d
mov edx, 0x12c
lea rcx, [rbp + 0x158]
call fcn.140002e00
mov rax, qword [rbp + 0x158]
mov byte [rax], 0
mov qword [rbp + 0x138], r12
mov dword [rbp + 0x140], r12d
mov edx, 0x12c
lea rcx, [rbp + 0x138]
call fcn.140002e00
mov rbx, qword [rbp + 0x138]
mov byte [rbx], 0
mov qword [rbp + 0x228], 0xf
mov qword [rbp + 0x220], r12
mov byte [rbp + 0x210], 0
mov r8d, 0xc
lea rdx, str.stdnames.gpd
lea rcx, [rbp + 0x210]
call fcn.140001930
nop
mov qword [rbp + 0x1b0], 0xf
mov qword [rbp + 0x1a8], r12
mov byte [rbp + 0x198], 0
mov r8d, 0xa
lea rdx, str.unidrv.dll
lea rcx, [rbp + 0x198]
call fcn.140001930
nop
mov qword [rbp + 0x2f0], 0xf
mov qword [rbp + 0x2e8], r12
mov byte [rbp + 0x2d8], 0
mov r8d, 0xa
lea rdx, str.unidrv.hlp
lea rcx, [rbp + 0x2d8]
call fcn.140001930
nop
mov qword [rbp + 0x318], 0xf
mov qword [rbp + 0x310], r12
mov byte [rbp + 0x300], 0
mov r8d, 0xc
lea rdx, str.unidrvui.dll
lea rcx, [rbp + 0x300]
call fcn.140001930
nop
mov qword [rbp + 0x340], 0xf
mov qword [rbp + 0x338], r12
mov byte [rbp + 0x328], 0
mov r8d, 0xa
lea rdx, str.unires.dll
lea rcx, [rbp + 0x328]
call fcn.140001930
nop
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
lea rdi, [rbp + 0x5b0]
repne scasw ax, word [rdi]
not rcx
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x5b0]
mov r8, rcx
lea rdx, [rbp + 0x3a0]
lea rcx, [rsp + 0x70]
call fcn.140019228
mov qword [rbp + 0x188], 0xf
mov qword [rbp + 0x180], r12
mov byte [rbp + 0x170], 0
xor eax, eax
mov rcx, rsi
lea rdi, [rbp + 0x3a0]
repne scasb al, byte [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rbp + 0x3a0]
lea rcx, [rbp + 0x170]
call fcn.140001930
nop
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x1c0]
call fcn.140011bd0
nop
lea r8, [rbp + 0x210]
mov rdx, rax
lea rcx, [rbp + 0x288]
call fcn.140011c80
nop
cmp qword [rbp + 0x1d8], 0x10
jb 0x1400058cf
mov rcx, qword [rbp + 0x1c0]
call fcn.1400161a0
mov qword [rbp + 0x1d8], 0xf
mov qword [rbp + 0x1d0], r12
mov byte [rbp + 0x1c0], 0
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x238]
call fcn.140011bd0
nop
lea r8, [rbp + 0x198]
mov rdx, rax
lea rcx, [rbp + 0x2b0]
call fcn.140011c80
nop
cmp qword [rbp + 0x250], 0x10
jb 0x140005929
mov rcx, qword [rbp + 0x238]
call fcn.1400161a0
mov qword [rbp + 0x250], 0xf
mov qword [rbp + 0x248], r12
mov byte [rbp + 0x238], 0
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x1c0]
call fcn.140011bd0
nop
lea r8, [rbp + 0x2d8]
mov rdx, rax
lea rcx, [rbp + 0x260]
call fcn.140011c80
nop
cmp qword [rbp + 0x1d8], 0x10
jb 0x140005983
mov rcx, qword [rbp + 0x1c0]
call fcn.1400161a0
mov qword [rbp + 0x1d8], 0xf
mov qword [rbp + 0x1d0], r12
mov byte [rbp + 0x1c0], 0
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x238]
call fcn.140011bd0
nop
lea r8, [rbp + 0x300]
mov rdx, rax
lea rcx, [rbp + 0x378]
call fcn.140011c80
nop
cmp qword [rbp + 0x250], 0x10
jb 0x1400059dd
mov rcx, qword [rbp + 0x238]
call fcn.1400161a0
mov qword [rbp + 0x250], 0xf
mov qword [rbp + 0x248], r12
mov byte [rbp + 0x238], 0
lea rdx, [rbp + 0x170]
lea rcx, [rbp + 0x1c0]
call fcn.140011bd0
nop
lea r8, [rbp + 0x328]
mov rdx, rax
lea rcx, [rbp + 0x350]
call fcn.140011c80
nop
cmp qword [rbp + 0x1d8], 0x10
jb 0x140005a37
mov rcx, qword [rbp + 0x1c0]
call fcn.1400161a0
mov qword [rbp + 0x1d8], 0xf
mov qword [rbp + 0x1d0], r12
mov byte [rbp + 0x1c0], 0
lea r8, str.sp3.cab
mov edx, 0x104
lea rcx, [rbp + 0x1c20]
call fcn.140018cb4
lea r8, [rbp + 0xbc0]
mov edx, 0x104
lea rcx, [rbp + 0xdd0]
call fcn.140018cb4
lea r8, str.i386_
mov edx, 0x104
lea rcx, [rbp + 0xdd0]
call fcn.140018d20
lea rdx, [rbp + 0x210]
lea rcx, [rbp + 0x110]
call fcn.140007f70
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp + 0x288]
mov rcx, rax
call fcn.140001b10
lea rdx, [rbp + 0x198]
lea rcx, [rbp + 0x110]
call fcn.140007f70
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp + 0x2b0]
mov rcx, rax
call fcn.140001b10
lea rdx, [rbp + 0x2d8]
lea rcx, [rbp + 0x110]
call fcn.140007f70
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp + 0x260]
mov rcx, rax
call fcn.140001b10
lea rdx, [rbp + 0x300]
lea rcx, [rbp + 0x110]
call fcn.140007f70
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp + 0x378]
mov rcx, rax
call fcn.140001b10
lea rdx, [rbp + 0x328]
lea rcx, [rbp + 0x110]
call fcn.140007f70
mov r9, rsi
xor r8d, r8d
lea rdx, [rbp + 0x350]
mov rcx, rax
call fcn.140001b10
mov byte [rbx], 0
xor eax, eax
mov rcx, rsi
lea rdi, [rbp + 0xdd0]
repne scasw ax, word [rdi]
not rcx
lea rdx, [rcx - 1]
shl edx, 2
lea rcx, [rbp + 0x138]
call fcn.140002e00
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov eax, dword [rbp + 0x140]
mov dword [rsp + 0x28], eax
mov rbx, qword [rbp + 0x138]
mov qword [rsp + 0x20], rbx
mov r9d, esi
lea r8, [rbp + 0xdd0]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rcx, eax
mov byte [rcx + rbx], 0
mov rax, qword [rbp + 0x158]
mov byte [rax], 0
xor eax, eax
mov rcx, rsi
lea rdi, [rbp + 0x1c20]
repne scasw ax, word [rdi]
not rcx
lea rdx, [rcx - 1]
shl edx, 2
lea rcx, [rbp + 0x158]
call fcn.140002e00
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov eax, dword [rbp + 0x160]
mov dword [rsp + 0x28], eax
mov rdi, qword [rbp + 0x158]
mov qword [rsp + 0x20], rdi
mov r9d, esi
lea r8, [rbp + 0x1c20]
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rcx, eax
mov byte [rcx + rdi], 0
lea rax, [rbp + 0x110]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r12
lea rax, [0x1400013e0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
mov rsi, qword [rsp + 0x68]
mov rcx, rsi
call qword [rbp + 0x1e8]
test eax, eax
cmove r13d, r14d
mov rcx, rsi
call qword [rbp + 0x148]
nop
cmp qword [rbp + 0x368], 0x10
jb 0x140005c8d
mov rcx, qword [rbp + 0x350]
call fcn.1400161a0
mov qword [rbp + 0x368], 0xf
mov qword [rbp + 0x360], r12
mov byte [rbp + 0x350], 0
cmp qword [rbp + 0x390], 0x10
jb 0x140005cbc
mov rcx, qword [rbp + 0x378]
call fcn.1400161a0
mov qword [rbp + 0x390], 0xf
mov qword [rbp + 0x388], r12
mov byte [rbp + 0x378], 0
cmp qword [rbp + 0x278], 0x10
jb 0x140005ceb
mov rcx, qword [rbp + 0x260]
call fcn.1400161a0
mov qword [rbp + 0x278], 0xf
mov qword [rbp + 0x270], r12
mov byte [rbp + 0x260], 0
cmp qword [rbp + 0x2c8], 0x10
jb 0x140005d1a
mov rcx, qword [rbp + 0x2b0]
call fcn.1400161a0
mov qword [rbp + 0x2c8], 0xf
mov qword [rbp + 0x2c0], r12
mov byte [rbp + 0x2b0], 0
cmp qword [rbp + 0x2a0], 0x10
jb 0x140005d49
mov rcx, qword [rbp + 0x288]
call fcn.1400161a0
mov qword [rbp + 0x2a0], 0xf
mov qword [rbp + 0x298], r12
mov byte [rbp + 0x288], 0
cmp qword [rbp + 0x188], 0x10
jb 0x140005d78
mov rcx, qword [rbp + 0x170]
call fcn.1400161a0
mov qword [rbp + 0x188], 0xf
mov qword [rbp + 0x180], r12
mov byte [rbp + 0x170], 0
cmp qword [rbp + 0x340], 0x10
jb 0x140005da7
mov rcx, qword [rbp + 0x328]
call fcn.1400161a0
mov qword [rbp + 0x340], 0xf
mov qword [rbp + 0x338], r12
mov byte [rbp + 0x328], 0
cmp qword [rbp + 0x318], 0x10
jb 0x140005dd6
mov rcx, qword [rbp + 0x300]
call fcn.1400161a0
mov qword [rbp + 0x318], 0xf
mov qword [rbp + 0x310], r12
mov byte [rbp + 0x300], 0
cmp qword [rbp + 0x2f0], 0x10
jb 0x140005e05
mov rcx, qword [rbp + 0x2d8]
call fcn.1400161a0
mov qword [rbp + 0x2f0], 0xf
mov qword [rbp + 0x2e8], r12
mov byte [rbp + 0x2d8], 0
cmp qword [rbp + 0x1b0], 0x10
jb 0x140005e34
mov rcx, qword [rbp + 0x198]
call fcn.1400161a0
mov qword [rbp + 0x1b0], 0xf
mov qword [rbp + 0x1a8], r12
mov byte [rbp + 0x198], 0
cmp qword [rbp + 0x228], 0x10
jb 0x140005e63
mov rcx, qword [rbp + 0x210]
call fcn.1400161a0
mov qword [rbp + 0x228], 0xf
mov qword [rbp + 0x220], r12
mov byte [rbp + 0x210], 0
mov rcx, rbx
call fcn.1400161a8
nop
mov rcx, rdi
call fcn.1400161a8
nop
mov rsi, qword [rbp + 0x118]
mov rdi, qword [rsi]
cmp rdi, rdi
jne 0x140005f3d
mov rdi, qword [rsi + 8]
mov rbx, rdi
cmp byte [rdi + 0x69], 0
jne 0x140005f1b
nop
mov rdx, qword [rbx + 0x10]
lea rcx, [rbp + 0x110]
call fcn.140011820
mov rbx, qword [rbx]
cmp qword [rdi + 0x58], 0x10
jb 0x140005ed3
mov rcx, qword [rdi + 0x40]
call fcn.1400161a0
mov qword [rdi + 0x58], 0xf
mov qword [rdi + 0x50], r12
mov byte [rdi + 0x40], 0
cmp qword [rdi + 0x30], 0x10
jb 0x140005ef3
mov rcx, qword [rdi + 0x18]
call fcn.1400161a0
mov qword [rdi + 0x30], 0xf
mov qword [rdi + 0x28], r12
mov byte [rdi + 0x18], 0
mov rcx, rdi
call fcn.1400161a0
mov rdi, rbx
cmp byte [rbx + 0x69], 0
je 0x140005eb0
mov rsi, qword [rbp + 0x118]
mov qword [rsi + 8], rsi
mov rax, qword [rbp + 0x118]
mov qword [rax], rax
mov rax, qword [rbp + 0x118]
mov qword [rax + 0x10], rax
mov qword [rbp + 0x120], r12
jmp 0x140005fae
cmp rdi, rsi
je 0x140005fb5
mov r8, rdi
cmp byte [rdi + 0x69], 0
jne 0x140005f96
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x69], 0
jne 0x140005f6f
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
jne 0x140005f96
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x69], 0
je 0x140005f61
jmp 0x140005f96
mov rax, qword [rdi + 8]
cmp byte [rax + 0x69], 0
jne 0x140005f93
nop dword [rax]
cmp rdi, qword [rax + 0x10]
jne 0x140005f93
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x69], 0
je 0x140005f80
mov rdi, rax
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x110]
call fcn.14000f240
cmp rdi, rsi
jne 0x140005f42
mov rsi, qword [rbp + 0x118]
mov rcx, rsi
call fcn.1400161a0
jmp 0x140005ffe
mov qword [rbp + 0x138], r12
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x1c0]
call fcn.140016064
lea rdx, vtable.std::bad_alloc.0
mov qword [rbp + 0x1c0], rdx
lea rdx, [0x140035218]
lea rcx, [rbp + 0x1c0]
call fcn.140019760
int3
mov r13d, r14d
test r15, r15
je 0x140006011
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x140006011
mov r13d, r14d
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140006b0d
cmp ecx, 5
jne 0x140006195
lea rdi, [0x14002f044]
mov rsi, qword [rdx + 8]
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x140006b0d
lea r8, str._USBPRINT
mov edx, 0xc8
lea rcx, [rbp + 0x3a0]
call fcn.140018cb4
mov rdx, qword [r15 + 0x10]
lea rcx, [rbp + 0x3a0]
call fcn.140004180
test eax, eax
jne 0x140006183
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x50], r12d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor edx, edx
lea ecx, [rdx + 6]
lea r8d, [r9 + 2]
call qword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
mov edi, dword [rsp + 0x50]
mov ecx, edi
call fcn.140019248
mov rbx, rax
test rax, rax
jne 0x1400060c4
lea r13d, [rax + 2]
jmp 0x140006b0d
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
mov r9, rbx
xor edx, edx
lea ecx, [rdx + 6]
lea r8d, [rdx + 2]
call qword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
test eax, eax
jne 0x140006103
lea r13d, [rax + 2]
mov rcx, rbx
call fcn.140018234
jmp 0x140006b0d
mov eax, dword [rsp + 0x54]
test eax, eax
jle 0x140006176
lea rsi, [rbx + 0x18]
or rcx, 0xffffffffffffffff
mov r9, qword [rsi + 8]
test r9, r9
je 0x14000615f
mov rdx, qword [r15 + 0x20]
xor eax, eax
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rcx, r9
call fcn.140019300
test eax, eax
jne 0x140006157
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006157
lea r8d, [rax + 3]
lea rdx, [0x14002f048]
call fcn.140019300
test eax, eax
jne 0x140006170
mov eax, dword [rsp + 0x54]
or rcx, 0xffffffffffffffff
inc r12d
add rsi, 0x88
cmp r12d, eax
jge 0x140006176
jmp 0x140006113
mov r13d, 1
mov rcx, rbx
call fcn.140018234
jmp 0x140006b0d
mov r13d, 2
cmp eax, 1
cmove r13d, r12d
jmp 0x140006b0d
cmp ecx, 0xa
jle 0x140006b0d
lea rdi, [0x14002f09c]
mov rsi, qword [rdx + 8]
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
jne 0x140006b0d
mov rdx, qword [rdx + 0x48]
mov qword [rbp + 0x278], 7
mov qword [rbp + 0x270], r12
mov word [rbp + 0x260], r12w
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rbp + 0x260]
call fcn.14000bca0
nop
lea rdx, [rbp + 0x260]
lea rcx, [rbp + 0x3a0]
call fcn.1400080c0
nop
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x3a0]
call fcn.1400074b0
mov eax, dword [rsp + 0x50]
add eax, 0xa
mov dword [rsp + 0x50], eax
cmp ebx, eax
jne 0x140006ad0
mov ecx, 0x800
mov eax, 2
mul rcx
cmovo rax, rsi
mov rcx, rax
call fcn.140014724
mov qword [rsp + 0x58], rax
mov word [rbp + 0x158], r12w
xor eax, eax
mov qword [rbp + 0x15a], rax
mov dword [rbp + 0x162], eax
mov word [rbp + 0x166], ax
mov qword [rsp + 0x60], r12
xor r9d, r9d
xor edx, edx
lea r8d, [rsi + 3]
mov rcx, qword [r15 + 0x10]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov rdi, rax
cmp rax, rsi
je 0x140006ad0
mov word [rbp + 0x2420], r12w
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rbp + 0x2422]
call fcn.14001e0b0
lea r9, [rbp + 0x1f8]
lea r8, [0x14002f0a0]
lea rdx, str.Version
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
lea r14d, [rsi + 2]
test eax, eax
je 0x1400062f4
mov qword [rsp + 0x20], r12
mov r9d, 0x400
lea r8, [rbp + 0x2420]
mov edx, r14d
lea rcx, [rbp + 0x1f8]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
mov word [rbp + 0x2020], r12w
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rbp + 0x2022]
call fcn.14001e0b0
mov word [rbp + 0x7c0], r12w
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rbp + 0x7c2]
call fcn.14001e0b0
lea r9, [rbp + 0x1f8]
lea r8, str.DriverVer
lea rdx, str.Version
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x140006394
mov qword [rsp + 0x20], r12
mov r9d, 0x400
lea r8, [rbp + 0x2020]
mov edx, r14d
lea rcx, [rbp + 0x1f8]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
mov qword [rsp + 0x20], r12
mov r9d, 0x400
lea r8, [rbp + 0x7c0]
mov edx, 2
lea rcx, [rbp + 0x1f8]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
mov word [rbp + 0x1c20], r12w
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rbp + 0x1c22]
call fcn.14001e0b0
lea r9, [rbp + 0x1f8]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x1400063ef
mov qword [rsp + 0x20], r12
mov r9d, 0x400
lea r8, [rbp + 0x1c20]
xor edx, edx
lea rcx, [rbp + 0x1f8]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
mov word [rbp + 0xdd0], r12w
xor edx, edx
mov r8d, 0x3fe
lea rcx, [rbp + 0xdd2]
call fcn.14001e0b0
lea r9, [rbp + 0x1f8]
xor r8d, r8d
lea rdx, str.Microsoft.NTx86
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
test eax, eax
je 0x140006459
mov qword [rsp + 0x20], r12
mov r9d, 0x400
lea r8, [rbp + 0xdd0]
mov edx, 2
lea rcx, [rbp + 0x1f8]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
lea rcx, [rbp + 0xdd0]
call fcn.140019564
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov qword [rbp + 0x128], 7
mov qword [rbp + 0x120], r12
mov word [rbp + 0x110], r12w
xor eax, eax
mov rcx, rsi
lea rdi, [rbp + 0x2020]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rbp + 0x2020]
lea rcx, [rbp + 0x110]
call fcn.14000bca0
nop
mov ebx, dword [rbp + 0x120]
lea r8, [rbp + 0x110]
cmp qword [rbp + 0x128], 8
cmovae r8, qword [rbp + 0x110]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
lea r9d, [rbx + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rdi, eax
mov rcx, rdi
call fcn.140014724
mov rsi, rax
lea r8, [rbp + 0x110]
cmp qword [rbp + 0x128], 8
cmovae r8, qword [rbp + 0x110]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
lea r9d, [rbx + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rdx, rsi
lea rcx, [rbp + 0x2b0]
call fcn.140001820
nop
mov rcx, rsi
call fcn.1400161a8
lea rdx, [rbp + 0x2b0]
lea rcx, [rbp + 0x5b0]
call fcn.1400088d0
nop
lea rdx, [rbp + 0x15a]
lea rcx, [rbp + 0x5b0]
call fcn.140006cb0
mov edx, 0x2f
lea rcx, [rbp + 0x5b0]
call fcn.140007010
lea rdx, [rbp + 0x15e]
lea rcx, [rbp + 0x5b0]
call fcn.140006cb0
mov edx, 0x2f
lea rcx, [rbp + 0x5b0]
call fcn.140007010
lea rdx, [rbp + 0x158]
lea rcx, [rbp + 0x5b0]
call fcn.140006cb0
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x158]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov qword [rbp + 0x188], 7
mov qword [rbp + 0x180], r12
mov word [rbp + 0x170], r12w
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rbp + 0x7c0]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rbp + 0x7c0]
lea rcx, [rbp + 0x170]
call fcn.14000bca0
nop
mov ebx, dword [rbp + 0x180]
lea r8, [rbp + 0x170]
cmp qword [rbp + 0x188], 8
cmovae r8, qword [rbp + 0x170]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
lea r9d, [rbx + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rdi, eax
mov rcx, rdi
call fcn.140014724
mov rsi, rax
lea r8, [rbp + 0x170]
cmp qword [rbp + 0x188], 8
cmovae r8, qword [rbp + 0x170]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
lea r9d, [rbx + 1]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rdx, rsi
lea rcx, [rbp + 0x288]
call fcn.140001820
nop
mov rcx, rsi
call fcn.1400161a8
lea rdx, [rbp + 0x288]
lea rcx, [rbp + 0x20]
call fcn.1400088d0
nop
lea rdx, [rbp + 0x138]
lea rcx, [rbp + 0x20]
call fcn.140006e60
mov edx, 0x2e
lea rcx, [rbp + 0x20]
call fcn.140007010
lea rdx, [rbp + 0x148]
lea rcx, [rbp + 0x20]
call fcn.140006e60
mov edx, 0x2e
lea rcx, [rbp + 0x20]
call fcn.140007010
lea rdx, [rbp + 0x1e8]
lea rcx, [rbp + 0x20]
call fcn.140006e60
mov edx, 0x2e
lea rcx, [rbp + 0x20]
call fcn.140007010
lea rdx, [rsp + 0x68]
lea rcx, [rbp + 0x20]
call fcn.140006e60
mov rdx, qword [rbp + 0x138]
shl rdx, 0x10
add rdx, qword [rbp + 0x148]
shl rdx, 0x10
add rdx, qword [rbp + 0x1e8]
shl rdx, 0x10
add rdx, qword [rsp + 0x68]
mov dword [rbp - 0x80], 6
lea rax, [0x14002f120]
mov qword [rbp - 0x38], rax
lea rax, str.UNIDRV.DLL
mov qword [rbp - 0x68], rax
lea rax, str.UNIDRVUI.DLL
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x70], r12
lea rax, str.UNIDRV.HLP
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x30], r12
mov rax, qword [rsp + 0x60]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rdx
lea rax, [rbp + 0x1c20]
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], r12
lea rax, [rbp + 0xdd0]
mov qword [rbp - 8], rax
lea rax, [rbp + 0x2420]
mov qword [rbp], rax
mov rax, qword [r15 + 0x20]
mov qword [rbp - 0x40], rax
mov rax, qword [r15 + 0x18]
mov qword [rbp - 0x78], rax
mov rax, qword [r15 + 0x28]
mov qword [rbp - 0x60], rax
xor edx, edx
mov r8d, 0x1000
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
call fcn.14001e0b0
mov r9d, 0x14
lea r8, str.UNIRES.DLL
mov edx, 0x1000
mov rcx, rdi
call fcn.140018274
mov word [rdi + 0x14], r12w
lea rcx, [rdi + 0x16]
mov word [rcx], r12w
mov r9d, 0x18
lea r8, str.STDNAMES.GPD
mov edx, 0x1000
call fcn.140018274
mov word [rdi + 0x2e], r12w
lea rsi, [rdi + 0x30]
mov word [rsi], r12w
mov r8, qword [r15 + 0x30]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasw ax, word [rdi]
not rcx
lea r9, [rcx + rcx - 2]
mov edx, 0x1000
mov rcx, rsi
call fcn.140018274
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, qword [r15 + 0x30]
repne scasw ax, word [rdi]
not rcx
lea ebx, [rcx + rcx + 0x30]
mov eax, ebx
shr eax, 1
dec eax
mov rcx, qword [rsp + 0x58]
mov word [rcx + rax*2], r12w
lea eax, [rbx + 2]
shr eax, 1
dec eax
lea rsi, [rcx + rax*2]
mov word [rsi], r12w
mov r8, qword [r15 + 0x38]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasw ax, word [rdi]
not rcx
lea r9, [rcx + rcx - 2]
mov edx, 0x1000
mov rcx, rsi
call fcn.140018274
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, qword [r15 + 0x38]
repne scasw ax, word [rdi]
not rcx
lea ebx, [rbx + rcx*2]
mov eax, ebx
shr eax, 1
dec eax
mov rcx, qword [rsp + 0x58]
mov word [rcx + rax*2], r12w
lea eax, [rbx + 2]
shr eax, 1
dec eax
lea rsi, [rcx + rax*2]
mov word [rsi], r12w
mov r8, qword [r15 + 0x40]
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, r8
repne scasw ax, word [rdi]
not rcx
lea r9, [rcx + rcx - 2]
mov edx, 0x1000
mov rcx, rsi
call fcn.140018274
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
mov rdi, qword [r15 + 0x40]
repne scasw ax, word [rdi]
not rcx
lea ebx, [rbx + rcx*2]
mov eax, ebx
shr eax, 1
dec eax
mov rcx, qword [rsp + 0x58]
mov word [rcx + rax*2], r12w
add ebx, 2
mov eax, ebx
shr eax, 1
dec eax
lea r10, [rcx + rax*2]
mov word [r10], r12w
mov eax, dword [rsp + 0x50]
cmp eax, 0xa
jle 0x1400069bc
add r15, 0x50
add eax, 0xfffffff6
mov r14d, eax
mov r13, rcx
nop dword [rax + rax]
mov r8, qword [r15]
xor eax, eax
mov rcx, rsi
mov rdi, r8
repne scasw ax, word [rdi]
not rcx
lea r9, [rcx + rcx - 2]
mov edx, 0x1000
mov rcx, r10
call fcn.140018274
xor eax, eax
mov rcx, rsi
mov rdi, qword [r15]
repne scasw ax, word [rdi]
not rcx
lea ebx, [rbx + rcx*2 - 2]
mov eax, ebx
shr eax, 1
dec eax
mov word [r13 + rax*2], r12w
add ebx, 2
mov eax, ebx
shr eax, 1
dec eax
lea r10, [r13 + rax*2]
mov word [r10], r12w
add r15, 8
dec r14
jne 0x140006950
mov r13d, dword [rsp + 0x54]
mov r14d, 1
mov rcx, qword [rsp + 0x58]
mov qword [rbp - 0x48], rcx
lea r8, [rbp - 0x80]
mov edx, 6
xor ecx, ecx
call qword [sym.imp.WINSPOOL.DRV_AddPrinterDriverW]
mov edi, eax
mov rcx, qword [rsp + 0x58]
call fcn.1400161a8
test edi, edi
cmovne r13d, r14d
lea rcx, [rbp + 0xb0]
call fcn.140008980
lea rdi, vtable.std::ios_base.0
mov qword [rbp + 0xb0], rdi
lea rcx, [rbp + 0xb0]
call fcn.140015814
nop
cmp qword [rbp + 0x2a0], 0x10
jb 0x140006a20
mov rcx, qword [rbp + 0x288]
call fcn.1400161a0
mov qword [rbp + 0x2a0], 0xf
mov qword [rbp + 0x298], r12
mov byte [rbp + 0x288], 0
cmp qword [rbp + 0x188], 8
jb 0x140006a4f
mov rcx, qword [rbp + 0x170]
call fcn.1400161a0
mov qword [rbp + 0x188], 7
mov qword [rbp + 0x180], r12
mov word [rbp + 0x170], r12w
lea rcx, [rbp + 0x640]
call fcn.140008980
mov qword [rbp + 0x640], rdi
lea rcx, [rbp + 0x640]
call fcn.140015814
nop
cmp qword [rbp + 0x2c8], 0x10
jb 0x140006a9f
mov rcx, qword [rbp + 0x2b0]
call fcn.1400161a0
mov qword [rbp + 0x2c8], 0xf
mov qword [rbp + 0x2c0], r12
mov byte [rbp + 0x2b0], 0
cmp qword [rbp + 0x128], 8
jb 0x140006ad7
mov rcx, qword [rbp + 0x110]
call fcn.1400161a0
jmp 0x140006ad7
lea rdi, vtable.std::ios_base.0
lea rcx, [rbp + 0x430]
call fcn.140008170
mov qword [rbp + 0x430], rdi
lea rcx, [rbp + 0x430]
call fcn.140015814
nop
cmp qword [rbp + 0x278], 8
jb 0x140006b0d
mov rcx, qword [rbp + 0x260]
call fcn.1400161a0
mov eax, r13d
mov rcx, qword [rbp + 0x2820]
xor rcx, rsp
call fcn.140015f90
lea r11, [rsp + 0x2930]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret