Function at 0x1400471d0
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, 0xfa0
mov qword [rsp + 0x248], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov rax, qword [0x14027bbd0]
xor rax, rsp
mov qword [rsp + 0xf90], rax
mov r14, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x158], rcx
xor r8d, r8d
lea rdx, str.CUNINSTALLERDlg::CleanupThread
lea rcx, [r11 - 0xe10]
call fcn.140017fc0
nop
mov edi, 1
mov dword [rsp + 0x5c], edi
mov dword [rsp + 0xa0], edi
mov dword [rsp + 0x6c], edi
mov dword [rsp + 0x68], edi
mov eax, edi
mov dword [rsp + 0xb8], eax
mov dword [rsp + 0x120], eax
mov dword [rsp + 0x140], edi
xor r15d, r15d
mov dword [rsp + 0x70], r15d
mov dword [rsp + 0xe4], r15d
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x14004728f
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x160], rax
call fcn.140054cb8
mov rsi, qword [rax + 8]
mov qword [rsp + 0x88], rsi
call fcn.14000c310
mov dword [rsp + 0x198], eax
mov dword [rsp + 0x150], edi
mov dword [rsp + 0x124], edi
mov dword [rsp + 0x84], edi
mov eax, edi
mov dword [rsp + 0x80], eax
lea rcx, [rsi + 0xa60]
or rbx, 0xffffffffffffffff
mov r8, rbx
xor edx, edx
call fcn.1400539cc
xor r8d, r8d
xor edx, edx
mov rcx, r14
call fcn.1400421d0
call fcn.140054cb8
mov rcx, qword [rax + 8]
call fcn.14005f510
nop
mov dword [rsi + 0xa8c], edi
mov dword [rsi + 0x2d8], edi
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140047339
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x110], rsi
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x14004736b
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x148], rdi
mov ecx, 3
call fcn.140051c2c
test rax, rax
je 0x1400473aa
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x148]
call fcn.140001b00
mov rdi, qword [rsp + 0x148]
mov ecx, 0x20
call fcn.140051c2c
test rax, rax
je 0x1400473d7
mov r8d, 0x20
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.140001b00
mov rsi, qword [rsp + 0x110]
mov qword [rsp + 0x20], r15
mov r9d, 0x34
mov r8, rdi
mov rdx, rsi
mov rcx, r14
call fcn.14003df20
mov esi, eax
mov rcx, qword [r14 + 0x40]
call qword [sym.imp.USER32.dll_UpdateWindow]
cmp esi, 7
jne 0x14004748c
lea r8, str.cancel
lea edx, [rsi - 5]
lea rcx, [rsp + 0x1b8]
call fcn.140017c80
nop
lea rdx, [rdi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140047438
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004745b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x54]
call fcn.1400183d0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140047487
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140049653
mov dword [rsp + 0x50], r15d
mov dword [rsp + 0x58], r15d
mov qword [rsp + 0x78], r15
cmp dword [0x14027dae0], 0
je 0x1400474c2
lea rcx, [r14 + 0x690]
mov edx, 5
call fcn.14005fc28
mov rcx, qword [r14 + 0x6d0]
call qword [sym.imp.USER32.dll_SetForegroundWindow]
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x1400474e2
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x138], rdi
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140047514
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xd8], rbx
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140047546
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x118], rsi
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x140047578
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x170], rax
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x1400475aa
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea r12, [rax + 0x18]
mov qword [rsp + 0x98], r12
mov ecx, 0x3e
call fcn.140051c2c
test rax, rax
je 0x1400475e9
mov r8d, 0x3e
mov rdx, rax
lea rcx, [rsp + 0x138]
call fcn.140001b00
mov rdi, qword [rsp + 0x138]
mov ecx, 0x3f
call fcn.140051c2c
test rax, rax
je 0x140047616
mov r8d, 0x3f
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.140001b00
mov rbx, qword [rsp + 0xd8]
mov ecx, 0x41
call fcn.140051c2c
test rax, rax
je 0x14004763b
mov r8d, 0x41
mov rdx, rax
lea rcx, [rsp + 0x170]
call fcn.140001b00
mov ecx, 0x40
call fcn.140051c2c
test rax, rax
je 0x140047668
mov r8d, 0x40
mov rdx, rax
lea rcx, [rsp + 0x118]
call fcn.140001b00
mov rsi, qword [rsp + 0x118]
mov ecx, 0x42
call fcn.140051c2c
test rax, rax
je 0x140047695
mov r8d, 0x42
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.140001b00
mov r12, qword [rsp + 0x98]
cmp dword [0x14027dae0], 0
je 0x1400476bf
lea rcx, [r14 + 0x690]
mov edx, 0x3f2
call fcn.14005f9b8
mov qword [rsp + 0x78], rax
mov rdx, rdi
mov rcx, rax
call fcn.14005fb18
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov rcx, qword [r14 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r13, rax
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0x154], eax
cmp dword [0x14027dae0], 0
je 0x140047770
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 1]
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 0x14
test r13d, r13d
jle 0x140047753
cdq
idiv r13d
test eax, eax
jg 0x140047758
mov eax, 0x66666667
imul r13d
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 + 0x50], r13d
mov dword [rsp + 0x58], r13d
mov eax, 1
jmp 0x140047758
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 r13d, r15d
cmp dword [rsp + 0xc8], r15d
jle 0x1400479ac
lea rax, [r14 + 0x118]
mov qword [rsp + 0x168], rax
mov edx, r13d
mov rcx, rax
call fcn.14005e010
mov r14, rax
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x140047831
mov rax, qword [rsp + 0x60]
lea r8, [rax + 0x690]
mov rcx, rax
call fcn.1400405f0
mov r15d, eax
cmp dword [0x14027dae0], 0
je 0x14004782b
mov eax, dword [rsp + 0x58]
test eax, eax
jg 0x140047825
xor r9d, r9d
xor r8d, r8d
mov edx, 0x408
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0x14
jge 0x14004782b
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rdi
mov rcx, qword [rsp + 0x78]
call fcn.14005fb18
mov eax, dword [rsp + 0x50]
jmp 0x140047827
dec eax
mov dword [rsp + 0x58], eax
cmp r15d, 2
je 0x14004784f
inc r13d
cmp r13d, dword [rsp + 0xc8]
jge 0x1400479a4
mov rax, qword [rsp + 0x168]
jmp 0x140047790
movzx eax, word [r14 + 2]
shl eax, 0x10
or eax, 1
mov dword [r14], eax
mov rcx, qword [rsp + 0x60]
call fcn.140038ed0
lea r8, str.In_case_of_busy
mov edx, 2
lea rcx, [rsp + 0x1b8]
call fcn.140017c80
nop
lea rdx, [r12 - 0x18]
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400478a1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x170]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400478c4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400478e7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004790a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x138]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004792d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x148]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140047950
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140047973
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x54]
call fcn.1400183d0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x14004799f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140049653
xor r15d, r15d
mov r14, qword [rsp + 0x60]
cmp dword [0x14027dae0], 0
je 0x1400479db
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 + 0x78]
call fcn.14005fb18
mov dword [rsp + 0x128], r15d
mov rcx, qword [rsp + 0xc8]
mov edi, ecx
mov dword [rsp + 0x74], r15d
mov dword [rsp + 0xd0], r15d
mov r13d, r15d
mov qword [rsp + 0x1e0], r15
cmp dword [0x14027dae0], 0
je 0x140047a7f
mov eax, 0x14
test ecx, ecx
jle 0x140047a4b
cdq
idiv ecx
test eax, eax
jg 0x140047a50
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 + 0x50], ecx
mov dword [rsp + 0x58], ecx
mov eax, 1
jmp 0x140047a50
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 + 0x1e0], rax
mov rcx, qword [rsp + 0xc8]
mov r14d, r15d
test ecx, ecx
jle 0x1400480c5
mov rsi, qword [rsp + 0x60]
lea r15, [rsi + 0x118]
xor r12d, r12d
nop dword [rax]
mov edx, r14d
mov rcx, r15
call fcn.14005e010
mov r13, rax
mov dword [rsp + 0x130], r12d
dec edi
mov dword [rsp + 0xe0], edi
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x140047ee4
mov dword [rsp + 0x20], r12d
lea r9, [rsp + 0x130]
mov r8d, dword [rax]
mov rcx, rsi
call fcn.140040970
mov r12d, eax
test eax, eax
jne 0x140047b93
movzx eax, word [r13 + 2]
shl eax, 0x10
or eax, 0x10
mov dword [r13], eax
mov eax, dword [rsp + 0x70]
cmp dword [rsp + 0x130], 1
mov ecx, 1
cmove eax, ecx
mov dword [rsp + 0x70], eax
cmp dword [0x14027dae0], r12d
je 0x140047eb5
mov esi, dword [rsp + 0x58]
test esi, esi
jg 0x140047b83
xor r9d, r9d
xor r8d, r8d
mov edx, 0x408
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0x28
jge 0x140047eb5
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rsi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
call fcn.14005fb18
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x58], eax
jmp 0x140047eb5
dec esi
mov dword [rsp + 0x58], esi
mov rsi, qword [rsp + 0x60]
jmp 0x140047eb5
mov rcx, rsi
call fcn.140038ed0
call fcn.140051e58
mov rcx, rax
xor edi, edi
mov eax, edi
test rcx, rcx
setne al
test eax, eax
je 0x140048040
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xa8], rax
call fcn.140051e58
mov rcx, rax
mov eax, edi
test rcx, rcx
setne al
test eax, eax
je 0x140048035
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0xe8], rsi
call fcn.140051e58
mov rcx, rax
mov eax, edi
test rcx, rcx
setne al
test eax, eax
je 0x14004802a
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0xc0], 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.14005e610
mov dword [rsp + 0x128], 1
cmp r12d, 3
jne 0x140047ca7
lea ecx, [r12 + 8]
call fcn.140051c2c
test rax, rax
je 0x140047c91
lea r8d, [r12 + 8]
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.140001b00
mov rdi, qword [rsp + 0xc0]
mov r8, qword [r13 + 0x10]
mov rdx, rdi
lea rcx, [rsp + 0xa8]
call fcn.140007540
jmp 0x140047d07
cmp r12d, 4
jne 0x140047cc3
lea ecx, [r12 + 0xc]
call fcn.140051c2c
test rax, rax
je 0x140047cf0
lea r8d, [r12 + 0xc]
jmp 0x140047cd8
mov ecx, 4
call fcn.140051c2c
test rax, rax
je 0x140047cf0
mov r8d, 4
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.140001b00
mov rdi, qword [rsp + 0xc0]
mov r8, qword [r13 + 0x10]
mov r9, r8
mov rdx, rdi
lea rcx, [rsp + 0xa8]
call fcn.140007540
mov ecx, 3
call fcn.140051c2c
cmp dword [rsp + 0xe0], 0
jle 0x140047f72
test rax, rax
je 0x140047d42
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.140001b00
mov rsi, qword [rsp + 0xe8]
mov ecx, 0x12
call fcn.140051c2c
test rax, rax
je 0x140047d6f
mov r8d, 0x12
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.140001b00
mov rdi, qword [rsp + 0xc0]
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
lea rcx, [rsp + 0xa8]
call fcn.140006c60
mov r11, qword [rsp + 0x60]
add r11, 0x690
mov qword [rsp + 0x20], r11
mov r9d, 0x34
mov r8, rsi
mov rdx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x60]
mov rcx, rsi
call fcn.14003df20
cmp eax, 7
je 0x140047efa
cmp dword [0x14027dae0], 0
je 0x140047e42
mov rax, qword [rsp + 0x1e0]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SetActiveWindow]
mov rcx, rax
call fcn.140058f30
mov esi, dword [rsp + 0x58]
test esi, esi
jg 0x140047e37
xor r9d, r9d
xor r8d, r8d
mov edx, 0x408
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 0x28
jge 0x140047e42
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rsi + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rbx
mov rcx, qword [rsp + 0x78]
call fcn.14005fb18
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x58], eax
jmp 0x140047e42
dec esi
mov dword [rsp + 0x58], esi
mov rsi, qword [rsp + 0x60]
lea rdx, [rdi - 0x18]
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140047e61
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 0x140047e84
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140047ea6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edi, dword [rsp + 0xe0]
mov rbx, qword [rsp + 0xd8]
mov qword [rsp + 0x40], r13
xor r12d, r12d
mov dword [rsp + 0x38], r12d
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], r12
lea r9d, [r12 + 4]
xor r8d, r8d
mov edx, r14d
mov rcx, r15
call fcn.14005e610
inc r14d
cmp r14d, dword [rsp + 0xc8]
jge 0x14004804b
jmp 0x140047aa0
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 0x140047f1f
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 0x140047f43
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140047f66
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ebx, dword [rsp + 0xd0]
jmp 0x14004805b
test rax, rax
je 0x140047f95
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.140001b00
mov rsi, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x60]
lea rax, [rcx + 0x690]
mov qword [rsp + 0x20], rax
mov r9d, 0x30
mov r8, rsi
mov rdx, qword [rsp + 0xa8]
call fcn.14003df20
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 0x140047fe1
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 0x140048005
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140048057
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140048057
mov ecx, 0x80004005
call fcn.140001010
nop
mov ecx, 0x80004005
call fcn.140001010
nop
mov ecx, 0x80004005
call fcn.140001010
int3
mov esi, dword [rsp + 0x74]
mov ebx, esi
or r15, 0xffffffffffffffff
jmp 0x14004805b
mov esi, dword [rsp + 0x74]
xor eax, eax
mov r13d, eax
cmp r14d, 1
mov edi, 1
cmovge r13d, edi
cmp dword [rsp + 0x70], edi
jne 0x140048096
lea rcx, [rsp + 0x730]
call fcn.140019fd0
cmp eax, edi
jne 0x140048096
xor r8d, r8d
mov edx, edi
lea rcx, [rsp + 0x730]
call fcn.140019760
test esi, esi
jne 0x1400480b3
test ebx, ebx
jne 0x1400480b3
mov rsi, qword [rsp + 0x118]
mov r12, qword [rsp + 0x98]
xor r15d, r15d
jmp 0x1400480c5
mov r12d, dword [rsp + 0xe4]
mov r14, qword [rsp + 0x60]
jmp 0x140049048
mov rbx, qword [rsp + 0x60]
lea r14, [rbx + 0x690]
mov rdx, r14
mov rcx, rbx
call fcn.14003aa20
mov dword [rsp + 0xe4], eax
test r13d, r13d
mov r13, qword [rsp + 0x88]
jne 0x140048378
cmp dword [r13 + 0xa8c], 0
je 0x14004811d
lea rcx, str.SPOOLER
call fcn.14000cdb0
lea rcx, str.SPOOLER
call fcn.140015e60
mov dword [r13 + 0xa8c], r15d
mov rcx, rbx
call fcn.14003af00
test eax, eax
jne 0x140048378
call fcn.140051e58
mov rcx, rax
mov eax, r15d
test rcx, rcx
setne al
test eax, eax
jne 0x14004814d
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x190], rsi
call fcn.140051e58
mov rcx, rax
test rax, rax
mov eax, 0
setne al
test eax, eax
jne 0x140048181
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x1d0], rdi
mov r12d, 2
mov ecx, r12d
call fcn.140051c2c
test rax, rax
je 0x1400481c1
mov r8d, r12d
mov rdx, rax
lea rcx, [rsp + 0x190]
call fcn.140001b00
mov rsi, qword [rsp + 0x190]
mov ecx, 3
call fcn.140051c2c
test rax, rax
je 0x1400481ee
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x1d0]
call fcn.140001b00
mov rdi, qword [rsp + 0x1d0]
mov qword [rsp + 0x20], r14
mov r9d, 0x30
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.14003df20
mov rcx, rbx
call fcn.140038ed0
nop
lea rdx, [rdi - 0x18]
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004822f
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 0x140048252
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140048275
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x170]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140048298
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400482bb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400482de
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x138]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140048301
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x148]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140048324
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140048347
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x54]
call fcn.1400183d0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x140048373
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140049653
cmp dword [0x14027dae0], 0
je 0x1400483c5
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 0x28]
mov rcx, qword [rbx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rsi
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
call fcn.14005fb18
xor r9d, r9d
mov edx, 0x404
lea r8d, [r9 + 0x14]
mov rcx, qword [rbx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1400483ca
mov rdi, qword [rsp + 0x78]
mov rcx, rbx
call fcn.14003cdc0
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0x74], eax
cmp dword [0x14027dae0], 0
je 0x140048409
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rbx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rsi
mov rcx, rdi
call fcn.14005fb18
xor eax, eax
lea rdi, str.CAPT
mov rsi, qword [r13 + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x140048428
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x140048454
cmp dword [r13 + 0x818], 0
je 0x140048454
call fcn.140027b00
mov ecx, dword [rsp + 0x84]
test eax, eax
cmove ecx, r15d
mov dword [rsp + 0x84], ecx
mov rdx, r14
mov rcx, rbx
call fcn.140045d00
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x100], r15
mov ecx, 0x28
call fcn.140050e2c
test rax, rax
je 0x140049612
mov qword [rsp + 0xf8], rax
mov qword [rax], rax
mov rcx, qword [rsp + 0xf8]
mov qword [rcx + 8], rcx
mov rcx, qword [rsp + 0xf8]
mov qword [rcx + 0x10], rcx
mov rax, qword [rsp + 0xf8]
mov byte [rax + 0x20], 1
mov rax, qword [rsp + 0xf8]
mov byte [rax + 0x21], 1
mov rax, qword [rsp + 0xf8]
mov rsi, qword [rax + 8]
mov rdi, rsi
cmp byte [rsi + 0x21], 0
jne 0x140048510
mov rdx, qword [rdi + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140049e10
mov rdi, qword [rdi]
lea rdx, [rsi + 0x18]
lea rcx, [rsp + 0x109]
call fcn.1400075f0
mov rcx, rsi
call fcn.140050e78
mov rsi, rdi
cmp byte [rdi + 0x21], 0
je 0x1400484d2
mov rax, qword [rsp + 0xf8]
mov qword [rax + 8], rax
mov rax, qword [rsp + 0xf8]
mov qword [rax], rax
mov rax, qword [rsp + 0xf8]
mov qword [rax + 0x10], rax
mov qword [rsp + 0x100], r15
mov dword [rsp + 0xb0], r15d
mov dword [rsp + 0xb4], r15d
lea rax, [rsp + 0xb4]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r15d
xor r9d, r9d
xor edx, edx
xor ecx, ecx
lea r8d, [r9 + 3]
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
jne 0x140048646
mov dil, 1
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140048a0e
mov edx, dword [rsp + 0xb0]
lea ecx, [rax - 0x3a]
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rsi, rax
test rax, rax
je 0x140048a0e
lea rax, [rsp + 0xb4]
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, [rdx + 3]
call sub.WINSPOOL.DRV_EnumPrinterDriversW
test eax, eax
je 0x140048634
mov edi, r15d
cmp dword [rsp + 0xb4], 0
jbe 0x140048631
nop
mov eax, edi
lea rcx, [rax + rax*4]
add rcx, rcx
lea rdx, [rsi + rcx*8 + 0x40]
lea rcx, [rsp + 0xf0]
call fcn.14004a590
mov r8, rax
xor r9d, r9d
lea rdx, [rsp + 0x278]
lea rcx, [rsp + 0xf0]
call fcn.14004a1f0
inc edi
cmp edi, dword [rsp + 0xb4]
jb 0x1400485f0
xor dil, dil
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
test dil, dil
jne 0x140048a0e
call fcn.140054cb8
mov r14, qword [rax + 8]
mov qword [rsp + 0x90], r14
test r14, r14
je 0x140048a0e
cmp qword [r14 + 0x250], 0
je 0x140048a0e
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x310]
call fcn.140192cb0
mov edx, 0x104
lea rcx, [rsp + 0x310]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea rcx, [rsp + 0x310]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov r13d, r15d
mov r11, qword [r14 + 0x250]
mov rax, r11
mov rbx, r15
mov r10, qword [rsp + 0xf8]
nop dword [rax]
xor edx, edx
lea rdi, [0x1401c6ea8]
mov rsi, qword [rax]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x1400486db
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
setne al
test al, al
je 0x140048a01
mov rdi, qword [r10 + 8]
mov rsi, r10
cmp byte [rdi + 0x21], 0
jne 0x14004874d
mov r9, qword [r11 + rbx]
mov r8d, r15d
test r9, r9
setne r8b
test r8d, r8d
je 0x140048835
mov rax, qword [rdi + 0x18]
mov rdx, r9
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x14004872d
add rax, 2
test cx, cx
jne 0x140048716
mov eax, r15d
jmp 0x140048732
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sets al
test al, al
je 0x140048741
mov rdi, qword [rdi + 0x10]
jmp 0x140048747
mov rsi, rdi
mov rdi, qword [rdi]
cmp byte [rdi + 0x21], 0
je 0x140048703
mov qword [rsp + 0x218], rsi
cmp rsi, r10
je 0x1400487a5
mov rdx, qword [rsi + 0x18]
mov eax, r15d
test rdx, rdx
setne al
test eax, eax
je 0x140048840
mov rax, qword [r11 + rbx]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x14004878d
add rax, 2
test cx, cx
jne 0x140048776
mov eax, r15d
jmp 0x140048792
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sets al
test al, al
jne 0x1400487a5
lea rax, [rsp + 0x218]
jmp 0x1400487b5
mov qword [rsp + 0x208], r10
lea rax, [rsp + 0x208]
mov rax, qword [rax]
mov qword [rsp + 0x250], rax
cmp rax, r10
jne 0x140048818
lea rdi, [r11 + rbx + 8]
mov rax, qword [rdi]
cmp dword [rax - 8], 1
jle 0x1400487de
mov edx, dword [rax - 0x10]
mov rcx, rdi
call fcn.1400015a0
mov r9, qword [rdi]
lea r8, [rsp + 0x310]
lea rdx, [0x1401c9460]
lea rcx, [rsp + 0x520]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rsp + 0x520]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14004884b
mov r10, qword [rsp + 0xf8]
inc r13d
add rbx, 0x10
mov r11, qword [r14 + 0x250]
movsxd rax, r13d
shl rax, 4
add rax, r11
jmp 0x1400486c0
mov ecx, 0x80004005
call fcn.140001010
int3
mov ecx, 0x80004005
call fcn.140001010
int3
call fcn.14000c310
cmp eax, 0xa
jne 0x14004886d
lea rcx, str.SPOOLER
call fcn.14000cdb0
lea rcx, str.SPOOLER
call fcn.140015e60
mov r14d, r15d
mov r8, qword [rsp + 0x90]
mov r8, qword [r8 + 0x250]
mov rax, r8
mov r13, r15
mov r10, qword [rsp + 0xf8]
nop dword [rax]
xor edx, edx
lea rdi, [0x1401c6ea8]
mov rsi, qword [rax]
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x1400488ab
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
setne al
test al, al
je 0x140048a01
lea rbx, [r8 + r13]
mov rdi, qword [r10 + 8]
mov r9, r10
cmp byte [rdi + 0x21], 0
jne 0x14004890c
mov r8, qword [rbx]
nop dword [rax]
test r8, r8
je 0x1400489eb
mov rax, qword [rdi + 0x18]
mov rsi, r8
sub rsi, rax
movzx edx, word [rax]
movzx ecx, word [rax + rsi]
sub edx, ecx
jne 0x1400488f6
add rax, 2
test ecx, ecx
jne 0x1400488e3
test edx, edx
jns 0x140048900
mov rdi, qword [rdi + 0x10]
jmp 0x140048906
mov r9, rdi
mov rdi, qword [rdi]
cmp byte [rdi + 0x21], 0
je 0x1400488d0
mov qword [rsp + 0x1f0], r9
cmp r9, r10
je 0x140048951
mov rdi, qword [r9 + 0x18]
test rdi, rdi
je 0x1400489f6
mov rax, qword [rbx]
sub rdi, rax
nop dword [rax]
movzx edx, word [rax]
movzx ecx, word [rax + rdi]
sub edx, ecx
jne 0x140048943
add rax, 2
test ecx, ecx
jne 0x140048930
test edx, edx
js 0x140048951
lea rax, [rsp + 0x1f0]
jmp 0x140048961
mov qword [rsp + 0x200], r10
lea rax, [rsp + 0x200]
mov rax, qword [rax]
mov qword [rsp + 0x220], rax
cmp rax, r10
jne 0x1400489c6
mov rax, qword [rbx]
cmp dword [rax - 8], 1
jle 0x140048985
mov edx, dword [rax - 0x10]
mov rcx, rbx
call fcn.1400015a0
mov rsi, qword [rbx]
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 0x250]
lea rdi, [rax + r13 + 8]
mov rax, qword [rdi]
cmp dword [rax - 8], 1
jle 0x1400489b0
mov edx, dword [rax - 0x10]
mov rcx, rdi
call fcn.1400015a0
xor r8d, r8d
mov rdx, rsi
mov rcx, qword [rdi]
call fcn.140019550
mov r10, qword [rsp + 0xf8]
inc r14d
add r13, 0x10
mov rax, qword [rsp + 0x90]
mov r8, qword [rax + 0x250]
movsxd rax, r14d
shl rax, 4
add rax, r8
jmp 0x140048890
mov ecx, 0x80004005
call fcn.140001010
int3
mov ecx, 0x80004005
call fcn.140001010
int3
mov r13, qword [rsp + 0x88]
mov rbx, qword [rsp + 0x60]
cmp dword [0x14027dae0], 0
je 0x140048ab5
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 0x50]
mov rcx, qword [rbx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
call fcn.14005fb18
xor r9d, r9d
mov edx, 0x404
lea r8d, [r9 + 3]
mov rcx, qword [rbx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp dword [0x14027dae0], 0
je 0x140048ab5
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rbx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, rdi
call fcn.14005fb18
cmp dword [0x14027dae0], 0
je 0x140048ab5
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [rbx + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, rdi
call fcn.14005fb18
lea rdx, [rbx + 0x690]
mov rcx, rbx
call fcn.14003e3d0
mov esi, eax
mov dword [rsp + 0x50], eax
call fcn.140051e58
mov rdx, rax
mov ecx, r15d
test rax, rax
setne cl
test ecx, ecx
jne 0x140048aea
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x90], rbx
mov r14, qword [r13 + 0x210]
lea rcx, [r14 - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140048c7b
cmp dword [rdi + 0x10], 0
jl 0x140048b60
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140048b60
call fcn.140001950
mov rbx, rax
or ecx, 0xffffffff
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x140048b47
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rbx, 0x18
mov qword [rsp + 0x90], rbx
mov r12, qword [rsp + 0x98]
jmp 0x140048c7b
movsxd rsi, dword [r14 - 0x10]
test esi, esi
jne 0x140048bd5
mov rsi, qword [rdi]
cmp dword [rdi + 8], 0
je 0x140048c77
cmp dword [rdi + 0x10], 0
jge 0x140048b99
cmp dword [rbx - 0xc], 0
jge 0x140048b8c
mov ecx, 0x80070057
call fcn.140001010
int3
mov dword [rbx - 0x10], r15d
mov word [rbx], r15w
jmp 0x140048c77
or eax, 0xffffffff
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x140048bb3
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 + 0x90], rbx
mov r12, qword [rsp + 0x98]
jmp 0x140048c77
test r14, r14
jne 0x140048be5
mov ecx, 0x80070057
call fcn.140001010
int3
mov r15d, dword [rbx - 0x10]
mov r13, r14
sub r13, rbx
sar r13, 1
test esi, esi
jns 0x140048c01
mov ecx, 0x80070057
call fcn.140001010
int3
mov ecx, 1
sub ecx, dword [rdi + 0x10]
mov eax, dword [rdi + 0xc]
sub eax, esi
or eax, ecx
jge 0x140048c29
mov edx, esi
lea rcx, [rsp + 0x90]
call fcn.1400018f0
mov rbx, qword [rsp + 0x90]
lea rdi, [rsi + rsi]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
mov r9, rdi
add rdx, rdx
cmp r13, r15
ja 0x140048c4a
lea r8, [rbx + r13*2]
call fcn.140192c44
jmp 0x140048c52
mov r8, r14
call fcn.140192bbc
cmp esi, dword [rbx - 0xc]
jg 0x140048c6c
mov dword [rbx - 0x10], esi
xor r15d, r15d
mov word [rbx + rdi], r15w
mov r13, qword [rsp + 0x88]
jmp 0x140048c77
mov ecx, 0x80070057
call fcn.140001010
int3
mov esi, dword [rsp + 0x50]
cmp dword [rsp + 0xe4], 0
je 0x140048d63
test esi, esi
je 0x140048d63
xor eax, eax
lea rdi, [0x1401d0078]
mov rsi, rbx
mov ecx, 3
repe cmpsw word [rsi], word [rdi]
je 0x140048cac
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x140048d90
call fcn.1400122b0
mov edi, eax
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x50], eax
call fcn.140014080
test edi, edi
je 0x140048d9d
test eax, eax
je 0x140048d9d
xor edx, edx
mov r8d, 0x80
lea rcx, [rsp + 0x290]
call fcn.140192cb0
mov rdx, qword [r13 + 0x1b8]
lea rcx, [rsp + 0x290]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, [rsp + 0x1a8]
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 0x140048d9d
lea rdx, [rsp + 0x290]
mov rcx, qword [rsp + 0x1a8]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x1a8]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x1a8], r15
jmp 0x140048d9d
xor eax, eax
lea rdi, [0x1401d0078]
mov rsi, rbx
mov ecx, 3
repe cmpsw word [rsi], word [rdi]
je 0x140048d7e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x140048d90
xor edx, edx
xor ecx, ecx
call fcn.14000d7a0
mov eax, 1
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x6c], eax
cmp dword [0x14027dae0], 0
je 0x140048dd1
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, qword [rsp + 0x78]
call fcn.14005fb18
nop
cmp dword [rsp + 0x198], 0xa
je 0x140048de9
call fcn.140026930
mov dword [rsp + 0x140], eax
jmp 0x140048df7
xor ecx, ecx
call fcn.140028ce0
mov dword [rsp + 0x150], eax
or r15, 0xffffffffffffffff
xor r13d, r13d
mov r14, qword [rsp + 0x60]
mov esi, dword [rsp + 0x5c]
jmp 0x140048e96
cmp dword [0x14027dae0], 0
je 0x140048ec9
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rdi, qword [rsp + 0x78]
mov rcx, rdi
call fcn.14005fb18
jmp 0x140048ece
mov rdi, qword [rsp + 0x78]
test esi, esi
je 0x140048ede
call fcn.14001b550
mov dword [rsp + 0xb8], eax
cmp dword [0x14027dae0], 0
je 0x140048f0a
xor r9d, r9d
xor r8d, r8d
mov edx, 0x405
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, r12
mov rcx, rdi
call fcn.14005fb18
lea rdx, [r14 + 0x690]
mov rcx, r14
call fcn.140039a00
mov r12d, eax
lea rdx, [rbx - 0x18]
mov ecx, r15d
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x140048f38
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rsi, qword [rsp + 0xf8]
mov rdi, qword [rsi]
cmp rdi, rdi
jne 0x140048fc3
mov rbx, qword [rsi + 8]
mov rdi, rbx
cmp byte [rbx + 0x21], 0
jne 0x140048f9e
nop word [rax + rax]
mov rdx, qword [rdi + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.140049e10
mov rdi, qword [rdi]
lea rdx, [rbx + 0x18]
lea rcx, [rsp + 0x109]
call fcn.1400075f0
mov rcx, rbx
call fcn.140050e78
mov rbx, rdi
cmp byte [rdi + 0x21], 0
je 0x140048f60
mov rsi, qword [rsp + 0xf8]
mov qword [rsi + 8], rsi
mov rax, qword [rsp + 0xf8]
mov qword [rax], rax
mov rax, qword [rsp + 0xf8]
mov qword [rax + 0x10], rax
mov qword [rsp + 0x100], r13
jmp 0x140049038
cmp rdi, rsi
je 0x140049040
nop dword [rax + rax]
mov r8, rdi
cmp byte [rdi + 0x21], 0
jne 0x14004901e
mov rax, qword [rdi + 0x10]
cmp byte [rax + 0x21], 0
jne 0x140048ffe
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x21], 0
jne 0x14004901e
nop
mov rdi, rax
mov rax, qword [rax]
cmp byte [rax + 0x21], 0
je 0x140048ff0
jmp 0x14004901e
mov rax, qword [rdi + 8]
cmp byte [rax + 0x21], 0
jne 0x14004901b
cmp rdi, qword [rax + 0x10]
jne 0x14004901b
mov rdi, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x21], 0
je 0x140049008
mov rdi, rax
lea rdx, [rsp + 0x258]
lea rcx, [rsp + 0xf0]
call fcn.140049e80
cmp rdi, rsi
jne 0x140048fd0
mov rsi, qword [rsp + 0xf8]
mov rcx, rsi
call fcn.140050e78
cmp dword [0x14027dae0], 0
je 0x14004907c
xor r9d, r9d
mov edx, 0x402
lea r8d, [r9 + 0x64]
mov rcx, qword [r14 + 0x7e8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x78]
call fcn.14005fb18
mov eax, dword [rsp + 0x5c]
cmp eax, 1
jne 0x14004921f
call fcn.140026290
mov ebx, eax
mov r8, qword [rsp + 0x88]
test eax, eax
jne 0x1400490f3
xor edx, edx
lea rdi, str.CAPT
mov rsi, qword [r8 + 0x790]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x1400490bb
sbb edx, edx
sbb edx, 0xffffffff
test edx, edx
sete al
test al, al
je 0x1400490f3
cmp dword [r8 + 0x818], 0
je 0x1400490f3
call fcn.1400294a0
mov ecx, dword [rsp + 0x80]
test eax, eax
mov eax, 0
cmove ecx, eax
mov dword [rsp + 0x80], ecx
mov r8, qword [rsp + 0x88]
cmp dword [rsp + 0x150], 1
jne 0x140049135
test ebx, ebx
jne 0x14004921b
cmp dword [rsp + 0x124], ebx
je 0x14004921b
mov rax, qword [r8 + 0x260]
cmp dword [rax + 0x80], ebx
je 0x14004921b
call fcn.140012a00
mov ecx, eax
mov eax, dword [rsp + 0x5c]
jmp 0x140049223
lea rdx, [0x1401c6ea8]
lea rcx, [rsp + 0x180]
call fcn.1400020c0
nop
lea rdx, [0x1401c6ea8]
lea rcx, [rsp + 0x1b0]
call fcn.1400020c0
nop
mov ecx, 3
call fcn.140051c2c
test rax, rax
je 0x140049184
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x1b0]
call fcn.140001b00
mov ecx, 0x55
call fcn.140051c2c
test rax, rax
je 0x1400491a9
mov r8d, 0x55
mov rdx, rax
lea rcx, [rsp + 0x180]
call fcn.140001b00
lea rax, [r14 + 0x690]
mov qword [rsp + 0x20], rax
mov r9d, 0x30
mov r8, qword [rsp + 0x1b0]
mov rdx, qword [rsp + 0x180]
mov rcx, r14
call fcn.14003df20
nop
mov rdx, qword [rsp + 0x1b0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400491f8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x180]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004921b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x68]
cmp dword [rsp + 0x128], 1
je 0x140049277
cmp dword [rsp + 0xa0], 0
je 0x140049277
test eax, eax
je 0x140049277
cmp dword [rsp + 0x6c], 0
je 0x140049277
test ecx, ecx
je 0x140049277
cmp dword [rsp + 0x140], 0
je 0x140049277
test r12d, r12d
je 0x140049277
cmp dword [rsp + 0xb8], 0
je 0x140049277
cmp dword [rsp + 0x84], 0
je 0x140049277
cmp dword [rsp + 0x80], 0
jne 0x1400493a5
call fcn.140051e58
mov rdx, rax
xor ebx, ebx
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140049298
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x188], rsi
call fcn.140051e58
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400492cc
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x1e8], rdi
mov ecx, 0x21
call fcn.140051c2c
test rax, rax
je 0x14004930e
mov r8d, 0x21
mov rdx, rax
lea rcx, [rsp + 0x188]
call fcn.140001b00
mov rsi, qword [rsp + 0x188]
mov ecx, 3
call fcn.140051c2c
test rax, rax
je 0x14004933b
mov r8d, 3
mov rdx, rax
lea rcx, [rsp + 0x1e8]
call fcn.140001b00
mov rdi, qword [rsp + 0x1e8]
lea rax, [r14 + 0x690]
mov qword [rsp + 0x20], rax
mov r9d, 0x30
mov r8, rdi
mov rdx, rsi
mov rcx, r14
call fcn.14003df20
mov rcx, r14
call fcn.140038ed0
nop
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140049380
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 0x1400493a7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400493a7
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xb]
mov rcx, qword [r14 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
mov edi, ebx
mov r12, qword [rsp + 0xc8]
test r12d, r12d
jle 0x140049410
nop dword [rax]
mov edx, edi
lea rcx, [r14 + 0x118]
call fcn.14005e010
cmp word [rax], 0x10
jne 0x140049409
mov rcx, rax
call fcn.140050e78
movsxd r8, edi
xor r9d, r9d
mov edx, 0x1008
mov rcx, qword [r14 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
dec edi
dec r12d
inc edi
cmp edi, r12d
jl 0x1400493d0
xor r9d, r9d
lea edx, [r9 + 0xb]
lea r8d, [r9 + 1]
mov rcx, qword [r14 + 0x158]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, r14
call fcn.140039760
test eax, eax
je 0x1400494cb
call fcn.140051e58
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140049457
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x168], rdi
mov ecx, 0x38
call fcn.140051c2c
test rax, rax
je 0x140049499
mov r8d, 0x38
mov rdx, rax
lea rcx, [rsp + 0x168]
call fcn.140001b00
mov rdi, qword [rsp + 0x168]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, r14
call fcn.14003df20
nop
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400494cb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8, [0x1401c6ea8]
mov edx, 2
lea rcx, [rsp + 0x1b8]
call fcn.140017c80
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140049509
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x170]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004952d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140049551
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140049575
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x138]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140049599
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x148]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400495bd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400495e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x54]
call fcn.1400183d0
nop
mov rdx, qword [rsp + 0x160]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
dec r15d
test r15d, r15d
jg 0x140049610
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x140049653
mov qword [rsp + 0x1f8], r15
lea rdx, [rsp + 0x1f8]
lea rcx, [rsp + 0x228]
call fcn.140193804
lea rdx, vtable.std::bad_alloc.0
mov qword [rsp + 0x228], rdx
lea rdx, [0x14025dc70]
lea rcx, [rsp + 0x228]
call fcn.1401938f0
nop
lea rcx, [rsp + 0x1b8]
call fcn.140018150
mov rcx, qword [rsp + 0xf90]
xor rcx, rsp
call fcn.1401945b0
lea r11, [rsp + 0xfa0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret