Function at 0x47c1b0
Capabilities:
Check if file exists
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a1f16
mov eax, dword fs:[0]
push eax
mov eax, 0x12e8
call fcn.0056e430
mov eax, dword [0x608554]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x12e4], ecx
push ecx
push str.PrinterDriverInstall::DeletePrinterAndDriver
lea ecx, [ebp - 0x12a0]
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47c23f
test byte [ecx + 0x1c], 1
je 0x47c23f
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d03b8
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0xe
call fcn.00401840
add esp, 0xc
xor eax, eax
xor edi, edi
push 0x800
mov dword [ebp - 0x12a8], eax
mov dword [ebp - 0x12cc], eax
mov dword [ebp - 0x12d4], eax
lea eax, [ebp - 0x1218]
push edi
push eax
call fcn.00571c00
add esp, 0xc
mov dword [ebp - 0x12c8], edi
mov dword [ebp - 0x12c0], edi
mov byte [ebp - 4], 1
mov dword [ebp - 0x12c4], edi
mov dword [ebp - 0x12b8], edi
mov dword [ebp - 0x12b4], edi
call fcn.00407360
mov esi, eax
mov dword [ebp - 0x12b8], esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x12b8]
push dword [esi + 4]
call fcn.00407310
mov eax, dword [ebp - 0x12b8]
lea ecx, [ebp - 0x12dc]
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x12b8]
mov dword [eax], esi
mov eax, dword [ebp - 0x12b8]
mov byte [ebp - 4], 2
mov dword [eax + 8], esi
mov dword [ebp - 0x12b4], edi
call fcn.00430700
lea ecx, [ebp - 0x12e8]
mov byte [ebp - 4], 4
call fcn.00443080
lea ecx, [ebp - 0x12f4]
mov byte [ebp - 4], 5
call fcn.0047bff0
lea ecx, [ebp - 0x12d8]
mov byte [ebp - 4], 6
call fcn.00470b20
push edi
mov byte [ebp - 4], 7
mov ecx, dword [0x6184f8]
push 0x3f1
call fcn.004b2fb0
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1218]
push eax
push str.ADDITIONALS
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1218]
push eax
push str.ADDDRIVERLEVEL
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
lea eax, [ebp - 0x1218]
push eax
call fcn.00577bb7
add esp, 4
mov edx, dword [0x608f30]
cmp edx, 0x608f30
je 0x47c39e
test byte [edx + 0x1c], 4
je 0x47c39e
cmp dword [0x608f68], 8
mov ecx, 0x608f54
push eax
cmovae ecx, dword [0x608f54]
push ecx
push dword [edx + 0x14]
lea ecx, [edi + 0xf]
push dword [edx + 0x10]
mov edx, 0x5d03b8
call fcn.004018a0
add esp, 0x10
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.RETCODE
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
cmp dword [0x618528], 0
jne 0x47c73e
mov eax, dword [0x6184f0]
push ecx
push str.CBaseInfoPrinterEx::OpenRestoreFile
lea ecx, [ebp - 0x1268]
mov esi, dword [eax + 0x28]
call fcn.0040a480
mov byte [ebp - 4], 8
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47c420
test byte [ecx + 0x1c], 1
je 0x47c420
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5daec4
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x14
call fcn.00401840
add esp, 0xc
mov ecx, dword [0x6184f0]
xor edi, edi
push 3
mov ecx, dword [ecx + 4]
call fcn.004feca0
xor ecx, ecx
test eax, eax
setne cl
add esi, 0x210
push esi
mov dword [ebp - 0x12b0], ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x47c460
push 0x20
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x12b0], edi
je 0x47c4e3
push ecx
lea ecx, [ebp - 0xc0]
call fcn.004f3840
sub esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xc0]
push esi
call fcn.004f37e0
cmp dword [ebp - 0x70], 0
jne 0x47c49e
mov edi, 0x80010005
mov dword [0x6183ec], 5
jmp 0x47c4d8
lea ecx, [ebp - 0xbc]
call fcn.0042b530
test eax, eax
jne 0x47c4d8
mov eax, dword [ebp - 0xc0]
lea ecx, [ebp - 0xc0]
push 0
mov eax, dword [eax + 4]
add ecx, eax
xor eax, eax
cmp dword [ecx + 0x38], eax
sete al
lea eax, [eax*4 + 2]
or eax, dword [ecx + 0xc]
push eax
call fcn.004133b0
lea ecx, [ebp - 0xc0]
call fcn.004cce00
mov byte [ebp - 0x1264], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47c52b
test byte [ecx + 0x1c], 1
je 0x47c52b
cmp dword [0x608f68], 8
mov eax, 0x608f54
push edi
cmovae eax, dword [0x608f54]
mov edx, 0x5daec4
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x15
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x1268]
mov byte [ebp - 4], 7
call fcn.0040a570
lea ecx, [ebp - 0x12b0]
call fcn.00456fc0
push ecx
push str.InstallPrinterInfoManager::CheckUpdatePrinterInfo
lea ecx, [ebp - 0x1268]
mov byte [ebp - 4], 0xa
call fcn.0040a480
mov byte [ebp - 4], 0xb
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47c59e
test byte [ecx + 0x1c], 1
je 0x47c59e
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5cd87c
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x58
call fcn.00401840
add esp, 0xc
mov ecx, dword [0x6184f0]
xor edi, edi
push 3
mov dword [ebp - 0x12a4], edi
mov ecx, dword [ecx + 4]
call fcn.004feca0
test eax, eax
je 0x47c674
nop
lea esi, [eax + 0x418]
push 0x5c6930
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x47c65e
lea eax, [ebp - 0x12a4]
push eax
push 1
push esi
call fcn.00531950
test eax, eax
je 0x47c644
mov eax, dword [0x6184f0]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
js 0x47c623
imul ecx, ecx, 0x413c
cmp dword [eax + 0x14], 0
mov eax, dword [eax + 4]
jne 0x47c618
mov dword [eax + ecx + 0x100018], 0
jmp 0x47c623
mov dword [eax + ecx + 0x5c7268], 0
test edi, edi
jne 0x47c644
push esi
push esi
push 0x39
push dword [0x6184fc]
call fcn.00502d80
add esp, 0x10
cmp eax, 6
mov eax, 1
cmove edi, eax
mov eax, dword [ebp - 0x12a4]
test eax, eax
je 0x47c65e
push eax
call fcn.00530080
mov dword [ebp - 0x12a4], 0
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
test eax, eax
jne 0x47c5c0
mov byte [ebp - 0x1264], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47c6bc
test byte [ecx + 0x1c], 1
je 0x47c6bc
cmp dword [0x608f68], 8
mov eax, 0x608f54
push edi
cmovae eax, dword [0x608f54]
mov edx, 0x5cd87c
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x59
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x1268]
mov byte [ebp - 4], 0xa
call fcn.0040a570
lea ecx, [ebp - 0x12a4]
call fcn.004844a0
lea ecx, [ebp - 0x12a4]
mov byte [ebp - 4], 0xc
call fcn.00484c50
mov esi, eax
mov dword [ebp - 0x12ac], esi
test esi, esi
jne 0x47c707
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 0x1c]
call fcn.004f6ea0
mov esi, eax
mov dword [ebp - 0x12ac], eax
test edi, edi
je 0x47c720
mov esi, 0x8001003e
mov dword [0x6183ec], 0x3e
mov dword [ebp - 0x12ac], esi
lea ecx, [ebp - 0x12a4]
call fcn.00484570
lea ecx, [ebp - 0x12b0]
mov byte [ebp - 4], 7
call fcn.00457090
xor edi, edi
jmp 0x47c795
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 0x1c]
call fcn.004f78c0
mov ecx, dword [0x6184f0]
mov esi, eax
lea eax, [ebp - 0x12b8]
mov dword [ebp - 0x12ac], esi
push eax
mov ecx, dword [ecx + 0x28]
call fcn.004e9160
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x12a4]
push eax
mov dword [ebp - 0x12a4], 0
mov ecx, dword [ecx + 0x28]
call fcn.004ea2e0
cmp dword [ebp - 0x12a4], 0x14
jae 0x47cda8
test esi, esi
js 0x47c913
mov ecx, dword [0x6184f0]
push 2
mov ecx, dword [ecx + 4]
call fcn.004feca0
test eax, eax
je 0x47c850
mov edi, 1
nop word [eax + eax]
lea esi, [eax + 0x418]
push 0x5c6930
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x47c83a
push 0
push 1
push esi
lea ecx, [ebp - 0x12dc]
call fcn.00433ff0
test eax, eax
je 0x47c83a
push esi
push 0x21
push dword [0x6184fc]
call fcn.00502d80
add esp, 0xc
cmp eax, 6
je 0x47c904
mov eax, dword [0x6184f0]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
js 0x47c83a
imul ecx, ecx, 0x413c
cmp dword [eax + 0x14], 0
mov eax, dword [eax + 4]
jne 0x47c82f
mov dword [ecx + eax + 0x100018], 0
jmp 0x47c83a
mov dword [ecx + eax + 0x5c7268], 0
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
test eax, eax
jne 0x47c7c0
mov ecx, dword [0x6184f0]
push 3
mov ecx, dword [ecx + 4]
call fcn.004feca0
test eax, eax
je 0x47c9b1
nop dword [eax + eax]
cmp dword [0x618528], 0
je 0x47c886
cmp dword [eax + 0x3c98], 1
je 0x47c999
lea esi, [eax + 0x418]
push 0x5c6930
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x47c999
push 0
push 1
push esi
lea ecx, [ebp - 0x12dc]
call fcn.00433ff0
test eax, eax
je 0x47c999
push esi
push 0x21
push dword [0x6184fc]
call fcn.00502d80
add esp, 0xc
cmp eax, 6
je 0x47c904
mov eax, dword [0x6184f0]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
js 0x47c999
imul ecx, ecx, 0x413c
cmp dword [eax + 0x14], 0
mov eax, dword [eax + 4]
jne 0x47c98e
mov dword [ecx + eax + 0x100018], 0
jmp 0x47c999
mov esi, 0x80010058
mov dword [0x6183ec], 0x58
cmp dword [0x618500], 0
jne 0x47c93b
push 0x29
push dword [0x6184fc]
call fcn.00502d80
add esp, 8
mov dword [0x6183ec], 0x1f
mov esi, 0x8001001f
lea ecx, [ebp - 0x12c8]
call fcn.0043dfd0
mov byte [ebp - 0x129c], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47d8f7
test byte [ecx + 0x1c], 1
je 0x47d8f7
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x17
jmp 0x47d8ea
mov dword [ecx + eax + 0x5c7268], 0
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
test eax, eax
jne 0x47c870
jmp 0x47c9b5
test edi, edi
je 0x47ca04
lea ecx, [ebp - 0x12a4]
call fcn.00405f70
push 0x75
lea ecx, [ebp - 0x12a4]
mov byte [ebp - 4], 0xd
call fcn.00403020
mov esi, dword [ebp - 0x12a4]
mov ecx, dword [0x6184f8]
push esi
push 0x3f1
call fcn.004b3300
mov byte [ebp - 4], 7
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x47ca04
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [0x6184f0]
push 2
mov ecx, dword [ecx + 4]
call fcn.004feca0
mov esi, eax
test esi, esi
je 0x47cd7e
nop
cmp dword [0x618528], 0
je 0x47ca36
cmp dword [esi + 0x3c98], 1
je 0x47cca8
mov ecx, dword [0x6184f0]
mov eax, dword [ecx + 8]
cmp dword [eax + 0x3a4], 0
je 0x47ca5d
mov ecx, dword [ecx + 0x28]
lea eax, [esi + 8]
push 1
push eax
lea eax, [esi + 0x418]
push eax
call fcn.004e99c0
push 0x5c6930
add esi, 0x418
push esi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x47cca8
mov eax, dword [0x6184f4]
push ecx
push str.CBaseOSSpec::DeleteOldPrinterDriver
lea ecx, [ebp - 0x1268]
mov eax, dword [eax + 4]
mov dword [ebp - 0x12b0], eax
call fcn.0040a480
mov byte [ebp - 4], 0xe
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47cb21
test byte [ecx + 0x1c], 1
je 0x47cae0
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5dd2b8
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x4c
call fcn.00401840
mov ecx, dword [0x608f30]
add esp, 0xc
cmp ecx, 0x608f30
je 0x47cb21
test byte [ecx + 0x1c], 1
je 0x47cb21
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
mov edx, 0x5dd2b8
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x4d
call fcn.00405920
mov ecx, dword [0x608f30]
add esp, 0x10
mov edx, dword [ebp - 0x12b0]
xor edi, edi
mov edx, dword [edx + 8]
test edx, edx
je 0x47cb42
mov eax, dword [edx]
mov ecx, edx
push esi
mov eax, dword [eax + 0x20]
call eax
mov ecx, dword [0x608f30]
mov edi, eax
mov byte [ebp - 0x1264], 1
cmp ecx, 0x608f30
je 0x47cb84
test byte [ecx + 0x1c], 1
je 0x47cb84
cmp dword [0x608f68], 8
mov eax, 0x608f54
push edi
cmovae eax, dword [0x608f54]
mov edx, 0x5dd2b8
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x4e
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x1268]
mov byte [ebp - 4], 7
call fcn.0040a570
test edi, edi
jne 0x47cc4a
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47cbda
test byte [ecx + 0x1c], 4
je 0x47cbda
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
mov edx, 0x5d03b8
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
lea ecx, [edi + 0x10]
call fcn.00405920
add esp, 0x10
mov ecx, dword [0x6184f0]
mov eax, dword [ecx + 8]
cmp dword [eax + 0x3a4], 0
je 0x47cbf9
mov ecx, dword [ecx + 0x28]
push 1
push 0
push esi
call fcn.004e99c0
push esi
push esi
push 0x3a
push dword [0x6184fc]
call fcn.00502d80
add esp, 0x10
cmp eax, 6
je 0x47d707
mov eax, dword [0x6184f0]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
test ecx, ecx
js 0x47cc4a
imul ecx, ecx, 0x413c
cmp dword [eax + 0x14], 0
mov eax, dword [eax + 4]
jne 0x47cc3f
mov dword [ecx + eax + 0x100018], 0
jmp 0x47cc4a
mov dword [ecx + eax + 0x5c7268], 0
mov ecx, dword [0x6184f0]
push esi
mov ecx, dword [ecx + 0x28]
call fcn.004eb3f0
test eax, eax
je 0x47cca8
cmp dword [eax + 0x2ad0], 0
je 0x47cca8
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0x1218]
push eax
push str.DEFAULTINDEX
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
push 0x5cfd00
lea eax, [ebp - 0x1218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
mov ecx, dword [ebp - 0x12a8]
test eax, eax
mov eax, 1
cmove ecx, eax
mov dword [ebp - 0x12a8], ecx
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
mov esi, eax
test esi, esi
jne 0x47ca20
cmp dword [ebp - 0x12a8], eax
je 0x47cd7e
mov edi, dword [sym.imp.WINSPOOL.DRV_EnumPrintersW]
lea eax, [ebp - 0x12d4]
push eax
lea eax, [ebp - 0x12cc]
push eax
push esi
push esi
push 1
push esi
push 6
call edi
test eax, eax
jne 0x47ccfc
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x47cda8
push dword [ebp - 0x12cc]
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x47cd7e
lea eax, [ebp - 0x12d4]
push eax
lea eax, [ebp - 0x12cc]
push eax
push dword [ebp - 0x12cc]
push esi
push 1
push 0
push 6
call edi
test eax, eax
je 0x47cd77
cmp dword [ebp - 0x12d4], 0
jne 0x47cd54
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.DEFAULTINDEX
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
jmp 0x47cd77
call fcn.0052ee40
mov ecx, eax
call fcn.005349c0
test eax, eax
jne 0x47cd77
mov ecx, dword [0x6184f4]
push 1
push dword [esi + 8]
mov ecx, dword [ecx + 4]
call fcn.00507fa0
push esi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov ecx, dword [0x6184f0]
mov eax, dword [ecx + 8]
cmp dword [eax + 0x3a4], 0
je 0x47cdae
mov ecx, dword [ecx + 0x28]
push 0x14
call fcn.004ea1d0
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 0x1c]
call fcn.004f6ea0
mov ecx, dword [0x6184f0]
cmp dword [0x618528], 0
je 0x47ce34
mov ecx, dword [ecx + 0x28]
lea eax, [ebp - 0x12a4]
push eax
mov dword [ebp - 0x12a4], 0
call fcn.004ea2e0
cmp dword [ebp - 0x12a4], 0x1e
jb 0x47ce27
mov byte [ebp - 0x129c], 1
mov ecx, dword [0x608f30]
mov esi, dword [ebp - 0x12ac]
cmp ecx, 0x608f30
je 0x47d8f7
test byte [ecx + 0x1c], 1
je 0x47d8f7
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x11
jmp 0x47d8ea
cmp dword [0x618528], 0
jne 0x47cf97
call fcn.0049c2d0
test eax, eax
je 0x47cf97
mov eax, dword [0x6184f0]
push ecx
push str.CBaseInfoAddIn::BackupAddInFiles
lea ecx, [ebp - 0x1268]
mov edi, dword [eax + 0x18]
call fcn.0040a480
mov byte [ebp - 4], 0x10
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47ce9e
test byte [ecx + 0x1c], 1
je 0x47ce9e
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5d8b50
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x50
call fcn.00401840
add esp, 0xc
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00571c00
add esp, 0x18
lea ecx, [ebp - 0x12a4]
call fcn.0046a2f0
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 0x11
push eax
call fcn.0052ee40
mov ecx, eax
call fcn.00534cc0
push eax
lea ecx, [ebp - 0x12a4]
call fcn.0046ae70
mov esi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea eax, [ebp - 0x420]
push eax
call esi
lea eax, [ebp - 0x218]
push eax
push ecx
push 1
call fcn.004f2130
lea eax, [ebp - 0x218]
push eax
call esi
push 0
lea eax, [ebp - 0x218]
mov ecx, edi
push eax
lea eax, [ebp - 0x420]
push eax
call fcn.004d38f0
mov esi, eax
mov byte [ebp - 0x1264], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47cf7d
test byte [ecx + 0x1c], 1
je 0x47cf7d
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
mov edx, 0x5d8b50
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x51
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x12a4]
call fcn.0046a3c0
lea ecx, [ebp - 0x1268]
mov byte [ebp - 4], 7
call fcn.0040a570
mov ecx, dword [0x6184f0]
push 2
mov ecx, dword [ecx + 4]
call fcn.004feca0
mov edi, eax
mov dword [ebp - 0x12a4], edi
test edi, edi
je 0x47d7a4
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.SPOOLED
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
nop
mov edx, dword [0x608f30]
cmp edx, 0x608f30
je 0x47d01a
test byte [edx + 0x1c], 4
je 0x47d01a
cmp dword [0x608f68], 8
lea eax, [edi + 8]
push eax
mov ecx, 0x608f54
cmovae ecx, dword [0x608f54]
push ecx
push dword [edx + 0x14]
mov ecx, 0x12
push dword [edx + 0x10]
mov edx, 0x5d03b8
call fcn.00405920
mov edx, dword [0x608f30]
add esp, 0x10
mov esi, dword [ebp - 0x12c8]
mov eax, dword [ebp - 0x12c4]
cmp esi, eax
je 0x47d1ef
nop
cmp dword [esi + 0x14], 8
mov ecx, esi
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x1220], 0
mov dword [ebp - 0x121c], 0
mov dword [ebp - 0x12bc], eax
mov dword [ebp - 0x12a8], esi
jb 0x47d063
mov ecx, dword [esi]
mov dword [ebp - 0x12a8], ecx
cmp eax, 8
jae 0x47d08d
movups xmm0, xmmword [ecx]
mov dword [ebp - 0x1220], eax
lea eax, [ebp - 0x1230]
mov dword [ebp - 0x121c], 7
movups xmmword [ebp - 0x1230], xmm0
jmp 0x47d141
mov edi, eax
mov eax, SysReAllocString
or edi, 7
cmp edi, 0x7ffffffe
cmova edi, eax
lea eax, [edi + 1]
lea ecx, [eax + eax]
cmp eax, 0x7fffffff
jbe 0x47d0b2
or ecx, 0xffffffff
jmp 0x47d0ba
cmp ecx, 0x1000
jb 0x47d0e3
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.0055070f
add esp, 4
test eax, eax
je 0x47d961
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x47d0f6
test ecx, ecx
je 0x47d0f4
push ecx
call fcn.0055070f
add esp, 4
mov ecx, eax
jmp 0x47d0f6
xor ecx, ecx
mov eax, dword [ebp - 0x12bc]
mov dword [ebp - 0x1230], ecx
lea eax, [eax*2 + 2]
push eax
push dword [ebp - 0x12a8]
push ecx
call fcn.00571100
mov eax, dword [ebp - 0x12bc]
add esp, 0xc
mov dword [ebp - 0x1220], eax
cmp edi, 8
lea eax, [ebp - 0x1230]
mov dword [ebp - 0x121c], edi
cmovae eax, dword [ebp - 0x1230]
mov edi, dword [ebp - 0x12a4]
push eax
lea eax, [edi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
mov edx, dword [ebp - 0x121c]
test eax, eax
je 0x47d1a1
cmp edx, 8
jb 0x47d190
mov ecx, dword [ebp - 0x1230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x47d186
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47d961
push edx
push ecx
call fcn.0056deb6
add esp, 8
add esi, 0x18
cmp esi, dword [ebp - 0x12c4]
jne 0x47d030
jmp 0x47d1db
cmp edx, 8
jb 0x47d1db
mov ecx, dword [ebp - 0x1230]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x47d1d1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x47d961
push edx
push ecx
call fcn.0056deb6
add esp, 8
mov eax, dword [ebp - 0x12c4]
mov edx, dword [0x608f30]
cmp esi, eax
jne 0x47d748
lea esi, [edi + 8]
mov dword [ebp - 0x1220], 0
mov ecx, esi
mov dword [ebp - 0x12a8], esi
xor eax, eax
mov dword [ebp - 0x121c], 7
mov word [ebp - 0x1230], ax
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d220
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x1230]
call fcn.004035d0
mov byte [ebp - 4], 0x12
mov eax, dword [ebp - 0x12c4]
cmp dword [ebp - 0x12c0], eax
je 0x47d29b
movups xmm0, xmmword [ebp - 0x1230]
mov dword [eax + 0x10], 0
xor ecx, ecx
mov dword [eax + 0x14], 0
movups xmmword [eax], xmm0
mov word [ebp - 0x1230], cx
movq xmm0, qword [ebp - 0x1220]
movq qword [eax + 0x10], xmm0
add eax, 0x18
mov dword [ebp - 0x1220], 0
mov dword [ebp - 0x121c], 7
mov dword [ebp - 0x12c4], eax
jmp 0x47d2ae
lea ecx, [ebp - 0x1230]
push ecx
push eax
lea ecx, [ebp - 0x12c8]
call fcn.00404650
lea ecx, [ebp - 0x1230]
mov byte [ebp - 4], 7
call fcn.00403570
mov ecx, dword [0x6184f4]
mov edi, 1
mov ecx, dword [ecx + 4]
call fcn.0050a840
mov ecx, eax
mov eax, dword [ebp - 0x12a4]
mov dword [ebp - 0x12f0], ecx
mov eax, dword [eax + 0x3ce0]
or eax, ecx
cmp dword [0x618528], 0
mov dword [ebp - 0x12bc], eax
je 0x47d3c2
mov ecx, esi
mov dword [ebp - 0x1220], 0
xor eax, eax
mov dword [ebp - 0x121c], 7
mov word [ebp - 0x1230], ax
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x47d320
sub ecx, edx
sar ecx, 1
push ecx
push esi
lea ecx, [ebp - 0x1230]
call fcn.004035d0
lea eax, [ebp - 0x1230]
push eax
lea eax, [ebp - 0x12ec]
push eax
lea ecx, [ebp - 0x12b8]
call fcn.00404b80
mov esi, dword [ebp - 0x12ec]
mov eax, dword [ebp - 0x12b8]
cmp esi, eax
je 0x47d3a4
cmp dword [esi + 0x24], 8
lea edx, [esi + 0x10]
jb 0x47d371
mov edx, dword [esi + 0x10]
push dword [esi + 0x20]
cmp dword [ebp - 0x121c], 8
lea ecx, [ebp - 0x1230]
push edx
cmovae ecx, dword [ebp - 0x1230]
mov edx, dword [ebp - 0x1220]
call fcn.00404b20
shr eax, 0x1f
add esp, 8
test al, al
je 0x47d3a6
mov eax, dword [ebp - 0x12b8]
mov esi, eax
lea ecx, [ebp - 0x1230]
call fcn.00403570
cmp esi, dword [ebp - 0x12b8]
je 0x47d3bc
mov edi, dword [esi + 0x28]
mov esi, dword [ebp - 0x12a8]
push 0x800
lea eax, [ebp - 0xa18]
push 0
push eax
call fcn.00571c00
add esp, 0xc
cmp dword [ebp - 0x12ac], 0
jne 0x47d465
mov ecx, dword [0x6184f0]
lea eax, [ebp - 0xa18]
push eax
push str.SPOOLED
mov ecx, dword [ecx + 0x1c]
call fcn.004f65f0
push 0x5c79bc
lea eax, [ebp - 0xa18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x47d465
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.SPOOLED
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
push str.SPOOLER
lea ecx, [ebp - 0x12d8]
call fcn.00474b30
push str.SPOOLER
lea ecx, [ebp - 0x12d8]
call fcn.004748a0
mov ecx, dword [0x6184f0]
push 0x5c79bc
push str.FIRST_SPOOLER_STOP
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
cmp edi, 0x40
ja 0x47d730
nop
mov ecx, dword [0x6184f0]
lea eax, [edi + edi]
mov dword [ebp - 0x12e0], eax
lea eax, [ebp - 0x12b0]
push eax
push esi
mov ecx, dword [ecx + 0x28]
mov dword [ebp - 0x12b0], 0
call fcn.004e9cb0
mov ecx, dword [0x6184f0]
mov eax, dword [ecx + 8]
cmp dword [eax + 0x3a4], 1
jne 0x47d4ba
push dword [ebp - 0x12e0]
mov ecx, dword [ecx + 0x28]
push esi
call fcn.004e9b80
test dword [ebp - 0x12bc], edi
je 0x47d721
lea eax, [ebp - 0x12d0]
mov dword [ebp - 0x12d0], 0x63
push eax
push edi
lea ecx, [ebp - 0x12e8]
call fcn.00446490
test eax, eax
jne 0x47d4f9
mov eax, dword [ebp - 0x12f0]
test dword [ebp - 0x12bc], eax
je 0x47d721
mov ecx, dword [0x608f30]
mov edi, dword [ebp - 0x12d0]
cmp ecx, 0x608f30
je 0x47d54d
test byte [ecx + 0x1c], 4
je 0x47d54d
mov edx, dword [ebp - 0x12a4]
mov eax, 0x608f54
cmp dword [0x608f68], 8
cmovae eax, dword [0x608f54]
push dword [edx + 0x3c90]
mov edx, 0x5d03b8
push edi
push esi
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x14
call fcn.00478ad0
add esp, 0x18
mov eax, dword [0x6184f4]
push ecx
push str.CBaseOSSpec::DeleteOldDriver
lea ecx, [ebp - 0x1268]
mov eax, dword [eax + 4]
mov dword [ebp - 0x12d0], eax
call fcn.0040a480
mov byte [ebp - 4], 0x13
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47d5fe
test byte [ecx + 0x1c], 1
je 0x47d5ba
cmp dword [0x608f68], 8
mov eax, 0x608f54
mov edx, 0x5dd2b8
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x57
call fcn.00401840
mov ecx, dword [0x608f30]
add esp, 0xc
cmp ecx, 0x608f30
je 0x47d5fe
test byte [ecx + 0x1c], 1
je 0x47d5fe
cmp dword [0x608f68], 8
mov eax, 0x608f54
push 0
cmovae eax, dword [0x608f54]
mov edx, 0x5dd2b8
push edi
push esi
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x58
call fcn.00442fd0
mov ecx, dword [0x608f30]
add esp, 0x18
mov edx, dword [ebp - 0x12d0]
xor esi, esi
mov edx, dword [edx + 8]
test edx, edx
je 0x47d626
mov eax, dword [edx]
mov ecx, edx
push esi
push edi
push dword [ebp - 0x12a8]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x608f30]
mov esi, eax
mov byte [ebp - 0x1264], 1
cmp ecx, 0x608f30
je 0x47d668
test byte [ecx + 0x1c], 1
je 0x47d668
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
mov edx, 0x5dd2b8
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x59
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x1268]
mov byte [ebp - 4], 7
call fcn.0040a570
test esi, esi
jne 0x47d71b
mov ecx, dword [0x608f30]
mov esi, dword [ebp - 0x12a8]
cmp ecx, 0x608f30
je 0x47d6c6
test byte [ecx + 0x1c], 4
je 0x47d6c6
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
mov edx, 0x5d03b8
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x15
call fcn.00405920
add esp, 0x10
push esi
push esi
push 0x38
push dword [0x6184fc]
call fcn.00502d80
add esp, 0x10
cmp eax, 6
jne 0x47d721
mov ecx, dword [0x6184f0]
mov eax, dword [ecx + 8]
cmp dword [eax + 0x3a4], 1
jne 0x47d707
push dword [ebp - 0x12b0]
mov eax, dword [ebp - 0x12a4]
mov ecx, dword [ecx + 0x28]
add eax, 8
push eax
call fcn.004e9b80
mov esi, 0x80010059
mov dword [0x6183ec], 0x59
jmp 0x47c913
mov esi, dword [ebp - 0x12a8]
mov edi, dword [ebp - 0x12e0]
cmp edi, 0x40
jbe 0x47d470
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
mov edi, eax
mov dword [ebp - 0x12a4], edi
jmp 0x47d79c
cmp edx, 0x608f30
je 0x47d786
test byte [edx + 0x1c], 4
je 0x47d786
cmp dword [0x608f68], 8
lea eax, [edi + 8]
push eax
mov ecx, 0x608f54
cmovae ecx, dword [0x608f54]
push ecx
push dword [edx + 0x14]
mov ecx, 0x13
push dword [edx + 0x10]
mov edx, 0x5d03b8
call fcn.00405920
add esp, 0x10
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
mov edi, eax
mov dword [ebp - 0x12a4], eax
test edi, edi
jne 0x47cfd0
mov ecx, dword [0x6184f0]
push 3
mov ecx, dword [ecx + 4]
call fcn.004feca0
mov esi, eax
test esi, esi
je 0x47d81c
mov ecx, dword [0x6184f0]
push 0x5c797c
push str.SPOOLED
mov ecx, dword [ecx + 0x1c]
call fcn.004f6860
mov edi, dword [ebp - 0x12e4]
nop dword [eax + eax]
lea eax, [ebp - 0x12b8]
mov ecx, edi
push eax
lea eax, [ebp - 0x12c8]
push eax
push esi
call fcn.0047d970
mov esi, eax
mov dword [ebp - 0x12ac], esi
test esi, esi
js 0x47c913
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
mov esi, eax
test esi, esi
jne 0x47d7e0
jmp 0x47d822
mov edi, dword [ebp - 0x12e4]
mov ecx, dword [0x6184f0]
push 1
mov ecx, dword [ecx + 4]
call fcn.004feca0
test eax, eax
je 0x47d874
nop word [eax + eax]
lea ecx, [ebp - 0x12b8]
push ecx
lea ecx, [ebp - 0x12c8]
push ecx
push eax
mov ecx, edi
call fcn.0047d970
mov esi, eax
test esi, esi
js 0x47c913
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 4]
call fcn.004fee60
test eax, eax
jne 0x47d840
jmp 0x47d87a
mov esi, dword [ebp - 0x12ac]
lea ecx, [ebp - 0x12c8]
call fcn.0043dfd0
mov ecx, dword [0x6184f0]
mov eax, dword [ecx + 8]
cmp dword [eax + 0x3a4], 0
je 0x47d8af
mov ecx, dword [ecx + 0x28]
push 0x1e
call fcn.004ea1d0
mov ecx, dword [0x6184f0]
mov ecx, dword [ecx + 0x1c]
call fcn.004f6ea0
mov byte [ebp - 0x129c], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x47d8f7
test byte [ecx + 0x1c], 1
je 0x47d8f7
cmp dword [0x608f68], 8
mov eax, 0x608f54
push esi
cmovae eax, dword [0x608f54]
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x16
mov edx, 0x5d03b8
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0x12d8]
call fcn.00470bf0
lea ecx, [ebp - 0x12f4]
call fcn.0047c0c0
lea ecx, [ebp - 0x12e8]
call fcn.00443150
lea ecx, [ebp - 0x12dc]
call fcn.004307d0
lea ecx, [ebp - 0x12b8]
call fcn.00406780
lea ecx, [ebp - 0x12c8]
call fcn.00409b00
lea ecx, [ebp - 0x12a0]
call fcn.0040a570
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056d977
mov esp, ebp
pop ebp
ret
call fcn.00574908
int3