Function at 0x45bd95
Capabilities:
Check for time delay via gettickcount
Delete file
Get common file path

Disassembly:
push 0x6e8
mov eax, 0x5ac976
call fcn.00588aeb
mov edi, ecx
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
and dword [ebp - 4], 0
mov ebx, dword [ebp + 0x10]
and dword [ebp - 0x62c], 0
push 0x5d0398
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
mov dword [ebp - 0x620], esi
mov dword [ebp - 0x6ac], esi
mov dword [ebp - 0x61c], eax
mov dword [ebp - 0x624], ebx
call fcn.00423f75
xor ecx, ecx
add esp, 0xc
mov dword [ebp - 0x660], ecx
mov dword [ebp - 0x65c], ecx
mov dword [ebp - 0x658], ecx
xor edx, edx
inc edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x678], ecx
mov dword [ebp - 0x674], ecx
mov dword [ebp - 0x670], ecx
xor eax, eax
mov dword [ebp - 0x52c], 7
mov dword [ebp - 0x530], ecx
mov word [ebp - 0x540], ax
mov dword [ebp - 0x514], 7
mov dword [ebp - 0x518], ecx
mov word [ebp - 0x528], ax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ecx
mov word [esi], ax
push 7
mov dword [ebp - 0x62c], edx
pop edx
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4b8], ecx
mov word [ebp - 0x4c8], ax
mov dword [ebp - 0x4e4], edx
mov dword [ebp - 0x4e8], ecx
mov word [ebp - 0x4f8], ax
mov dword [ebp - 0x55c], edx
mov dword [ebp - 0x560], ecx
mov word [ebp - 0x570], ax
mov dword [ebp - 0x4fc], 0xf
mov dword [ebp - 0x500], ecx
mov byte [ebp - 0x510], cl
mov dword [ebp - 0x66c], ecx
mov dword [ebp - 0x668], ecx
mov dword [ebp - 0x664], ecx
mov dword [ebp - 0x49c], edx
mov dword [ebp - 0x4a0], ecx
mov word [ebp - 0x4b0], ax
mov dword [ebp - 0x484], edx
mov dword [ebp - 0x488], ecx
mov word [ebp - 0x498], ax
mov dword [ebp - 0x424], edx
mov dword [ebp - 0x428], ecx
mov word [ebp - 0x438], ax
mov dword [ebp - 0x544], edx
mov dword [ebp - 0x548], ecx
mov word [ebp - 0x558], ax
mov dword [ebp - 0x654], ecx
mov dword [ebp - 0x650], ecx
mov dword [ebp - 0x64c], ecx
mov dword [ebp - 0x454], edx
mov dword [ebp - 0x458], ecx
mov word [ebp - 0x468], ax
mov dword [ebp - 0x46c], edx
mov dword [ebp - 0x470], ecx
mov word [ebp - 0x480], ax
mov dword [ebp - 0x43c], edx
mov dword [ebp - 0x440], ecx
mov word [ebp - 0x450], ax
mov byte [ebp - 4], 0x11
call fcn.0045b9bf
mov dword [0x63a950], edi
call fcn.0045f0be
test al, al
je 0x45c04c
push 0x104
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x45bfda
push str.DRVDATA.BIN
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push str._sINF_s
push eax
call fcn.00405afc
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call esi
push str.DRVIDX.BIN
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push str._sINF_s
push eax
call fcn.00405afc
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call esi
mov esi, str._SRC_RESCMS_LIBDATACMGLUE.VXD
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4b0]
call fcn.00403cef
lea eax, [ebp - 0x4b0]
push eax
lea eax, [ebp - 0x4e0]
push eax
mov ecx, edi
call fcn.0045db5c
push eax
lea ecx, [ebp - 0x4b0]
call fcn.00401322
push 0
push 1
lea ecx, [ebp - 0x4e0]
call fcn.00403a7f
lea eax, [ebp - 0x4b0]
push eax
push 1
mov ecx, edi
call fcn.004597a3
mov ecx, edi
call fcn.0045987d
lea eax, [ebp - 0x4b0]
push eax
push 0
mov ecx, edi
call fcn.004597a3
jmp 0x45c067
push 0
push 0x5c9224
call fcn.0045b730
push 0
push 0x5c9204
call fcn.0045b730
add esp, 0x10
mov esi, 0xbb8
call fcn.0045f155
mov ecx, 0x1388
test al, al
push 0x45b187
cmovne esi, ecx
push esi
xor esi, esi
push esi
push esi
call dword [sym.imp.USER32.dll_SetTimer]
push esi
push esi
mov dword [ebp - 0x628], eax
push esi
lea eax, [ebp - 0x648]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x45c7e0
lea eax, [ebp - 0x648]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [ebp - 0x648], 0
jne 0x45c7c2
mov eax, dword [ebp - 0x644]
sub eax, 0x7e8
je 0x45c6ca
dec eax
je 0x45c81f
dec eax
je 0x45c2e7
dec eax
jne 0x45c7c2
push str._MS4_TIMER_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00423f75
mov eax, dword [0x63a964]
add esp, 0xc
mov bl, 1
test eax, eax
je 0x45c113
push esi
call eax
mov ebx, eax
neg ebx
sbb bl, bl
inc bl
push esi
push 0x5bef10
lea ecx, [ebp - 0x438]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x468]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x480]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x450]
call fcn.00403cef
call fcn.0045f155
test al, al
je 0x45c27c
test bl, bl
je 0x45c27c
cmp dword [edi + 0x7c], 0
je 0x45c17c
cmp dword [edi + 0x7c], 1
jne 0x45c17c
push 2
jmp 0x45c17e
push 1
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x61c]
call fcn.0045a9df
add esp, 0x18
test al, al
je 0x45c27c
mov ebx, 0x5bef10
push ebx
lea ecx, [ebp - 0x438]
call fcn.0041ee46
test eax, eax
jne 0x45c202
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x5d0]
push eax
mov ecx, edi
call fcn.0045a428
push eax
lea ecx, [ebp - 0x438]
call fcn.00401322
push esi
push 1
lea ecx, [ebp - 0x5d0]
call fcn.00403a7f
lea eax, [ebp - 0x438]
push eax
call fcn.0045caec
pop ecx
push esi
xor eax, eax
push ebx
lea ecx, [ebp - 0x6c4]
mov dword [ebp - 0x6b0], 7
mov dword [ebp - 0x6b4], esi
mov word [ebp - 0x6c4], ax
call fcn.00403cef
push dword [0x62f9e0]
lea ecx, [ebp - 0x5a0]
mov byte [ebp - 4], 0x18
call fcn.004010bc
lea eax, [ebp - 0x6c4]
push eax
lea eax, [ebp - 0x5a0]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x19
call fcn.0045e88c
push esi
push 1
lea ecx, [ebp - 0x5a0]
call fcn.00403a7f
lea ecx, [ebp - 0x6c4]
jmp 0x45c6ab
cmp byte [edi + 0x30], 0
jne 0x45c7c2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x28]
cmp eax, dword [edi + 0x2c]
jbe 0x45c7c2
push esi
xor eax, eax
push 0x5bef10
lea ecx, [ebp - 0x6f4]
mov byte [edi + 0x30], 1
mov dword [ebp - 0x6e0], 7
mov dword [ebp - 0x6e4], esi
mov word [ebp - 0x6f4], ax
call fcn.00403cef
lea eax, [ebp - 0x6f4]
push eax
lea eax, [edi + 0x34]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x1a
call fcn.0045e88c
lea ecx, [ebp - 0x6f4]
jmp 0x45c6ab
push str._MS4_DEVICECHANGE_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00423f75
add esp, 0xc
push 7
pop eax
cmp dword [ebp - 0x640], eax
jne 0x45c496
mov dword [ebp - 0x67c], eax
push esi
xor eax, eax
push 0x5bef10
lea ecx, [ebp - 0x690]
mov dword [ebp - 0x680], esi
mov word [ebp - 0x690], ax
call fcn.00403cef
push dword [0x62f9dc]
lea ecx, [ebp - 0x5b8]
mov byte [ebp - 4], 0x12
call fcn.004010bc
lea eax, [ebp - 0x690]
push eax
lea eax, [ebp - 0x5b8]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x13
call fcn.0045e88c
push esi
push 1
lea ecx, [ebp - 0x5b8]
call fcn.00403a7f
push esi
push 1
lea ecx, [ebp - 0x690]
mov byte [ebp - 4], 0x11
call fcn.00403a7f
mov eax, dword [0x63a964]
mov bl, 1
test eax, eax
je 0x45c394
push esi
call eax
mov ebx, eax
neg ebx
sbb bl, bl
inc bl
push esi
push 0x5bef10
lea ecx, [ebp - 0x438]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x468]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x480]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x450]
call fcn.00403cef
call fcn.0045f155
test al, al
je 0x45c48d
test bl, bl
je 0x45c48d
cmp dword [edi + 0x7c], 0
je 0x45c3fd
cmp dword [edi + 0x7c], 1
jne 0x45c3fd
push 2
jmp 0x45c3ff
push 1
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x61c]
call fcn.0045a9df
add esp, 0x18
test al, al
je 0x45c48d
push 0x5bef10
lea ecx, [ebp - 0x438]
call fcn.0041ee46
test eax, eax
jne 0x45c47e
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x600]
push eax
mov ecx, edi
call fcn.0045a428
push eax
lea ecx, [ebp - 0x438]
call fcn.00401322
push esi
push 1
lea ecx, [ebp - 0x600]
call fcn.00403a7f
lea eax, [ebp - 0x438]
push eax
call fcn.0045caec
pop ecx
jmp 0x45c496
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x28], eax
cmp dword [ebp - 0x640], 0x8000
jne 0x45c7c2
mov ebx, dword [ebp - 0x63c]
cmp dword [ebx + 4], 1
jne 0x45c7c2
push dword [ebx + 0xc]
call fcn.0045bbeb
mov esi, eax
pop ecx
test esi, esi
je 0x45c55c
push str.NetClient
push esi
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x45c555
and dword [ebp - 0x6cc], 0
xor eax, eax
push eax
push 0x5bef10
lea ecx, [ebp - 0x6dc]
mov dword [ebp - 0x6c8], 7
mov word [ebp - 0x6dc], ax
call fcn.00403cef
push dword [0x62f9dc]
lea ecx, [ebp - 0x588]
mov byte [ebp - 4], 0x14
call fcn.004010bc
lea eax, [ebp - 0x6dc]
push eax
lea eax, [ebp - 0x588]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x15
call fcn.0045e88c
push 0
push 1
lea ecx, [ebp - 0x588]
call fcn.00403a7f
push 0
push 1
lea ecx, [ebp - 0x6dc]
mov byte [ebp - 4], 0x11
call fcn.00403a7f
push esi
call fcn.0045a925
pop ecx
xor esi, esi
push esi
push 0x5bef10
lea ecx, [ebp - 0x498]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x468]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x480]
call fcn.00403cef
push esi
push 0x5bef10
lea ecx, [ebp - 0x450]
call fcn.00403cef
call fcn.0045f113
test al, al
je 0x45c6bc
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x498]
push eax
push dword [ebx + 0xc]
push dword [ebp - 0x61c]
call fcn.0045adda
add esp, 0x18
test al, al
je 0x45c6bc
mov ebx, 0x5bef10
push ebx
lea ecx, [ebp - 0x498]
call fcn.0041ee46
test eax, eax
jne 0x45c636
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x5e8]
push eax
mov ecx, edi
call fcn.0045a102
push eax
lea ecx, [ebp - 0x498]
call fcn.00401322
push esi
push 1
lea ecx, [ebp - 0x5e8]
call fcn.00403a7f
lea eax, [ebp - 0x498]
push eax
call fcn.0045c96b
pop ecx
push esi
xor eax, eax
push ebx
lea ecx, [ebp - 0x6a8]
mov dword [ebp - 0x694], 7
mov dword [ebp - 0x698], esi
mov word [ebp - 0x6a8], ax
call fcn.00403cef
push dword [0x62f9e0]
lea ecx, [ebp - 0x4e0]
mov byte [ebp - 4], 0x16
call fcn.004010bc
lea eax, [ebp - 0x6a8]
push eax
lea eax, [ebp - 0x4e0]
push eax
mov ecx, edi
mov byte [ebp - 4], 0x17
call fcn.0045e88c
push esi
push 1
lea ecx, [ebp - 0x4e0]
call fcn.00403a7f
lea ecx, [ebp - 0x6a8]
push esi
push 1
mov byte [ebp - 4], 0x11
call fcn.00403a7f
jmp 0x45c7c2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x28], eax
jmp 0x45c7c2
push str._MS4_EVENT_OCCUR_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00423f75
mov esi, dword [ebp - 0x640]
add esp, 0xc
xor ebx, ebx
test esi, esi
je 0x45c71b
cmp word [esi], bx
jne 0x45c6f3
mov eax, ebx
jmp 0x45c6fa
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c8]
call fcn.00403cef
push dword [ebp - 0x640]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebp - 0x63c]
test esi, esi
je 0x45c75a
cmp word [esi], bx
jne 0x45c72e
mov eax, ebx
jmp 0x45c735
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4f8]
call fcn.00403cef
push dword [ebp - 0x63c]
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x45c75c
xor esi, esi
push 0x5bef10
lea ecx, [ebp - 0x4c8]
call fcn.0041ee46
test eax, eax
je 0x45c7c2
lea eax, [ebp - 0x4c8]
push eax
lea eax, [ebp - 0x618]
push eax
mov ecx, edi
call fcn.0045da89
mov ebx, dword [ebp - 0x620]
push eax
mov ecx, ebx
call fcn.00401322
push esi
push 1
lea ecx, [ebp - 0x618]
call fcn.00403a7f
push 0x5bef10
mov ecx, ebx
call fcn.0041ee46
test eax, eax
je 0x45c7c2
push dword [0x62f9d4]
mov ecx, ebx
call fcn.0041ee46
test eax, eax
jne 0x45c7da
push esi
push esi
push esi
lea eax, [ebp - 0x648]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x45c0a9
mov ebx, dword [ebp - 0x624]
mov esi, dword [ebp - 0x620]
mov eax, dword [ebp - 0x628]
xor edi, edi
test eax, eax
je 0x45c7fa
push eax
push edi
call dword [sym.imp.USER32.dll_KillTimer]
call fcn.0045b8b4
push 0x5bef10
lea ecx, [ebp - 0x498]
call fcn.0041ee46
test eax, eax
je 0x45c84e
lea eax, [ebp - 0x498]
cmp ebx, eax
je 0x45c877
jmp 0x45c86c
push str._MS4_SCRIPT_TERMINATE_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00423f75
mov esi, dword [ebp - 0x620]
add esp, 0xc
mov ecx, esi
push dword [0x62f9d8]
call fcn.00403cc8
mov ebx, dword [ebp - 0x624]
jmp 0x45c7e6
push 0x5bef10
lea ecx, [ebp - 0x438]
call fcn.0041ee46
test eax, eax
je 0x45c877
lea eax, [ebp - 0x438]
cmp ebx, eax
je 0x45c877
push 0xffffffffffffffff
push edi
push eax
mov ecx, ebx
call fcn.00403c35
push 0x5d03b4
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00423f75
add esp, 0xc
xor ebx, ebx
push edi
inc ebx
push ebx
lea ecx, [ebp - 0x450]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x480]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x468]
call fcn.00403a7f
lea ecx, [ebp - 0x654]
call fcn.0041eb55
push edi
push ebx
lea ecx, [ebp - 0x558]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x438]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x498]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x4b0]
call fcn.00403a7f
lea ecx, [ebp - 0x66c]
call fcn.0041eb55
lea ecx, [ebp - 0x510]
call fcn.00403ecb
push edi
push ebx
lea ecx, [ebp - 0x570]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x4f8]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x4c8]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x528]
call fcn.00403a7f
push edi
push ebx
lea ecx, [ebp - 0x540]
call fcn.00403a7f
lea ecx, [ebp - 0x678]
call fcn.0041eb55
lea ecx, [ebp - 0x660]
call fcn.0045cce6
mov eax, esi
call fcn.00588a9a
ret 0xc