Function at 0x6906eab0
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, edx
push esi
push ebx
mov ebx, ecx
sub esp, 0x4c
mov dword [ebp - 0x2c], eax
mov eax, dword [ecx + 4]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x30], eax
mov eax, dword [ecx + 8]
mov dword [esp], eax
call esi
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call esi
lea eax, [ebp - 0x1c]
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.winspool.drv_OpenPrinterW
sub esp, 0xc
test eax, eax
jne 0x6906eb10
test byte [0x690760c0], 2
jne 0x6906ef10
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x20]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 8], 0
mov dword [esp + 4], 2
mov dword [esp], eax
call sub.winspool.drv_GetPrinterW
mov edx, dword [ebp - 0x20]
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
sub esp, 0x14
mov dword [esp], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], eax
call eax
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
mov dword [ebx + 8], eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], 2
mov dword [esp], eax
call sub.winspool.drv_GetPrinterW
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x20]
sub esp, 0x14
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.winspool.drv_GetPrinterDriverW
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x34]
sub esp, 0x18
mov dword [esp], edx
mov dword [ebp - 0x38], edx
call eax
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x20]
mov dword [ebx + 0xc], eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 8], 3
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.winspool.drv_GetPrinterDriverW
sub esp, 0x18
test eax, eax
jne 0x6906ec40
test byte [0x690760c0], 2
je 0x6906eb07
mov eax, dword [ebx + 8]
mov eax, dword [eax + 4]
call fcn.6906a7f0
mov dword [esp + 0xc], str.GetPrinterDriverA_failed_for__s__fix_your_config__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PRINTDLG_ChangePrinterW
mov dword [esp + 4], 0x690760c0
mov dword [esp], 1
call fcn.6906acc0
jmp 0x6906eb07
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.winspool.drv_ClosePrinter
mov edx, dword [ebx + 8]
mov eax, dword [ebp - 0x2c]
sub esp, 4
call fcn.6906e910
mov eax, dword [ebx]
mov dword [esp], eax
call esi
mov dword [ebx], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.winspool.drv_DocumentPropertiesW
sub esp, 0x18
cmp eax, 0xffffffff
je 0x6906ef50
mov dword [esp], eax
mov eax, dword [ebp - 0x34]
call eax
mov dword [ebx], eax
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.winspool.drv_DocumentPropertiesW
mov eax, dword [ebp - 0x30]
sub esp, 0x18
mov eax, dword [eax + 8]
test eax, eax
je 0x6906ed23
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GlobalLock]
sub esp, 4
mov esi, eax
test eax, eax
je 0x6906ed23
mov eax, dword [ebx]
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
je 0x6906f390
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GlobalUnlock]
sub esp, 4
mov eax, dword [ebp - 0x30]
mov edi, dword [ebx]
test byte [eax + 0x14], 0x40
jne 0x6906efd8
movzx eax, word [eax + 0x18]
cmp ax, 0xffff
je 0x6906ed5f
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x480
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetDlgItemInt]
sub esp, 0x10
mov eax, dword [ebp - 0x30]
movzx eax, word [eax + 0x1a]
cmp ax, 0xffff
je 0x6906ed8f
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x481
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetDlgItemInt]
sub esp, 0x10
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0x420
mov dword [esp + 8], 0x422
mov esi, dword [sym.imp.user32.dll_CheckRadioButton]
mov dword [esp + 4], 0x420
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x30]
sub esp, 0x10
mov eax, dword [eax + 0x14]
test al, 4
jne 0x6906f260
test al, 1
jne 0x6906f090
test al, 8
jne 0x6906f2a0
test al, 2
jne 0x6906f0c0
test al, 0x10
je 0x6906ef98
mov eax, dword [ebx + 0x14]
mov esi, dword [ebp - 0x2c]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x172
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x43e
mov dword [esp], esi
call dword [sym.imp.user32.dll_SendDlgItemMessageW]
sub esp, 0x14
mov dword [esp + 8], 1
mov dword [esp + 4], 0x411
mov ebx, dword [sym.imp.user32.dll_CheckDlgButton]
mov dword [esp], esi
call ebx
mov eax, dword [ebp - 0x30]
sub esp, 0xc
test byte [eax + 0x16], 4
je 0x6906ee45
test byte [edi + 0x49], 0x80
je 0x6906f120
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 8]
test edx, edx
je 0x6906f378
movsx edx, word [edi + 0x56]
mov eax, 1
test edx, edx
jne 0x6906f080
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x482
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetDlgItemInt]
mov eax, dword [ebp - 0x30]
sub esp, 0x10
mov eax, dword [eax + 0x14]
test eax, 0x40000
je 0x6906ee9e
test byte [edi + 0x49], 1
je 0x6906f180
shr eax, 5
mov dword [esp + 4], 0x410
and eax, 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x30]
sub esp, 0xc
mov eax, dword [eax + 0x14]
test eax, 0x80000
jne 0x6906f220
test eax, 0x100000
jne 0x6906f1e0
test ah, 8
jne 0x6906eb07
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0x40e
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
sub esp, 8
jmp 0x6906eb07
mov eax, edi
call fcn.6906a7f0
mov dword [esp + 0xc], str.Cant_open_printer__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PRINTDLG_ChangePrinterW
mov dword [esp + 4], 0x690760c0
mov dword [esp], 1
call fcn.6906acc0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x690760c0], 2
je 0x6906eb07
mov eax, edi
call fcn.6906a7f0
mov dword [esp + 0xc], str.DocumentProperties_fails_on__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PRINTDLG_ChangePrinterW
mov dword [esp + 4], 0x690760c0
mov dword [esp], 1
call fcn.6906acc0
jmp 0x6906eb07
mov eax, dword [ebx + 0x18]
mov esi, dword [ebp - 0x2c]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x172
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x43e
mov dword [esp], esi
call dword [sym.imp.user32.dll_SendDlgItemMessageW]
sub esp, 0x14
mov dword [esp + 8], 0
jmp 0x6906ee1c
mov eax, dword [ebx + 8]
movzx esi, word [edi + 0x4c]
mov edx, 0x471
mov ecx, dword [eax + 4]
mov dword [esp + 4], edi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
call fcn.6906b7c0
mov eax, dword [ebx + 8]
mov edx, 0x472
mov ecx, dword [eax + 4]
mov dword [esp + 4], edi
mov eax, dword [eax + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x2c]
call fcn.6906b7c0
cmp si, 1
je 0x6906f0f0
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0x421
mov dword [esp + 8], 0x421
mov dword [esp + 4], 0x420
mov dword [esp], eax
call dword [sym.imp.user32.dll_CheckRadioButton]
mov eax, dword [ebx + 0x20]
sub esp, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x172
mov dword [esp + 4], 0x43c
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendDlgItemMessageW]
mov eax, dword [ebp - 0x30]
sub esp, 0x14
mov eax, dword [eax + 0x14]
jmp 0x6906eed7
mov eax, 0x270f
cmovns eax, edx
jmp 0x6906ee64
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0x421
mov dword [esp + 8], 0x422
mov dword [esp + 4], 0x420
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x30]
sub esp, 0x10
mov eax, dword [eax + 0x14]
jmp 0x6906edce
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0x422
mov dword [esp + 8], 0x422
mov dword [esp + 4], 0x420
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x30]
sub esp, 0x10
mov eax, dword [eax + 0x14]
jmp 0x6906edde
mov eax, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0x420
mov dword [esp + 8], 0x421
mov dword [esp + 4], 0x420
mov dword [esp], eax
call dword [sym.imp.user32.dll_CheckRadioButton]
mov eax, dword [ebx + 0x1c]
sub esp, 0x10
jmp 0x6906f04a
mov edx, dword [sym.imp.user32.dll_GetDlgItem]
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0x411
mov dword [ebp - 0x34], edx
mov dword [esp], eax
call edx
mov esi, dword [sym.imp.user32.dll_EnableWindow]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x34]
sub esp, 8
mov dword [esp + 4], 0x43e
mov dword [esp], eax
call edx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
jmp 0x6906ee45
mov eax, dword [ebp - 0x2c]
mov edi, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp + 4], 0x482
mov dword [esp], eax
call edi
mov esi, dword [sym.imp.user32.dll_EnableWindow]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x2c]
sub esp, 8
mov dword [esp + 4], 0x444
mov dword [esp], eax
call edi
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
mov eax, dword [ebp - 0x30]
sub esp, 8
mov eax, dword [eax + 0x14]
jmp 0x6906ee9e
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0x410
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
mov eax, dword [ebp - 0x30]
sub esp, 8
mov eax, dword [eax + 0x14]
jmp 0x6906eed7
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0x410
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_EnableWindow]
mov eax, dword [ebp - 0x30]
sub esp, 8
mov eax, dword [eax + 0x14]
jmp 0x6906eecc
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], 0x421
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_EnableWindow]
mov eax, dword [ebp - 0x30]
sub esp, 8
mov eax, dword [eax + 0x14]
jmp 0x6906edce
mov eax, dword [ebp - 0x2c]
mov esi, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp + 4], 0x422
mov dword [esp], eax
call esi
mov ecx, dword [sym.imp.user32.dll_EnableWindow]
sub esp, 8
mov dword [ebp - 0x34], ecx
mov dword [esp + 4], 0
mov dword [esp], eax
call ecx
mov eax, dword [ebp - 0x2c]
sub esp, 8
mov dword [esp + 4], 0x441
mov dword [esp], eax
call esi
mov ecx, dword [ebp - 0x34]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call ecx
mov eax, dword [ebp - 0x2c]
sub esp, 8
mov dword [esp + 4], 0x480
mov dword [esp], eax
call esi
mov ecx, dword [ebp - 0x34]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call ecx
mov eax, dword [ebp - 0x2c]
sub esp, 8
mov dword [esp + 4], 0x442
mov dword [esp], eax
call esi
mov ecx, dword [ebp - 0x34]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call ecx
mov eax, dword [ebp - 0x2c]
sub esp, 8
mov dword [esp + 4], 0x481
mov dword [esp], eax
call esi
mov ecx, dword [ebp - 0x34]
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call ecx
mov eax, dword [ebp - 0x30]
sub esp, 8
mov eax, dword [eax + 0x14]
jmp 0x6906edde
movzx eax, word [eax + 0x20]
mov edx, 1
test eax, eax
cmove eax, edx
jmp 0x6906ee64
mov dword [esp + 0x14], 0xa
mov dword [esp + 0x10], esi
mov eax, dword [ebx]
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call sub.winspool.drv_DocumentPropertiesW
sub esp, 0x18
jmp 0x6906ed11