Function at 0x10007f90
Capabilities:
Access peb ldr_data
Get file size
Get kernel32 base address
Get process heap flags
Read file via mapping

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff8
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x190
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [ebp - 0x150], eax
test byte [0x10025888], 8
jne 0x10008510
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], pe_nt_image_headers32
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x80000000
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_CreateFileW]
sub esp, 0x1c
mov edi, eax
cmp eax, 0xffffffff
je 0x10008032
lea eax, [ebp - 0x118]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetFileSizeEx]
sub esp, 8
test eax, eax
je 0x10008026
mov eax, dword [ebp - 0x114]
test eax, eax
je 0x10008060
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 4
mov dword [ebp - 0x140], 0
test byte [0x10025888], 4
jne 0x10008bbc
mov eax, dword [ebp - 0x140]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
mov dword [esp], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp + 4], 0
call dword [sym.imp.kernel32.dll_CreateFileMappingW]
sub esp, 0x18
mov ebx, eax
mov dword [esp], edi
mov edi, dword [sym.imp.kernel32.dll_CloseHandle]
call edi
sub esp, 4
test ebx, ebx
je 0x10008032
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 4
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_MapViewOfFile]
mov edx, dword [ebp - 0x118]
mov dword [ebp - 0x138], eax
sub esp, 0x14
mov dword [ebp - 0x134], eax
lea eax, [eax + edx - 1]
mov dword [ebp - 0x130], eax
mov dword [esp], ebx
call edi
mov eax, dword [0x10025780]
sub esp, 4
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapAlloc]
mov dword [esp + 8], 0x60
mov dword [esp + 4], 8
mov dword [ebp - 0x164], eax
call eax
mov dword [ebp - 0x140], eax
sub esp, 0xc
test eax, eax
je 0x1000a1a8
mov edi, dword [ebp - 0x140]
lea eax, [edi + 0xc]
lea esi, [edi + 0x48]
mov dword [edi + 8], 0
mov dword [edi + 0x10], eax
mov dword [edi + 0xc], eax
mov dword [ebp - 0x168], eax
lea eax, [edi + 0x2c]
mov dword [edi + 0x30], eax
mov dword [edi + 0x2c], eax
mov dword [ebp - 0x15c], eax
lea eax, [edi + 0x34]
mov dword [edi + 0x38], eax
mov dword [edi + 0x34], eax
mov dword [ebp - 0x13c], eax
lea eax, [edi + 0x40]
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], eax
mov dword [ebp - 0x160], eax
lea eax, [edi + 0x54]
mov dword [edi + 0x58], eax
mov dword [edi + 0x54], eax
mov dword [ebp - 0x148], eax
mov eax, dword [0x10025780]
mov dword [edi + 0x4c], esi
mov dword [edi + 0x48], esi
mov dword [edi + 0x14], 0x12c
mov dword [ebp - 0x144], esi
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
mov dword [esp + 8], 0x18
mov dword [esp + 4], 0
call eax
sub esp, 0xc
test eax, eax
je 0x10008bf0
mov edx, 0xf
mov ecx, 0x100
mov dword [eax], esi
mov ebx, 0x100
mov word [eax + 0x14], dx
mov edx, dword [edi + 0x4c]
mov dword [eax + 8], 0
mov dword [eax + 0xc], str.Automatically_Select
mov dword [eax + 0x10], 0
mov dword [eax + 4], edx
mov word [ebp - 0x16a], cx
mov dword [edx], eax
mov word [ebp - 0x16c], bx
mov dword [edi + 0x4c], eax
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0
nop
mov dword [ebp - 0x12c], 0
mov ebx, dword [ebp - 0x134]
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
cmp ebx, dword [ebp - 0x130]
ja 0x10008293
lea edx, [ebp - 0x138]
lea eax, [ebp - 0x118]
call sym._get_line.part.0.constprop.0
test eax, eax
je 0x10008293
movzx edx, byte [ebp - 0x118]
cmp dl, 0x2a
je 0x10008420
mov ebx, dword [ebp - 0x134]
cmp ebx, dword [ebp - 0x130]
jbe 0x10008260
mov eax, dword [ebp - 0x140]
mov ebx, dword [eax + 0x34]
mov edi, dword [ebx]
mov esi, edi
cmp dword [ebp - 0x13c], ebx
jne 0x100082cd
jmp 0x1000839d
mov edi, dword [ebx + 0x18]
test edi, edi
je 0x100084b0
mov eax, dword [esi]
mov ebx, esi
cmp dword [ebp - 0x13c], esi
je 0x1000839d
mov esi, eax
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x100082b0
test byte [0x10025888], 4
jne 0x10008500
mov eax, dword [ebx + 8]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebx + 0xc]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebx + 0x10]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebx + 0x14]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebx + 0x18]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
sub esp, 0xc
mov dword [ecx + 4], eax
mov ecx, dword [ebx]
mov ebx, esi
mov dword [eax], ecx
mov eax, dword [esi]
cmp dword [ebp - 0x13c], esi
jne 0x100082cb
mov eax, dword [ebp - 0x140]
mov edx, str.DefaultPageSize
mov dword [eax + 0x3c], 0
mov eax, dword [ebp - 0x150]
call sym._get_ppd_override
mov esi, eax
test eax, eax
je 0x10008548
mov eax, dword [ebp - 0x140]
mov edi, dword [eax + 0x34]
cmp dword [ebp - 0x13c], edi
je 0x10008ad0
mov ebx, dword [sym.imp.ucrtbase.dll_strcmp]
jmp 0x100083f6
mov edi, dword [edi]
cmp dword [ebp - 0x13c], edi
je 0x10008ad0
mov dword [esp + 4], esi
mov eax, dword [edi + 8]
mov dword [esp], eax
call ebx
test eax, eax
jne 0x100083e8
xor eax, eax
mov ecx, dword [ebp - 0x140]
mov dword [ecx + 0x3c], edi
jmp 0x10008556
cmp byte [ebp - 0x117], 0x25
je 0x10008285
cmp dword [ebp - 0x118], 0x646e452a
je 0x10008285
lea eax, [ebp - 0x118]
mov byte [ebp - 0x14c], dl
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_strlen]
movzx edx, byte [ebp - 0x14c]
movzx eax, byte [ebp + eax - 0x119]
cmp al, 0xa
je 0x10008c38
cmp al, 0xd
je 0x10008c38
test byte [0x10025888], 2
je 0x10008220
mov dword [esp + 0xc], str.Line_too_long._n
mov dword [esp + 8], str.PSDRV_PPDGetNextTuple
mov dword [esp + 4], 0x10025888
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_14
jmp 0x10008220
mov edi, 0x1002bec9
test byte [0x10025888], 4
je 0x100082e1
mov eax, dword [ebx + 0xc]
call sym._wine_dbgstr_wn.constprop.0_3
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Removing_page__s_since_it_has_a_missing__s_entry_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_14
jmp 0x100082e1
mov edi, str.InvocationString
jmp 0x100084c2
mov eax, esi
call sym._wine_dbgstr_wn.constprop.0_3
mov dword [esp + 0xc], str.file__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
jmp 0x10007fbf
mov eax, dword [ebp - 0x140]
mov edi, dword [eax + 0x3c]
test edi, edi
sete al
mov ecx, dword [ebp - 0x154]
test ecx, ecx
je 0x10008568
test al, al
jne 0x10008b54
movzx eax, byte [0x10025888]
test edi, edi
je 0x100089e0
test al, 8
je 0x100085a6
mov eax, dword [edi + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.DefaultPageSize:__s_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov eax, dword [0x10025780]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x154]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov edi, dword [ebp - 0x140]
mov eax, dword [ebp - 0x150]
mov edx, str.DefaultDuplex
sub esp, 0xc
mov dword [edi + 0x5c], 0
call sym._get_ppd_override
mov esi, eax
test eax, eax
je 0x10008660
mov eax, dword [ebp - 0x140]
mov edi, dword [eax + 0x54]
cmp dword [ebp - 0x148], edi
je 0x10008ae0
mov ebx, dword [sym.imp.ucrtbase.dll_strcmp]
jmp 0x1000863e
mov edi, dword [edi]
cmp dword [ebp - 0x148], edi
je 0x10008ae0
mov dword [esp + 4], esi
mov eax, dword [edi + 8]
mov dword [esp], eax
call ebx
test eax, eax
jne 0x10008630
xor eax, eax
mov ecx, dword [ebp - 0x140]
mov dword [ecx + 0x5c], edi
jmp 0x10008668
mov edi, dword [edi + 0x5c]
test edi, edi
sete al
mov edx, dword [ebp - 0x158]
test edx, edx
je 0x1000867a
test al, al
jne 0x10008aec
movzx eax, byte [0x10025888]
test edi, edi
je 0x10008a60
test al, 8
je 0x100086b8
mov eax, dword [edi + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.DefaultDuplex:__s_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov eax, dword [0x10025780]
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x158]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x140]
mov esi, dword [ebp - 0x15c]
sub esp, 0xc
mov ebx, dword [eax + 0x2c]
cmp dword [ebp - 0x15c], ebx
jne 0x1000871e
jmp 0x10008758
mov ebx, dword [ebx]
cmp esi, ebx
je 0x10008758
test byte [0x10025888], 8
je 0x10008718
mov eax, dword [ebx + 8]
mov dword [esp + 0xc], str._s_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov ebx, dword [ebx]
cmp esi, ebx
jne 0x1000871e
mov eax, dword [ebp - 0x140]
mov ebx, dword [eax + 0x34]
cmp dword [ebp - 0x13c], ebx
jne 0x10008789
jmp 0x100088ae
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x10008847
mov ebx, dword [ebx]
cmp dword [ebp - 0x13c], ebx
je 0x100088ae
test byte [0x10025888], 8
je 0x10008770
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
movzx edi, word [ebx + 0x1c]
call sym._wine_dbgstr_wn.constprop.0_3
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0xc], str._s_aka__s___d__invoked_by__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x10008847
test byte [0x10025888], 8
je 0x1000877b
pxor xmm0, xmm0
cvtss2sd xmm0, dword [eax + 0xc]
movsd qword [esp + 0x28], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [eax + 8]
movsd qword [esp + 0x20], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [eax + 4]
movsd qword [esp + 0x18], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [eax]
mov dword [esp + 0xc], str.Area___.2f__.2f____.2f___.2f_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
movsd qword [esp + 0x10], xmm0
call sym._wine_dbg_log.constprop.0_14
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x1000877b
test byte [0x10025888], 8
je 0x1000877b
pxor xmm0, xmm0
cvtss2sd xmm0, dword [eax + 4]
movsd qword [esp + 0x18], xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, dword [eax]
mov dword [esp + 0xc], str.Dimension___.2f_x__.2f_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
movsd qword [esp + 0x10], xmm0
call sym._wine_dbg_log.constprop.0_14
mov ebx, dword [ebx]
cmp dword [ebp - 0x13c], ebx
jne 0x10008789
mov eax, dword [ebp - 0x140]
mov esi, dword [ebp - 0x160]
mov ebx, dword [eax + 0x40]
cmp dword [ebp - 0x160], ebx
jne 0x100088d6
jmp 0x10008925
mov ebx, dword [ebx]
cmp esi, ebx
je 0x10008925
test byte [0x10025888], 8
je 0x100088d0
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0xc], str.CONSTRAINTS___s__s__s__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov ebx, dword [ebx]
cmp esi, ebx
jne 0x100088d6
mov eax, dword [ebp - 0x140]
mov ebx, dword [eax + 0x48]
cmp dword [ebp - 0x144], ebx
jne 0x1000894a
jmp 0x100089b4
mov ebx, dword [ebx]
cmp dword [ebp - 0x144], ebx
je 0x100089b4
test byte [0x10025888], 8
je 0x10008940
mov eax, dword [ebx + 0x10]
call sym._wine_dbgstr_an.constprop.0
movzx esi, word [ebx + 0x14]
mov edi, dword [ebx + 0xc]
mov dword [ebp - 0x13c], eax
mov eax, dword [ebx + 8]
call sym._wine_dbgstr_an.constprop.0
mov ecx, dword [ebp - 0x13c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.INPUTSLOTS__s_Name__s___d__Invocation__s_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov ebx, dword [ebx]
cmp dword [ebp - 0x144], ebx
jne 0x1000894a
mov eax, dword [ebp - 0x138]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_UnmapViewOfFile]
sub esp, 4
jmp 0x10008049
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x3c], 0
movzx eax, byte [0x10025888]
nop
mov ecx, dword [ebp - 0x140]
mov edx, dword [ecx + 0x34]
cmp dword [ebp - 0x13c], edx
je 0x100089f8
test edx, edx
je 0x100089f8
mov dword [ecx + 0x3c], edx
test al, 8
je 0x100085a6
mov dword [esp + 0xc], str.Setting_DefaultPageSize_to_first_in_list_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
test byte [0x10025888], 8
je 0x100085a6
mov eax, dword [ebp - 0x140]
mov edi, dword [eax + 0x3c]
test edi, edi
jne 0x1000857b
mov eax, str._not_set_
jmp 0x1000857e
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x5c], 0
movzx eax, byte [0x10025888]
mov ecx, dword [ebp - 0x140]
mov edx, dword [ecx + 0x54]
cmp dword [ebp - 0x148], edx
je 0x10008a78
test edx, edx
je 0x10008a78
mov dword [ecx + 0x5c], edx
test al, 8
je 0x100086b8
mov dword [esp + 0xc], str.Setting_DefaultDuplex_to_first_in_list_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
test byte [0x10025888], 8
je 0x100086b8
mov eax, dword [ebp - 0x140]
mov edi, dword [eax + 0x5c]
test edi, edi
jne 0x1000868d
mov eax, str._not_set_
jmp 0x10008690
mov eax, 1
xor edi, edi
jmp 0x10008408
mov eax, 1
xor edi, edi
jmp 0x10008650
mov eax, dword [ebp - 0x140]
mov edi, dword [eax + 0x54]
cmp dword [ebp - 0x148], edi
je 0x10008a4c
mov ebx, dword [sym.imp.ucrtbase.dll_strcmp]
mov dword [ebp - 0x14c], esi
mov esi, edi
mov edi, ebx
mov ebx, dword [ebp - 0x158]
jmp 0x10008b2e
mov esi, dword [esi]
cmp dword [ebp - 0x148], esi
je 0x10008e07
mov dword [esp + 4], ebx
mov eax, dword [esi + 8]
mov dword [esp], eax
call edi
test eax, eax
jne 0x10008b20
mov edi, esi
mov esi, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x5c], edi
jmp 0x1000867a
mov eax, dword [ebp - 0x140]
mov edi, dword [eax + 0x34]
cmp dword [ebp - 0x13c], edi
je 0x100089cb
mov ebx, dword [sym.imp.ucrtbase.dll_strcmp]
mov dword [ebp - 0x14c], esi
mov esi, edi
mov edi, ebx
mov ebx, dword [ebp - 0x154]
jmp 0x10008b96
mov esi, dword [esi]
cmp dword [ebp - 0x13c], esi
je 0x10008e14
mov dword [esp + 4], ebx
mov eax, dword [esi + 8]
mov dword [esp], eax
call edi
test eax, eax
jne 0x10008b88
mov edi, esi
mov esi, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x3c], edi
jmp 0x10008568
mov eax, esi
call sym._wine_dbgstr_wn.constprop.0_3
mov dword [esp + 0xc], str.Couldnt_open_ppd_file__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_14
jmp 0x10008049
mov eax, dword [ebp - 0x140]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x138]
sub esp, 0xc
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_UnmapViewOfFile]
mov dword [ebp - 0x140], 0
sub esp, 4
jmp 0x10008049
mov edi, ebx
lea esi, [ebp - 0x118]
mov ebx, edx
jmp 0x10008c52
cmp bl, 0x3a
je 0x10008c62
movzx ebx, byte [esi + 1]
inc esi
movsx eax, bl
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_isspace]
test eax, eax
je 0x10008c48
mov edx, ebx
mov ebx, edi
mov edi, esi
mov dword [ebp - 0x14c], ebx
mov ebx, edx
jmp 0x10008c88
movsx eax, byte [edi + 1]
inc edi
mov dword [esp], eax
mov ebx, eax
call dword [sym.imp.ucrtbase.dll_isspace]
test eax, eax
jne 0x10008c78
mov ecx, eax
lea eax, [ebp - 0x118]
mov edx, ebx
mov ebx, dword [ebp - 0x14c]
sub esi, eax
mov dword [ebp - 0x14c], esi
lea eax, [esi + 1]
mov esi, dword [0x10025780]
cmp dl, 0x3a
je 0x10008e57
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x164]
mov dword [esp], esi
mov dword [esp + 4], 0
call eax
mov dword [ebp - 0x12c], eax
sub esp, 0xc
mov esi, eax
test eax, eax
je 0x10008293
mov eax, dword [ebp - 0x14c]
lea ecx, [ebp - 0x118]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym._memcpy
mov eax, dword [ebp - 0x14c]
mov byte [esi + eax], 0
mov dword [esp + 4], 0x1002c450
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_strpbrk]
mov edx, eax
test eax, eax
je 0x10008e21
mov esi, edx
mov dword [ebp - 0x170], edx
sub esi, edi
mov dword [esp + 4], 0
lea eax, [esi + 1]
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov dword [ebp - 0x128], eax
sub esp, 0xc
test eax, eax
je 0x10008293
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [ebp - 0x14c], eax
call sym._memcpy
mov edx, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x14c]
cmp byte [edx], 0x2f
mov byte [ecx + esi], 0
lea esi, [edx + 1]
jne 0x1000a273
mov dword [esp + 4], 0x3a
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_strchr]
test eax, eax
jne 0x1000a1de
test byte [0x10025888], 2
mov ecx, dword [ebp - 0x14c]
jne 0x10009574
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x12c]
sub esp, 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x10008220
mov esi, dword [ebp - 0x14c]
xor edi, edi
jmp 0x10008b46
mov esi, dword [ebp - 0x14c]
xor edi, edi
jmp 0x10008bae
test byte [0x10025888], 2
jne 0x100095ad
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x10008220
mov dword [ebp - 0x170], ecx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x164]
mov dword [esp], esi
mov dword [esp + 4], 0
call eax
mov ecx, dword [ebp - 0x170]
sub esp, 0xc
test eax, eax
mov dword [ebp - 0x12c], eax
mov esi, eax
je 0x10008293
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x170], ecx
lea ecx, [ebp - 0x118]
mov dword [esp + 4], ecx
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._memcpy
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x170]
mov byte [esi + eax], 0
lea esi, [edi + 1]
jmp 0x10008ec9
inc esi
movzx edi, byte [esi]
mov dword [ebp - 0x14c], ecx
mov eax, edi
movsx eax, al
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_isspace]
mov ecx, dword [ebp - 0x14c]
test eax, eax
jne 0x10008ec8
mov eax, edi
cmp al, 0x22
je 0x1000a2d7
cmp al, 0x5e
je 0x1000a2a1
mov dword [esp + 4], 0x1002c2cc
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_strpbrk]
mov ebx, eax
test eax, eax
je 0x1000a290
mov edi, ebx
mov dword [esp + 4], 0
sub edi, esi
lea eax, [edi + 1]
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0xc
mov dword [ebp - 0x120], eax
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x14c], eax
call sym._memcpy
mov edx, dword [ebp - 0x14c]
cmp byte [ebx], 0x2f
mov byte [edx + edi], 0
je 0x1000a27d
mov ebx, dword [ebp - 0x12c]
mov esi, str.NickName
mov ecx, 0xa
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x10009060
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0x120], 0
mov dword [ecx], eax
test byte [0x10025888], 8
jne 0x10009140
mov eax, dword [0x10025780]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x128]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x120]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x124]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x11c]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x10008220
mov esi, str.LanguageLevel
mov ecx, 0xf
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x10009178
mov esi, str.ColorDevice
mov ecx, 0xd
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x10009200
mov esi, str.DefaultResolution
mov ecx, 0x13
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x100091c0
mov esi, str.DefaultJCLResolution
mov ecx, 0x16
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x100091c0
mov esi, str.Resolution
mov ecx, 0xc
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x100092f0
mov esi, str.Font
mov ecx, 6
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x100093bc
mov esi, str.DefaultFont
mov ecx, 0xd
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x10009383
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x120], 0
mov dword [edx + 0x28], eax
jmp 0x10008fb2
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.NickName___s_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov ebx, dword [ebp - 0x12c]
jmp 0x10008fb2
mov eax, dword [ebp - 0x140]
mov dword [esp + 4], 0x1002bf6a
add eax, 4
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call sym._sscanf
test byte [0x10025888], 8
je 0x10009168
mov eax, dword [ebp - 0x140]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], str.LanguageLevel___d_n
mov dword [esp + 0x10], eax
jmp 0x1000914c
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 0x118]
call sym._parse_resolution
test eax, eax
je 0x10009250
test byte [0x10025888], 8
jne 0x100092b3
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x140]
mov dword [ecx + 0x14], eax
jmp 0x10009168
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], 0x1002bf8e
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__stricmp]
test eax, eax
mov eax, dword [ebp - 0x140]
je 0x10009298
mov dword [eax + 8], 1
mov eax, str.False
test byte [0x10025888], 8
je 0x10009168
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.ColorDevice___s_n
jmp 0x1000914c
test byte [0x10025888], 4
je 0x10009168
mov eax, dword [ebp - 0x120]
call sym._wine_dbgstr_an.constprop.0
mov dword [esp + 0xc], str.failed_to_parse_DefaultResolution__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_14
jmp 0x10009168
mov dword [eax + 8], 2
test byte [0x10025888], 8
je 0x10009168
mov eax, str.True
jmp 0x1000923a
mov eax, dword [ebp - 0x114]
mov dword [esp + 0xc], str.DefaultResolution__ldx_ld_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x118]
mov dword [esp + 4], 0x10025888
mov dword [esp + 0x10], eax
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
jmp 0x100091e2
mov eax, dword [ebp - 0x128]
lea edx, [ebp - 0x118]
call sym._parse_resolution
test eax, eax
je 0x10009416
test byte [0x10025888], 8
jne 0x100094c5
mov dword [esp + 8], 0x14
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov edx, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x140]
sub esp, 0xc
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x114]
mov dword [eax + 0xc], edx
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x120], 0
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x168]
mov dword [eax], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ecx + 0x10], eax
jmp 0x10009168
mov esi, str.JCLBegin
mov ecx, 0xa
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x1000945b
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0x120], 0
mov dword [ecx + 0x1c], eax
jmp 0x10008fb2
mov eax, dword [0x10025780]
mov dword [esp + 8], 0xc
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0x128], 0
sub esp, 0xc
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x15c]
mov dword [eax], edx
mov edx, dword [ecx + 0x30]
mov dword [eax + 4], edx
mov dword [edx], eax
mov ebx, dword [ebp - 0x12c]
mov dword [ecx + 0x30], eax
jmp 0x10008fb2
test byte [0x10025888], 4
je 0x10009168
mov eax, dword [ebp - 0x128]
call sym._wine_dbgstr_an.constprop.0
mov dword [esp + 0xc], str.failed_to_parse_Resolution__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_14
jmp 0x10009168
mov esi, str.JCLToPSInterpreter
mov ecx, 0x14
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x10009490
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x120], 0
mov dword [edx + 0x20], eax
jmp 0x10008fb2
mov esi, str.JCLEnd
mov ecx, 8
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x1000950c
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x120], 0
mov dword [edx + 0x24], eax
jmp 0x10008fb2
mov eax, dword [ebp - 0x120]
mov dword [esp + 0xc], str.Resolution__ldx_ld__invocation__s_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x114]
mov dword [esp + 4], 0x10025888
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x118]
mov dword [esp], 3
mov dword [esp + 0x10], eax
call sym._wine_dbg_log.constprop.0_14
jmp 0x10009316
mov esi, 0x1002c09c
mov ecx, 0xa
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
movsx eax, al
mov dword [ebp - 0x14c], eax
test eax, eax
je 0x10009690
mov esi, 0x1002c0d8
mov ecx, 0x11
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x100095e6
mov eax, dword [ebp - 0x154]
test eax, eax
jne 0x10008fb2
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x154], eax
jmp 0x10008fb2
lea eax, [ebp - 0x118]
mov dword [esp + 0xc], str.Error_in_line__s__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_PPDGetNextTuple
mov dword [esp + 4], 0x10025888
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_14
mov ecx, dword [ebp - 0x128]
jmp 0x10008db9
lea eax, [ebp - 0x118]
mov dword [esp + 0xc], str.Error_in_line__s__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_PPDGetNextTuple
mov dword [esp + 4], 0x10025888
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_14
mov esi, dword [ebp - 0x12c]
jmp 0x10008e2e
mov esi, str.ImageableArea
mov ecx, 0xf
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x1000991c
mov esi, str.PaperDimension
mov ecx, 0x10
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
je 0x1000985a
mov esi, str.LandscapeOrientation
mov ecx, 0x16
mov edi, ebx
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x10009762
mov edi, dword [ebp - 0x120]
mov dword [esp + 4], str.Plus90
mov esi, dword [sym.imp.ucrtbase.dll_strcmp]
mov dword [esp], edi
call esi
test eax, eax
jne 0x1000a02c
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x18], 0x5a
test byte [0x10025888], 8
je 0x10008fb2
mov eax, dword [ebp - 0x140]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], str.LandscapeOrientation___d_n
mov dword [esp + 0x10], eax
jmp 0x1000914c
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x140]
mov ecx, 1
call sym._get_pagesize
mov ebx, dword [eax + 8]
mov edi, eax
test ebx, ebx
je 0x10009a9e
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10009a01
mov edx, dword [edi + 0x10]
test edx, edx
je 0x100099e9
cmp word [edi + 0x1c], 0
jne 0x10009168
mov ecx, dword [edi + 8]
mov esi, dword [sym.imp.ucrtbase.dll_strcmp]
mov ebx, edi
mov eax, str.10x11
mov edi, esi
mov esi, ecx
jmp 0x10009705
inc dword [ebp - 0x14c]
mov eax, dword [ebp - 0x14c]
mov eax, dword [eax*8 + 0x10032880]
test eax, eax
je 0x1000a053
mov dword [esp + 4], esi
mov dword [esp], eax
call edi
test eax, eax
jne 0x100096ea
mov eax, dword [ebp - 0x14c]
mov edi, ebx
mov ecx, esi
movzx eax, word [eax*8 + 0x10032884]
mov word [ebx + 0x1c], ax
mov ebx, dword [ebp - 0x12c]
test ax, ax
jne 0x10008fb2
test byte [0x10025888], 8
jne 0x10009fed
movzx eax, word [ebp - 0x16c]
mov ebx, dword [ebp - 0x12c]
mov word [edi + 0x1c], ax
inc eax
mov word [ebp - 0x16c], ax
jmp 0x10008fb2
mov dword [esp + 4], ebx
mov esi, dword [sym.imp.ucrtbase.dll_strcmp]
mov dword [esp], str.UIConstraints
call esi
test eax, eax
je 0x1000a109
mov dword [esp + 4], ebx
mov dword [esp], 0x1002c167
call esi
test eax, eax
jne 0x10009bcd
cmp dword [ebp - 0x124], 0
mov ebx, dword [ebp - 0x128]
je 0x10009bc2
test byte [0x10025888], 8
jne 0x10009f75
movzx eax, word [ebp - 0x16a]
mov dword [esp + 8], 0x18
mov dword [esp + 4], 0
mov edi, dword [ebp - 0x120]
lea edx, [eax + 1]
mov eax, dword [0x10025780]
mov esi, dword [ebp - 0x124]
mov word [ebp - 0x14c], dx
mov edx, dword [ebp - 0x164]
mov dword [esp], eax
call edx
sub esp, 0xc
test eax, eax
je 0x10009823
movzx ecx, word [ebp - 0x16a]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov word [eax + 0x14], cx
mov ecx, dword [ebp - 0x144]
mov dword [eax + 0x10], edi
mov dword [eax], ecx
mov ecx, dword [ebp - 0x140]
mov edx, dword [ecx + 0x4c]
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ecx + 0x4c], eax
movzx eax, word [ebp - 0x14c]
mov ebx, dword [ebp - 0x12c]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x128], 0
mov word [ebp - 0x16a], ax
jmp 0x10008fb2
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x140]
mov ecx, 1
call sym._get_pagesize
cmp dword [eax + 8], 0
mov ebx, eax
je 0x1000a0f1
cmp dword [ebx + 0xc], 0
je 0x1000a05c
cmp dword [ebx + 0x18], 0
jne 0x10009168
mov eax, dword [0x10025780]
mov dword [esp + 8], 8
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov esi, dword [sym.imp.ucrtbase.dll_setlocale]
sub esp, 0xc
mov dword [ebx + 0x18], eax
mov dword [esp + 4], 0
mov dword [esp], 4
call esi
mov dword [esp + 4], 0x1002c0f8
mov edi, eax
mov dword [esp], 4
call esi
mov eax, dword [ebx + 0x18]
mov dword [esp + 4], str._f_f
lea edx, [eax + 4]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call sym._sscanf
mov dword [esp + 4], edi
mov dword [esp], 4
call esi
mov ebx, dword [ebp - 0x12c]
jmp 0x10008fb2
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x140]
mov ecx, 1
call sym._get_pagesize
mov ebx, eax
mov eax, dword [eax + 8]
test eax, eax
je 0x10009baa
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x10009b15
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x10009168
mov eax, dword [0x10025780]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov esi, dword [sym.imp.ucrtbase.dll_setlocale]
sub esp, 0xc
mov dword [ebx + 0x14], eax
mov dword [esp + 4], 0
mov dword [esp], 4
call esi
mov dword [esp + 4], 0x1002c0f8
mov edi, eax
mov dword [esp], 4
call esi
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], str._f_f_f_f
lea edx, [eax + 0xc]
mov dword [esp + 8], eax
mov dword [esp + 0x14], edx
lea edx, [eax + 8]
mov dword [esp + 0x10], edx
lea edx, [eax + 4]
mov eax, dword [ebp - 0x120]
mov dword [esp + 0xc], edx
mov dword [esp], eax
call sym._sscanf
mov dword [esp + 4], edi
mov dword [esp], 4
call esi
jmp 0x10009168
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x120], 0
mov dword [edi + 0x10], eax
jmp 0x100096c9
mov eax, dword [ebp - 0x124]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
test eax, eax
je 0x10009ab6
mov dword [esp + 8], eax
mov esi, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 4], 0
mov dword [esp], 0
call esi
sub esp, 0x18
mov ebx, eax
add eax, eax
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0xc
mov dword [edi + 0xc], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x124]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call esi
sub esp, 0x18
jmp 0x100096be
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], 0
mov dword [edi + 8], eax
jmp 0x100096b3
mov eax, dword [edi + 8]
mov esi, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], eax
call esi
sub esp, 0x18
mov ebx, eax
add eax, eax
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0xc
mov dword [edi + 0xc], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [edi + 8]
jmp 0x10009a81
mov eax, dword [ebp - 0x124]
mov edi, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
sub esp, 0x18
mov esi, eax
add eax, eax
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0xc
mov dword [ebx + 0xc], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x124]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
sub esp, 0x18
jmp 0x1000994a
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], 0
mov dword [ebx + 8], eax
jmp 0x1000993f
mov dword [ebp - 0x124], ebx
jmp 0x100097a5
mov dword [esp + 4], ebx
mov dword [esp], str.ManualFeed
call esi
test eax, eax
jne 0x10009bf9
mov eax, dword [ebp - 0x128]
test eax, eax
je 0x10009bf9
mov dword [esp + 4], eax
mov dword [esp], str.True
call esi
test eax, eax
je 0x10009c57
mov dword [esp + 4], ebx
mov dword [esp], str.TTRasterizer
call esi
test eax, eax
je 0x10009d73
mov dword [esp + 4], ebx
mov dword [esp], 0x1002c219
call esi
test eax, eax
je 0x10009cc9
mov dword [esp + 4], ebx
mov dword [esp], 0x1002c285
call esi
or eax, dword [ebp - 0x158]
jne 0x10008fb2
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x158], eax
jmp 0x10008fb2
mov eax, dword [0x10025780]
mov dword [esp + 8], 0x18
mov dword [esp + 4], 0
mov ebx, dword [ebp - 0x120]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0xc
test eax, eax
je 0x10009cb4
mov ecx, dword [ebp - 0x144]
mov dword [eax + 8], str.Manual_Feed
mov dword [eax + 0xc], str.Manual_Feed
mov dword [eax], ecx
mov ecx, dword [ebp - 0x140]
mov dword [eax + 0x10], ebx
mov edx, dword [ecx + 0x4c]
mov word [eax + 0x14], 4
mov dword [eax + 4], edx
mov dword [edx], eax
mov dword [ecx + 0x4c], eax
mov dword [ebp - 0x120], 0
mov ebx, dword [ebp - 0x12c]
jmp 0x10008fb2
mov dword [esp + 8], 0x18
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov edx, dword [ebp - 0x124]
mov esi, dword [sym.imp.ucrtbase.dll__stricmp]
mov ebx, eax
mov eax, dword [ebp - 0x128]
sub esp, 0xc
mov dword [ebx + 0xc], edx
mov edx, dword [ebp - 0x120]
mov dword [ebx + 8], eax
mov dword [ebx + 0x10], edx
mov dword [esp + 4], eax
mov dword [esp], str.None
call esi
test eax, eax
jne 0x10009dec
mov word [ebx + 0x14], 1
mov eax, dword [ebp - 0x148]
mov edx, dword [ebp - 0x140]
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x124], 0
mov dword [ebx], eax
mov eax, dword [edx + 0x58]
mov dword [ebp - 0x128], 0
mov dword [ebx + 4], eax
mov dword [eax], ebx
mov dword [edx + 0x58], ebx
mov ebx, dword [ebp - 0x12c]
jmp 0x10008fb2
mov eax, dword [ebp - 0x120]
mov dword [esp], str.None
mov ebx, dword [sym.imp.ucrtbase.dll__stricmp]
mov dword [esp + 4], eax
call ebx
test eax, eax
jne 0x10009e44
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x50], 0
movzx eax, byte [0x10025888]
test al, 8
je 0x10009168
mov eax, dword [ebp - 0x140]
mov eax, dword [eax + 0x50]
mov dword [esp + 0xc], str.TTRasterizer___d_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov ebx, dword [ebp - 0x12c]
jmp 0x10008fb2
mov eax, dword [ebp - 0x128]
mov dword [esp], str.False
mov dword [esp + 4], eax
call esi
test eax, eax
je 0x10009d2b
mov eax, dword [ebp - 0x128]
mov dword [esp], str.Simplex
mov dword [esp + 4], eax
call esi
test eax, eax
je 0x10009d2b
mov eax, dword [ebp - 0x128]
mov dword [esp], str.DuplexNoTumble
mov dword [esp + 4], eax
call esi
test eax, eax
jne 0x10009e74
mov word [ebx + 0x14], 2
jmp 0x10009d31
mov eax, dword [ebp - 0x120]
mov dword [esp], str.Accept68K
mov dword [esp + 4], eax
call ebx
test eax, eax
jne 0x10009e96
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x50], 1
movzx eax, byte [0x10025888]
jmp 0x10009da8
mov eax, dword [ebp - 0x128]
mov dword [esp], str.DuplexTumble
mov dword [esp + 4], eax
call esi
test eax, eax
jne 0x10009ec6
mov word [ebx + 0x14], 3
jmp 0x10009d31
mov eax, dword [ebp - 0x120]
mov dword [esp], str.Type42
mov dword [esp + 4], eax
call ebx
test eax, eax
jne 0x10009ee8
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x50], 2
movzx eax, byte [0x10025888]
jmp 0x10009da8
mov eax, dword [ebp - 0x128]
mov dword [esp], str.Notcapable
mov dword [esp + 4], eax
call esi
test eax, eax
jne 0x10009f18
mov word [ebx + 0x14], 0
jmp 0x10009d31
mov eax, dword [ebp - 0x120]
mov dword [esp], str.TrueImage
mov dword [esp + 4], eax
call ebx
test eax, eax
jne 0x10009f58
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x50], 3
movzx eax, byte [0x10025888]
jmp 0x10009da8
test byte [0x10025888], 1
je 0x10009d2b
mov eax, dword [ebp - 0x128]
mov dword [esp + 0xc], str.Unknown_option__s_for_Duplex_defaulting_to_simplex_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x10025888
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_14
jmp 0x10009d2b
movzx eax, byte [0x10025888]
test al, 1
jne 0x10009fb3
mov ecx, dword [ebp - 0x140]
mov dword [ecx + 0x50], 0
jmp 0x10009da8
movzx eax, word [ebp - 0x16a]
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], str.Using_Windows_bin_type__u_for__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
mov ebx, dword [ebp - 0x128]
jmp 0x100097b2
mov eax, dword [ebp - 0x120]
mov dword [esp + 0xc], str.Unknown_option__s_for_TTRasterizer_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x10025888
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_14
movzx eax, byte [0x10025888]
jmp 0x10009f63
mov eax, ecx
call sym._wine_dbgstr_an.constprop.0
movzx ecx, word [ebp - 0x16c]
mov dword [esp + 0xc], str.Cant_find_Windows_page_type_for__s___using__u_n
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_14
jmp 0x10009744
mov dword [esp + 4], str.Minus90
mov dword [esp], edi
call esi
test eax, eax
jne 0x10009665
mov eax, dword [ebp - 0x140]
mov dword [eax + 0x18], 0xffffffa6
jmp 0x10009665
mov ecx, esi
mov edi, ebx
jmp 0x10009737
mov eax, dword [ebp - 0x124]
mov edi, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
sub esp, 0x18
mov esi, eax
add eax, eax
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0xc
mov dword [ebx + 0xc], eax
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x124]
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call edi
sub esp, 0x18
jmp 0x10009886
mov eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], 0
mov dword [ebx + 8], eax
jmp 0x1000987c
mov eax, dword [0x10025780]
mov dword [esp + 8], 0x18
mov dword [esp + 4], 0
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
lea edx, [ebp - 0x118]
mov ebx, eax
mov eax, dword [ebp - 0x120]
sub esp, 0xc
mov dword [ebp - 0x118], eax
call sym._PSDRV_PPDGetWord
lea edx, [ebp - 0x118]
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x118]
call sym._PSDRV_PPDGetWord
lea edx, [ebp - 0x118]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x118]
call sym._PSDRV_PPDGetWord
lea edx, [ebp - 0x118]
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x118]
call sym._PSDRV_PPDGetWord
mov edx, dword [ebp - 0x140]
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x160]
mov dword [ebx], eax
mov eax, dword [edx + 0x44]
mov dword [ebx + 4], eax
mov dword [eax], ebx
mov dword [edx + 0x44], ebx
mov ebx, dword [ebp - 0x12c]
jmp 0x10008fb2
test byte [0x10025888], 2
je 0x100089b4
mov dword [esp + 0xc], str.Unable_to_allocate_memory_for_ppd_n
mov dword [esp + 8], str.PSDRV_ParsePPD
mov dword [esp + 4], 0x10025888
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_14
jmp 0x100089b4
mov dword [ebp - 0x170], eax
sub eax, esi
mov ecx, dword [ebp - 0x164]
mov dword [ebp - 0x14c], eax
inc eax
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call ecx
sub esp, 0xc
mov edi, eax
test eax, eax
je 0x10008293
mov eax, dword [ebp - 0x14c]
mov dword [esp + 4], esi
mov dword [esp], edi
mov dword [esp + 8], eax
call sym._memcpy
mov eax, dword [ebp - 0x14c]
mov byte [edi + eax], 0
mov eax, edi
call sym._PSDRV_PPDDecodeHex
mov dword [esp + 8], edi
mov dword [ebp - 0x124], eax
mov eax, dword [0x10025780]
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x170]
mov ecx, 1
sub esp, 0xc
lea esi, [eax + 1]
jmp 0x10008ec9
mov ecx, 1
jmp 0x10008ec9
lea eax, [ebx + 1]
lea edx, [ebp - 0x12c]
call sym._PSDRV_PPDGetTransValue
jmp 0x10008f6c
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_strlen]
lea ebx, [esi + eax]
jmp 0x10008f17
test byte [0x10025888], 1
je 0x10008f6c
mov dword [esp + 0xc], str.Stub_n
mov dword [esp + 8], str.PSDRV_PPDGetSymbolValue
mov dword [esp + 4], 0x10025888
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_14
jmp 0x10008f6c
lea eax, [ebp - 0x118]
sub esi, eax
add ebx, esi
mov esi, dword [ebp - 0x12c]
mov dword [ebp - 0x134], ebx
mov ebx, dword [sym.imp.ucrtbase.dll_strncmp]
test ecx, ecx
jne 0x1000a316
mov dword [esp + 8], 2
mov ebx, dword [sym.imp.ucrtbase.dll_strncmp]
mov dword [esp + 4], 0x1002c2be
mov dword [esp], esi
call ebx
test eax, eax
jne 0x1000a32f
mov dword [esp + 8], 4
mov dword [esp + 4], str.JCL
mov dword [esp], esi
call ebx
test eax, eax
jne 0x1000a383
lea edx, [ebp - 0x12c]
lea eax, [ebp - 0x138]
call sym._PSDRV_PPDGetInvocationValue
test eax, eax
je 0x10008f6c
mov eax, dword [ebp - 0x120]
call sym._PSDRV_PPDDecodeHex
mov dword [esp + 4], 0
mov ebx, eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 8], eax
mov eax, dword [0x10025780]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x120], ebx
sub esp, 0xc
jmp 0x10008f6c
lea edx, [ebp - 0x12c]
lea eax, [ebp - 0x138]
call sym._PSDRV_PPDGetInvocationValue
jmp 0x10008f6c