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

Disassembly:
push 0x6e8
mov eax, 0x5b3943
call fcn.0058f792
mov edi, ecx
and dword [ebp - 4], 0
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
and dword [ebp - 0x6a4], 0
push 0x5d6450
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
mov dword [ebp - 0x698], esi
mov dword [ebp - 0x6f4], esi
mov dword [ebp - 0x694], eax
mov dword [ebp - 0x69c], ebx
call fcn.00424dad
xor ecx, ecx
add esp, 0xc
mov dword [ebp - 0x6e4], ecx
mov dword [ebp - 0x6e0], ecx
mov dword [ebp - 0x6dc], ecx
xor edx, edx
mov dword [ebp - 0x6f0], ecx
inc edx
mov dword [ebp - 0x6ec], ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x6e8], ecx
xor eax, eax
mov dword [ebp - 0x58c], 7
mov dword [ebp - 0x590], ecx
mov word [ebp - 0x5a0], ax
mov dword [ebp - 0x5bc], 7
mov dword [ebp - 0x5c0], ecx
mov word [ebp - 0x5d0], ax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ecx
mov word [esi], ax
push 7
mov dword [ebp - 0x6a4], edx
pop edx
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4b8], ecx
mov word [ebp - 0x4c8], ax
mov dword [ebp - 0x55c], edx
mov dword [ebp - 0x560], ecx
mov word [ebp - 0x570], ax
mov dword [ebp - 0x5d4], edx
mov dword [ebp - 0x5d8], ecx
mov word [ebp - 0x5e8], ax
mov dword [ebp - 0x574], 0xf
mov dword [ebp - 0x578], ecx
mov byte [ebp - 0x588], cl
mov dword [ebp - 0x6d8], ecx
mov dword [ebp - 0x6d4], ecx
mov dword [ebp - 0x6d0], 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 - 0x5a4], edx
mov dword [ebp - 0x5a8], ecx
mov word [ebp - 0x5b8], ax
mov dword [ebp - 0x6cc], ecx
mov dword [ebp - 0x6c8], ecx
mov dword [ebp - 0x6c4], ecx
mov dword [ebp - 0x43c], edx
mov dword [ebp - 0x440], ecx
mov word [ebp - 0x450], ax
mov dword [ebp - 0x46c], edx
mov dword [ebp - 0x470], ecx
mov word [ebp - 0x480], ax
mov dword [ebp - 0x454], edx
mov dword [ebp - 0x458], ecx
mov word [ebp - 0x468], ax
mov byte [ebp - 4], 0x11
call fcn.0045caa6
mov dword [0x641a40], edi
call fcn.00460155
test al, al
je 0x45d13b
push 0x104
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x45d0c9
push str.DRVDATA.BIN
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push str._sINF_s
push eax
call fcn.004069b6
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x218]
add esp, 0x10
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.004069b6
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call esi
mov esi, str._SRC_RESCMS_LIBDATACMGLUE.VXD
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4b0]
call fcn.00404be0
lea eax, [ebp - 0x4b0]
mov ecx, edi
push eax
lea eax, [ebp - 0x558]
push eax
call fcn.0045ebe1
push eax
lea ecx, [ebp - 0x4b0]
call fcn.00401e90
push 0
push 1
lea ecx, [ebp - 0x558]
call fcn.00404970
lea eax, [ebp - 0x4b0]
mov ecx, edi
push eax
push 1
call fcn.0045a8c1
mov ecx, edi
call fcn.0045a99d
lea eax, [ebp - 0x4b0]
mov ecx, edi
push eax
push 0
call fcn.0045a8c1
jmp 0x45d156
push 0
push 0x5cf2f4
call fcn.0045c813
push 0
push 0x5cf2d4
call fcn.0045c813
add esp, 0x10
mov esi, 0xbb8
call fcn.004601f0
test al, al
mov ecx, 0x1388
push 0x45c26a
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 - 0x6a0], eax
lea eax, [ebp - 0x6c0]
push esi
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x45d8cf
lea eax, [ebp - 0x6c0]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [ebp - 0x6c0], 0
jne 0x45d8b1
mov eax, dword [ebp - 0x6bc]
sub eax, 0x7e8
je 0x45d7b9
dec eax
je 0x45d90e
dec eax
je 0x45d3d6
dec eax
jne 0x45d8b1
push str._MS4_TIMER_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00424dad
mov eax, dword [0x641a54]
add esp, 0xc
mov bl, 1
test eax, eax
je 0x45d202
push esi
call eax
mov ebx, eax
neg ebx
sbb bl, bl
inc bl
push esi
push 0x5c4f10
lea ecx, [ebp - 0x438]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x450]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x480]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x468]
call fcn.00404be0
call fcn.004601f0
test al, al
je 0x45d36b
test bl, bl
je 0x45d36b
cmp dword [edi + 0x7c], 0
je 0x45d26b
cmp dword [edi + 0x7c], 1
jne 0x45d26b
push 2
jmp 0x45d26d
push 1
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x694]
call fcn.0045bac0
add esp, 0x18
test al, al
je 0x45d36b
mov ebx, 0x5c4f10
lea ecx, [ebp - 0x438]
push ebx
call fcn.0041fdbb
test eax, eax
jne 0x45d2f1
lea eax, [ebp - 0x468]
mov ecx, edi
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x690]
push eax
call fcn.0045b505
push eax
lea ecx, [ebp - 0x438]
call fcn.00401e90
push esi
push 1
lea ecx, [ebp - 0x690]
call fcn.00404970
lea eax, [ebp - 0x438]
push eax
call fcn.0045dbdd
pop ecx
push esi
xor eax, eax
mov dword [ebp - 0x514], 7
push ebx
lea ecx, [ebp - 0x528]
mov dword [ebp - 0x518], esi
mov word [ebp - 0x528], ax
call fcn.00404be0
push dword [0x636140]
lea ecx, [ebp - 0x600]
mov byte [ebp - 4], 0x18
call fcn.00401c0c
lea eax, [ebp - 0x528]
mov byte [ebp - 4], 0x19
push eax
lea eax, [ebp - 0x600]
mov ecx, edi
push eax
call fcn.0045f91f
push esi
push 1
lea ecx, [ebp - 0x600]
call fcn.00404970
lea ecx, [ebp - 0x528]
jmp 0x45d79a
cmp byte [edi + 0x30], 0
jne 0x45d8b1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x28]
cmp eax, dword [edi + 0x2c]
jbe 0x45d8b1
push esi
xor eax, eax
mov byte [edi + 0x30], 1
push 0x5c4f10
lea ecx, [ebp - 0x4f8]
mov dword [ebp - 0x4e4], 7
mov dword [ebp - 0x4e8], esi
mov word [ebp - 0x4f8], ax
call fcn.00404be0
lea eax, [ebp - 0x4f8]
mov byte [ebp - 4], 0x1a
push eax
lea eax, [edi + 0x34]
mov ecx, edi
push eax
call fcn.0045f91f
lea ecx, [ebp - 0x4f8]
jmp 0x45d79a
push str._MS4_DEVICECHANGE_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00424dad
add esp, 0xc
push 7
pop eax
cmp dword [ebp - 0x6b8], eax
jne 0x45d585
mov dword [ebp - 0x4cc], eax
lea ecx, [ebp - 0x4e0]
push esi
xor eax, eax
mov dword [ebp - 0x4d0], esi
push 0x5c4f10
mov word [ebp - 0x4e0], ax
call fcn.00404be0
push dword [0x63613c]
lea ecx, [ebp - 0x630]
mov byte [ebp - 4], 0x12
call fcn.00401c0c
lea eax, [ebp - 0x4e0]
mov byte [ebp - 4], 0x13
push eax
lea eax, [ebp - 0x630]
mov ecx, edi
push eax
call fcn.0045f91f
push esi
push 1
lea ecx, [ebp - 0x630]
call fcn.00404970
push esi
push 1
lea ecx, [ebp - 0x4e0]
mov byte [ebp - 4], 0x11
call fcn.00404970
mov eax, dword [0x641a54]
mov bl, 1
test eax, eax
je 0x45d483
push esi
call eax
mov ebx, eax
neg ebx
sbb bl, bl
inc bl
push esi
push 0x5c4f10
lea ecx, [ebp - 0x438]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x450]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x480]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x468]
call fcn.00404be0
call fcn.004601f0
test al, al
je 0x45d57c
test bl, bl
je 0x45d57c
cmp dword [edi + 0x7c], 0
je 0x45d4ec
cmp dword [edi + 0x7c], 1
jne 0x45d4ec
push 2
jmp 0x45d4ee
push 1
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x438]
push eax
push dword [ebp - 0x694]
call fcn.0045bac0
add esp, 0x18
test al, al
je 0x45d57c
push 0x5c4f10
lea ecx, [ebp - 0x438]
call fcn.0041fdbb
test eax, eax
jne 0x45d56d
lea eax, [ebp - 0x468]
mov ecx, edi
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x678]
push eax
call fcn.0045b505
push eax
lea ecx, [ebp - 0x438]
call fcn.00401e90
push esi
push 1
lea ecx, [ebp - 0x678]
call fcn.00404970
lea eax, [ebp - 0x438]
push eax
call fcn.0045dbdd
pop ecx
jmp 0x45d585
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x28], eax
cmp dword [ebp - 0x6b8], 0x8000
jne 0x45d8b1
mov ebx, dword [ebp - 0x6b4]
cmp dword [ebx + 4], 1
jne 0x45d8b1
push dword [ebx + 0xc]
call fcn.0045ccd4
mov esi, eax
pop ecx
test esi, esi
je 0x45d64b
push str.NetClient
push esi
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x45d644
and dword [ebp - 0x500], 0
lea ecx, [ebp - 0x510]
xor eax, eax
mov dword [ebp - 0x4fc], 7
push eax
push 0x5c4f10
mov word [ebp - 0x510], ax
call fcn.00404be0
push dword [0x63613c]
lea ecx, [ebp - 0x618]
mov byte [ebp - 4], 0x14
call fcn.00401c0c
lea eax, [ebp - 0x510]
mov byte [ebp - 4], 0x15
push eax
lea eax, [ebp - 0x618]
mov ecx, edi
push eax
call fcn.0045f91f
push 0
push 1
lea ecx, [ebp - 0x618]
call fcn.00404970
push 0
push 1
lea ecx, [ebp - 0x510]
mov byte [ebp - 4], 0x11
call fcn.00404970
push esi
call fcn.0045ba06
pop ecx
xor esi, esi
lea ecx, [ebp - 0x498]
push esi
push 0x5c4f10
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x450]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x480]
call fcn.00404be0
push esi
push 0x5c4f10
lea ecx, [ebp - 0x468]
call fcn.00404be0
call fcn.004601ac
test al, al
je 0x45d7ab
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x498]
push eax
push dword [ebx + 0xc]
push dword [ebp - 0x694]
call fcn.0045bebb
add esp, 0x18
test al, al
je 0x45d7ab
mov ebx, 0x5c4f10
lea ecx, [ebp - 0x498]
push ebx
call fcn.0041fdbb
test eax, eax
jne 0x45d725
lea eax, [ebp - 0x468]
mov ecx, edi
push eax
lea eax, [ebp - 0x480]
push eax
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x660]
push eax
call fcn.0045b1db
push eax
lea ecx, [ebp - 0x498]
call fcn.00401e90
push esi
push 1
lea ecx, [ebp - 0x660]
call fcn.00404970
lea eax, [ebp - 0x498]
push eax
call fcn.0045da5c
pop ecx
push esi
xor eax, eax
mov dword [ebp - 0x52c], 7
push ebx
lea ecx, [ebp - 0x540]
mov dword [ebp - 0x530], esi
mov word [ebp - 0x540], ax
call fcn.00404be0
push dword [0x636140]
lea ecx, [ebp - 0x558]
mov byte [ebp - 4], 0x16
call fcn.00401c0c
lea eax, [ebp - 0x540]
mov byte [ebp - 4], 0x17
push eax
lea eax, [ebp - 0x558]
mov ecx, edi
push eax
call fcn.0045f91f
push esi
push 1
lea ecx, [ebp - 0x558]
call fcn.00404970
lea ecx, [ebp - 0x540]
push esi
push 1
mov byte [ebp - 4], 0x11
call fcn.00404970
jmp 0x45d8b1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x28], eax
jmp 0x45d8b1
push str._MS4_EVENT_OCCUR_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00424dad
mov esi, dword [ebp - 0x6b8]
add esp, 0xc
xor ebx, ebx
test esi, esi
je 0x45d80a
cmp word [esi], bx
jne 0x45d7e2
mov eax, ebx
jmp 0x45d7e9
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x4c8]
call fcn.00404be0
push dword [ebp - 0x6b8]
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [ebp - 0x6b4]
test esi, esi
je 0x45d849
cmp word [esi], bx
jne 0x45d81d
mov eax, ebx
jmp 0x45d824
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x570]
call fcn.00404be0
push dword [ebp - 0x6b4]
xor esi, esi
push esi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x45d84b
xor esi, esi
push 0x5c4f10
lea ecx, [ebp - 0x4c8]
call fcn.0041fdbb
test eax, eax
je 0x45d8b1
lea eax, [ebp - 0x4c8]
mov ecx, edi
push eax
lea eax, [ebp - 0x648]
push eax
call fcn.0045eb0c
mov ebx, dword [ebp - 0x698]
mov ecx, ebx
push eax
call fcn.00401e90
push esi
push 1
lea ecx, [ebp - 0x648]
call fcn.00404970
push 0x5c4f10
mov ecx, ebx
call fcn.0041fdbb
test eax, eax
je 0x45d8b1
push dword [0x636134]
mov ecx, ebx
call fcn.0041fdbb
test eax, eax
jne 0x45d8c9
push esi
push esi
push esi
lea eax, [ebp - 0x6c0]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x45d198
mov ebx, dword [ebp - 0x69c]
mov esi, dword [ebp - 0x698]
mov eax, dword [ebp - 0x6a0]
xor edi, edi
test eax, eax
je 0x45d8e9
push eax
push edi
call dword [sym.imp.USER32.dll_KillTimer]
call fcn.0045c999
push 0x5c4f10
lea ecx, [ebp - 0x498]
call fcn.0041fdbb
test eax, eax
je 0x45d93d
lea eax, [ebp - 0x498]
cmp ebx, eax
je 0x45d966
jmp 0x45d95b
push str._MS4_SCRIPT_TERMINATE_n
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00424dad
mov esi, dword [ebp - 0x698]
add esp, 0xc
mov ecx, esi
push dword [0x636138]
call fcn.00404bb9
mov ebx, dword [ebp - 0x69c]
jmp 0x45d8d5
push 0x5c4f10
lea ecx, [ebp - 0x438]
call fcn.0041fdbb
test eax, eax
je 0x45d966
lea eax, [ebp - 0x438]
cmp ebx, eax
je 0x45d966
push 0xffffffffffffffff
push edi
push eax
mov ecx, ebx
call fcn.00404b26
push 0x5d646c
push str.MS4SCRIPT::PrinterDetectMessageProcedure
push 5
call fcn.00424dad
add esp, 0xc
lea ecx, [ebp - 0x468]
xor ebx, ebx
inc ebx
push edi
push ebx
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x480]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x450]
call fcn.00404970
lea ecx, [ebp - 0x6cc]
call fcn.0041fac8
push edi
push ebx
lea ecx, [ebp - 0x5b8]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x438]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x498]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x4b0]
call fcn.00404970
lea ecx, [ebp - 0x6d8]
call fcn.0041fac8
push edi
push ebx
lea ecx, [ebp - 0x588]
call fcn.00404f5d
push edi
push ebx
lea ecx, [ebp - 0x5e8]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x570]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x4c8]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x5d0]
call fcn.00404970
push edi
push ebx
lea ecx, [ebp - 0x5a0]
call fcn.00404970
lea ecx, [ebp - 0x6f0]
call fcn.0041fac8
lea ecx, [ebp - 0x6e4]
call fcn.0045ddd2
mov eax, esi
call fcn.0058f741
ret 0xc