Function at 0x404290
Capabilities:
Check if file exists
Copy file
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bedb6
mov eax, dword fs:[0]
push eax
sub esp, 0x5ac
mov eax, dword [0x4f7458]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x554], ecx
lea eax, [ebp - 0x24]
push eax
mov ecx, 0x4f89c8
call fcn.0042b8e0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x14]
call fcn.004118a0
mov byte [ebp - 4], 1
mov edx, str.drivers_64_
test edx, edx
jne 0x4042f8
mov dword [ebp - 0xec], 0
jmp 0x40430b
push str.drivers_64_
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xec]
push eax
push str.drivers_64_
lea ecx, [ebp - 0x14]
call fcn.00410800
mov ecx, 0x4c9a34
test ecx, ecx
jne 0x404334
mov dword [ebp - 0xf0], 0
jmp 0x404347
push 0x4c9a34
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
push edx
push 0x4c9a34
lea ecx, [ebp - 0x24]
call fcn.00410800
mov ecx, 0x4f89c8
call fcn.00434fb0
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0
je 0x40440b
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xf4], eax
mov ecx, dword [ebp - 0xf4]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4043a6
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0xf8], edx
mov eax, dword [ebp - 0xf8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
je 0x404406
mov ecx, dword [ebp - 0x14]
push ecx
push str.UpdateDrivers_Is_Empty_Directory__s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0xc
mov dword [ebp - 0x5c], 0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
sub eax, 0x10
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0xfc]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
sub ecx, 0x10
mov dword [ebp - 0x100], ecx
mov ecx, dword [ebp - 0x100]
call fcn.00403de0
mov eax, dword [ebp - 0x5c]
jmp 0x406b0c
jmp 0x40449f
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x104], edx
mov eax, dword [ebp - 0x104]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40443f
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x108], ecx
mov edx, dword [ebp - 0x108]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
je 0x40449f
mov eax, dword [ebp - 0x24]
push eax
push str.UpdateDrivers_Is_Empty_Directory__s.
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 0xc
mov dword [ebp - 0x60], 0
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x14]
sub edx, 0x10
mov dword [ebp - 0x10c], edx
mov ecx, dword [ebp - 0x10c]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x24]
sub eax, 0x10
mov dword [ebp - 0x110], eax
mov ecx, dword [ebp - 0x110]
call fcn.00403de0
mov eax, dword [ebp - 0x60]
jmp 0x406b0c
lea ecx, [ebp - 0x3c]
push ecx
mov ecx, 0x4f89c8
call fcn.0042bf40
mov byte [ebp - 4], 2
mov edx, 0x4c99d4
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x114], edx
jne 0x4044d4
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x4044b1
xor ecx, ecx
jne 0x4044d8
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x118], edx
push 0x4c99d4
mov eax, dword [ebp - 0x118]
push eax
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x11c], eax
cmp dword [ebp - 0x11c], 0
je 0x404800
mov ecx, 0x4c99c4
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x120], ecx
jne 0x40452f
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x40450c
xor eax, eax
jne 0x404533
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x124], ecx
push 0x4c99c4
mov edx, dword [ebp - 0x124]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x404800
mov eax, 0x4c99b8
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x12c], eax
jne 0x40458a
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x404567
xor edx, edx
jne 0x40458e
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x130], eax
push 0x4c99b8
mov ecx, dword [ebp - 0x130]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x134], eax
cmp dword [ebp - 0x134], 0
je 0x404800
mov edx, 0x4c99a0
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x138], edx
jne 0x4045e5
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x4045c2
xor ecx, ecx
jne 0x4045e9
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x13c], edx
push 0x4c99a0
mov eax, dword [ebp - 0x13c]
push eax
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
je 0x404800
mov ecx, 0x4c998c
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x144], ecx
jne 0x404640
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x40461d
xor eax, eax
jne 0x404644
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x148], ecx
push 0x4c998c
mov edx, dword [ebp - 0x148]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0
je 0x404800
mov eax, 0x4c9978
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x150], eax
jne 0x40469b
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x404678
xor edx, edx
jne 0x40469f
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x154], eax
push 0x4c9978
mov ecx, dword [ebp - 0x154]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x158], eax
cmp dword [ebp - 0x158], 0
je 0x404800
mov edx, 0x4c9964
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x15c], edx
jne 0x4046f6
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x4046d3
xor ecx, ecx
jne 0x4046fa
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x160], edx
push 0x4c9964
mov eax, dword [ebp - 0x160]
push eax
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x164], eax
cmp dword [ebp - 0x164], 0
je 0x404800
mov ecx, 0x4c9950
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x168], ecx
jne 0x404751
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x40472e
xor eax, eax
jne 0x404755
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x16c], ecx
push 0x4c9950
mov edx, dword [ebp - 0x16c]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x170], eax
cmp dword [ebp - 0x170], 0
je 0x404800
mov eax, dword [ebp - 0x3c]
push eax
push str.UpdateDrivers_Driver_Not_Support_System__s.
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 0xc
mov dword [ebp - 0x64], 3
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x174], edx
mov ecx, dword [ebp - 0x174]
call fcn.00403de0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
sub eax, 0x10
mov dword [ebp - 0x178], eax
mov ecx, dword [ebp - 0x178]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
sub ecx, 0x10
mov dword [ebp - 0x17c], ecx
mov ecx, dword [ebp - 0x17c]
call fcn.00403de0
mov eax, dword [ebp - 0x64]
jmp 0x406b0c
call fcn.00447437
push eax
lea ecx, [ebp - 0x40]
call fcn.00411850
mov byte [ebp - 4], 3
call fcn.00447437
push eax
lea ecx, [ebp - 0x2c]
call fcn.00411850
mov byte [ebp - 4], 4
call fcn.00447437
push eax
lea ecx, [ebp - 0x30]
call fcn.00411850
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x554]
push edx
lea ecx, [ebp - 0x1c]
call fcn.004118a0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x554]
push eax
lea ecx, [ebp - 0x20]
call fcn.004118a0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x554]
push ecx
lea ecx, [ebp - 0x44]
call fcn.004118a0
mov byte [ebp - 4], 8
push 1
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0x1c]
call fcn.0040f740
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x180], edx
cmp dword [ebp - 0x180], 1
jne 0x4048c5
push 0
mov ecx, dword [ebp - 0x184]
call fcn.0040ff20
movzx eax, ax
mov ecx, 0x5c
movzx edx, cx
cmp eax, edx
jne 0x4048c5
mov dword [ebp - 0x558], 0
jmp 0x4048cf
mov dword [ebp - 0x558], 1
mov al, byte [ebp - 0x558]
mov byte [ebp - 0x65], al
mov ecx, dword [ebp - 0x6c]
sub ecx, 0x10
mov dword [ebp - 0x188], ecx
mov ecx, dword [ebp - 0x188]
call fcn.00403de0
movzx edx, byte [ebp - 0x65]
test edx, edx
je 0x404907
mov ax, 0x5c
movzx ecx, ax
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004119a0
push 1
lea edx, [ebp - 0x74]
push edx
lea ecx, [ebp - 0x20]
call fcn.0040f740
mov dword [ebp - 0x190], eax
mov eax, dword [ebp - 0x190]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x18c], edx
cmp dword [ebp - 0x18c], 1
jne 0x40495d
push 0
mov ecx, dword [ebp - 0x190]
call fcn.0040ff20
movzx eax, ax
mov ecx, 0x5c
movzx edx, cx
cmp eax, edx
jne 0x40495d
mov dword [ebp - 0x55c], 0
jmp 0x404967
mov dword [ebp - 0x55c], 1
mov al, byte [ebp - 0x55c]
mov byte [ebp - 0x6d], al
mov ecx, dword [ebp - 0x74]
sub ecx, 0x10
mov dword [ebp - 0x194], ecx
mov ecx, dword [ebp - 0x194]
call fcn.00403de0
movzx edx, byte [ebp - 0x6d]
test edx, edx
je 0x40499f
mov ax, 0x5c
movzx ecx, ax
push ecx
lea ecx, [ebp - 0x20]
call fcn.004119a0
push 1
lea edx, [ebp - 0x7c]
push edx
lea ecx, [ebp - 0x44]
call fcn.0040f740
mov dword [ebp - 0x19c], eax
mov eax, dword [ebp - 0x19c]
mov ecx, dword [eax]
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x198], edx
cmp dword [ebp - 0x198], 1
jne 0x4049f5
push 0
mov ecx, dword [ebp - 0x19c]
call fcn.0040ff20
movzx eax, ax
mov ecx, 0x5c
movzx edx, cx
cmp eax, edx
jne 0x4049f5
mov dword [ebp - 0x560], 0
jmp 0x4049ff
mov dword [ebp - 0x560], 1
mov al, byte [ebp - 0x560]
mov byte [ebp - 0x75], al
mov ecx, dword [ebp - 0x7c]
sub ecx, 0x10
mov dword [ebp - 0x1a0], ecx
mov ecx, dword [ebp - 0x1a0]
call fcn.00403de0
movzx edx, byte [ebp - 0x75]
test edx, edx
je 0x404a65
mov eax, str.FileOut_
test eax, eax
jne 0x404a3c
mov dword [ebp - 0x1a4], 0
jmp 0x404a4f
push str.FileOut_
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x1a4]
push ecx
push str.FileOut_
lea ecx, [ebp - 0x44]
call fcn.00410800
jmp 0x404aa1
mov edx, 0x4c98cc
test edx, edx
jne 0x404a7a
mov dword [ebp - 0x1a8], 0
jmp 0x404a8d
push 0x4c98cc
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x1a8]
push eax
push 0x4c98cc
lea ecx, [ebp - 0x44]
call fcn.00410800
cmp dword [ebp - 0x34], 0
jne 0x4050f2
mov ecx, 0x4c99d4
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x1ac], ecx
jne 0x404ace
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x404aab
xor eax, eax
jne 0x404ad2
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x1b0], ecx
push 0x4c99d4
mov edx, dword [ebp - 0x1b0]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0
je 0x404b5d
mov eax, 0x4c99c4
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x1b8], eax
jne 0x404b25
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x404b02
xor edx, edx
jne 0x404b29
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1bc], eax
push 0x4c99c4
mov ecx, dword [ebp - 0x1bc]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0
jne 0x404c68
push str.Filelock2k.sys
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x80]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x564], eax
mov ecx, dword [ebp - 0x564]
mov dword [ebp - 0x1c4], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x1c4]
push edx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x80]
sub eax, 0x10
mov dword [ebp - 0x1c8], eax
mov ecx, dword [ebp - 0x1c8]
call fcn.00403de0
mov ecx, str.Filelock2k.sys
test ecx, ecx
jne 0x404bc7
mov dword [ebp - 0x1cc], 0
jmp 0x404bda
push str.Filelock2k.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x1cc], eax
mov edx, dword [ebp - 0x1cc]
push edx
push str.Filelock2k.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x1d0], eax
mov ecx, dword [ebp - 0x1d0]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x404c63
push str.Filelock.sys
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x84]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x568], eax
mov ecx, dword [ebp - 0x568]
mov dword [ebp - 0x1d4], ecx
mov byte [ebp - 4], 0xa
mov edx, dword [ebp - 0x1d4]
push edx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x84]
sub eax, 0x10
mov dword [ebp - 0x1d8], eax
mov ecx, dword [ebp - 0x1d8]
call fcn.00403de0
jmp 0x4050ed
mov ecx, 0x4c99b8
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x1dc], ecx
jne 0x404c8b
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x404c68
xor eax, eax
jne 0x404c8f
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x1e0], ecx
push 0x4c99b8
mov edx, dword [ebp - 0x1e0]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x1e4], eax
cmp dword [ebp - 0x1e4], 0
je 0x404d1a
mov eax, 0x4c99a0
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x1e8], eax
jne 0x404ce2
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x404cbf
xor edx, edx
jne 0x404ce6
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1ec], eax
push 0x4c99a0
mov ecx, dword [ebp - 0x1ec]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x1f0], eax
cmp dword [ebp - 0x1f0], 0
jne 0x404db6
push str.FilelockXP.sys
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x88]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x56c], eax
mov ecx, dword [ebp - 0x56c]
mov dword [ebp - 0x1f4], ecx
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x1f4]
push edx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x88]
sub eax, 0x10
mov dword [ebp - 0x1f8], eax
mov ecx, dword [ebp - 0x1f8]
call fcn.00403de0
mov ecx, str.FilelockXP.sys
test ecx, ecx
jne 0x404d8a
mov dword [ebp - 0x1fc], 0
jmp 0x404d9d
push str.FilelockXP.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x1fc], eax
mov edx, dword [ebp - 0x1fc]
push edx
push str.FilelockXP.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
jmp 0x4050ed
mov eax, 0x4c998c
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x200], eax
jne 0x404dd9
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x404db6
xor edx, edx
jne 0x404ddd
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x204], eax
push 0x4c998c
mov ecx, dword [ebp - 0x204]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x208], eax
cmp dword [ebp - 0x208], 0
jne 0x404ead
push str.FilelockLH.sys
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x8c]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x570], eax
mov ecx, dword [ebp - 0x570]
mov dword [ebp - 0x20c], ecx
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x20c]
push edx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x8c]
sub eax, 0x10
mov dword [ebp - 0x210], eax
mov ecx, dword [ebp - 0x210]
call fcn.00403de0
mov ecx, str.FilelockLH.sys
test ecx, ecx
jne 0x404e81
mov dword [ebp - 0x214], 0
jmp 0x404e94
push str.FilelockLH.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x214], eax
mov edx, dword [ebp - 0x214]
push edx
push str.FilelockLH.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
jmp 0x4050ed
mov eax, 0x4c9978
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x218], eax
jne 0x404ed0
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x404ead
xor edx, edx
jne 0x404ed4
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x21c], eax
push 0x4c9978
mov ecx, dword [ebp - 0x21c]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x404f5f
mov edx, 0x4c9964
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x224], edx
jne 0x404f27
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x404f04
xor ecx, ecx
jne 0x404f2b
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x228], edx
push 0x4c9964
mov eax, dword [ebp - 0x228]
push eax
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x22c], eax
cmp dword [ebp - 0x22c], 0
jne 0x404ffb
push str.FilelockW7.sys
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x90]
push edx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x574], eax
mov eax, dword [ebp - 0x574]
mov dword [ebp - 0x230], eax
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x230]
push ecx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x90]
sub edx, 0x10
mov dword [ebp - 0x234], edx
mov ecx, dword [ebp - 0x234]
call fcn.00403de0
mov eax, str.FilelockW7.sys
test eax, eax
jne 0x404fcf
mov dword [ebp - 0x238], 0
jmp 0x404fe2
push str.FilelockW7.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x238]
push ecx
push str.FilelockW7.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
jmp 0x4050ed
mov edx, 0x4c9950
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x23c], edx
jne 0x40501e
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x404ffb
xor ecx, ecx
jne 0x405022
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x240], edx
push 0x4c9950
mov eax, dword [ebp - 0x240]
push eax
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0
jne 0x4050ed
push str.FilelockW8.sys
lea ecx, [ebp - 0x24]
push ecx
lea edx, [ebp - 0x94]
push edx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x578], eax
mov eax, dword [ebp - 0x578]
mov dword [ebp - 0x248], eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x248]
push ecx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x94]
sub edx, 0x10
mov dword [ebp - 0x24c], edx
mov ecx, dword [ebp - 0x24c]
call fcn.00403de0
mov eax, str.FilelockW8.sys
test eax, eax
jne 0x4050c6
mov dword [ebp - 0x250], 0
jmp 0x4050d9
push str.FilelockW8.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x250], eax
mov ecx, dword [ebp - 0x250]
push ecx
push str.FilelockW8.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
jmp 0x405577
mov edx, 0x4c99b8
neg edx
sbb edx, edx
neg edx
neg edx
sbb edx, edx
neg edx
mov dword [ebp - 0x254], edx
jne 0x405115
push 0x80004005
call fcn.00402430
xor eax, eax
jne 0x4050f2
xor ecx, ecx
jne 0x405119
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x258], edx
push 0x4c99b8
mov eax, dword [ebp - 0x258]
push eax
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x25c], eax
cmp dword [ebp - 0x25c], 0
je 0x4051a4
mov ecx, 0x4c99a0
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x260], ecx
jne 0x40516c
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x405149
xor eax, eax
jne 0x405170
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x264], ecx
push 0x4c99a0
mov edx, dword [ebp - 0x264]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x268], eax
cmp dword [ebp - 0x268], 0
jne 0x405240
push str.FilelockXP64.sys
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x98]
push ecx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x57c], eax
mov edx, dword [ebp - 0x57c]
mov dword [ebp - 0x26c], edx
mov byte [ebp - 4], 0xf
mov eax, dword [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x98]
sub ecx, 0x10
mov dword [ebp - 0x270], ecx
mov ecx, dword [ebp - 0x270]
call fcn.00403de0
mov edx, str.FilelockXP64.sys
test edx, edx
jne 0x405214
mov dword [ebp - 0x274], 0
jmp 0x405227
push str.FilelockXP64.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x274], eax
mov eax, dword [ebp - 0x274]
push eax
push str.FilelockXP64.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
jmp 0x405577
mov ecx, 0x4c998c
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x278], ecx
jne 0x405263
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x405240
xor eax, eax
jne 0x405267
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x27c], ecx
push 0x4c998c
mov edx, dword [ebp - 0x27c]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x280], eax
cmp dword [ebp - 0x280], 0
jne 0x405337
push str.FilelockLH64.sys
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x9c]
push ecx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x580], eax
mov edx, dword [ebp - 0x580]
mov dword [ebp - 0x284], edx
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x284]
push eax
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x9c]
sub ecx, 0x10
mov dword [ebp - 0x288], ecx
mov ecx, dword [ebp - 0x288]
call fcn.00403de0
mov edx, str.FilelockLH64.sys
test edx, edx
jne 0x40530b
mov dword [ebp - 0x28c], 0
jmp 0x40531e
push str.FilelockLH64.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x28c], eax
mov eax, dword [ebp - 0x28c]
push eax
push str.FilelockLH64.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
jmp 0x405577
mov ecx, 0x4c9978
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x290], ecx
jne 0x40535a
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x405337
xor eax, eax
jne 0x40535e
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x294], ecx
push 0x4c9978
mov edx, dword [ebp - 0x294]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x298], eax
cmp dword [ebp - 0x298], 0
je 0x4053e9
mov eax, 0x4c9964
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x29c], eax
jne 0x4053b1
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x40538e
xor edx, edx
jne 0x4053b5
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2a0], eax
push 0x4c9964
mov ecx, dword [ebp - 0x2a0]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x2a4], eax
cmp dword [ebp - 0x2a4], 0
jne 0x405485
push str.FilelockW764.sys
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0xa0]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x584], eax
mov ecx, dword [ebp - 0x584]
mov dword [ebp - 0x2a8], ecx
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x2a8]
push edx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0xa0]
sub eax, 0x10
mov dword [ebp - 0x2ac], eax
mov ecx, dword [ebp - 0x2ac]
call fcn.00403de0
mov ecx, str.FilelockW764.sys
test ecx, ecx
jne 0x405459
mov dword [ebp - 0x2b0], 0
jmp 0x40546c
push str.FilelockW764.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x2b0], eax
mov edx, dword [ebp - 0x2b0]
push edx
push str.FilelockW764.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
jmp 0x405577
mov eax, 0x4c9950
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2b4], eax
jne 0x4054a8
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x405485
xor edx, edx
jne 0x4054ac
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2b8], eax
push 0x4c9950
mov ecx, dword [ebp - 0x2b8]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x2bc], eax
cmp dword [ebp - 0x2bc], 0
jne 0x405577
push str.FilelockW864.sys
lea edx, [ebp - 0x14]
push edx
lea eax, [ebp - 0xa4]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x588], eax
mov ecx, dword [ebp - 0x588]
mov dword [ebp - 0x2c0], ecx
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x2c0]
push edx
lea ecx, [ebp - 0x40]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0xa4]
sub eax, 0x10
mov dword [ebp - 0x2c4], eax
mov ecx, dword [ebp - 0x2c4]
call fcn.00403de0
mov ecx, str.FilelockW864.sys
test ecx, ecx
jne 0x405550
mov dword [ebp - 0x2c8], 0
jmp 0x405563
push str.FilelockW864.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x2c8], eax
mov edx, dword [ebp - 0x2c8]
push edx
push str.FilelockW864.sys
lea ecx, [ebp - 0x1c]
call fcn.00410800
cmp dword [ebp - 0x34], 0
jne 0x405714
mov eax, 0x4c9950
neg eax
sbb eax, eax
neg eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x2cc], eax
jne 0x4055a4
push 0x80004005
call fcn.00402430
xor ecx, ecx
jne 0x405581
xor edx, edx
jne 0x4055a8
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x2d0], eax
push 0x4c9950
mov ecx, dword [ebp - 0x2d0]
push ecx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x2d4], eax
cmp dword [ebp - 0x2d4], 0
jne 0x405678
push str.maillockw8wp.sys
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0xa8]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x58c], eax
mov ecx, dword [ebp - 0x58c]
mov dword [ebp - 0x2d8], ecx
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x2d8]
push edx
lea ecx, [ebp - 0x2c]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0xa8]
sub eax, 0x10
mov dword [ebp - 0x2dc], eax
mov ecx, dword [ebp - 0x2dc]
call fcn.00403de0
mov ecx, str.maillockw8wp.sys
test ecx, ecx
jne 0x40564c
mov dword [ebp - 0x2e0], 0
jmp 0x40565f
push str.maillockw8wp.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x2e0], eax
mov edx, dword [ebp - 0x2e0]
push edx
push str.maillockw8wp.sys
lea ecx, [ebp - 0x20]
call fcn.00410800
jmp 0x40570f
push str.maillockwp.sys
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0xac]
push ecx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x590], eax
mov edx, dword [ebp - 0x590]
mov dword [ebp - 0x2e4], edx
mov byte [ebp - 4], 0x14
mov eax, dword [ebp - 0x2e4]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004118e0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xac]
sub ecx, 0x10
mov dword [ebp - 0x2e8], ecx
mov ecx, dword [ebp - 0x2e8]
call fcn.00403de0
mov edx, str.maillockwp.sys
test edx, edx
jne 0x4056e8
mov dword [ebp - 0x2ec], 0
jmp 0x4056fb
push str.maillockwp.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x2ec], eax
mov eax, dword [ebp - 0x2ec]
push eax
push str.maillockwp.sys
lea ecx, [ebp - 0x20]
call fcn.00410800
jmp 0x4058a2
mov ecx, 0x4c9950
neg ecx
sbb ecx, ecx
neg ecx
neg ecx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x2f0], ecx
jne 0x405737
push 0x80004005
call fcn.00402430
xor edx, edx
jne 0x405714
xor eax, eax
jne 0x40573b
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x2f4], ecx
push 0x4c9950
mov edx, dword [ebp - 0x2f4]
push edx
call fcn.0048bb76
add esp, 8
mov dword [ebp - 0x2f8], eax
cmp dword [ebp - 0x2f8], 0
jne 0x40580b
push str.maillockw8wp64.sys
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0xb0]
push ecx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x594], eax
mov edx, dword [ebp - 0x594]
mov dword [ebp - 0x2fc], edx
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x2fc]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004118e0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xb0]
sub ecx, 0x10
mov dword [ebp - 0x300], ecx
mov ecx, dword [ebp - 0x300]
call fcn.00403de0
mov edx, str.maillockw8wp64.sys
test edx, edx
jne 0x4057df
mov dword [ebp - 0x304], 0
jmp 0x4057f2
push str.maillockw8wp64.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x304], eax
mov eax, dword [ebp - 0x304]
push eax
push str.maillockw8wp64.sys
lea ecx, [ebp - 0x20]
call fcn.00410800
jmp 0x4058a2
push str.maillockwp64.sys
lea ecx, [ebp - 0x14]
push ecx
lea edx, [ebp - 0xb4]
push edx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x598], eax
mov eax, dword [ebp - 0x598]
mov dword [ebp - 0x308], eax
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x308]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.004118e0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0xb4]
sub edx, 0x10
mov dword [ebp - 0x30c], edx
mov ecx, dword [ebp - 0x30c]
call fcn.00403de0
mov eax, str.maillockwp64.sys
test eax, eax
jne 0x40587b
mov dword [ebp - 0x310], 0
jmp 0x40588e
push str.maillockwp64.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x310], eax
mov ecx, dword [ebp - 0x310]
push ecx
push str.maillockwp64.sys
lea ecx, [ebp - 0x20]
call fcn.00410800
cmp dword [ebp - 0x34], 0
jne 0x405948
push str.estdlock.sys
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0xb8]
push eax
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x59c], eax
mov ecx, dword [ebp - 0x59c]
mov dword [ebp - 0x314], ecx
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x314]
push edx
lea ecx, [ebp - 0x30]
call fcn.004118e0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0xb8]
sub eax, 0x10
mov dword [ebp - 0x318], eax
mov ecx, dword [ebp - 0x318]
call fcn.00403de0
mov ecx, str.estdlock.sys
test ecx, ecx
jne 0x40591c
mov dword [ebp - 0x31c], 0
jmp 0x40592f
push str.estdlock.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x31c], eax
mov edx, dword [ebp - 0x31c]
push edx
push str.estdlock.sys
lea ecx, [ebp - 0x44]
call fcn.00410800
jmp 0x4059df
push str.estdlock64.sys
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0xbc]
push ecx
call fcn.0040f970
add esp, 0xc
mov dword [ebp - 0x5a0], eax
mov edx, dword [ebp - 0x5a0]
mov dword [ebp - 0x320], edx
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x320]
push eax
lea ecx, [ebp - 0x30]
call fcn.004118e0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0xbc]
sub ecx, 0x10
mov dword [ebp - 0x324], ecx
mov ecx, dword [ebp - 0x324]
call fcn.00403de0
mov edx, str.estdlock64.sys
test edx, edx
jne 0x4059b8
mov dword [ebp - 0x328], 0
jmp 0x4059cb
push str.estdlock64.sys
call fcn.0048bb5c
add esp, 4
mov dword [ebp - 0x328], eax
mov eax, dword [ebp - 0x328]
push eax
push str.estdlock64.sys
lea ecx, [ebp - 0x44]
call fcn.00410800
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
mov eax, dword [ebp - 0x40]
push eax
push str.UpdateDrivers_File___s.._s.._s..
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 0x14
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x32c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x405b84
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x330], ecx
mov edx, dword [ebp - 0x330]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x405b84
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x334], eax
mov ecx, dword [ebp - 0x334]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x405b84
mov edx, dword [ebp - 0x30]
push edx
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
push str.UpdateDrivers_File_Not_Exists___s.._s.._s..
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov dword [ebp - 0xc0], 4
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x338], eax
mov ecx, dword [ebp - 0x338]
call fcn.00403de0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x20]
sub ecx, 0x10
mov dword [ebp - 0x33c], ecx
mov ecx, dword [ebp - 0x33c]
call fcn.00403de0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1c]
sub edx, 0x10
mov dword [ebp - 0x340], edx
mov ecx, dword [ebp - 0x340]
call fcn.00403de0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
sub eax, 0x10
mov dword [ebp - 0x344], eax
mov ecx, dword [ebp - 0x344]
call fcn.00403de0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x348], ecx
mov ecx, dword [ebp - 0x348]
call fcn.00403de0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x34c], edx
mov ecx, dword [ebp - 0x34c]
call fcn.00403de0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x350], eax
mov ecx, dword [ebp - 0x350]
call fcn.00403de0
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x14]
sub ecx, 0x10
mov dword [ebp - 0x354], ecx
mov ecx, dword [ebp - 0x354]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x24]
sub edx, 0x10
mov dword [ebp - 0x358], edx
mov ecx, dword [ebp - 0x358]
call fcn.00403de0
mov eax, dword [ebp - 0xc0]
jmp 0x406b0c
lea eax, [ebp - 0xc4]
push eax
mov ecx, 0x4f89c8
call fcn.0042d1d0
mov dword [ebp - 0x5a4], eax
mov ecx, dword [ebp - 0x5a4]
mov dword [ebp - 0x5a8], ecx
mov byte [ebp - 4], 0x19
push str.FileLock.sys
mov edx, dword [ebp - 0x5a8]
push edx
lea eax, [ebp - 0x18]
push eax
call fcn.0040f970
add esp, 0xc
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0xc4]
sub ecx, 0x10
mov dword [ebp - 0x35c], ecx
mov ecx, dword [ebp - 0x35c]
call fcn.00403de0
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x360], edx
mov eax, dword [ebp - 0x360]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x405c0a
push 0x80
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea edx, [ebp - 0xc8]
push edx
mov ecx, 0x4f89c8
call fcn.0042d1d0
mov dword [ebp - 0x5ac], eax
mov eax, dword [ebp - 0x5ac]
mov dword [ebp - 0x5b0], eax
mov byte [ebp - 4], 0x1c
push str.maillock.sys
mov ecx, dword [ebp - 0x5b0]
push ecx
lea edx, [ebp - 0x10]
push edx
call fcn.0040f970
add esp, 0xc
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0xc8]
sub eax, 0x10
mov dword [ebp - 0x364], eax
mov ecx, dword [ebp - 0x364]
call fcn.00403de0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x368], ecx
mov edx, dword [ebp - 0x368]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x405c90
push 0x80
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea ecx, [ebp - 0xcc]
push ecx
mov ecx, 0x4f89c8
call fcn.0042d1d0
mov dword [ebp - 0x5b4], eax
mov edx, dword [ebp - 0x5b4]
mov dword [ebp - 0x5b8], edx
mov byte [ebp - 4], 0x1f
push str.estdlock.sys
mov eax, dword [ebp - 0x5b8]
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.0040f970
add esp, 0xc
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0xcc]
sub edx, 0x10
mov dword [ebp - 0x36c], edx
mov ecx, dword [ebp - 0x36c]
call fcn.00403de0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x370], eax
mov ecx, dword [ebp - 0x370]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x405d16
push 0x80
mov edx, dword [ebp - 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp dword [ebp - 0x34], 0
je 0x405d59
push 0
call fcn.00435150
add esp, 4
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
je 0x405d45
push str.DoUpdate_WowFsRedirection__FALSE__Succeed.
mov eax, dword [ebp - 0x554]
push eax
call fcn.004028d0
add esp, 8
jmp 0x405d59
push str.DoUpdate_WowFsRedirection__FALSE__Fail.
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 8
mov dword [ebp - 0x38], 0
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x374], edx
mov eax, dword [ebp - 0x374]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x406276
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x378], ecx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x37c], edx
push 0
mov eax, dword [ebp - 0x378]
push eax
mov ecx, dword [ebp - 0x37c]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x405dc8
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x40]
push eax
push str.UpdateDrivers_Copy_Driver_File_ToClient_Succeed__s_____s.
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 0x10
jmp 0x405deb
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_ToClient_Fail___LastError___d___s_____s.
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 0x14
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x380], edx
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x384], eax
push 0
mov ecx, dword [ebp - 0x380]
push ecx
mov edx, dword [ebp - 0x384]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x405e3d
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
push str.UpdateDrivers_Copy_Driver_File_Succeed____s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x10
jmp 0x406276
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_Fail___LastError___d___s_____s__will_RenameCopy
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x40]
push ecx
mov ecx, dword [ebp - 0x554]
call fcn.004040d0
test eax, eax
jne 0x40626f
push str..tmp
lea edx, [ebp - 0x1c]
push edx
lea eax, [ebp - 0x4c]
push eax
call fcn.0040f970
add esp, 0xc
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x388], ecx
mov edx, dword [ebp - 0x40]
mov dword [ebp - 0x38c], edx
push 0
mov eax, dword [ebp - 0x388]
push eax
mov ecx, dword [ebp - 0x38c]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x40605e
mov edx, dword [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Client_File_Fail__MoveFileEx___LastError___d___s_____s.
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 0x14
mov dword [ebp - 0xd0], 5
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x390], edx
mov ecx, dword [ebp - 0x390]
call fcn.00403de0
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x28]
sub eax, 0x10
mov dword [ebp - 0x394], eax
mov ecx, dword [ebp - 0x394]
call fcn.00403de0
mov byte [ebp - 4], 0x1b
mov ecx, dword [ebp - 0x10]
sub ecx, 0x10
mov dword [ebp - 0x398], ecx
mov ecx, dword [ebp - 0x398]
call fcn.00403de0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x18]
sub edx, 0x10
mov dword [ebp - 0x39c], edx
mov ecx, dword [ebp - 0x39c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x44]
sub eax, 0x10
mov dword [ebp - 0x3a0], eax
mov ecx, dword [ebp - 0x3a0]
call fcn.00403de0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x20]
sub ecx, 0x10
mov dword [ebp - 0x3a4], ecx
mov ecx, dword [ebp - 0x3a4]
call fcn.00403de0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x1c]
sub edx, 0x10
mov dword [ebp - 0x3a8], edx
mov ecx, dword [ebp - 0x3a8]
call fcn.00403de0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x30]
sub eax, 0x10
mov dword [ebp - 0x3ac], eax
mov ecx, dword [ebp - 0x3ac]
call fcn.00403de0
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x2c]
sub ecx, 0x10
mov dword [ebp - 0x3b0], ecx
mov ecx, dword [ebp - 0x3b0]
call fcn.00403de0
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x40]
sub edx, 0x10
mov dword [ebp - 0x3b4], edx
mov ecx, dword [ebp - 0x3b4]
call fcn.00403de0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x3c]
sub eax, 0x10
mov dword [ebp - 0x3b8], eax
mov ecx, dword [ebp - 0x3b8]
call fcn.00403de0
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x14]
sub ecx, 0x10
mov dword [ebp - 0x3bc], ecx
mov ecx, dword [ebp - 0x3bc]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x24]
sub edx, 0x10
mov dword [ebp - 0x3c0], edx
mov ecx, dword [ebp - 0x3c0]
call fcn.00403de0
mov eax, dword [ebp - 0xd0]
jmp 0x406b0c
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_Fail___LastError___d___s_____s__will_RebootCopy
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x3c4], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x3c8], ecx
push 5
mov edx, dword [ebp - 0x3c4]
push edx
mov eax, dword [ebp - 0x3c8]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x40624b
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x4c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Move_Driver_File_Fail__MoveFileEx___LastError___d___s_____s.
mov eax, dword [ebp - 0x554]
push eax
call fcn.004028d0
add esp, 0x14
mov dword [ebp - 0xd4], 5
mov byte [ebp - 4], 0x21
mov ecx, dword [ebp - 0x4c]
sub ecx, 0x10
mov dword [ebp - 0x3cc], ecx
mov ecx, dword [ebp - 0x3cc]
call fcn.00403de0
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x28]
sub edx, 0x10
mov dword [ebp - 0x3d0], edx
mov ecx, dword [ebp - 0x3d0]
call fcn.00403de0
mov byte [ebp - 4], 0x1b
mov eax, dword [ebp - 0x10]
sub eax, 0x10
mov dword [ebp - 0x3d4], eax
mov ecx, dword [ebp - 0x3d4]
call fcn.00403de0
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x18]
sub ecx, 0x10
mov dword [ebp - 0x3d8], ecx
mov ecx, dword [ebp - 0x3d8]
call fcn.00403de0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x44]
sub edx, 0x10
mov dword [ebp - 0x3dc], edx
mov ecx, dword [ebp - 0x3dc]
call fcn.00403de0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x20]
sub eax, 0x10
mov dword [ebp - 0x3e0], eax
mov ecx, dword [ebp - 0x3e0]
call fcn.00403de0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x1c]
sub ecx, 0x10
mov dword [ebp - 0x3e4], ecx
mov ecx, dword [ebp - 0x3e4]
call fcn.00403de0
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x30]
sub edx, 0x10
mov dword [ebp - 0x3e8], edx
mov ecx, dword [ebp - 0x3e8]
call fcn.00403de0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x2c]
sub eax, 0x10
mov dword [ebp - 0x3ec], eax
mov ecx, dword [ebp - 0x3ec]
call fcn.00403de0
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x40]
sub ecx, 0x10
mov dword [ebp - 0x3f0], ecx
mov ecx, dword [ebp - 0x3f0]
call fcn.00403de0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x3c]
sub edx, 0x10
mov dword [ebp - 0x3f4], edx
mov ecx, dword [ebp - 0x3f4]
call fcn.00403de0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
sub eax, 0x10
mov dword [ebp - 0x3f8], eax
mov ecx, dword [ebp - 0x3f8]
call fcn.00403de0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
sub ecx, 0x10
mov dword [ebp - 0x3fc], ecx
mov ecx, dword [ebp - 0x3fc]
call fcn.00403de0
mov eax, dword [ebp - 0xd4]
jmp 0x406b0c
mov dword [ebp - 0x38], 1
mov byte [ebp - 4], 0x21
mov edx, dword [ebp - 0x4c]
sub edx, 0x10
mov dword [ebp - 0x400], edx
mov ecx, dword [ebp - 0x400]
call fcn.00403de0
jmp 0x406276
mov dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x404], eax
mov ecx, dword [ebp - 0x404]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40669c
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x408], edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40c], eax
push 0
mov ecx, dword [ebp - 0x408]
push ecx
mov edx, dword [ebp - 0x40c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x4062de
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
push str.UpdateDrivers_Copy_Driver_File_ToClient_Succeed__s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x10
jmp 0x406301
mov eax, dword [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_ToClient_Fail___LastError___d___s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x410], eax
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x414], ecx
push 0
mov edx, dword [ebp - 0x410]
push edx
mov eax, dword [ebp - 0x414]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x406353
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
push str.UpdateDrivers_Copy_Driver_File_Succeed____s_____s.
mov eax, dword [ebp - 0x554]
push eax
call fcn.004028d0
add esp, 0x10
jmp 0x40669c
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_Fail___LastError___d___s_____s__will_RenameCopy
mov eax, dword [ebp - 0x554]
push eax
call fcn.004028d0
add esp, 0x14
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x554]
call fcn.004040d0
test eax, eax
jne 0x406695
push str..tmp
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x50]
push ecx
call fcn.0040f970
add esp, 0xc
mov byte [ebp - 4], 0x23
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x418], edx
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x41c], eax
push 0
mov ecx, dword [ebp - 0x418]
push ecx
mov edx, dword [ebp - 0x41c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x406556
mov eax, dword [ebp - 0x50]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Client_File_Fail__MoveFileEx___LastError___d___s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov dword [ebp - 0xd8], 5
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0x50]
sub eax, 0x10
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x420]
call fcn.00403de0
mov byte [ebp - 4], 0x1e
mov ecx, dword [ebp - 0x28]
sub ecx, 0x10
mov dword [ebp - 0x424], ecx
mov ecx, dword [ebp - 0x424]
call fcn.00403de0
mov byte [ebp - 4], 0x1b
mov edx, dword [ebp - 0x10]
sub edx, 0x10
mov dword [ebp - 0x428], edx
mov ecx, dword [ebp - 0x428]
call fcn.00403de0
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x18]
sub eax, 0x10
mov dword [ebp - 0x42c], eax
mov ecx, dword [ebp - 0x42c]
call fcn.00403de0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x44]
sub ecx, 0x10
mov dword [ebp - 0x430], ecx
mov ecx, dword [ebp - 0x430]
call fcn.00403de0
mov byte [ebp - 4], 6
mov edx, dword [ebp - 0x20]
sub edx, 0x10
mov dword [ebp - 0x434], edx
mov ecx, dword [ebp - 0x434]
call fcn.00403de0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x1c]
sub eax, 0x10
mov dword [ebp - 0x438], eax
mov ecx, dword [ebp - 0x438]
call fcn.00403de0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x30]
sub ecx, 0x10
mov dword [ebp - 0x43c], ecx
mov ecx, dword [ebp - 0x43c]
call fcn.00403de0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x2c]
sub edx, 0x10
mov dword [ebp - 0x440], edx
mov ecx, dword [ebp - 0x440]
call fcn.00403de0
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x40]
sub eax, 0x10
mov dword [ebp - 0x444], eax
mov ecx, dword [ebp - 0x444]
call fcn.00403de0
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x3c]
sub ecx, 0x10
mov dword [ebp - 0x448], ecx
mov ecx, dword [ebp - 0x448]
call fcn.00403de0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00402470
mov eax, dword [ebp - 0xd8]
jmp 0x406b0c
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_Fail___LastError___d___s_____s__will_RebootCopy
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 0x14
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x454], edx
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x458], eax
push 5
mov ecx, dword [ebp - 0x454]
push ecx
mov edx, dword [ebp - 0x458]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x406680
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x50]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Move_Driver_File_Fail__MoveFileEx___LastError___d___s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov dword [ebp - 0xdc], 5
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x50]
call fcn.00402470
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x28]
call fcn.00402470
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x10]
call fcn.00402470
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x18]
call fcn.00402470
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44]
call fcn.00402470
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.00402470
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x30]
call fcn.00402470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
call fcn.00402470
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.00402470
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c]
call fcn.00402470
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00402470
mov eax, dword [ebp - 0xdc]
jmp 0x406b0c
mov dword [ebp - 0x38], 1
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x50]
call fcn.00402470
jmp 0x40669c
mov dword [ebp - 0x38], 1
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x494], eax
mov ecx, dword [ebp - 0x494]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x406a1d
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x498], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x49c], eax
push 0
mov ecx, dword [ebp - 0x498]
push ecx
mov edx, dword [ebp - 0x49c]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x406704
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
push str.UpdateDrivers_Copy_Driver_File_ToClient_Succeed__s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x10
jmp 0x406727
mov eax, dword [ebp - 0x44]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_ToClient_Fail___LastError___d___s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x4a0], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x4a4], ecx
push 0
mov edx, dword [ebp - 0x4a0]
push edx
mov eax, dword [ebp - 0x4a4]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
je 0x406779
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0x30]
push edx
push str.UpdateDrivers_Copy_Driver_File_Succeed____s_____s.
mov eax, dword [ebp - 0x554]
push eax
call fcn.004028d0
add esp, 0x10
jmp 0x406a1d
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_Fail___LastError___d___s_____s__will_RenameCopy
mov eax, dword [ebp - 0x554]
push eax
call fcn.004028d0
add esp, 0x14
lea ecx, [ebp - 0x28]
push ecx
lea edx, [ebp - 0x30]
push edx
mov ecx, dword [ebp - 0x554]
call fcn.004040d0
test eax, eax
jne 0x406a16
push str..tmp
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x54]
push ecx
call fcn.0040f970
add esp, 0xc
mov byte [ebp - 4], 0x24
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x4a8], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4ac], eax
push 0
mov ecx, dword [ebp - 0x4a8]
push ecx
mov edx, dword [ebp - 0x4ac]
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4068d7
mov eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Client_File_Fail__MoveFileEx___LastError___d___s_____s.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov dword [ebp - 0xe0], 5
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x54]
call fcn.00402470
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x28]
call fcn.00402470
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x10]
call fcn.00402470
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x18]
call fcn.00402470
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44]
call fcn.00402470
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.00402470
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x30]
call fcn.00402470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
call fcn.00402470
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.00402470
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c]
call fcn.00402470
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00402470
mov eax, dword [ebp - 0xe0]
jmp 0x406b0c
mov eax, dword [ebp - 0x28]
push eax
mov ecx, dword [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Copy_Driver_File_Fail___LastError___d___s_____s__will_RebootCopy
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 0x14
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x4e4], eax
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x4e8], ecx
push 5
mov edx, dword [ebp - 0x4e4]
push edx
mov eax, dword [ebp - 0x4e8]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x406a01
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0x54]
push edx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.UpdateDrivers_Move_Driver_File_Fail__MoveFileEx___LastError___d___s_____s.
mov eax, dword [ebp - 0x554]
push eax
call fcn.004028d0
add esp, 0x14
mov dword [ebp - 0xe4], 5
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x54]
call fcn.00402470
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x28]
call fcn.00402470
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x10]
call fcn.00402470
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x18]
call fcn.00402470
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44]
call fcn.00402470
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.00402470
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x30]
call fcn.00402470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
call fcn.00402470
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.00402470
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c]
call fcn.00402470
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00402470
mov eax, dword [ebp - 0xe4]
jmp 0x406b0c
mov dword [ebp - 0x38], 1
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x54]
call fcn.00402470
jmp 0x406a1d
mov dword [ebp - 0x38], 1
cmp dword [ebp - 0x34], 0
je 0x406a60
push 1
call fcn.00435150
add esp, 4
mov dword [ebp - 0x58], eax
cmp dword [ebp - 0x58], 0
je 0x406a4c
push str.DoUpdate_WowFsRedirection__TRUE__Succeed.
mov ecx, dword [ebp - 0x554]
push ecx
call fcn.004028d0
add esp, 8
jmp 0x406a60
push str.DoUpdate_WowFsRedirection__TRUE__Fail.
mov edx, dword [ebp - 0x554]
push edx
call fcn.004028d0
add esp, 8
mov eax, dword [ebp - 0x38]
neg eax
sbb eax, eax
and eax, 0xfffffffb
add eax, 5
mov dword [ebp - 0xe8], eax
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x28]
call fcn.00402470
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x10]
call fcn.00402470
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x18]
call fcn.00402470
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x44]
call fcn.00402470
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x20]
call fcn.00402470
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1c]
call fcn.00402470
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x30]
call fcn.00402470
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
call fcn.00402470
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x40]
call fcn.00402470
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x3c]
call fcn.00402470
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00402470
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call fcn.00402470
mov eax, dword [ebp - 0xe8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret