Function at 0x482af0
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a23f9
mov eax, dword fs:[0]
push eax
sub esp, 0xaf8
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
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
push ecx
mov dword [ebp - 0xab4], ecx
lea ecx, [ebp - 0xa88]
push str.PrinterDriverInstall::DeleteUPDFile
call fcn.0040a480
mov dword [ebp - 4], 0
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x482bc6
test byte [ecx + 0x1c], 1
je 0x482b8b
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, 0x5b
call fcn.00401840
mov ecx, dword [0x608f30]
add esp, 0xc
cmp ecx, 0x608f30
je 0x482bc6
test byte [ecx + 0x1c], 1
je 0x482bc6
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, 0x5c
call fcn.004018a0
add esp, 0x10
push 0x618
lea eax, [ebp - 0xa38]
mov ebx, 1
push 0
push eax
mov dword [ebp - 0xaa4], ebx
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00571c00
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.00571c00
add esp, 0x24
lea ecx, [ebp - 0xadc]
call fcn.0055b16f
lea ecx, [ebp - 0xac8]
mov byte [ebp - 4], bl
call fcn.0055b16f
mov byte [ebp - 4], 2
call fcn.0052ee40
push esi
call fcn.00535070
push eax
lea eax, [ebp - 0xa38]
push 0x30c
push eax
call fcn.005746e6
add esp, 0xc
call fcn.0052ee40
push esi
call fcn.00534e60
push eax
lea eax, [ebp - 0x420]
push 0x104
push eax
call fcn.005746e6
mov esi, dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea eax, [ebp - 0xa38]
add esp, 0xc
push eax
call esi
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0xa38]
push 0x30c
push eax
call fcn.00574a48
add esp, 0xc
lea ecx, [ebp - 0xab0]
call fcn.0046a2f0
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0xab0]
call fcn.0046abd0
lea eax, [ebp - 0x218]
push eax
call esi
push 0x5ce978
lea eax, [ebp - 0x218]
push 0x104
push eax
call fcn.00574a48
add esp, 0xc
lea ecx, [ebp - 0xb04]
call fcn.004066e0
lea ecx, [ebp - 0xb04]
mov byte [ebp - 4], 4
call fcn.004068b0
lea eax, [ebp - 0xb04]
push eax
push 0xf003f
push 0
lea eax, [ebp - 0xa38]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x48335b
mov dword [ebp - 0xa94], eax
lea ecx, [ebp - 0xb04]
mov dword [ebp - 0xa8c], eax
lea eax, [ebp - 0xa94]
push eax
lea eax, [ebp - 0xa8c]
push eax
push str.Dependent_Files
call fcn.00406aa0
cmp dword [ebp - 0xa94], 0
jbe 0x48335b
mov ebx, dword [ebp - 0xa8c]
mov dword [ebp - 0xa98], ebx
xor ebx, ebx
mov dword [ebp - 0xa90], ebx
mov dword [ebp - 0xa9c], ebx
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x4833fa
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0xaa8], edi
mov byte [ebp - 4], 5
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x483404
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0xaac], esi
mov byte [ebp - 4], 6
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x48340e
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xaa0], eax
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0xa8c]
cmp word [edx], bx
je 0x482eda
cmp ebx, dword [ebp - 0xa94]
jae 0x482eda
mov ecx, edx
lea ebx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x482df1
sub ecx, ebx
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xaa0]
call fcn.00403bb0
mov eax, dword [ebp - 0xaa0]
mov ebx, dword [eax - 0xc]
test ebx, ebx
js 0x483418
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, ebx
or ecx, edx
jge 0x482e41
push ebx
lea ecx, [ebp - 0xaa0]
call fcn.00403b50
mov eax, dword [ebp - 0xaa0]
lea ecx, [ebx + 1]
push ecx
push eax
call fcn.00581b7c
mov eax, dword [ebp - 0xaa0]
add esp, 8
cmp ebx, dword [eax - 8]
jg 0x483418
xor ecx, ecx
mov dword [eax - 0xc], ebx
mov word [eax + ebx*2], cx
cmp dword [eax - 0xc], ecx
jl 0x482ea4
push str..upd
push eax
call fcn.00570be3
mov ebx, dword [ebp - 0xa98]
add esp, 8
test eax, eax
je 0x482eaa
sub eax, dword [ebp - 0xaa0]
sar eax, 1
cmp eax, 0xffffffff
je 0x482eaa
push ebx
push dword [ebp - 0xad4]
lea ecx, [ebp - 0xadc]
call fcn.0055b606
jmp 0x482eaa
mov ebx, dword [ebp - 0xa98]
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [ebp - 0xa98]
inc eax
mov ebx, dword [ebp - 0xa90]
add ebx, eax
cmp word [edx + eax*2], 0
mov dword [ebp - 0xa90], ebx
lea edx, [edx + eax*2]
mov dword [ebp - 0xa98], edx
jne 0x482de0
mov eax, dword [ebp - 0xad4]
mov dword [ebp - 0xa98], eax
test eax, eax
je 0x4832fc
lea eax, [ebp - 0xa94]
mov dword [ebp - 0xa94], 0
push eax
lea eax, [ebp - 0xa8c]
push eax
push str.Dependent_ConfigFiles
lea ecx, [ebp - 0xb04]
call fcn.00406aa0
mov eax, dword [ebp - 0xa94]
test eax, eax
je 0x482f7b
mov ebx, dword [ebp - 0xa8c]
xor ecx, ecx
mov dword [ebp - 0xa90], ecx
cmp word [ebx], cx
je 0x482f6f
cmp ecx, eax
jae 0x482f6f
push ebx
push dword [ebp - 0xac0]
lea ecx, [ebp - 0xac8]
call fcn.0055b606
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [ebp - 0xa90]
inc eax
add ecx, eax
cmp word [ebx + eax*2], 0
mov dword [ebp - 0xa90], ecx
lea ebx, [ebx + eax*2]
mov eax, dword [ebp - 0xa94]
jne 0x482f33
mov eax, dword [ebp - 0xac0]
mov dword [ebp - 0xa9c], eax
xor ecx, ecx
mov dword [ebp - 0xa90], ecx
cmp dword [ebp - 0xa98], ecx
jbe 0x4832fc
nop
test ecx, ecx
js 0x483422
cmp ecx, dword [ebp - 0xad4]
jge 0x483422
mov eax, dword [ebp - 0xad8]
lea ebx, [edi - 0x10]
mov ecx, dword [eax + ecx*4]
lea edx, [ecx - 0x10]
cmp edx, ebx
je 0x48300d
cmp dword [ebx + 0xc], 0
lea edi, [ebx + 0xc]
jl 0x482ff8
mov eax, dword [edx]
cmp eax, dword [ebx]
jne 0x482ff8
mov ecx, edx
call fcn.00403af0
mov dword [ebp - 0xa8c], eax
or ecx, 0xffffffff
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x482fed
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0xa8c]
lea edi, [eax + 0x10]
mov dword [ebp - 0xaa8], edi
jmp 0x48300d
push dword [ecx - 0xc]
push ecx
lea ecx, [ebp - 0xaa8]
call fcn.00403bb0
mov edi, dword [ebp - 0xaa8]
xor ebx, ebx
cmp dword [ebp - 0xa9c], ebx
jbe 0x4830e0
nop dword [eax + eax]
test ebx, ebx
js 0x483422
cmp ebx, dword [ebp - 0xac0]
jge 0x483422
mov eax, dword [ebp - 0xac4]
lea ecx, [esi - 0x10]
mov dword [ebp - 0xa94], ecx
mov edx, dword [eax + ebx*4]
lea eax, [edx - 0x10]
mov dword [ebp - 0xa8c], eax
cmp eax, ecx
je 0x4830b3
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x48309e
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x48309e
mov ecx, dword [ebp - 0xa8c]
call fcn.00403af0
mov dword [ebp - 0xa8c], eax
or ecx, 0xffffffff
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x483093
mov esi, dword [ebp - 0xa94]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0xa8c]
lea esi, [eax + 0x10]
mov dword [ebp - 0xaac], esi
jmp 0x4830b3
push dword [edx - 0xc]
lea ecx, [ebp - 0xaac]
push edx
call fcn.00403bb0
mov esi, dword [ebp - 0xaac]
test esi, esi
je 0x4833fa
push esi
push edi
call fcn.00574f99
add esp, 8
test eax, eax
je 0x4830d8
inc ebx
cmp ebx, dword [ebp - 0xa9c]
jb 0x483020
jmp 0x4830e0
cmp ebx, dword [ebp - 0xa9c]
jb 0x4830f8
push 0x5f
push edi
call fcn.00571054
add esp, 8
test eax, eax
je 0x483116
sub eax, edi
sar eax, 1
cmp eax, 0xffffffff
je 0x483116
mov ecx, dword [ebp - 0xa90]
inc ecx
mov dword [ebp - 0xa90], ecx
cmp ecx, dword [ebp - 0xa98]
jb 0x482f90
jmp 0x4832fc
call fcn.00550b4e
mov ecx, eax
test ecx, ecx
je 0x483427
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xa9c], eax
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 8
test eax, 0xffff0000
jne 0x483155
movzx eax, ax
lea ecx, [ebp - 0xa9c]
push eax
call fcn.00403020
jmp 0x483182
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x483160
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xa9c]
call fcn.00403bb0
push edi
lea eax, [ebp - 0x218]
mov byte [ebp - 4], 9
push 0x104
push eax
call fcn.00574a48
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x4832da
cmp dword [ebp + 0x10], 0
je 0x4832c7
mov eax, dword [0x6184f0]
lea ecx, [ebp - 0xa50]
mov eax, dword [eax + 0x30]
add eax, 0x64
push eax
call fcn.00402f40
push 0x5c6930
lea ecx, [ebp - 0xa50]
mov byte [ebp - 4], 0xa
call fcn.004049b0
test al, al
jne 0x483281
cmp dword [ebp - 0xa3c], 8
lea eax, [ebp - 0xa50]
push edi
cmovae eax, dword [ebp - 0xa50]
lea ecx, [ebp - 0xab0]
push eax
push dword [ebp - 0xa9c]
call fcn.0046eb50
mov dword [ebp - 0xaa4], eax
test eax, eax
je 0x483281
mov edx, dword [ebp - 0xab4]
test edx, edx
je 0x483281
mov ebx, dword [edx]
lea ecx, [edi - 0x10]
sub ebx, 0x10
cmp ecx, ebx
je 0x483281
cmp dword [ebx + 0xc], 0
jl 0x483276
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x483276
call fcn.00403af0
mov dword [ebp - 0xa90], eax
lea edx, [ebx + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x483269
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0xa90]
mov ecx, dword [ebp - 0xab4]
add eax, 0x10
mov dword [ecx], eax
jmp 0x483281
push dword [edi - 0xc]
mov ecx, edx
push edi
call fcn.00403bb0
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0xa3c]
cmp edx, 8
jb 0x4832da
mov ecx, dword [ebp - 0xa50]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4832bb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x483431
push edx
push ecx
call fcn.0056deb6
add esp, 8
jmp 0x4832da
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0xaa4], eax
mov byte [ebp - 4], 7
or eax, 0xffffffff
mov edx, dword [ebp - 0xa9c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4832fc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 6
or eax, 0xffffffff
mov edx, dword [ebp - 0xaa0]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x48331e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea edx, [esi - 0x10]
mov byte [ebp - 4], 5
or esi, 0xffffffff
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x48333c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 4
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], esi
dec esi
test esi, esi
jg 0x483355
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp - 0xaa4]
mov byte [ebp - 0xa84], 1
mov ecx, dword [0x608f30]
cmp ecx, 0x608f30
je 0x4833a3
test byte [ecx + 0x1c], 1
je 0x4833a3
cmp dword [0x608f68], 8
mov eax, 0x608f54
push ebx
cmovae eax, dword [0x608f54]
mov edx, 0x5d03b8
push eax
push dword [ecx + 0x14]
push dword [ecx + 0x10]
mov ecx, 0x5d
call fcn.004018a0
add esp, 0x10
lea ecx, [ebp - 0xb04]
call fcn.004067f0
lea ecx, [ebp - 0xab0]
call fcn.0046a3c0
lea ecx, [ebp - 0xac8]
call fcn.0055b186
lea ecx, [ebp - 0xadc]
call fcn.0055b186
lea ecx, [ebp - 0xa88]
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 0x10
push 0x80004005
call fcn.004013a0
push 0x80004005
call fcn.004013a0
push 0x80004005
call fcn.004013a0
push 0x80070057
call fcn.004013a0
call fcn.005511b9
push 0x80004005
call fcn.004013a0
call fcn.00574908
int3