Function at 0x14004ac40
Capabilities:
Check if file exists
Create directory
Read .ini file

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x6ea0
call fcn.14024c240
sub rsp, rax
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov qword [rsp + 0x6ed8], rbx
mov qword [rsp + 0x6ee0], rsi
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rsp + 0x6e90], rax
mov r14, rcx
mov qword [rsp + 0x58], rcx
xor r8d, r8d
lea rdx, str.CBaseFuncMgr::FN_Initialize
lea rcx, [rsp + 0x38]
call fcn.1400075a0
nop
xor ebx, ebx
mov word [rsp + 0x1690], bx
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rsp + 0x1692]
call fcn.14024b970
call fcn.140102a14
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14004ace0
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea r12, [rax + 0x18]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x690], ebx
xor edx, edx
mov r8d, 0x7fc
lea rcx, [rsp + 0x694]
call fcn.14024b970
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r15, [0x1402dc4e0]
mov r8, r15
lea rdx, str.DELETEDRV
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
mov r8, r15
lea rdx, str.PrinterName
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x3e90]
lea rdx, str.SILENTPATH
mov rcx, rax
call qword [rdi + 0x18]
cmp dword [0x1403b9778], 0
je 0x14004ae86
cmp dword [0x1403b97cc], 0
jne 0x14004ae8f
cmp dword [0x1403b97d0], 0
jne 0x14004aeae
cmp dword [0x1403b97d4], 0
jne 0x14004aed2
lea rcx, [rsp + 0x3e90]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14004ae86
call fcn.140102a14
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x14004ade1
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x60], rdi
mov ecx, 0xc4
call fcn.1401027e8
test rax, rax
je 0x14004ae17
mov r8d, 0xc4
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140005b00
mov rdi, qword [rsp + 0x60]
mov rcx, qword [0x1403b9770]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x20]
mov dword [0x1403b95bc], 5
lea rdx, [rdi - 0x18]
or r13, 0xffffffffffffffff
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004ae51
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004ae72
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, 0x80010005
jmp 0x14004da9a
cmp dword [0x1403b97cc], 0
je 0x14004aea5
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e0304]
jmp 0x14004aec2
cmp dword [0x1403b97d0], 0
je 0x14004aed2
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e2d70]
mov rdi, qword [rax]
lea rdx, str.INSTALLATION_SELECT
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.USBCHECKBOX
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0xe90]
lea rdx, str.ProgramFilesFolder
mov rcx, rax
call qword [rdi + 0x18]
lea rcx, [rsp + 0xe90]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
cmp word [rsp + rcx*2 + 0xe8e], 0x5c
je 0x14004af4c
lea rdx, [0x1402e5094]
lea rcx, [rsp + 0xe90]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, str.Canon_
lea rcx, [rsp + 0xe90]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
xor edx, edx
lea rcx, [rsp + 0xe90]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, str.InstTemp_
lea rcx, [rsp + 0xe90]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
xor edx, edx
lea rcx, [rsp + 0xe90]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0xe90]
lea rdx, str.TEMPPATH
mov rcx, rax
call qword [rdi + 0x20]
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x20]
mov rdi, qword [rax]
lea rdx, [rsp + 0x250]
mov rcx, rax
call qword [rdi + 0x190]
mov edi, eax
test eax, eax
jns 0x14004b01e
mov r9d, eax
lea r8, str.return__08x.
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [r12 - 0x18]
or r13, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004b019
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x14004da8e
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, str.Other
lea rdx, [0x1402e2e08]
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, str.Other
lea rdx, [0x1402e2e08]
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004b0a3
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, [0x1402e2e08]
mov rcx, rax
call qword [rdi + 0x20]
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.PDL_TYPE
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rsi, [rsp + 0x230]
lea rdi, str.LIPS4
mov ecx, 6
repe cmpsw word [rsi], word [rdi]
je 0x14004b186
lea rsi, [rsp + 0x230]
lea rdi, [0x1402ddbb8]
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x14004b186
lea rsi, [rsp + 0x230]
lea rdi, [0x1402ddbc0]
mov ecx, 3
repe cmpsw word [rsi], word [rdi]
je 0x14004b186
lea rsi, [rsp + 0x230]
lea rdi, [0x1402ecff8]
mov ecx, 4
repe cmpsw word [rsi], word [rdi]
je 0x14004b186
lea rsi, [rsp + 0x230]
lea rdi, str.UFRII
mov ecx, 6
repe cmpsw word [rsi], word [rdi]
je 0x14004b186
lea rsi, [rsp + 0x230]
lea rdi, str.CAPT
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x14004b186
mov r8, r15
mov edx, reloc.WSOCK32.dll_recv
lea rcx, [rsp + 0x230]
call fcn.140246628
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.PDL_TYPE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
mov r8, r15
lea rdx, str.INSTALLERVERSION
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.Version
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004b228
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.INSTALLERVERSION
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x5e90]
lea rdx, [0x1402e2e08]
mov rcx, rax
call qword [rdi + 0x18]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x4e90]
lea rdx, str.INSTALLERVERSION
mov rcx, rax
call qword [rdi + 0x18]
mov rcx, qword [0x1403b9760]
add rcx, 0x70
lea r9, [rsp + 0x4e90]
lea r8, [rsp + 0x5e90]
mov edx, 0x4b0
call fcn.140028ac0
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x20]
mov rdi, qword [rax]
lea rdx, [rsp + 0x1690]
mov rcx, rax
call qword [rdi + 0x198]
lea rcx, [rsp + 0x1690]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x14004b334
mov dword [0x1403b95bc], 0x49
mov rcx, qword [0x1403b9770]
mov rax, qword [rcx]
mov edx, 0xa2a
call qword [rax + 0x18]
mov r9d, 0x80010049
lea r8, str.return__08x.
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [r12 - 0x18]
or r13, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004b320
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, 0x80010049
jmp 0x14004da9a
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.DIAS_USE
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x2e90]
mov r8, r15
lea rdx, str.DIAS_USE
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004b3cd
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x2e90]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004b3cd
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.DIAS_USE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.VDC_USE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x2e90]
lea rdx, str.DIAS_USE
mov rcx, rax
call qword [rdi + 0x18]
lea rdx, [0x1402e2d70]
lea rcx, [rsp + 0x2e90]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004b4a4
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x460]
mov r8, r15
lea rdx, str.VDC_USE
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004b4a4
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x460]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004b4a4
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.VDC_USE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.USB_USE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.USBEXIST
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, [0x1402ed058]
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004b586
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004b586
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.USB_USE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.USBEXIST
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e3828]
lea rdx, str.DYNAMICINST
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.Dynamic
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004b61f
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004b61f
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d90]
lea rdx, str.DYNAMICINST
mov rcx, rax
call qword [rdi + 0x20]
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x104
lea r9, [rsp + 0x480]
mov r8, r15
lea rdx, str.Product
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x480]
lea rdx, str.PRODUCT
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e3828]
lea rdx, str.UNINSTALLSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.Uninstall
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004bc29
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004bc29
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d90]
lea rdx, str.UNINSTALLSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
mov ecx, 1
sub ecx, dword [r12 - 8]
mov eax, dword [r12 - 0xc]
sub eax, 0x400
or eax, ecx
jge 0x14004b745
mov edx, 0x400
lea rcx, [rsp + 0x30]
call fcn.140005e40
mov r12, qword [rsp + 0x30]
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
mov r9, r12
mov r8, r15
lea rdx, str.UninstallPath
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edi, eax
movsxd rdx, dword [r12 - 0xc]
mov rcx, r12
call fcn.14024718c
test eax, eax
js 0x14004bc1e
cmp eax, dword [r12 - 0xc]
jg 0x14004bc1e
mov dword [r12 - 0x10], eax
cdqe
mov word [r12 + rax*2], bx
test edi, edi
je 0x14004bbb0
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
mov r8, r12
lea rdx, str.UNINSTALLPATH
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, str.DEFAULT
mov rcx, r12
call fcn.140247088
test eax, eax
jne 0x14004bb42
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, rax
mov eax, 1
sub eax, dword [r12 - 8]
mov ecx, dword [r12 - 0xc]
sub ecx, 0x400
or ecx, eax
jge 0x14004b81e
mov edx, 0x400
lea rcx, [rsp + 0x30]
call fcn.140005e40
mov r12, qword [rsp + 0x30]
mov rax, qword [rdi]
mov r8, r12
lea rdx, str.ProgramFilesFolder
mov rcx, rdi
call qword [rax + 0x18]
movsxd rdx, dword [r12 - 0xc]
mov rcx, r12
call fcn.14024718c
test eax, eax
js 0x14004bb37
cmp eax, dword [r12 - 0xc]
jg 0x14004bb37
mov dword [r12 - 0x10], eax
cdqe
mov word [r12 + rax*2], bx
mov eax, dword [r12 - 0x10]
dec eax
js 0x14004bb2c
cmp eax, dword [r12 - 0x10]
jg 0x14004bb2c
cdqe
cmp word [r12 + rax*2], 0x5c
je 0x14004b89b
mov r8d, 1
lea rdx, [0x1402e5094]
lea rcx, [rsp + 0x30]
call fcn.140005f90
mov r12, qword [rsp + 0x30]
call fcn.140102a14
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14004b8ba
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x48], rsi
call fcn.140024580
test eax, eax
je 0x14004b975
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, rax
mov edx, 1
sub edx, dword [rsi - 8]
mov ecx, dword [rsi - 0xc]
sub ecx, 0x400
or ecx, edx
jge 0x14004b912
mov edx, 0x400
lea rcx, [rsp + 0x48]
call fcn.140005e40
mov rsi, qword [rsp + 0x48]
mov rax, qword [rdi]
mov r8, rsi
lea rdx, str.Cmd_Opt_ModelName
mov rcx, rdi
call qword [rax + 0x18]
movsxd rdx, dword [rsi - 0xc]
mov rcx, rsi
call fcn.14024718c
test eax, eax
js 0x14004b96a
cmp eax, dword [rsi - 0xc]
jg 0x14004b96a
mov dword [rsi - 0x10], eax
cdqe
mov word [rsi + rax*2], bx
cmp dword [rsi - 0x10], 0
jne 0x14004b961
lea rcx, [rsp + 0x48]
call fcn.1400246a0
or r13, 0xffffffffffffffff
mov rsi, qword [rsp + 0x48]
jmp 0x14004ba8a
or r13, 0xffffffffffffffff
jmp 0x14004ba8a
mov ecx, 0x80070057
call fcn.140005210
int3
xor eax, eax
or r13, 0xffffffffffffffff
mov rcx, r13
lea rdi, [rsp + 0x480]
repne scasw ax, word [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x14004b9f9
lea rdx, [rsi - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14004ba8a
cmp dword [rdx + 0x10], eax
jge 0x14004b9c6
cmp dword [rsi - 0xc], eax
jge 0x14004b9bb
mov ecx, 0x80070057
call fcn.140005210
int3
mov dword [rsi - 0x10], ebx
mov word [rsi], bx
jmp 0x14004ba8a
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004b9dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x48], rsi
mov r12, qword [rsp + 0x30]
jmp 0x14004ba8a
mov r15d, dword [rsi - 0x10]
lea r14, [rsp + 0x480]
sub r14, rsi
sar r14, 1
test ecx, ecx
jns 0x14004ba1a
mov ecx, 0x80070057
call fcn.140005210
int3
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, ecx
jge 0x14004ba3c
mov edx, edi
lea rcx, [rsp + 0x48]
call fcn.140005e40
mov rsi, qword [rsp + 0x48]
movsxd rax, edi
movsxd rdx, dword [rsi - 0xc]
mov rcx, rsi
add rdx, rdx
cmp r14, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x14004ba60
lea r8, [rsi + r14*2]
call fcn.1402457b4
jmp 0x14004ba6d
lea r8, [rsp + 0x480]
call fcn.1402471ac
cmp edi, dword [rsi - 0xc]
jg 0x14004bb21
mov dword [rsi - 0x10], edi
mov word [r15 + rsi], bx
mov r14, qword [rsp + 0x58]
lea r15, [0x1402dc4e0]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
mov r8, rsi
lea rdx, str.UninstallerRegKeyName
mov rcx, rax
call qword [rdi + 0x20]
mov edx, gethostbyaddr
lea r8d, [rdx - 0xf]
lea rcx, [rsp + 0x48]
call fcn.140064b10
mov rdi, qword [rsp + 0x48]
mov r9, rdi
mov r8, r12
lea rdx, str._sCanonPrnUninstall_s
lea rcx, [rsp + 0x30]
call fcn.14000de40
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rsi, qword [rax]
mov r8, qword [rsp + 0x30]
lea rdx, str.UNINSTALLDEFAULTPATH
mov rcx, rax
call qword [rsi + 0x20]
nop
lea rdx, [rdi - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004bb17
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r12, qword [rsp + 0x30]
jmp 0x14004bc2d
mov ecx, 0x80070057
call fcn.140005210
nop
mov ecx, 0x80070057
call fcn.140005210
int3
mov ecx, 0x80070057
call fcn.140005210
int3
mov rcx, qword [0x1403b9770]
mov rax, qword [rcx]
mov edx, 0xc6
call qword [rax + 0x18]
mov dword [0x1403b95bc], 0x19
mov r9d, 0x80010019
lea r8, str.return__08x
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [r12 - 0x18]
or r13, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004bb9c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, 0x80010019
jmp 0x14004da9a
mov rcx, qword [0x1403b9770]
mov rax, qword [rcx]
mov edx, 0xc6
call qword [rax + 0x18]
mov dword [0x1403b95bc], 0x19
mov r9d, 0x80010019
lea r8, str.return__08x
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [r12 - 0x18]
or r13, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004bc0a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, 0x80010019
jmp 0x14004da9a
mov ecx, 0x80070057
call fcn.140005210
int3
or r13, 0xffffffffffffffff
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d90]
lea rdx, str.NETWORKSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.NetworkPrinter
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004bcc6
lea rdx, [0x1402e2d58]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004bcc6
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e3828]
lea rdx, str.NETWORKSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.RENAMEDRV
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e34e0]
lea rdx, str.FileRename
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004bd6f
lea rdx, [rsp + 0x230]
lea rcx, [0x1402ed1b0]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov rcx, qword [0x1403b9750]
test eax, eax
mov rax, qword [rcx]
jne 0x14004bd55
call qword [rax + 0x48]
lea r8, [0x1402e2d70]
jmp 0x14004bd5f
call qword [rax + 0x48]
lea r8, [0x1402e0308]
mov rdi, qword [rax]
lea rdx, str.RENAMEDRV
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.ONEDRV
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.OneDriverInst
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004be89
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004be89
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.ONEDRV
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e2d58]
lea rdx, str.OneDeviceInst
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004be89
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004be89
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d50]
lea rdx, str.ONEDEVICEINST
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.PST_INST
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.PortSet
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004bf22
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004bf22
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.PST_INST
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x4690]
lea rdx, str.DYNAMICINST
mov rcx, rax
call qword [rdi + 0x18]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e3828]
lea rdx, str.DYNAMICWAKEUPSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.DynamicWakeup
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004c01d
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004c01d
lea rdx, [0x1402e2d90]
lea rcx, [rsp + 0x4690]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004c01d
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d90]
lea rdx, str.DYNAMICWAKEUPSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.DYNAMICWAKEUP
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, str.10000
lea rdx, str.DYNAMICWAKEUPWAITTIME
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.DynamicWakeupWaitTime
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004c0b2
lea rcx, [rsp + 0x230]
call fcn.14024740c
cmp eax, 0x1869f
ja 0x14004c0b2
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.DYNAMICWAKEUPWAITTIME
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.USEPRINTUI
mov rcx, rax
call qword [rdi + 0x20]
lea r9, [rsp + 0x250]
mov r8d, 1
lea rdx, str.UsePrintUI
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edx, 7
lea rcx, [rsp + 0x38]
cmp eax, 1
jne 0x14004c12c
mov r9d, eax
lea r8, str._t_t_tUse_PrintUI___dwUsePrintUI___d__
call fcn.140007780
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e0308]
jmp 0x14004c14f
mov r9d, eax
lea r8, str._t_t_tNot_Use_PrintUI___dwUsePrintUI___d__
call fcn.140007780
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e2d70]
mov rdi, qword [rax]
lea rdx, str.USEPRINTUI
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e3828]
lea rdx, str.ADDINSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.ADDINEXIST
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.USBADDINEXIST
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.AddinCheck
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004c240
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004c240
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d90]
lea rdx, str.ADDINSUPPORT
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.DSHARE
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.DynamicShare
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004c2d9
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004c2d9
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.DSHARE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.OLDNETPRT_EXIST
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.SHAREINSTALL
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.ShareInstall
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004c396
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004c396
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.SHAREINSTALL
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d58]
lea rdx, str.DEBUGMSG
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.ShowMsgDlg
lea rcx, str.Debug_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004c42f
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004c42f
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d50]
lea rdx, str.DEBUGMSG
mov rcx, rax
call qword [rdi + 0x20]
cmp dword [0x1403b9778], 0
jne 0x14004c52b
call fcn.140023a80
test eax, eax
jne 0x14004c52b
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x3690]
lea r8, str.EULA.RTF
lea rdx, str.EulaFileName
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
jne 0x14004c49a
lea rdx, str.EULA.RTF
lea rcx, [rsp + 0x3690]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x20]
mov rdi, qword [rax]
xor r9d, r9d
lea r8, [rsp + 0x5690]
lea rdx, [rsp + 0x3690]
mov rcx, rax
call qword [rdi + 0x3d0]
mov edi, eax
test eax, eax
jne 0x14004c4ef
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x5690]
lea rdx, str.EULAPATH
mov rcx, rax
call qword [rdi + 0x20]
jmp 0x14004c52b
mov r9d, eax
lea r8, str.return__08x
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [r12 - 0x18]
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004c526
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
jmp 0x14004da8e
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d58]
lea rdx, str.SEARCHFLAG
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.ADDIN_INSTALLED
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x68]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x80]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + VarBstrFromDisp]
cmp eax, 1
jne 0x14004c5ff
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdi, qword [rax]
lea rdx, str.conime.exe
mov rcx, rax
call qword [rdi + 0x2b8]
test eax, eax
jne 0x14004c5ff
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdi, qword [rax]
mov edx, 1
mov rcx, rax
call qword [rdi + 0x450]
lea rcx, [0x1402ddbb8]
call fcn.140023e50
test eax, eax
je 0x14004c786
lea r9, [rsp + 0x250]
xor r8d, r8d
lea rdx, str.SupportPDL
lea rcx, str.SupportPDL
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov edi, eax
lea r9, [rsp + 0x250]
lea r8, str._t_t_tINI_Path_____s_
mov edx, 7
lea rcx, [rsp + 0x38]
call fcn.140007780
mov r9d, edi
lea r8, str._t_t_tSupportPDL_____d_
mov edx, 7
lea rcx, [rsp + 0x38]
call fcn.140007780
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea rdx, str.SupportPDL
cmp edi, 1
jne 0x14004c6fc
mov rdi, qword [rax]
lea r8, [0x1402e0308]
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.USBPCL
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e8580]
lea rdx, str.PCLTYPE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e8580]
lea rdx, str.PCLTYPEPREV
jmp 0x14004c77d
cmp edi, 2
jne 0x14004c776
mov rdi, qword [rax]
lea r8, [0x1402e0304]
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0304]
lea rdx, str.USBPCL
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e8584]
lea rdx, str.PCLTYPE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e8584]
lea rdx, str.PCLTYPEPREV
jmp 0x14004c77d
lea r8, [0x1402e2d70]
mov rdi, qword [rax]
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x30]
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + 0x20]
mov rdi, qword [rax]
lea rdx, [rsp + 0x1690]
mov rcx, rax
call qword [rdi + 0x1a0]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x6690]
lea rdx, str.CATSUPPORT
mov rcx, rax
call qword [rdi + 0x18]
lea rdx, [0x1402e3828]
lea rcx, [rsp + 0x6690]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004c83f
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.USB_USE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.USBEXIST
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d50]
lea rdx, str.DispReadme
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
mov r8, r15
lea rdx, str.DispReadme
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
je 0x14004c9f4
lea rdx, [0x1402e2d58]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov rcx, qword [0x1403b9750]
test eax, eax
mov rax, qword [rcx]
jne 0x14004c8e1
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d58]
lea rdx, str.DispReadme
mov rcx, rax
call qword [rdi + 0x20]
jmp 0x14004c9f4
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xf0]
mov edi, eax
test eax, eax
je 0x14004c9f4
mov dword [rsp + 0x168], 1
mov dword [rsp + 0x16c], 2
mov dword [rsp + 0x170], 4
mov dword [rsp + 0x174], 8
mov dword [rsp + 0x178], 5
mov dword [rsp + 0x17c], 0xa
mov dword [rsp + 0x180], 0xffffffff
mov edx, ebx
mov rcx, rbx
mov eax, 1
cmp edi, eax
je 0x14004c966
inc edx
inc rcx
mov eax, dword [rsp + rcx*4 + 0x168]
cmp eax, 0xffffffff
jne 0x14004c951
mov eax, edx
cmp dword [rsp + rax*4 + 0x168], 0xffffffff
jne 0x14004c998
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d58]
lea rdx, str.DispReadme
mov rcx, rax
call qword [rdi + 0x20]
jmp 0x14004c9f4
mov eax, 1
mov r14d, ebx
test edi, eax
jne 0x14004c9b1
add eax, eax
inc r14d
cmp r14d, 4
jb 0x14004c9a0
jmp 0x14004c9f4
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov r12, rax
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, rax
mov rsi, qword [rax]
mov rax, qword [r12]
mov edx, r14d
mov rcx, r12
call qword [rax + pe_nt_image_headers64]
mov r8, rax
lea rdx, str.READMEFOLDER
mov rcx, rdi
call qword [rsi + 0x20]
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e2d50]
lea rdx, str.UpdateDiffVerPrnInfo
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402e2d58]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004ca5e
lea r8, [0x1402e2d50]
mov edx, reloc.WSOCK32.dll_recv
lea rcx, [rsp + 0x230]
call fcn.140246628
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.UPDATEDIFFVERPRNINFO
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e2d58]
lea rdx, str.IPManualSetSearch
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004caed
lea r8, [0x1402e2d58]
mov edx, reloc.WSOCK32.dll_recv
lea rcx, [rsp + 0x230]
call fcn.140246628
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.IPManualSetSearch
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e2d50]
lea rdx, str.UseIPv6
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402e2d58]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004cb7c
lea r8, [0x1402e2d50]
mov edx, reloc.WSOCK32.dll_recv
lea rcx, [rsp + 0x230]
call fcn.140246628
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.UseIPv6
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e0308]
lea rdx, str.DefaultInstallation
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402e2d70]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004cc08
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e2d70]
jmp 0x14004cc64
lea rdx, [0x1402e0308]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004cc50
lea rdx, [0x1402e0304]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14004cc50
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e0304]
jmp 0x14004cc64
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, [0x1402e0308]
mov rdi, qword [rax]
lea rdx, str.DefaultInstallation
mov rcx, rax
call qword [rdi + 0x20]
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e2d58]
lea rdx, str.DynamicChangeInstallation
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402e2d50]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004ccde
lea r8, [0x1402e2d58]
mov edx, reloc.WSOCK32.dll_recv
lea rcx, [rsp + 0x230]
call fcn.140246628
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.DynamicChangeInstallation
mov rcx, rax
call qword [rdi + 0x20]
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], reloc.WSOCK32.dll_recv
lea r9, [rsp + 0x230]
lea r8, [0x1402e2d50]
lea rdx, str.USBDialog
lea rcx, str.Installer_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402e2d58]
lea rcx, [rsp + 0x230]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004cd6d
lea r8, [0x1402e2d50]
mov edx, reloc.WSOCK32.dll_recv
lea rcx, [rsp + 0x230]
call fcn.140246628
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x230]
lea rdx, str.USBDialog
mov rcx, rax
call qword [rdi + 0x20]
lea rcx, [rsp + 0x190]
call fcn.140049540
nop
call fcn.140102a14
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14004cdbf
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x50], rsi
test r15, 0xffffffffffff0000
jne 0x14004cdfc
movzx edi, r15w
mov ecx, edi
call fcn.1401027e8
test rax, rax
je 0x14004ce11
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140005b00
jmp 0x14004ce0c
xor r8d, r8d
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.140005d50
mov rsi, qword [rsp + 0x50]
mov r12d, ebx
lea rdi, [rsp + 0x1d0]
nop dword [rax]
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, 0x400
or eax, ecx
jge 0x14004ce48
mov edx, 0x400
lea rcx, [rsp + 0x50]
call fcn.140005e40
mov rsi, qword [rsp + 0x50]
cmp qword [rdi + 0x50], 8
jb 0x14004ce55
mov r8, qword [rdi + 0x38]
jmp 0x14004ce59
lea r8, [rdi + 0x38]
cmp qword [rdi], 8
jb 0x14004ce65
mov rdx, qword [rdi - 0x18]
jmp 0x14004ce69
lea rdx, [rdi - 0x18]
cmp qword [rdi - 0x28], 8
jb 0x14004ce76
mov rcx, qword [rdi - 0x40]
jmp 0x14004ce7a
lea rcx, [rdi - 0x40]
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
mov r9, rsi
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
movsxd rdx, dword [rsi - 0xc]
mov rcx, rsi
call fcn.14024718c
test eax, eax
js 0x14004da83
cmp eax, dword [rsi - 0xc]
jg 0x14004da83
mov dword [rsi - 0x10], eax
cdqe
mov word [rsi + rax*2], bx
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, rax
cmp qword [rdi + 0x28], 8
jb 0x14004cedb
mov rdx, qword [rdi + 0x10]
jmp 0x14004cedf
lea rdx, [rdi + 0x10]
mov rax, qword [rax]
mov r8, rsi
call qword [rax + 0x20]
inc r12d
add rdi, 0xa0
cmp r12d, 1
jb 0x14004ce20
lea r9, [rsp + 0x250]
mov r8d, 1
lea rdx, str.PortType
lea rcx, str.PortSetting
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov r12d, eax
mov rcx, qword [0x1403b9750]
dec eax
je 0x14004cf3f
dec eax
mov rax, qword [rcx]
jne 0x14004cf42
call qword [rax + 0x48]
lea r8, str.EPortType_MFNP
jmp 0x14004cf4c
mov rax, qword [rcx]
call qword [rax + 0x48]
lea r8, str.EPortType_TCPIP
mov rdi, qword [rax]
lea rdx, str.PortType
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea rdx, str.DefaultPortType
mov rcx, rax
dec r12d
je 0x14004cf87
dec r12d
lea r8, str.EPortType_MFNP
je 0x14004cf8e
lea r8, str.EPortType_TCPIP
call qword [rdi + 0x20]
nop
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], rbx
mov word [rsp + 0xa0], bx
mov qword [rsp + 0xe0], 7
mov qword [rsp + 0xd8], rbx
mov word [rsp + 0xc8], bx
mov qword [rsp + 0x108], 7
mov qword [rsp + 0x100], rbx
mov word [rsp + 0xf0], bx
mov qword [rsp + 0x118], rbx
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x128], rbx
mov r9, rbx
mov r8, rbx
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x118]
call fcn.140035f90
nop
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x690]
mov r8, r15
lea rdx, str.Inst
lea rcx, str.MFNP
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov rcx, r13
lea rdi, [rsp + 0x690]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x690]
lea rcx, [rsp + 0xa0]
call fcn.140001f40
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x690]
mov r8, r15
lea rdx, str.Uninst
lea rcx, str.MFNP
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov rcx, r13
lea rdi, [rsp + 0x690]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x690]
lea rcx, [rsp + 0xc8]
call fcn.140001f40
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x690]
mov r8, r15
lea rdx, [0x1402ed578]
lea rcx, str.MFNP
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor eax, eax
mov rcx, r13
lea rdi, [rsp + 0x690]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rdx, [rsp + 0x690]
lea rcx, [rsp + 0xf0]
call fcn.140001f40
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov qword [rsp + 0x68], rax
mov edx, 8
mov r8d, 0xfffe
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r15, rax
test rax, rax
je 0x14004d851
lea r9, [rsp + 0x250]
mov r8d, 0x7fff
mov rdx, rax
lea rcx, str.MFNPPortMonitor
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov r14, r15
movabs r12, 0x6666666666666667
cmp word [r14], 0
je 0x14004d466
mov qword [rsp + 0x158], 7
mov qword [rsp + 0x150], rbx
mov word [rsp + 0x140], bx
xor eax, eax
mov rcx, r13
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, r14
lea rcx, [rsp + 0x140]
call fcn.140001f40
nop
lea rax, [rsp + 0x140]
mov rdi, qword [rsp + 0x120]
mov r8, qword [rsp + 0x118]
cmp rax, rdi
jae 0x14004d33e
lea rax, [rsp + 0x140]
cmp r8, rax
ja 0x14004d33e
lea rcx, [rsp + 0x140]
sub rcx, r8
mov rax, r12
imul rcx
mov r12, rdx
sar r12, 4
mov rax, r12
shr rax, 0x3f
add r12, rax
mov r9, qword [rsp + 0x128]
cmp rdi, r9
jne 0x14004d2e4
mov rcx, rdi
sub rcx, r8
movabs r10, 0x6666666666666667
mov rax, r10
imul rcx
mov rcx, rdx
sar rcx, 4
mov rax, rcx
shr rax, 0x3f
add rcx, rax
movabs rax, 0x666666666666665
cmp rcx, rax
jbe 0x14004d281
lea rcx, str.vector_T__too_long
call fcn.14026624c
inc rcx
sub r9, r8
mov rax, r10
imul r9
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rcx, rdx
jbe 0x14004d2e4
mov rdi, rdx
shr rdi, 1
movabs rax, 0x666666666666666
sub rax, rdi
cmp rax, rdx
jae 0x14004d2bd
mov rdx, rbx
jmp 0x14004d2c0
add rdx, rdi
cmp rdx, rcx
cmovb rdx, rcx
lea rcx, [rsp + 0x118]
call fcn.1400407d0
mov rdi, qword [rsp + 0x120]
mov r8, qword [rsp + 0x118]
lea rax, [r12 + r12*4]
lea rdx, [r8 + rax*8]
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x70], rdi
test rdi, rdi
je 0x14004d32f
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 8
jb 0x14004d313
mov rax, qword [rdi]
jmp 0x14004d316
mov rax, rdi
mov word [rax], bx
mov r9, r13
xor r8d, r8d
mov rcx, rdi
call fcn.140001e00
mov rdi, qword [rsp + 0x120]
movabs r12, 0x6666666666666667
jmp 0x14004d42d
mov r9, qword [rsp + 0x128]
cmp rdi, r9
jne 0x14004d3e2
mov rcx, rdi
sub rcx, r8
mov rax, r12
imul rcx
mov rcx, rdx
sar rcx, 4
mov rax, rcx
shr rax, 0x3f
add rcx, rax
movabs rax, 0x666666666666665
cmp rcx, rax
jbe 0x14004d387
lea rcx, str.vector_T__too_long
call fcn.14026624c
inc rcx
sub r9, r8
mov rax, r12
imul r9
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rcx, rdx
jbe 0x14004d3e2
mov rdi, rdx
shr rdi, 1
movabs rax, 0x666666666666666
sub rax, rdi
cmp rax, rdx
jae 0x14004d3c3
mov rdx, rbx
jmp 0x14004d3c6
add rdx, rdi
cmp rdx, rcx
cmovb rdx, rcx
lea rcx, [rsp + 0x118]
call fcn.1400407d0
mov rdi, qword [rsp + 0x120]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rdi
test rdi, rdi
je 0x14004d42d
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], rbx
cmp qword [rdi + 0x18], 8
jb 0x14004d409
mov rax, qword [rdi]
jmp 0x14004d40c
mov rax, rdi
mov word [rax], bx
mov r9, r13
xor r8d, r8d
lea rdx, [rsp + 0x140]
mov rcx, rdi
call fcn.140001e00
mov rdi, qword [rsp + 0x120]
add rdi, 0x28
mov qword [rsp + 0x120], rdi
cmp qword [rsp + 0x158], 8
jb 0x14004d451
mov rcx, qword [rsp + 0x140]
call fcn.1401026ec
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, eax
lea r14, [r14 + rdx*2 + 2]
jmp 0x14004d190
mov r8, r15
xor edx, edx
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rcx]
call qword [rdx + 0x30]
mov rcx, rax
mov rax, qword [rax]
lea rdx, [rsp + 0xa0]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r14d, eax
test eax, eax
jns 0x14004d61b
mov r9d, eax
lea r8, str.return__08x
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea r15, [rsp + 0x118]
mov rdi, qword [rsp + 0x118]
test rdi, rdi
je 0x14004d505
mov r12, qword [rsp + 0x120]
cmp rdi, r12
je 0x14004d4fd
cmp qword [rdi + 0x18], 8
jb 0x14004d4e8
mov rcx, qword [rdi]
call fcn.1401026ec
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], rbx
mov word [rdi], bx
add rdi, 0x28
jmp 0x14004d4d4
mov rcx, qword [r15]
call fcn.1401026ec
mov qword [r15], rbx
mov qword [r15 + 8], rbx
mov qword [r15 + 0x10], rbx
cmp qword [rsp + 0x108], 8
jb 0x14004d528
mov rcx, qword [rsp + 0xf0]
call fcn.1401026ec
mov qword [rsp + 0x108], 7
mov qword [rsp + 0x100], rbx
mov word [rsp + 0xf0], bx
cmp qword [rsp + 0xe0], 8
jb 0x14004d55c
mov rcx, qword [rsp + 0xc8]
call fcn.1401026ec
mov qword [rsp + 0xe0], 7
mov qword [rsp + 0xd8], rbx
mov word [rsp + 0xc8], bx
cmp qword [rsp + 0xb8], 8
jb 0x14004d590
mov rcx, qword [rsp + 0xa0]
call fcn.1401026ec
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], rbx
mov word [rsp + 0xa0], bx
lea rdx, [rsi - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004d5c8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea r9, [0x14004dad0]
mov edx, 0xa0
mov r8d, 1
lea rcx, [rsp + 0x190]
call fcn.140247280
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004d609
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, r14d
jmp 0x14004da9a
lea rcx, [rsp + 0xa0]
call fcn.14004db80
nop
lea rcx, str.CAPT
call fcn.140023e50
test eax, eax
je 0x14004d763
mov word [rsp + 0x2690], bx
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rsp + 0x2692]
call fcn.14024b970
mov word [rsp + 0x1e90], bx
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rsp + 0x1e92]
call fcn.14024b970
lea rdx, [rsp + 0x250]
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x2690]
lea r8, [0x1402dc4e0]
lea rdx, str.VirtualChannel
lea rcx, str.CAPTInfo
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402dc4e0]
lea rcx, [rsp + 0x2690]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004d6ed
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x2690]
lea rdx, str.VIRTUALCHANNEL_NAME
mov rcx, rax
call qword [rdi + 0x20]
lea rax, [rsp + 0x250]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
lea r9, [rsp + 0x1e90]
lea r8, [0x1402dc4e0]
lea rdx, str.ModuleNamePreFix
lea rcx, str.CAPTInfo
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rdx, [0x1402dc4e0]
lea rcx, [rsp + 0x1e90]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14004d763
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rsp + 0x1e90]
lea rdx, str.MODULENAME_PREFIX
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xd0]
test eax, eax
je 0x14004d7c8
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e2d70]
lea rdx, str.USB_USE
mov rcx, rax
call qword [rdi + 0x20]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [0x1402e0308]
lea rdx, str.USBEXIST
mov rcx, rax
call qword [rdi + 0x20]
mov r9d, r14d
lea r8, str.return__08x
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [rsi - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004d7fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea r9, [0x14004dad0]
mov edx, 0xa0
mov r8d, 1
lea rcx, [rsp + 0x190]
call fcn.140247280
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004d83f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, r14d
jmp 0x14004da9a
mov dword [0x1403b95bc], 2
mov r9d, 0x80010002
lea r8, str.return__08x
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rcx, [rsp + 0x118]
call fcn.1400360d0
cmp qword [rsp + 0x108], 8
jb 0x14004d89d
mov rcx, qword [rsp + 0xf0]
call fcn.1401026ec
mov qword [rsp + 0x108], 7
mov qword [rsp + 0x100], rbx
mov word [rsp + 0xf0], bx
cmp qword [rsp + 0xe0], 8
jb 0x14004d8d1
mov rcx, qword [rsp + 0xc8]
call fcn.1401026ec
mov qword [rsp + 0xe0], 7
mov qword [rsp + 0xd8], rbx
mov word [rsp + 0xc8], bx
cmp qword [rsp + 0xb8], 8
jb 0x14004d905
mov rcx, qword [rsp + 0xa0]
call fcn.1401026ec
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], rbx
mov word [rsp + 0xa0], bx
lea rdx, [rsi - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004d93d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea r9, [0x14004dad0]
mov edx, 0xa0
mov r8d, 1
lea rcx, [rsp + 0x190]
call fcn.140247280
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
dec r13d
test r13d, r13d
jg 0x14004d97e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, 0x80010002
jmp 0x14004da9a
mov ecx, 0x80070057
call fcn.140005210
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, edi
mov rcx, qword [rsp + 0x6e90]
xor rcx, rsp
call fcn.140245660
lea r11, [rsp + 0x6ea0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret