Function at 0x140040900
Capabilities:
Check if file exists
Delete registry value
Get common file path
Persist via run registry key

Disassembly:
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xfb0
mov qword [rsp + 0x258], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov rax, qword [0x140260d50]
xor rax, rsp
mov qword [rsp + 0xfa0], rax
mov r14, rcx
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x168], rcx
xor r8d, r8d
lea rdx, str.CUNINSTALLERDlg::CleanupThread
lea rcx, [r11 - 0xe18]
call fcn.14000b870
nop
mov r13d, 1
mov dword [rsp + 0x5c], r13d
mov dword [rsp + 0xb4], r13d
mov dword [rsp + 0x74], r13d
mov dword [rsp + 0x60], r13d
mov eax, r13d
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0x130], r13d
xor r15d, r15d
mov dword [rsp + 0x78], r15d
mov dword [rsp + 0xe0], r15d
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x1400409bf
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x160], rax
call fcn.140050920
mov rdi, qword [rax + 8]
mov qword [rsp + 0xc0], rdi
call fcn.14000cc50
mov dword [rsp + 0x198], eax
mov dword [rsp + 0x134], r13d
mov dword [rsp + 0x14c], r13d
mov dword [rsp + 0x94], r13d
mov eax, r13d
mov dword [rsp + 0x90], eax
lea rcx, [rdi + 0xa60]
or rbx, 0xffffffffffffffff
mov r8, rbx
xor edx, edx
call fcn.14004f634
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.14003f210
call fcn.140050920
mov rcx, qword [rax + 8]
call fcn.140059edc
nop
mov dword [rdi + 0xa8c], r13d
mov dword [rdi + 0x2d8], r13d
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140040a6f
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0xf8], rsi
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140040aa1
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x140], rdi
mov ecx, 3
call fcn.14004cbb8
test rax, rax
je 0x140040ae0
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x140]
call fcn.1400012a0
mov rdi, qword [rsp + 0x140]
mov ecx, 0x20
call fcn.14004cbb8
test rax, rax
je 0x140040b0d
mov r8d, 0x20
mov rdx, rax
lea rcx, [rsp + 0xf8]
call fcn.1400012a0
mov rsi, qword [rsp + 0xf8]
mov qword [rsp + 0x20], r15
mov r9d, 0x34
mov r8, rdi
mov rdx, rsi
mov rcx, r14
call fcn.14003e160
mov esi, eax
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
cmp esi, 7
jne 0x140040bc2
lea r8, str.cancel
lea edx, [rsi - 5]
lea rcx, [rsp + 0x1c0]
call fcn.14000ba50
nop
lea rdx, [rdi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040b6e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040b91
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.14000b6e0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140040bbd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140042e4f
mov dword [rsp + 0x54], r15d
mov dword [rsp + 0x58], r15d
mov qword [rsp + 0x80], r15
cmp dword [0x140280b48], 0
je 0x140040bfb
lea rcx, [r14 + 0x690]
mov edx, 5
call fcn.14005cdc0
mov rcx, qword [r14 + 0x6d0]
call qword [sym.imp.USER32.dll_SetForegroundWindow]
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140040c1b
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x120], rdi
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140040c4d
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xd0], rbx
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140040c7f
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0xf0], rsi
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140040cb1
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x178], rax
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140040ce3
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea r12, [rax + 0x18]
mov qword [rsp + 0x88], r12
mov ecx, 0x3e
call fcn.14004cbb8
test rax, rax
je 0x140040d22
mov r8d, 0x3e
mov rdx, rax
lea rcx, [rsp + 0x120]
call fcn.1400012a0
mov rdi, qword [rsp + 0x120]
mov ecx, 0x3f
call fcn.14004cbb8
test rax, rax
je 0x140040d4f
mov r8d, 0x3f
mov rdx, rax
lea rcx, [rsp + 0xd0]
call fcn.1400012a0
mov rbx, qword [rsp + 0xd0]
mov ecx, 0x41
call fcn.14004cbb8
test rax, rax
je 0x140040d74
mov r8d, 0x41
mov rdx, rax
lea rcx, [rsp + 0x178]
call fcn.1400012a0
mov ecx, 0x40
call fcn.14004cbb8
test rax, rax
je 0x140040da1
mov r8d, 0x40
mov rdx, rax
lea rcx, [rsp + 0xf0]
call fcn.1400012a0
mov rsi, qword [rsp + 0xf0]
mov ecx, 0x42
call fcn.14004cbb8
test rax, rax
je 0x140040dce
mov r8d, 0x42
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.1400012a0
mov r12, qword [rsp + 0x88]
cmp dword [0x140280b48], 0
je 0x140040dfb
lea rcx, [r14 + 0x690]
mov edx, 0x3f2
call fcn.14005cb50
mov qword [rsp + 0x80], rax
mov rdx, rdi
mov rcx, rax
call fcn.14005ccb0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov rcx, qword [r14 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsp + 0xa8], rax
mov dword [rsp + 0x12c], eax
cmp dword [0x140280b48], 0
je 0x140040eb9
xor r9d, r9d
mov r8, r13
mov edx, 0x402
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rsp + 0xa8]
mov eax, 0x14
test ecx, ecx
jle 0x140040e94
cdq
idiv ecx
test eax, eax
jg 0x140040e99
mov eax, 0x66666667
imul ecx
mov r13d, edx
sar r13d, 3
mov eax, r13d
shr eax, 0x1f
add r13d, eax
mov eax, 2
cmp r13d, 1
cmovle r13d, eax
mov dword [rsp + 0x54], r13d
mov dword [rsp + 0x58], r13d
mov eax, 1
jmp 0x140040e99
mov dword [rsp + 0x58], r15d
movsxd r8, eax
xor r9d, r9d
mov edx, 0x404
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [rsp + 0xa8]
mov r13d, r15d
test eax, eax
jle 0x1400410fb
lea rax, [r14 + 0x118]
mov qword [rsp + 0x170], rax
mov edx, r13d
mov rcx, rax
call fcn.14005a46c
mov r14, rax
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x140040f77
mov rax, qword [rsp + 0x68]
lea r8, [rax + 0x690]
mov rcx, rax
call fcn.140038890
mov r15d, eax
cmp dword [0x140280b48], 0
je 0x140040f71
mov eax, dword [rsp + 0x58]
test eax, eax
jg 0x140040f6b
xor r9d, r9d
xor r8d, r8d
mov edx, 0x408
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0x14
jge 0x140040f71
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rdi
mov rcx, qword [rsp + 0x80]
call fcn.14005ccb0
mov eax, dword [rsp + 0x54]
jmp 0x140040f6d
dec eax
mov dword [rsp + 0x58], eax
cmp r15d, 2
je 0x140040f95
inc r13d
cmp r13d, dword [rsp + 0xa8]
jge 0x1400410f3
mov rax, qword [rsp + 0x170]
jmp 0x140040ed3
movzx eax, word [r14 + 2]
shl eax, 0x10
or eax, 1
mov dword [r14], eax
call fcn.140050920
mov rcx, qword [rax + 8]
mov dword [rcx + 0x270], 1
lea r8, str.In_case_of_busy
mov edx, 2
lea rcx, [rsp + 0x1c0]
call fcn.14000ba50
nop
lea rdx, [r12 - 0x18]
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040ff0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x178]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041013
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041036
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041059
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004107c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x140]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004109f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400410c2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.14000b6e0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x1400410ee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140042e4f
xor r15d, r15d
mov r14, qword [rsp + 0x68]
cmp dword [0x140280b48], 0
je 0x14004112d
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 0x14]
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rbx
mov rcx, qword [rsp + 0x80]
call fcn.14005ccb0
mov dword [rsp + 0x150], r15d
mov rcx, qword [rsp + 0xa8]
mov edi, ecx
mov dword [rsp + 0x70], r15d
mov dword [rsp + 0xd8], r15d
mov r13d, r15d
mov qword [rsp + 0x158], r15
cmp dword [0x140280b48], 0
je 0x1400411d1
mov eax, 0x14
test ecx, ecx
jle 0x14004119d
cdq
idiv ecx
test eax, eax
jg 0x1400411a2
mov eax, 0x66666667
imul ecx
mov ecx, edx
sar ecx, 3
mov eax, ecx
shr eax, 0x1f
add ecx, eax
cmp ecx, 1
mov eax, 2
cmovle ecx, eax
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x58], ecx
mov eax, 1
jmp 0x1400411a2
mov dword [rsp + 0x58], r15d
movsxd r8, eax
xor r9d, r9d
mov edx, 0x404
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
lea rax, [r14 + 0x690]
mov qword [rsp + 0x158], rax
mov rcx, qword [rsp + 0xa8]
mov r14d, r15d
test ecx, ecx
jle 0x140041806
mov r15, qword [rsp + 0x68]
add r15, 0x118
xor r12d, r12d
nop dword [rax + rax]
mov edx, r14d
mov rcx, r15
call fcn.14005a46c
mov r13, rax
mov dword [rsp + 0x148], r12d
dec edi
mov dword [rsp + 0xdc], edi
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14004162b
lea r8, [rsp + 0x148]
mov edx, dword [rax]
call fcn.140038c00
mov r12d, eax
test eax, eax
jne 0x1400412da
movzx eax, word [r13 + 2]
shl eax, 0x10
or eax, 0x10
mov dword [r13], eax
mov eax, dword [rsp + 0x78]
cmp dword [rsp + 0x148], 1
mov ecx, 1
cmove eax, ecx
mov dword [rsp + 0x78], eax
cmp dword [0x140280b48], r12d
je 0x1400415fe
mov esi, dword [rsp + 0x58]
test esi, esi
jg 0x1400412cf
xor r9d, r9d
xor r8d, r8d
mov edx, 0x408
mov r12, qword [rsp + 0x68]
mov rcx, qword [r12 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0x28
jge 0x1400415fe
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [r12 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rbx
mov rcx, qword [rsp + 0x80]
call fcn.14005ccb0
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x58], eax
jmp 0x1400415fe
dec esi
mov dword [rsp + 0x58], esi
jmp 0x1400415fe
call fcn.140050920
mov rcx, qword [rax + 8]
mov dword [rcx + 0x270], 1
call fcn.14004cde4
mov rcx, rax
xor edi, edi
mov eax, edi
test rcx, rcx
setne al
test eax, eax
je 0x140041787
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa0], rax
call fcn.14004cde4
mov rcx, rax
mov eax, edi
test rcx, rcx
setne al
test eax, eax
je 0x14004177c
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0xe8], rsi
call fcn.14004cde4
mov rcx, rax
mov eax, edi
test rcx, rcx
setne al
test eax, eax
je 0x140041771
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0xc8], rdi
movzx eax, word [r13 + 2]
shl eax, 0x10
or eax, 1
mov dword [r13], eax
mov qword [rsp + 0x40], r13
xor eax, eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rax
lea r9d, [rax + 4]
xor r8d, r8d
mov edx, r14d
mov rcx, r15
call fcn.14005aa6c
mov dword [rsp + 0x150], 1
cmp r12d, 3
jne 0x1400413f9
lea ecx, [r12 + 8]
call fcn.14004cbb8
test rax, rax
je 0x1400413e3
lea r8d, [r12 + 8]
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.1400012a0
mov rdi, qword [rsp + 0xc8]
mov r8, qword [r13 + 0x10]
mov rdx, rdi
lea rcx, [rsp + 0xa0]
call fcn.140006620
jmp 0x140041459
cmp r12d, 4
jne 0x140041415
lea ecx, [r12 + 0xc]
call fcn.14004cbb8
test rax, rax
je 0x140041442
lea r8d, [r12 + 0xc]
jmp 0x14004142a
mov ecx, 4
call fcn.14004cbb8
test rax, rax
je 0x140041442
mov r8d, 4
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.1400012a0
mov rdi, qword [rsp + 0xc8]
mov r8, qword [r13 + 0x10]
mov r9, r8
mov rdx, rdi
lea rcx, [rsp + 0xa0]
call fcn.140006620
mov ecx, 3
call fcn.14004cbb8
cmp dword [rsp + 0xdc], 0
jle 0x1400416b9
test rax, rax
je 0x140041494
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.1400012a0
mov rsi, qword [rsp + 0xe8]
mov ecx, 0x12
call fcn.14004cbb8
test rax, rax
je 0x1400414c1
mov r8d, 0x12
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.1400012a0
mov rdi, qword [rsp + 0xc8]
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
lea rcx, [rsp + 0xa0]
call fcn.140006350
mov r12, qword [rsp + 0x68]
lea r11, [r12 + 0x690]
mov qword [rsp + 0x20], r11
mov r9d, 0x34
mov r8, rsi
mov rdx, qword [rsp + 0xa0]
mov rcx, r12
call fcn.14003e160
cmp eax, 7
je 0x140041641
cmp dword [0x140280b48], 0
je 0x14004158b
mov rax, qword [rsp + 0x158]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SetActiveWindow]
mov rcx, rax
call fcn.140054b0c
mov esi, dword [rsp + 0x58]
test esi, esi
jg 0x140041585
xor r9d, r9d
xor r8d, r8d
mov edx, 0x408
mov rcx, qword [r12 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0x28
jge 0x14004158b
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [r12 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rbx
mov rcx, qword [rsp + 0x80]
call fcn.14005ccb0
mov eax, dword [rsp + 0x54]
mov dword [rsp + 0x58], eax
jmp 0x14004158b
dec esi
mov dword [rsp + 0x58], esi
lea rdx, [rdi - 0x18]
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400415aa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400415cd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400415ef
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, dword [rsp + 0xdc]
mov rbx, qword [rsp + 0xd0]
mov qword [rsp + 0x40], r13
xor eax, eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rax
lea r9d, [rax + 4]
xor r8d, r8d
mov edx, r14d
mov rcx, r15
call fcn.14005aa6c
xor r12d, r12d
inc r14d
cmp r14d, dword [rsp + 0xa8]
jge 0x140041792
jmp 0x1400411f0
mov esi, 1
lea rdx, [rdi - 0x18]
or r15, 0xffffffffffffffff
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041666
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004168a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400416ad
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rsp + 0xd8]
jmp 0x1400417a2
test rax, rax
je 0x1400416dc
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.1400012a0
mov rsi, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x68]
lea rax, [rcx + 0x690]
mov qword [rsp + 0x20], rax
mov r9d, 0x30
mov r8, rsi
mov rdx, qword [rsp + 0xa0]
call fcn.14003e160
mov ebx, 1
lea rdx, [rdi - 0x18]
or r15, 0xffffffffffffffff
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041728
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004174c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004179e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14004179e
mov ecx, 0x80004005
call fcn.140001000
nop
mov ecx, 0x80004005
call fcn.140001000
nop
mov ecx, 0x80004005
call fcn.140001000
int3
mov esi, dword [rsp + 0x70]
mov ebx, esi
or r15, 0xffffffffffffffff
jmp 0x1400417a5
mov esi, dword [rsp + 0x70]
xor r12d, r12d
mov r13d, r12d
cmp r14d, 1
mov r14d, 1
cmovge r13d, r14d
cmp dword [rsp + 0x78], r14d
jne 0x1400417dc
lea rcx, [rsp + 0x740]
call fcn.14001a050
cmp eax, r14d
jne 0x1400417dc
lea rcx, [rsp + 0x740]
call fcn.140019b30
test esi, esi
jne 0x1400417f9
test ebx, ebx
jne 0x1400417f9
mov rsi, qword [rsp + 0xf0]
mov r12, qword [rsp + 0x88]
xor r15d, r15d
jmp 0x140041806
mov r12d, dword [rsp + 0xe0]
jmp 0x140042838
mov r14, qword [rsp + 0x68]
lea rbx, [r14 + 0x690]
mov qword [rsp + 0x158], rbx
mov rcx, rbx
call fcn.14003d0f0
mov dword [rsp + 0xe0], eax
test r13d, r13d
mov r13, qword [rsp + 0xc0]
jne 0x140041abe
cmp dword [r13 + 0xa8c], 0
je 0x14004185c
call fcn.14000fc40
lea rcx, str.SPOOLER
call fcn.14000fe40
mov dword [r13 + 0xa8c], r15d
call fcn.14003d5c0
test eax, eax
jne 0x140041abe
call fcn.14004cde4
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140041889
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x190], rsi
call fcn.14004cde4
mov rcx, rax
test rax, rax
mov eax, 0
setne al
test eax, eax
jne 0x1400418bd
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x1e0], rdi
mov r12d, 2
mov ecx, r12d
call fcn.14004cbb8
test rax, rax
je 0x1400418fd
mov r8d, r12d
mov rdx, rax
lea rcx, [rsp + 0x190]
call fcn.1400012a0
mov rsi, qword [rsp + 0x190]
mov ecx, 3
call fcn.14004cbb8
test rax, rax
je 0x14004192a
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x1e0]
call fcn.1400012a0
mov rdi, qword [rsp + 0x1e0]
mov qword [rsp + 0x20], rbx
mov r9d, 0x30
mov r8, rdi
mov rdx, rsi
mov rcx, r14
call fcn.14003e160
call fcn.140050920
mov rcx, qword [rax + 8]
mov dword [rcx + 0x270], 1
lea rdx, [rdi - 0x18]
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041975
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x190]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041998
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400419bb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x178]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400419de
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041a01
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041a24
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041a47
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x140]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041a6a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041a8d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.14000b6e0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x140041ab9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140042e4f
cmp dword [0x140280b48], 0
je 0x140041b0e
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 0x28]
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rsi
mov rdi, qword [rsp + 0x80]
mov rcx, rdi
call fcn.14005ccb0
xor r9d, r9d
mov edx, 0x404
lea r8d, [r9 + 0x14]
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x140041b16
mov rdi, qword [rsp + 0x80]
mov rcx, r14
call fcn.14003a3e0
mov dword [rsp + 0xb4], eax
mov dword [rsp + 0x70], eax
cmp dword [0x140280b48], 0
je 0x140041b55
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rsi
mov rcx, rdi
call fcn.14005ccb0
xor eax, eax
lea rdi, str.CAPT
mov rsi, qword [r13 + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x140041b74
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x140041ba0
cmp dword [r13 + 0x818], 0
je 0x140041ba0
call fcn.140029280
mov ecx, dword [rsp + 0x94]
test eax, eax
cmove ecx, r15d
mov dword [rsp + 0x94], ecx
mov rcx, rbx
call fcn.14003b8e0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x78], eax
mov qword [rsp + 0x110], r15
mov ecx, 0x28
call fcn.14004ca70
test rax, rax
je 0x140042e0e
mov qword [rsp + 0x108], rax
mov qword [rax], rax
mov rcx, qword [rsp + 0x108]
mov qword [rcx + 8], rcx
mov rcx, qword [rsp + 0x108]
mov qword [rcx + 0x10], rcx
mov rax, qword [rsp + 0x108]
mov byte [rax + 0x20], 1
mov rax, qword [rsp + 0x108]
mov byte [rax + 0x21], 1
mov rax, qword [rsp + 0x108]
mov rsi, qword [rax + 8]
mov rdi, rsi
or r15, 0xffffffffffffffff
cmp byte [rsi + 0x21], 0
jne 0x140041c74
nop
mov rdx, qword [rdi + 0x10]
lea rcx, [rsp + 0x100]
call fcn.140046750
mov rdi, qword [rdi]
mov rdx, qword [rsi + 0x18]
sub rdx, 0x18
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140041c53
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, rsi
call fcn.14004cabc
mov rsi, rdi
cmp byte [rdi + 0x21], 0
je 0x140041c20
mov r12, qword [rsp + 0x88]
mov rax, qword [rsp + 0x108]
mov qword [rax + 8], rax
mov rax, qword [rsp + 0x108]
mov qword [rax], rax
mov rax, qword [rsp + 0x108]
mov qword [rax + 0x10], rax
xor r13d, r13d
mov qword [rsp + 0x110], r13
mov dword [rsp + 0xb0], r13d
mov dword [rsp + 0xbc], r13d
lea rax, [rsp + 0xbc]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [r13 + 3]
call qword [sym.imp.WINSPOOL.DRV_EnumPrinterDriversW]
test eax, eax
jne 0x140041db3
mov dil, 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140042179
mov edx, dword [rsp + 0xb0]
lea ecx, [rax - 0x3a]
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rsi, rax
test rax, rax
je 0x140042179
lea rax, [rsp + 0xbc]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov ecx, dword [rsp + 0xb0]
mov dword [rsp + 0x20], ecx
mov r9, rsi
xor edx, edx
xor ecx, ecx
lea r8d, [r13 + 3]
call qword [sym.imp.WINSPOOL.DRV_EnumPrinterDriversW]
test eax, eax
je 0x140041da1
mov edi, r13d
cmp dword [rsp + 0xbc], r13d
jbe 0x140041d9e
nop word [rax + rax]
mov eax, edi
lea rcx, [rax + rax*4]
add rcx, rcx
lea rdx, [rsi + rcx*8 + 0x40]
lea rcx, [rsp + 0x100]
call fcn.1400471a0
mov r8, rax
lea rdx, [rsp + 0x288]
lea rcx, [rsp + 0x100]
call fcn.140046d10
inc edi
cmp edi, dword [rsp + 0xbc]
jb 0x140041d60
xor dil, dil
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
test dil, dil
jne 0x140042179
call fcn.140050920
mov r14, qword [rax + 8]
mov qword [rsp + 0x98], r14
test r14, r14
je 0x140042179
cmp qword [r14 + 0x250], r13
je 0x140042179
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x320]
call fcn.140193010
mov edx, 0x104
lea rcx, [rsp + 0x320]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rcx, [rsp + 0x320]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
xor r8d, r8d
mov r11, qword [r14 + 0x250]
mov rax, r11
mov ebx, r8d
mov r10, qword [rsp + 0x108]
nop dword [rax + rax]
xor edx, edx
lea rdi, [0x1402145dc]
mov rsi, qword [rax]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x140041e4b
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
setne al
test al, al
je 0x14004216e
mov rdi, qword [r10 + 8]
mov rsi, r10
cmp byte [rdi + 0x21], 0
jne 0x140041ebc
mov r9, qword [rbx + r11]
test r9, r9
setne r8b
test r8d, r8d
je 0x140041fa7
mov rax, qword [rdi + 0x18]
mov rdx, r9
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140041e99
add rax, 2
test cx, cx
jne 0x140041e83
xor eax, eax
jmp 0x140041e9e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sets al
test al, al
je 0x140041ead
mov rdi, qword [rdi + 0x10]
jmp 0x140041eb3
mov rsi, rdi
mov rdi, qword [rdi]
cmp byte [rdi + 0x21], 0
je 0x140041e70
xor r8d, r8d
mov qword [rsp + 0x218], rsi
cmp rsi, r10
je 0x140041f14
mov rdx, qword [rsi + 0x18]
mov eax, r8d
test rdx, rdx
setne al
test eax, eax
je 0x140041fb2
mov rax, qword [rbx + r11]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140041efc
add rax, 2
test cx, cx
jne 0x140041ee5
mov eax, r8d
jmp 0x140041f01
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sets al
test al, al
jne 0x140041f14
lea rax, [rsp + 0x218]
jmp 0x140041f24
mov qword [rsp + 0x200], r10
lea rax, [rsp + 0x200]
mov rax, qword [rax]
mov qword [rsp + 0x268], rax
cmp rax, r10
jne 0x140041f87
lea rdi, [rbx + r11 + 8]
mov rax, qword [rdi]
cmp dword [rax - 8], 1
jle 0x140041f4d
mov edx, dword [rax - 0x10]
mov rcx, rdi
call fcn.1400016c0
mov r9, qword [rdi]
lea r8, [rsp + 0x320]
lea rdx, [0x140212328]
lea rcx, [rsp + 0x530]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rsp + 0x530]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x140041fbd
mov r10, qword [rsp + 0x108]
inc r13d
add rbx, 0x10
mov r11, qword [r14 + 0x250]
movsxd rax, r13d
shl rax, 4
add rax, r11
xor r8d, r8d
jmp 0x140041e30
mov ecx, 0x80004005
call fcn.140001000
int3
mov ecx, 0x80004005
call fcn.140001000
int3
call fcn.14000cc50
cmp eax, 0xa
jne 0x140041fd8
call fcn.14000fc40
lea rcx, str.SPOOLER
call fcn.14000fe40
xor ecx, ecx
mov r14d, ecx
mov r8, qword [rsp + 0x98]
mov r8, qword [r8 + 0x250]
mov rax, r8
mov r13d, ecx
mov r10, qword [rsp + 0x108]
nop word [rax + rax]
xor edx, edx
lea rdi, [0x1402145dc]
mov rsi, qword [rax]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x14004201b
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
setne al
test al, al
je 0x14004216e
lea rbx, [r13 + r8]
mov rdi, qword [r10 + 8]
mov r9, r10
cmp byte [rdi + 0x21], 0
jne 0x14004207c
mov r8, qword [rbx]
nop dword [rax]
test r8, r8
je 0x140042158
mov rax, qword [rdi + 0x18]
mov rsi, r8
sub rsi, rax
movzx edx, word [rax]
movzx ecx, word [rax + rsi]
sub edx, ecx
jne 0x140042066
add rax, 2
test ecx, ecx
jne 0x140042053
test edx, edx
jns 0x140042070
mov rdi, qword [rdi + 0x10]
jmp 0x140042076
mov r9, rdi
mov rdi, qword [rdi]
cmp byte [rdi + 0x21], 0
je 0x140042040
mov qword [rsp + 0x210], r9
cmp r9, r10
je 0x1400420c1
mov rdi, qword [r9 + 0x18]
test rdi, rdi
je 0x140042163
mov rax, qword [rbx]
sub rdi, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x1400420b3
add rax, 2
test ecx, ecx
jne 0x1400420a0
test edx, edx
js 0x1400420c1
lea rax, [rsp + 0x210]
jmp 0x1400420d1
mov qword [rsp + 0x1f0], r10
lea rax, [rsp + 0x1f0]
mov rax, qword [rax]
mov qword [rsp + 0x260], rax
cmp rax, r10
jne 0x140042133
mov rax, qword [rbx]
cmp dword [rax - 8], 1
jle 0x1400420f5
mov edx, dword [rax - 0x10]
mov rcx, rbx
call fcn.1400016c0
mov rsi, qword [rbx]
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 0x250]
lea rdi, [rax + r13 + 8]
mov rax, qword [rdi]
cmp dword [rax - 8], 1
jle 0x140042120
mov edx, dword [rax - 0x10]
mov rcx, rdi
call fcn.1400016c0
mov rdx, rsi
mov rcx, qword [rdi]
call fcn.1400199f0
mov r10, qword [rsp + 0x108]
inc r14d
add r13, 0x10
mov rax, qword [rsp + 0x98]
mov r8, qword [rax + 0x250]
movsxd rax, r14d
shl rax, 4
add rax, r8
jmp 0x140042000
mov ecx, 0x80004005
call fcn.140001000
int3
mov ecx, 0x80004005
call fcn.140001000
int3
mov rbx, qword [rsp + 0x158]
xor r13d, r13d
mov rdi, qword [rsp + 0x68]
cmp dword [0x140280b48], 0
je 0x140042228
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 0x50]
mov rcx, qword [rdi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rsi, qword [rsp + 0x80]
mov rcx, rsi
call fcn.14005ccb0
xor r9d, r9d
mov edx, 0x404
lea r8d, [r9 + 3]
mov rcx, qword [rdi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [0x140280b48], 0
je 0x140042228
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rdi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, rsi
call fcn.14005ccb0
cmp dword [0x140280b48], 0
je 0x140042228
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rdi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, rsi
call fcn.14005ccb0
mov rdx, rbx
mov rcx, rdi
call fcn.14003e600
mov esi, eax
mov dword [rsp + 0x54], eax
call fcn.14004cde4
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x140042259
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x98], rbx
mov r14, qword [rsp + 0xc0]
mov r14, qword [r14 + 0x210]
lea rcx, [r14 - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x1400423ea
cmp dword [rdi + 0x10], 0
jl 0x1400422d7
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400422d7
call fcn.140001620
mov rbx, rax
mov ecx, r15d
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1400422be
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rbx, 0x18
mov qword [rsp + 0x98], rbx
mov r12, qword [rsp + 0x88]
jmp 0x1400423ea
movsxd rsi, dword [r14 - 0x10]
test esi, esi
jne 0x14004234c
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x1400423e6
cmp dword [rdi + 0x10], 0
jge 0x140042310
cmp dword [rbx - 0xc], 0
jge 0x140042303
mov ecx, 0x80070057
call fcn.140001000
int3
mov dword [rbx - 0x10], r13d
mov word [rbx], r13w
jmp 0x1400423e6
mov eax, r15d
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14004232a
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x98], rbx
mov r12, qword [rsp + 0x88]
jmp 0x1400423e6
test r14, r14
jne 0x14004235c
mov ecx, 0x80070057
call fcn.140001000
int3
mov r15d, dword [rbx - 0x10]
mov r13, r14
sub r13, rbx
sar r13, 1
test esi, esi
jns 0x140042378
mov ecx, 0x80070057
call fcn.140001000
int3
mov ecx, 1
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, ecx
jge 0x1400423a0
mov edx, esi
lea rcx, [rsp + 0x98]
call fcn.1400015c0
mov rbx, qword [rsp + 0x98]
lea rdi, [rsi + rsi]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
mov r9, rdi
add rdx, rdx
cmp r13, r15
ja 0x1400423c1
lea r8, [rbx + r13*2]
call fcn.14018e5f0
jmp 0x1400423c9
mov r8, r14
call fcn.14018e7d0
cmp esi, dword [rbx - 0xc]
jg 0x1400423db
mov dword [rbx - 0x10], esi
xor r13d, r13d
mov word [rbx + rdi], r13w
jmp 0x1400423e6
mov ecx, 0x80070057
call fcn.140001000
int3
mov esi, dword [rsp + 0x54]
cmp dword [rsp + 0xe0], 0
je 0x1400424da
test esi, esi
je 0x1400424da
xor eax, eax
lea rdi, [0x140216614]
mov rsi, rbx
mov ecx, 3
repe cmpsw word [rsi], word [rdi]
je 0x14004241b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x140042507
call fcn.14000f760
mov edi, eax
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x54], eax
call fcn.140012000
test edi, edi
je 0x140042514
test eax, eax
je 0x140042514
xor edx, edx
mov r8d, 0x80
lea rcx, [rsp + 0x2a0]
call fcn.140193010
mov rax, qword [rsp + 0xc0]
mov rdx, qword [rax + 0x1b8]
lea rcx, [rsp + 0x2a0]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [rsp + 0x1a0]
mov qword [rsp + 0x20], rdx
mov r9d, 0xf013f
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionRunOnce
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140042514
lea rdx, [rsp + 0x2a0]
mov rcx, qword [rsp + 0x1a0]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x1a0]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x1a0], r13
jmp 0x140042514
xor eax, eax
lea rdi, [0x140216614]
mov rsi, rbx
mov ecx, 3
repe cmpsw word [rsi], word [rdi]
je 0x1400424f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x140042507
xor edx, edx
xor ecx, ecx
call fcn.140014440
mov eax, 1
mov dword [rsp + 0x54], eax
mov dword [rsp + 0x74], eax
cmp dword [0x140280b48], 0
je 0x14004254b
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, qword [rsp + 0x80]
call fcn.14005ccb0
nop
cmp dword [rsp + 0x198], 0xa
je 0x140042563
call fcn.140022370
mov dword [rsp + 0x130], eax
jmp 0x140042571
xor ecx, ecx
call fcn.140024e30
mov dword [rsp + 0x134], eax
or r15, 0xffffffffffffffff
xor r13d, r13d
mov rdi, qword [rsp + 0x68]
lea r14d, [r15 + 2]
jmp 0x140042623
cmp dword [0x140280b48], 0
je 0x140042659
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rdi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rsi, qword [rsp + 0x80]
mov rcx, rsi
call fcn.14005ccb0
jmp 0x140042661
mov rsi, qword [rsp + 0x80]
mov eax, dword [rsp + 0x5c]
test eax, eax
je 0x140042675
call fcn.140028e30
mov dword [rsp + 0xb8], eax
cmp dword [0x140280b48], 0
je 0x1400426a1
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rdi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, rsi
call fcn.14005ccb0
xor r8d, r8d
lea rdx, str.CUNINSTALLERDlg::CleanUpRestoreFile
lea rcx, [rsp + 0x220]
call fcn.14000b870
nop
call fcn.140050920
mov rcx, qword [rax + 8]
cmp dword [rcx + 0x844], 0
je 0x1400426d5
call fcn.1400146e0
mov r12d, eax
jmp 0x1400426d8
mov r12d, r14d
mov r9d, r12d
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x220]
call fcn.14000ba50
nop
lea rcx, [rsp + 0x220]
call fcn.14000ba00
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004271f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rsi, qword [rsp + 0x108]
mov rdi, qword [rsi]
cmp rdi, rdi
jne 0x1400427b1
mov rbx, qword [rsi + 8]
mov rdi, rbx
cmp byte [rbx + 0x21], 0
jne 0x14004278c
mov rdx, qword [rdi + 0x10]
lea rcx, [rsp + 0x100]
call fcn.140046750
mov rdi, qword [rdi]
mov rdx, qword [rbx + 0x18]
sub rdx, 0x18
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042773
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, rbx
call fcn.14004cabc
mov rbx, rdi
cmp byte [rdi + 0x21], 0
je 0x140042740
mov rsi, qword [rsp + 0x108]
mov qword [rsi + 8], rsi
mov rax, qword [rsp + 0x108]
mov qword [rax], rax
mov rax, qword [rsp + 0x108]
mov qword [rax + 0x10], rax
mov qword [rsp + 0x110], r13
jmp 0x140042828
cmp rdi, rsi
je 0x140042830
mov r8, rdi
cmp byte [rdi + 0x21], 0
jne 0x14004280e
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x21], 0
jne 0x1400427ee
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x21], 0
jne 0x14004280e
nop word [rax + rax]
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x21], 0
je 0x1400427e0
jmp 0x14004280e
mov rax, qword [rdi + 8]
cmp byte [rax + 0x21], 0
jne 0x14004280b
cmp rdi, qword [rax + 0x10]
jne 0x14004280b
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x21], 0
je 0x1400427f8
mov rdi, rax
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0x100]
call fcn.1400468d0
cmp rdi, rsi
jne 0x1400427b6
mov rsi, qword [rsp + 0x108]
mov rcx, rsi
call fcn.14004cabc
mov r13, qword [rsp + 0x68]
cmp dword [0x140280b48], 0
je 0x140042874
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 0x64]
mov rcx, qword [r13 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
call fcn.14005ccb0
mov eax, dword [rsp + 0x5c]
cmp eax, 1
jne 0x140042a17
call fcn.14001d070
mov ebx, eax
mov r8, qword [rsp + 0xc0]
test eax, eax
jne 0x1400428eb
xor edx, edx
lea rdi, str.CAPT
mov rsi, qword [r8 + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x1400428b3
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
sete al
test al, al
je 0x1400428eb
cmp dword [r8 + 0x818], 0
je 0x1400428eb
call fcn.140029be0
mov ecx, dword [rsp + 0x90]
test eax, eax
mov eax, 0
cmove ecx, eax
mov dword [rsp + 0x90], ecx
mov r8, qword [rsp + 0xc0]
cmp dword [rsp + 0x134], 1
jne 0x14004292d
test ebx, ebx
jne 0x140042a13
cmp dword [rsp + 0x14c], ebx
je 0x140042a13
mov rax, qword [r8 + 0x260]
cmp dword [rax + 0x80], ebx
je 0x140042a13
call fcn.140010860
mov ecx, eax
mov eax, dword [rsp + 0x5c]
jmp 0x140042a1b
lea rdx, [0x1402145dc]
lea rcx, [rsp + 0x1b8]
call fcn.140001110
nop
lea rdx, [0x1402145dc]
lea rcx, [rsp + 0x180]
call fcn.140001110
nop
mov ecx, 3
call fcn.14004cbb8
test rax, rax
je 0x14004297c
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x180]
call fcn.1400012a0
mov ecx, 0x55
call fcn.14004cbb8
test rax, rax
je 0x1400429a1
mov r8d, 0x55
mov rdx, rax
lea rcx, [rsp + 0x1b8]
call fcn.1400012a0
lea rax, [r13 + 0x690]
mov qword [rsp + 0x20], rax
mov r9d, 0x30
mov r8, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x1b8]
mov rcx, r13
call fcn.14003e160
nop
mov rdx, qword [rsp + 0x180]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400429f0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x1b8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042a13
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x60]
cmp dword [rsp + 0x150], 1
je 0x140042a6f
cmp dword [rsp + 0xb4], 0
je 0x140042a6f
test eax, eax
je 0x140042a6f
cmp dword [rsp + 0x74], 0
je 0x140042a6f
test ecx, ecx
je 0x140042a6f
cmp dword [rsp + 0x130], 0
je 0x140042a6f
test r12d, r12d
je 0x140042a6f
cmp dword [rsp + 0xb8], 0
je 0x140042a6f
cmp dword [rsp + 0x94], 0
je 0x140042a6f
cmp dword [rsp + 0x90], 0
jne 0x140042ba4
call fcn.14004cde4
mov rdx, rax
xor ebx, ebx
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140042a90
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x188], rsi
call fcn.14004cde4
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140042ac4
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x1d8], rdi
mov ecx, 0x21
call fcn.14004cbb8
test rax, rax
je 0x140042b06
mov r8d, 0x21
mov rdx, rax
lea rcx, [rsp + 0x188]
call fcn.1400012a0
mov rsi, qword [rsp + 0x188]
mov ecx, 3
call fcn.14004cbb8
test rax, rax
je 0x140042b33
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x1d8]
call fcn.1400012a0
mov rdi, qword [rsp + 0x1d8]
lea rax, [r13 + 0x690]
mov qword [rsp + 0x20], rax
mov r9d, 0x30
mov r8, rdi
mov rdx, rsi
mov rcx, r13
call fcn.14003e160
call fcn.140050920
mov rcx, qword [rax + 8]
mov dword [rcx + 0x270], r14d
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042b7f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x188]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042ba6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140042ba6
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xb]
mov rcx, qword [r13 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
mov edi, ebx
mov r12, qword [rsp + 0xa8]
test r12d, r12d
jle 0x140042c10
nop dword [rax]
mov edx, edi
lea rcx, [r13 + 0x118]
call fcn.14005a46c
cmp word [rax], 0x10
jne 0x140042c09
mov rcx, rax
call fcn.14004cabc
movsxd r8, edi
xor r9d, r9d
mov edx, 0x1008
mov rcx, qword [r13 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
dec edi
dec r12d
inc edi
cmp edi, r12d
jl 0x140042bd0
xor r9d, r9d
mov r8, r14
lea edx, [r9 + 0xb]
mov rcx, qword [r13 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
call fcn.14003dff0
test eax, eax
je 0x140042cc7
call fcn.14004cde4
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140042c53
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x170], rdi
mov ecx, 0x38
call fcn.14004cbb8
test rax, rax
je 0x140042c95
mov r8d, 0x38
mov rdx, rax
lea rcx, [rsp + 0x170]
call fcn.1400012a0
mov rdi, qword [rsp + 0x170]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, r13
call fcn.14003e160
nop
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042cc7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, [0x1402145dc]
mov edx, 2
lea rcx, [rsp + 0x1c0]
call fcn.14000ba50
nop
mov rdx, qword [rsp + 0x88]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042d05
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x178]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042d29
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042d4d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042d71
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042d95
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x140]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042db9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042ddd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.14000b6e0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
dec r15d
test r15d, r15d
jg 0x140042e0c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140042e4f
mov qword [rsp + 0x1f8], r15
lea rdx, [rsp + 0x1f8]
lea rcx, [rsp + 0x238]
call fcn.14018eb98
lea rdx, vtable.std::bad_alloc.0
mov qword [rsp + 0x238], rdx
lea rdx, [0x140256b80]
lea rcx, [rsp + 0x238]
call fcn.140192de0
nop
lea rcx, [rsp + 0x1c0]
call fcn.14000ba00
mov rcx, qword [rsp + 0xfa0]
xor rcx, rsp
call fcn.14018e5d0
lea r11, [rsp + 0xfb0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret