Function at 0x419480
Capabilities:
Hide graphical window
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0xb10]
jne 0x419539
mov edx, dword [ebp - 0x34]
cmp dword [edx + 0xb18], 0
jne 0x4194f8
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x34]
call fcn.00416810
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0xb1c], 1
jne 0x4194f6
cmp dword [ebp - 4], 0
jne 0x4194f6
mov ecx, dword [ebp - 0x34]
cmp dword [ecx + 0x40ac], 0
jne 0x4194f6
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0xb0c]
mov dword [edx + 0xb14], ecx
mov edx, dword [ebp - 0x34]
mov dword [edx + 0xb18], 1
jmp 0x41952f
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0xb14]
sub ecx, 1
mov edx, dword [ebp - 0x34]
mov dword [edx + 0xb14], ecx
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0xb14], 0
jg 0x41952f
push 0
push 0
push 0x10
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x6e4]
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
jmp 0x4199f9
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0xb20]
jne 0x4196ba
push 0
lea edx, [ebp - 8]
push edx
mov eax, dword [ebp - 0x34]
add eax, 0x2e38
push eax
call sub.WINSPOOL.DRV_OpenPrinterW
test eax, eax
je 0x4196ba
lea ecx, [ebp - 0xc]
push ecx
push 0
push 0
push 6
mov edx, dword [ebp - 8]
push edx
call sub.WINSPOOL.DRV_GetPrinterW
mov eax, dword [ebp - 0xc]
push eax
call fcn.0040377a
add esp, 4
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x10]
push eax
push 6
mov ecx, dword [ebp - 8]
push ecx
call sub.WINSPOOL.DRV_GetPrinterW
test eax, eax
jle 0x4196ae
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
and ecx, 0x1080
jne 0x4196ae
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0xb20]
push eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x6e4]
push edx
call dword [sym.imp.USER32.dll_KillTimer]
push str.restart_CVirtualPrn_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0xb08], 0
je 0x41963d
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx + 0xb08]
call fcn.004144d0
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0xb08]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0
je 0x419629
push 1
mov edx, dword [ebp - 0x24]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x24]
mov edx, dword [eax]
call edx
mov dword [ebp - 0x38], eax
jmp 0x419630
mov dword [ebp - 0x38], 0
mov eax, dword [ebp - 0x34]
mov dword [eax + 0xb08], 0
push 0xeb4
call fcn.00402cc4
add esp, 4
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
je 0x419660
mov ecx, dword [ebp - 0x30]
call fcn.004146e0
mov dword [ebp - 0x3c], eax
jmp 0x419667
mov dword [ebp - 0x3c], 0
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov dword [edx + 0xb08], eax
mov ecx, dword [ebp - 0x34]
add ecx, 0xb2c
push ecx
mov edx, dword [ebp - 0x34]
add edx, 0xd34
push edx
mov eax, dword [ebp - 0x34]
add eax, 0x2e38
push eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x6e4]
push edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0xb08]
call fcn.00415e00
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.0040354c
add esp, 4
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x397c]
jne 0x4196f7
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x397c]
push edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x6e4]
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [ebp - 0x34]
mov dword [edx + 0x397c], 0
mov ecx, dword [ebp - 0x34]
call fcn.00416930
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x4a20]
jne 0x419734
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x4a20]
push eax
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x6e4]
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [ebp - 0x34]
mov dword [eax + 0x4a20], 0
mov ecx, dword [ebp - 0x34]
call fcn.004168b0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp + 8]
cmp edx, dword [ecx + 0x4a14]
jne 0x419771
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x4a14]
push ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x6e4]
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [ebp - 0x34]
mov dword [ecx + 0x4a14], 0
mov ecx, dword [ebp - 0x34]
call fcn.004168b0
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x4a18]
jne 0x4197f5
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x4a18]
push edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x6e4]
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [ebp - 0x34]
mov dword [edx + 0x4a18], 0
mov ecx, dword [ebp - 0x34]
call fcn.004168b0
mov ecx, dword [ebp - 0x34]
call fcn.00417b10
test eax, eax
jl 0x4197f5
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0x299c], 0
jne 0x4197f5
mov ecx, dword [ebp - 0x34]
mov dword [ecx + 0x29a0], 0
push 0
push 0x32
push 0x88
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x6e4]
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [ebp - 0x34]
mov dword [ecx + 0x299c], eax
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp + 8]
cmp eax, dword [edx + 0x4a1c]
jne 0x419947
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x4a28]
mov eax, dword [ebp - 0x34]
add edx, dword [eax + 0x4a24]
mov ecx, dword [ebp - 0x34]
mov dword [ecx + 0x4a28], edx
lea edx, [ebp - 0x1c]
push edx
mov ecx, dword [ebp - 0x34]
add ecx, 0x45f8
call fcn.0042dab0
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xff
xor edx, edx
mov ecx, 0x64
div ecx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0
fild qword [ebp - 0x44]
mov edx, dword [ebp - 0x34]
fild dword [edx + 0x4a28]
fdiv qword [0x439d18]
fmulp st(1)
fnstcw word [ebp - 0x46]
movzx eax, word [ebp - 0x46]
or eax, 0xc00
mov dword [ebp - 0x4c], eax
fldcw word [ebp - 0x4c]
fistp dword [ebp - 0x50]
fldcw word [ebp - 0x46]
mov al, byte [ebp - 0x50]
mov byte [ebp - 0x15], al
push 3
movzx ecx, byte [ebp - 0x15]
push ecx
push 0
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x6e4]
push eax
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
mov ecx, dword [ebp - 0x34]
cmp dword [ecx + 0x4a28], 0
jle 0x4198b7
mov edx, dword [ebp - 0x34]
cmp dword [edx + 0x4a28], 4
jl 0x419947
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x4a1c]
push ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x6e4]
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [ebp - 0x34]
mov dword [ecx + 0x4a1c], 0
mov edx, dword [ebp - 0x34]
cmp dword [edx + 0x4a28], 0
jne 0x419928
mov eax, dword [ebp - 0x34]
cmp dword [eax + 0x4a24], 0
jge 0x419928
mov ecx, dword [ebp - 0x34]
cmp dword [ecx + 0x4a2c], 0
je 0x419914
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x6e4]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
jmp 0x419926
push 0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ecx + 0x6e4]
push edx
call dword [sym.imp.USER32.dll_ShowWindow]
jmp 0x41993a
push 1
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x6e4]
push ecx
call dword [sym.imp.USER32.dll_EnableWindow]
mov edx, dword [ebp - 0x34]
mov dword [edx + 0x4a24], 0
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x299c]
jne 0x4199f7
mov dword [ebp - 0x20], 0
push 0
lea edx, [ebp - 0x20]
push edx
push 0
push 0x72
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x41998e
cmp dword [ebp - 0x20], 0
jne 0x41998e
push 0
push 0
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x6e4]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x29a0]
add eax, 1
mov ecx, dword [ebp - 0x34]
mov dword [ecx + 0x29a0], eax
mov edx, dword [ebp - 0x34]
cmp dword [edx + 0x29a0], 6
jl 0x4199f7
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x299c]
push ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0x6e4]
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [ebp - 0x34]
mov dword [ecx + 0x29a0], 6
mov edx, dword [ebp - 0x34]
mov dword [edx + 0x299c], 0
push 0
push 0
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x6e4]
push ecx
call dword [sym.imp.USER32.dll_InvalidateRect]
xor eax, eax
mov esp, ebp
pop ebp
ret 8