Function at 0x51d800
Capabilities:
Check if file exists
Create directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ad07f
mov eax, dword fs:[0]
push eax
mov eax, 0x3724
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
push str.CBaseSeqInitial::Initialize
lea ecx, [ebp - 0x3690]
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x51d88b
test byte [ecx + 0x1c], 1
je 0x51d88b
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5deb2c
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x19
call fcn.00401840
add esp, 0xc
push 0x800
lea eax, [ebp - 0x3658]
push 0
push eax
call fcn.00571c00
push 0x30
lea eax, [ebp - 0x40]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1e58]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0xe58]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0xc50]
push 0
push eax
call fcn.00571c00
push 0x800
lea eax, [ebp - 0x1658]
push 0
push eax
call fcn.00571c00
add esp, 0x48
lea eax, [ebp - 0x2658]
push 0x800
push 0
push eax
call fcn.00571c00
add esp, 0xc
call fcn.00550b4e
push eax
lea ecx, [ebp - 0x36f0]
call fcn.00403950
mov byte [ebp - 4], 1
mov ecx, dword [0x6184f0]
push 0x5c6930
push 0x5c7da8
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c6930
push 0x5ca5bc
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1e58]
push eax
push str.SILENTPATH
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
cmp dword [0x618500], 0
je 0x51da1b
cmp dword [0x618534], 0
jne 0x51da24
cmp dword [0x618538], 0
jne 0x51da34
cmp dword [0x61853c], 0
jne 0x51da4c
lea eax, [ebp - 0x1e58]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x51da1b
call fcn.00550b4e
push eax
lea ecx, [ebp - 0x36ec]
call fcn.00403950
push 0xc4
mov byte [ebp - 4], 2
call fcn.00551063
test eax, eax
je 0x51d9e8
push 0xc4
push eax
lea ecx, [ebp - 0x36ec]
call fcn.00403710
push dword [ebp - 0x36ec]
mov ecx, dword [0x6184fc]
call fcn.00504230
mov ecx, dword [ebp - 0x36ec]
mov dword [0x6183ec], 5
lea ecx, [ecx - 0x10]
call fcn.00401610
mov ebx, 0x80010005
jmp 0x51f696
cmp dword [0x618534], 0
je 0x51da2b
push 0x5c79d4
jmp 0x51da39
cmp dword [0x618538], 0
je 0x51da4c
push 0x5c797c
mov ecx, dword [0x6184f0]
push str.INSTALLATION_SELECT
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.USBCHECKBOX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0xc50]
push eax
push str.ProgramFilesFolder
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
lea eax, [ebp - 0xc50]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcatW]
cmp word [ebp + eax*2 - 0xc52], 0x5c
je 0x51daaa
push 0x5c692c
lea eax, [ebp - 0xc50]
push eax
call edi
push str.Canon_
lea eax, [ebp - 0xc50]
push eax
call edi
mov esi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea eax, [ebp - 0xc50]
push 0
push eax
call esi
push str.InstTemp_
lea eax, [ebp - 0xc50]
push eax
call edi
push 0
lea eax, [ebp - 0xc50]
push eax
call esi
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0xc50]
push eax
push str.TEMPPATH
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
lea eax, [ebp - 0xe58]
mov ecx, 0x618548
push eax
call fcn.00479db0
mov ebx, eax
test ebx, ebx
jns 0x51db68
mov byte [ebp - 0x368c], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x51f696
test byte [ecx + 0x1c], 1
je 0x51f696
cmp dword [0x608f68], 8
mov eax, 0x608f54
push ebx
cmovae eax, dword [0x608f54]
mov edx, 0x5deb2c
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1a
call fcn.004018a0
add esp, 0x10
jmp 0x51f696
mov ecx, 0x618548
call fcn.0047be30
lea ecx, [ebp - 0x3700]
call fcn.00437ff0
lea eax, [ebp - 0x1658]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x3700]
call fcn.00438d00
lea eax, [ebp - 0x1658]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne 0x51dc17
push 0xa2a
push dword [0x6184fc]
mov dword [0x6183ec], 0x49
call fcn.00502d80
add esp, 8
mov byte [ebp - 0x368c], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x51dc0d
test byte [ecx + 0x1c], 1
je 0x51dc0d
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0x80010049
cmovae eax, dword [0x608f54]
mov edx, 0x5deb2c
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x1b
call fcn.004018a0
add esp, 0x10
mov ebx, 0x80010049
jmp 0x51f68b
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 8]
call fcn.004d7090
mov eax, dword [0x6184f0]
mov eax, dword [eax + 8]
cmp dword [eax + 0x858], 8
lea ecx, [eax + 0x844]
jb 0x51dc3e
mov ecx, dword [ecx]
add eax, 0x814
cmp dword [eax + 0x14], 8
jb 0x51dc4b
mov eax, dword [eax]
push ecx
push eax
mov eax, dword [0x6184f8]
add eax, 0x2c
push 0x4b0
push eax
call fcn.0040c010
mov ecx, dword [0x6184f0]
add esp, 0x10
mov ecx, dword [ecx + 0x1c]
push 0x5c797c
push str.DIAS_USE
call fcn.004f6860
mov esi, dword [0x6184f0]
mov eax, dword [esi + 8]
add eax, 0x85c
cmp dword [eax + 0x14], 8
jb 0x51dc91
mov eax, dword [eax]
mov ecx, 0x5c79bc
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51dcbc
test dx, dx
je 0x51dcb8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51dcbc
add eax, 4
add ecx, 4
test dx, dx
jne 0x51dc96
xor eax, eax
jmp 0x51dcc1
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51dcdd
mov ecx, dword [esi + 0x1c]
push 0x5c79bc
push str.DIAS_USE
call fcn.004f6860
mov esi, dword [0x6184f0]
mov ecx, dword [esi + 0x1c]
push 0x5c797c
push str.VDC_USE
call fcn.004f6860
mov eax, dword [0x6184f0]
mov eax, dword [eax + 8]
add eax, 0x85c
cmp dword [eax + 0x14], 8
jb 0x51dd04
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x2658]
push 0x400
push eax
call fcn.005746e6
add esp, 0xc
lea eax, [ebp - 0x2658]
mov ecx, 0x5c797c
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51dd4a
test dx, dx
je 0x51dd46
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51dd4a
add eax, 4
add ecx, 4
test dx, dx
jne 0x51dd24
xor eax, eax
jmp 0x51dd4f
sbb eax, eax
or eax, 1
mov esi, dword [0x6184f0]
test eax, eax
jne 0x51ddb7
mov eax, dword [esi + 8]
add eax, 0x874
cmp dword [eax + 0x14], 8
jb 0x51dd69
mov eax, dword [eax]
mov ecx, 0x5c79bc
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51dd96
test dx, dx
je 0x51dd92
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51dd96
add eax, 4
add ecx, 4
test dx, dx
jne 0x51dd70
xor eax, eax
jmp 0x51dd9b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51ddb7
mov ecx, dword [esi + 0x1c]
push 0x5c79bc
push str.VDC_USE
call fcn.004f6860
mov esi, dword [0x6184f0]
mov ecx, dword [esi + 0x1c]
push 0x5c797c
push str.USB_USE
call fcn.004f6860
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.USBEXIST
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c1f0
mov ecx, eax
call fcn.00402e80
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.0051ffb0
mov ecx, 0x5c79bc
lea eax, [ebp - 0x40]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51de38
test dx, dx
je 0x51de34
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51de38
add eax, 4
add ecx, 4
test dx, dx
jne 0x51de12
xor eax, eax
jmp 0x51de3d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51de84
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x40]
push ecx
push str.USB_USE
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.USBEXIST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7d38
push str.DYNAMICINST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5c79bc
call fcn.0041b590
mov ecx, eax
call fcn.0051c200
mov ecx, eax
call fcn.00402e80
nop word [eax + eax]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51def6
test cx, cx
je 0x51def2
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51def6
add eax, 4
add esi, 4
test cx, cx
jne 0x51ded0
xor eax, eax
jmp 0x51defb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51df21
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7da0
push str.DYNAMICINST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7d38
push str.UNINSTALLSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5ca984
call fcn.0041b590
mov ecx, eax
call fcn.0051c210
mov ecx, eax
call fcn.00402e80
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51df8d
test cx, cx
je 0x51df89
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51df8d
add eax, 4
add esi, 4
test cx, cx
jne 0x51df67
xor eax, eax
jmp 0x51df92
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e15e
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7da0
push str.UNINSTALLSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x400
lea ecx, [ebp - 0x36f0]
mov esi, eax
call fcn.00403430
push eax
push str.ProgramFilesFolder
mov ecx, esi
call fcn.004f65f0
push 0xffffffffffffffff
lea ecx, [ebp - 0x36f0]
call fcn.00405fa0
lea ecx, [ebp - 0x36f0]
call fcn.00403420
dec eax
lea ecx, [ebp - 0x36f0]
push eax
call fcn.0040bfe0
cmp ax, 0x5c
je 0x51e027
push 0x5c692c
lea ecx, [ebp - 0x36f0]
call fcn.00437c20
lea ecx, [ebp - 0x36e8]
call fcn.00405f70
mov byte [ebp - 4], 4
call fcn.0049cd80
mov ecx, 0x618420
test eax, eax
je 0x51e098
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x400
lea ecx, [ebp - 0x36e8]
mov esi, eax
call fcn.00403430
push eax
push str.Cmd_Opt_ModelName
mov ecx, esi
call fcn.004f65f0
push 0xffffffffffffffff
lea ecx, [ebp - 0x36e8]
call fcn.00405fa0
lea ecx, [ebp - 0x36e8]
call fcn.00403400
test al, al
je 0x51e0be
lea ecx, [ebp - 0x36e8]
call fcn.0049ce00
jmp 0x51e0be
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.00475df0
mov ecx, eax
call fcn.00402e80
push eax
lea ecx, [ebp - 0x36e8]
call fcn.00403240
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x36e8]
mov esi, eax
call fcn.00403410
push eax
push str.UninstallerRegKeyName
mov ecx, esi
call fcn.004f6860
push 0x20
push 0x2f
lea ecx, [ebp - 0x36e8]
call fcn.0043e030
lea ecx, [ebp - 0x36e8]
call fcn.00403410
push eax
lea ecx, [ebp - 0x36f0]
call fcn.00403410
push eax
lea eax, [ebp - 0x36f0]
push str._sCanonPrnUninstall_s
push eax
call fcn.00408a60
add esp, 0x10
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x36f0]
mov esi, eax
call fcn.00403410
push eax
push str.UNINSTALLDEFAULTPATH
mov ecx, esi
call fcn.004f6860
lea ecx, [ebp - 0x36e8]
mov byte [ebp - 4], 3
call fcn.00403300
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7da0
push str.NETWORKSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5ca378
call fcn.0041b590
mov ecx, eax
call fcn.0051c220
mov ecx, eax
call fcn.00402e80
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e1ca
test cx, cx
je 0x51e1c6
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e1ca
add eax, 4
add esi, 4
test cx, cx
jne 0x51e1a4
xor eax, eax
jmp 0x51e1cf
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e1f5
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7d38
push str.NETWORKSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.ONEDRV
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0041e0d0
cmp eax, 2
jne 0x51e275
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0041e0d0
cmp eax, 2
jne 0x51e371
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e71c0
mov ecx, eax
call fcn.004de4a0
test eax, eax
je 0x51e371
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5c79bc
call fcn.0041b590
mov ecx, eax
call fcn.004c2130
mov ecx, eax
call fcn.00402e80
nop dword [eax]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e2c6
test cx, cx
je 0x51e2c2
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e2c6
add eax, 4
add esi, 4
test cx, cx
jne 0x51e2a0
xor eax, eax
jmp 0x51e2cb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e371
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
push str.ONEDRV
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5ca984
call fcn.0041b590
mov ecx, eax
call fcn.004c2140
mov ecx, eax
call fcn.00402e80
nop dword [eax]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e346
test cx, cx
je 0x51e342
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e346
add eax, 4
add esi, 4
test cx, cx
jne 0x51e320
xor eax, eax
jmp 0x51e34b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e371
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5ca984
push str.ONEDEVICEINST
mov ecx, eax
call fcn.004f6860
push 0x800
lea eax, [ebp - 0x2e58]
push 0
push eax
call fcn.00571c00
add esp, 0xc
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x2e58]
push ecx
push str.DYNAMICINST
mov ecx, eax
call fcn.004f65f0
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7d38
push str.DYNAMICWAKEUPSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5c79bc
call fcn.0041b590
mov ecx, eax
call fcn.0051c230
mov ecx, eax
call fcn.00402e80
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e417
test cx, cx
je 0x51e413
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e417
add eax, 4
add esi, 4
test cx, cx
jne 0x51e3f1
xor eax, eax
jmp 0x51e41c
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e4a3
mov ecx, 0x5c7da0
lea eax, [ebp - 0x2e58]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51e456
test dx, dx
je 0x51e452
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51e456
add eax, 4
add ecx, 4
test dx, dx
jne 0x51e430
xor eax, eax
jmp 0x51e45b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e4a3
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7da0
push str.DYNAMICWAKEUPSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.DYNAMICWAKEUP
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push str.10000
push str.DYNAMICWAKEUPWAITTIME
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c240
mov ecx, eax
call fcn.00402e80
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.0051ffb0
lea eax, [ebp - 0x40]
push eax
call fcn.00577bb7
add esp, 4
cmp eax, 0x1869f
ja 0x51e522
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x40]
push ecx
push str.DYNAMICWAKEUPWAITTIME
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
push str.USEPRINTUI
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c250
mov ecx, dword [eax]
cmp ecx, 1
jne 0x51e5b1
mov eax, dword [0x608f30]
cmp eax, 0x608f30
je 0x51e599
test byte [eax + 0x1c], 4
je 0x51e599
push ecx
call fcn.0040a810
push eax
mov eax, dword [0x608f30]
mov edx, 0x5deb2c
mov ecx, 0x1c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.004018a0
add esp, 0x10
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
jmp 0x51e5fd
mov eax, dword [0x608f30]
cmp eax, 0x608f30
je 0x51e5e7
test byte [eax + 0x1c], 4
je 0x51e5e7
push ecx
call fcn.0040a810
push eax
mov eax, dword [0x608f30]
mov edx, 0x5deb2c
mov ecx, 0x1d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.004018a0
add esp, 0x10
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.USEPRINTUI
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7d38
push str.ADDINSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.ADDINEXIST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.USBADDINEXIST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5c79bc
call fcn.0041b590
mov ecx, eax
call fcn.0051c260
mov ecx, eax
call fcn.00402e80
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e6b9
test cx, cx
je 0x51e6b5
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e6b9
add eax, 4
add esi, 4
test cx, cx
jne 0x51e693
xor eax, eax
jmp 0x51e6be
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e6e4
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c7da0
push str.ADDINSUPPORT
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.DSHARE
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5ca984
call fcn.0041b590
mov ecx, eax
call fcn.0051c270
mov ecx, eax
call fcn.00402e80
nop word [eax + eax]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e756
test cx, cx
je 0x51e752
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e756
add eax, 4
add esi, 4
test cx, cx
jne 0x51e730
xor eax, eax
jmp 0x51e75b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e781
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
push str.DSHARE
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.OLDNETPRT_EXIST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.SHAREINSTALL
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5ca984
call fcn.0041b590
mov ecx, eax
call fcn.0051c280
mov ecx, eax
call fcn.00402e80
nop dword [eax]
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e816
test cx, cx
je 0x51e812
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e816
add eax, 4
add esi, 4
test cx, cx
jne 0x51e7f0
xor eax, eax
jmp 0x51e81b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e841
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
push str.SHAREINSTALL
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5ca378
push str.DEBUGMSG
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5ca984
call fcn.0041b590
mov ecx, eax
call fcn.0051c290
mov ecx, eax
call fcn.00402e80
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51e8ad
test cx, cx
je 0x51e8a9
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51e8ad
add eax, 4
add esi, 4
test cx, cx
jne 0x51e887
xor eax, eax
jmp 0x51e8b2
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51e8d8
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5ca984
push str.DEBUGMSG
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049fee0
test eax, eax
jne 0x51ec0a
call fcn.0049c610
test eax, eax
jne 0x51ec0a
push 0x208
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00571c00
add esp, 0xc
lea ecx, [ebp - 0x36e8]
call fcn.00405f70
push 0x208
lea eax, [ebp - 0x450]
mov byte [ebp - 4], 5
push 0
push eax
call fcn.00571c00
add esp, 0xc
lea eax, [ebp - 0x450]
mov ecx, 0x618420
push 0x104
push eax
push str.MISC
call fcn.004a0440
lea eax, [ebp - 0x450]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c2a0
mov ecx, eax
call fcn.00402e80
push eax
lea ecx, [ebp - 0x36e8]
call fcn.00403240
push 0
push 0x2a
lea ecx, [ebp - 0x36e8]
call fcn.00403200
cmp eax, 0xffffffff
je 0x51eba5
lea ecx, [ebp - 0x3730]
call fcn.00562f31
lea ecx, [ebp - 0x371c]
mov byte [ebp - 4], 6
call fcn.0055b16f
lea ecx, [ebp - 0x36f4]
mov byte [ebp - 4], 7
call fcn.0042fcd0
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e71e0
mov ecx, eax
call fcn.0042f540
mov edi, eax
lea eax, [ebp - 0x36ec]
push eax
mov ecx, edi
call fcn.00425370
mov ecx, dword [eax]
lea eax, [ebp - 0x3704]
mov dword [ebp - 0x36f4], ecx
mov ecx, edi
push eax
call fcn.00425360
push eax
lea ecx, [ebp - 0x36f4]
call fcn.00409a00
test al, al
je 0x51eb01
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
nop dword [eax]
lea ecx, [ebp - 0x36f4]
call fcn.00403410
mov esi, dword [eax]
test esi, esi
je 0x51eacb
lea eax, [ebp - 0x36e8]
push eax
lea ecx, [ebp - 0x36ec]
call fcn.004033d0
lea eax, [esi + 4]
mov byte [ebp - 4], 8
push eax
push 0x5c80ec
lea ecx, [ebp - 0x36ec]
call fcn.00446ca0
lea ecx, [ebp - 0x36ec]
call fcn.00403410
push eax
push str.EULA_
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x248]
push 0x5d09a4
push eax
call fcn.0051ffc0
add esp, 0x14
lea eax, [ebp - 0x248]
push eax
call ebx
cmp eax, 1
jne 0x51eb42
push dword [esi]
lea ecx, [ebp - 0x3730]
call fcn.0051c1d0
lea eax, [ebp - 0x248]
push eax
lea ecx, [ebp - 0x371c]
call fcn.004300a0
lea ecx, [ebp - 0x36ec]
mov byte [ebp - 4], 7
call fcn.00403300
push 0
lea eax, [ebp - 0x3708]
push eax
lea ecx, [ebp - 0x36f4]
call fcn.0042fcb0
lea eax, [ebp - 0x3704]
mov ecx, edi
push eax
call fcn.00425360
push eax
lea ecx, [ebp - 0x36f4]
call fcn.00409a00
test al, al
jne 0x51ea20
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e71f0
lea ecx, [ebp - 0x371c]
push ecx
lea ecx, [ebp - 0x3730]
push ecx
mov ecx, eax
call fcn.0042f3f0
lea ecx, [ebp - 0x371c]
call fcn.0055b186
lea ecx, [ebp - 0x3730]
call fcn.00562f48
jmp 0x51ebfb
mov ecx, 0x618420
call fcn.0049fed0
lea ecx, [ebp - 0x36e8]
mov esi, eax
call fcn.00403410
push eax
push 0x19
push esi
call fcn.00502d80
add esp, 0xc
mov dword [0x6183ec], 0x26
lea ecx, [ebp - 0x36ec]
call fcn.00403300
lea ecx, [ebp - 0x371c]
call fcn.0055b186
lea ecx, [ebp - 0x3730]
call fcn.00562f48
lea ecx, [ebp - 0x36e8]
mov ebx, 0x80010026
call fcn.00403300
jmp 0x51f68b
mov ecx, 0x618420
call fcn.00451ef0
mov esi, eax
lea ecx, [ebp - 0x36e8]
push 0
lea eax, [ebp - 0x248]
push eax
call fcn.00403410
push eax
mov ecx, esi
call fcn.0047b3b0
mov ebx, eax
test ebx, ebx
jne 0x51ed5a
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x248]
push ecx
push str.EULAPATH
mov ecx, eax
call fcn.004f6860
lea ecx, [ebp - 0x36e8]
mov byte [ebp - 4], 3
call fcn.00403300
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5ca378
push str.SEARCHFLAG
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.ADDIN_INSTALLED
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e71a0
mov ecx, eax
call fcn.004e7aa0
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e71d0
mov ecx, eax
call fcn.004e3850
lea ecx, [ebp - 0x36fc]
call fcn.00470b20
push str.conime.exe
lea ecx, [ebp - 0x36fc]
mov byte [ebp - 4], 9
call fcn.00474dc0
test eax, eax
jne 0x51eccc
lea ecx, [ebp - 0x36ec]
call fcn.00437ff0
push 1
lea ecx, [ebp - 0x36ec]
mov byte [ebp - 4], 0xa
call fcn.0043dc00
lea ecx, [ebp - 0x36ec]
mov byte [ebp - 4], 9
call fcn.004380c0
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.004d7090
lea ecx, [ebp - 0x36f8]
call fcn.00430700
lea eax, [ebp - 0x1658]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [ebp - 0x36f8]
call fcn.00433ca0
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x3658]
push ecx
push str.CATSUPPORT
mov ecx, eax
call fcn.004f65f0
mov ecx, 0x5c7d38
lea eax, [ebp - 0x3658]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51edab
test dx, dx
je 0x51ed56
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51edab
add eax, 4
add ecx, 4
test dx, dx
jne 0x51ed34
xor eax, eax
jmp 0x51edb0
lea ecx, [ebp - 0x3690]
call fcn.0040a900
mov eax, dword [0x608f30]
cmp eax, 0x608f30
je 0x51ed9b
test byte [eax + 0x1c], 1
je 0x51ed9b
push ebx
call fcn.0040a810
push eax
mov eax, dword [0x608f30]
mov edx, 0x5deb2c
mov ecx, 0x1e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x36e8]
call fcn.00403300
jmp 0x51f68b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x51edf8
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.USB_USE
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
push str.USBEXIST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5ca984
push str.DispReadme
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
mov esi, 0x5ca378
call fcn.0041b590
mov ecx, eax
call fcn.0051c2b0
mov ecx, eax
call fcn.00402e80
nop
mov cx, word [eax]
cmp cx, word [esi]
jne 0x51ee66
test cx, cx
je 0x51ee62
mov cx, word [eax + 2]
cmp cx, word [esi + 2]
jne 0x51ee66
add eax, 4
add esi, 4
test cx, cx
jne 0x51ee40
xor eax, eax
jmp 0x51ee6b
sbb eax, eax
or eax, 1
mov ecx, 0x618420
test eax, eax
jne 0x51ee8e
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5ca378
push str.DispReadme
mov ecx, eax
jmp 0x51eef4
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.004d6020
test eax, eax
je 0x51eef9
mov ecx, 1
xor ebx, ebx
nop dword [eax]
test eax, ecx
jne 0x51eebe
inc ebx
add ecx, ecx
cmp ebx, 2
jb 0x51eeb0
jmp 0x51eef9
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, 0x618420
mov edi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push ebx
mov ecx, edi
mov esi, eax
call fcn.004da520
push eax
push str.READMEFOLDER
mov ecx, esi
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c2c0
mov ecx, eax
call fcn.00402e80
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.0051ffb0
mov ecx, 0x5ca378
lea eax, [ebp - 0x40]
nop word [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51ef56
test dx, dx
je 0x51ef52
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51ef56
add eax, 4
add ecx, 4
test dx, dx
jne 0x51ef30
xor eax, eax
jmp 0x51ef5b
sbb eax, eax
or eax, 1
test eax, eax
je 0x51ef72
push 0x5ca984
lea eax, [ebp - 0x40]
push 0x18
push eax
call fcn.005746e6
add esp, 0xc
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x40]
push ecx
push str.UPDATEDIFFVERPRNINFO
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c2d0
mov ecx, eax
call fcn.00402e80
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.0051ffb0
mov ecx, 0x5ca984
lea eax, [ebp - 0x40]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51efea
test dx, dx
je 0x51efe6
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51efea
add eax, 4
add ecx, 4
test dx, dx
jne 0x51efc4
xor eax, eax
jmp 0x51efef
sbb eax, eax
or eax, 1
test eax, eax
je 0x51f006
push 0x5ca378
lea eax, [ebp - 0x40]
push 0x18
push eax
call fcn.005746e6
add esp, 0xc
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x40]
push ecx
push str.IPManualSetSearch
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c2e0
mov ecx, eax
call fcn.00402e80
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.0051ffb0
mov ecx, 0x5ca378
lea eax, [ebp - 0x40]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51f07e
test dx, dx
je 0x51f07a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51f07e
add eax, 4
add ecx, 4
test dx, dx
jne 0x51f058
xor eax, eax
jmp 0x51f083
sbb eax, eax
or eax, 1
test eax, eax
je 0x51f09a
push 0x5ca984
lea eax, [ebp - 0x40]
push 0x18
push eax
call fcn.005746e6
add esp, 0xc
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x40]
push ecx
push str.UseIPv6
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c2f0
mov ecx, eax
call fcn.00402e80
push eax
push str.DefaultInstallation
mov ecx, edi
call fcn.004f8220
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c300
mov ecx, eax
call fcn.00402e80
mov edx, eax
lea ecx, [ebp - 0x40]
call fcn.0051ffb0
mov ecx, 0x5ca984
lea eax, [ebp - 0x40]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x51f156
test dx, dx
je 0x51f152
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x51f156
add eax, 4
add ecx, 4
test dx, dx
jne 0x51f130
xor eax, eax
jmp 0x51f15b
sbb eax, eax
or eax, 1
test eax, eax
je 0x51f172
push 0x5ca378
lea eax, [ebp - 0x40]
push 0x18
push eax
call fcn.005746e6
add esp, 0xc
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
lea ecx, [ebp - 0x40]
push ecx
push str.DynamicChangeInstallation
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c310
mov ecx, eax
call fcn.00402e80
push eax
push str.USBDialog
mov ecx, edi
call fcn.004f8220
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c3c0
mov ecx, eax
call fcn.00402e80
push eax
push str.DefaultInstallationOnly
mov ecx, edi
call fcn.004f8220
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c320
mov ecx, eax
call fcn.00402e80
push eax
push str.DriverCategoryRegValueName
mov ecx, edi
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c330
mov ecx, eax
call fcn.00402e80
push eax
push str.SupportCategory
mov ecx, edi
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c340
mov ecx, eax
call fcn.00402e80
push eax
push str.NullDriverInfPath
mov ecx, edi
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c350
mov esi, dword [eax]
mov ecx, esi
call fcn.0049ca30
mov ecx, esi
call fcn.0049cb10
lea ecx, [ebp - 0x36e4]
call fcn.005002c0
mov ecx, 0x618420
mov byte [ebp - 4], 0xc
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c360
mov ecx, eax
call fcn.00402e80
push eax
lea ecx, [ebp - 0x36e4]
call fcn.00402e90
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c370
mov ecx, eax
call fcn.00402e80
push eax
lea ecx, [ebp - 0x36cc]
call fcn.00402e90
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c380
mov ecx, eax
call fcn.00402e80
push eax
lea ecx, [ebp - 0x36b4]
call fcn.00402e90
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c390
push eax
lea ecx, [ebp - 0x369c]
call fcn.00502b20
mov ecx, 0x618420
call fcn.0041e0c0
lea ecx, [ebp - 0x36e4]
push ecx
mov ecx, eax
call fcn.005006f0
mov ebx, eax
test ebx, ebx
jns 0x51f407
lea ecx, [ebp - 0x3690]
call fcn.0040a900
mov eax, dword [0x608f30]
cmp eax, 0x608f30
je 0x51f66a
test byte [eax + 0x1c], 1
je 0x51f66a
push ebx
call fcn.0040a810
mov ecx, 0x1f
jmp 0x51f651
mov ecx, str.CAPT
call fcn.0049c890
test eax, eax
je 0x51f49b
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c3a0
mov ecx, eax
call fcn.00402e80
push eax
push str.VIRTUALCHANNEL_NAME
mov ecx, edi
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, 0x618420
mov esi, eax
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
mov ecx, esi
mov edi, eax
call fcn.0041b590
mov ecx, eax
call fcn.0051c3b0
mov ecx, eax
call fcn.00402e80
push eax
push str.MODULENAME_PREFIX
mov ecx, edi
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.004d5fe0
test eax, eax
je 0x51f4fb
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.USB_USE
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
push str.USBEXIST
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push dword [0x5c690c]
mov ecx, eax
push str.UPDATEPROCFLAG
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0041e0d0
cmp eax, 2
jne 0x51f629
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.0045f030
mov ecx, eax
call fcn.00409a50
test al, al
je 0x51f5bb
lea ecx, [ebp - 0x3690]
mov dword [0x6183ec], 0x19
call fcn.0040a900
mov eax, dword [0x608f30]
cmp eax, 0x608f30
je 0x51f5b1
test byte [eax + 0x1c], 1
je 0x51f5b1
push 0x80010019
call fcn.0040a810
push eax
mov eax, dword [0x608f30]
mov edx, 0x5deb2c
mov ecx, 0x20
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.004018a0
add esp, 0x10
mov ebx, 0x80010019
jmp 0x51f66a
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.0041b590
mov ecx, eax
call fcn.004d6020
test al, 1
jne 0x51f629
mov ecx, 0x618420
call fcn.004306c0
test eax, eax
jne 0x51f629
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c797c
push str.USB_USE
mov ecx, eax
call fcn.004f6860
mov ecx, 0x618420
call fcn.0049feb0
mov ecx, eax
call fcn.004e7170
push 0x5c79bc
push str.USBEXIST
mov ecx, eax
call fcn.004f6860
lea ecx, [ebp - 0x3690]
call fcn.0040a900
mov eax, dword [0x608f30]
cmp eax, 0x608f30
je 0x51f66a
test byte [eax + 0x1c], 1
je 0x51f66a
push ebx
call fcn.0040a810
mov ecx, 0x21
push eax
mov eax, dword [0x608f30]
mov edx, 0x5deb2c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x36e4]
call fcn.00500690
lea ecx, [ebp - 0x36f8]
call fcn.004307d0
lea ecx, [ebp - 0x36fc]
call fcn.00470bf0
lea ecx, [ebp - 0x3700]
call fcn.004380c0
lea ecx, [ebp - 0x36f0]
call fcn.00403300
lea ecx, [ebp - 0x3690]
call fcn.0040a570
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret