Function at 0x1001af97
Capabilities:
Get process heap flags
Get process heap force flags

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, 0x21c
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 0x10]
mov ebx, dword [ecx + 8]
mov edi, dword [ecx]
mov dword [ebp - 0x120], eax
mov edx, dword [esi + 0x1c]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx]
test edx, edx
je 0x1001991c
cmp eax, 0x38
ja 0x10019980
cmp eax, 0x1a
ja 0x10019930
lea edx, [eax - 2]
cmp edx, 6
jbe case.0x10019921.9
cmp eax, 0x78
ja case.0x10019921.0
jmp dword [eax*4 + 0x1002ca48]
lea ecx, [eax - 0x1b]
mov edx, 1
shl edx, cl
and edx, 0x381fc001
je 0x1001991c
mov eax, dword [ebp - 0x124]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_PlayEnhMetaFileRecord]
sub esp, 0x10
mov edi, eax
lea esp, [ebp - 0x10]
mov eax, edi
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x14
lea edx, [eax - 0x53]
cmp edx, 9
ja 0x1001991c
jmp case.0x10019921.9
mov edi, 1
test byte [0x10025898], 1
je 0x1001996d
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.unsupported_record:__ld_n
mov dword [esp + 8], str.hmf_proc
mov dword [esp + 4], 0x10025898
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001996d
mov dword [esi + 0x1c], 0
jmp case.0x10019921.9
mov eax, dword [ebp - 0x124]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_PlayEnhMetaFileRecord]
sub esp, 0x10
test eax, eax
je 0x10019d20
mov eax, dword [ebx + 8]
mov ecx, dword [esi + 0x18]
mov edx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
mov dword [eax + 0x10], edx
mov eax, dword [ebx + 8]
mov edi, dword [esi + 0x18]
mov edx, dword [ebx + 0x10]
lea eax, [eax + eax*4]
lea eax, [edi + eax*4]
add edx, ebx
mov edi, 1
mov dword [eax], edx
mov eax, dword [ebx + 8]
mov edx, dword [esi + 0x18]
add ebx, dword [ebx + 0x18]
lea eax, [eax + eax*4]
lea eax, [edx + eax*4]
mov dword [eax + 4], ebx
jmp 0x1001996d
mov edi, 1
jmp 0x1001996d
mov edi, dword [ebx + 0x18]
lea eax, [edi*8]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x10019d20
test edi, edi
je 0x10019ab8
mov eax, dword [ebp - 0x120]
add ebx, 0x1e
lea ecx, [ebx + edi*4]
add eax, 4
lea esi, cs:[esi]
nop
movsx edx, word [ebx - 2]
add ebx, 4
add eax, 8
mov dword [eax - 0xc], edx
movsx edx, word [ebx - 4]
mov dword [eax - 8], edx
cmp ecx, ebx
jne 0x10019aa0
mov ebx, dword [ebp - 0x120]
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyBezier
mov dword [esp], ebx
mov edi, eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edx, ebx
call sym._set_di_bits_to_device
mov edi, eax
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edx, ebx
call sym._plg_blt
mov edi, eax
jmp 0x1001996d
mov edx, dword [ebx + 0x78]
mov ecx, dword [ebx + 0x54]
mov eax, dword [esi + 0x14]
add edx, ebx
add ecx, ebx
mov dword [esp + 8], edx
mov edx, dword [ebx + 0x70]
add edx, ebx
mov dword [esp + 4], edx
mov edx, dword [ebx + 0x5c]
add edx, ebx
mov dword [esp], edx
mov edx, ebx
call sym._mask_blt
mov edi, eax
jmp 0x1001996d
mov edx, dword [ebx + 0x5c]
mov ecx, dword [ebx + 0x54]
mov eax, dword [esi + 0x14]
add edx, ebx
add ecx, ebx
mov dword [esp], edx
mov edx, ebx
call sym._stretch_blt
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x54]
mov ecx, dword [ebx + 8]
mov edi, dword [ebx + 0x20]
mov edx, dword [ebx + 0x5c]
mov dword [ebp - 0x120], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebx + 0x34]
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebx + 0x1c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x40], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x3c], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x20], edx
add edx, ebx
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x120]
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0x4c]
add ecx, ebx
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x50]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0x58]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x60]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 0x14]
mov dword [esp], edx
lea edx, [ebp - 0x7c]
call sym._stretch_blt
mov edi, eax
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edi, 1
mov dword [esp], eax
call sym._PSDRV_StrokeAndFillPath
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edi, 1
mov dword [esp], eax
call sym._PSDRV_FillPath
jmp 0x1001996d
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_Pie
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_Chord
mov edi, eax
jmp 0x1001996d
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x1001b656
mov eax, dword [ebx + 8]
cdq
idiv ecx
mov dword [esi + 0x20], eax
imul eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
sub edx, eax
mov dword [esi + 0x24], edx
jmp case.0x10019921.9
mov dword [esi + 0x1c], 1
jmp case.0x10019921.9
mov edx, dword [ebx + 0x18]
mov eax, dword [esi + 0x14]
lea edi, [ebx + 0x1c]
mov dword [esp], edx
lea ecx, [edi + edx*8]
mov edx, edi
call sym._poly_draw
test eax, eax
jne 0x1001b574
lea esi, [esi]
xor edi, edi
jmp 0x1001996d
lea eax, [ebp - 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetCurrentPositionEx]
sub esp, 8
test eax, eax
je 0x10019d20
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
mov edi, dword [sym.imp.gdi32.dll_ArcTo]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call edi
sub esp, 0x24
test eax, eax
je 0x10019d20
mov eax, dword [ebp - 0x78]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_LineTo
test eax, eax
je 0x10019d20
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_Arc
test eax, eax
je 0x10019d20
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call edi
sub esp, 0x24
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x18]
lea edx, [ebx + 0x24]
mov esi, dword [esi + 0x14]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 4], eax
mov eax, ecx
shl eax, 4
add eax, edx
mov dword [esp], eax
mov eax, esi
call sym._gradient_fill
mov edi, eax
jmp 0x1001996d
mov edi, dword [ebx + 0x18]
lea eax, [edi*8]
mov dword [ebp - 0x124], edi
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x10019d20
lea eax, [ebx + 0x1c]
mov dword [ebp - 0x130], eax
test edi, edi
je 0x10019ed8
mov edi, dword [ebp - 0x120]
lea eax, [ebx + 0x1e]
lea edx, [edi + 4]
mov edi, dword [ebp - 0x124]
lea edi, [eax + edi*4]
lea esi, cs:[esi]
nop
movsx ecx, word [eax - 2]
add eax, 4
add edx, 8
mov dword [edx - 0xc], ecx
movsx ecx, word [eax - 4]
mov dword [edx - 8], ecx
cmp edi, eax
jne 0x10019ec0
mov edi, dword [ebp - 0x124]
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x120]
lea ecx, [eax + edi*4]
mov eax, dword [esi + 0x14]
mov dword [esp], edi
call sym._poly_draw
mov edi, eax
test eax, eax
jne 0x1001a1d1
lea esi, [esi]
mov eax, dword [ebp - 0x120]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x1001996d
mov edx, dword [ebx + 0x1c]
lea edi, [edx*8]
mov dword [ebp - 0x130], edx
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_malloc]
mov ecx, eax
test eax, eax
je 0x10019d20
lea eax, [ebx + 0x20]
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x120], eax
test edx, edx
je 0x10019f88
mov eax, dword [ebp - 0x120]
lea edi, [ecx + edi + 4]
lea edx, [ebx + eax*4 + 0x22]
lea eax, [ecx + 4]
lea esi, [esi]
movsx ebx, word [edx - 2]
add eax, 8
add edx, 4
mov dword [eax - 0xc], ebx
movsx ebx, word [edx - 4]
mov dword [eax - 8], ebx
cmp eax, edi
jne 0x10019f70
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], ecx
mov dword [ebp - 0x120], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x124]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolygon
mov ecx, dword [ebp - 0x120]
mov edi, eax
mov dword [esp], ecx
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x1001996d
mov edx, dword [ebx + 0x1c]
lea edi, [edx*8]
mov dword [ebp - 0x130], edx
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll_malloc]
mov ecx, eax
test eax, eax
je 0x10019d20
lea eax, [ebx + 0x20]
mov edx, dword [ebp - 0x130]
mov dword [ebp - 0x124], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x120], eax
test edx, edx
je 0x1001a038
mov eax, dword [ebp - 0x120]
lea edi, [ecx + edi + 4]
lea edx, [ebx + eax*4 + 0x22]
lea eax, [ecx + 4]
lea esi, cs:[esi]
nop
movsx ebx, word [edx - 2]
add eax, 8
add edx, 4
mov dword [eax - 0xc], ebx
movsx ebx, word [edx - 4]
mov dword [eax - 8], ebx
cmp edi, eax
jne 0x1001a020
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], ecx
mov dword [ebp - 0x120], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x124]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolyline
mov ecx, dword [ebp - 0x120]
mov edi, eax
mov dword [esp], ecx
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x1001996d
mov eax, dword [ebx + 0x18]
inc eax
mov dword [ebp - 0x7c], eax
shl eax, 3
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x10019d20
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetCurrentPositionEx]
mov edx, dword [ebx + 0x18]
sub esp, 8
test edx, edx
je 0x1001a0e0
mov eax, dword [ebp - 0x120]
add ebx, 0x1e
lea ecx, [ebx + edx*4]
add eax, 0xc
lea esi, cs:[esi]
movsx edx, word [ebx - 2]
add ebx, 4
add eax, 8
mov dword [eax - 0xc], edx
movsx edx, word [ebx - 4]
mov dword [eax - 8], edx
cmp ecx, ebx
jne 0x1001a0c8
lea eax, [ebp - 0x7c]
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolyline
mov edi, eax
test eax, eax
je 0x10019f08
mov eax, dword [ebp - 0x7c]
mov edi, dword [ebp - 0x120]
mov dword [esp + 0xc], 0
lea eax, [edi + eax*8 - 8]
mov edx, dword [eax + 4]
mov dword [esp + 8], edx
mov eax, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_MoveToEx]
sub esp, 0x10
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x10019f08
mov edi, dword [ebx + 0x18]
lea eax, [edi*8]
mov dword [ebp - 0x124], edi
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x10019d20
test edi, edi
je 0x1001a1a8
mov edi, dword [ebp - 0x120]
lea eax, [ebx + 0x1e]
lea edx, [edi + 4]
mov edi, dword [ebp - 0x124]
lea edi, [eax + edi*4]
movsx ecx, word [eax - 2]
add eax, 4
add edx, 8
mov dword [edx - 0xc], ecx
movsx ecx, word [eax - 4]
mov dword [edx - 8], ecx
cmp edi, eax
jne 0x1001a190
mov eax, dword [ebp - 0x124]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyBezierTo
mov edi, eax
test eax, eax
je 0x10019f08
mov eax, dword [ebx + 0x18]
jmp 0x1001a111
mov edi, dword [ebx + 0x18]
lea eax, [edi*8]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x10019d20
test edi, edi
je 0x1001a228
mov edx, dword [ebp - 0x120]
lea eax, [ebx + 0x1e]
lea edi, [eax + edi*4]
add edx, 4
lea esi, [esi]
movsx ecx, word [eax - 2]
add eax, 4
add edx, 8
mov dword [edx - 0xc], ecx
movsx ecx, word [eax - 4]
mov dword [edx - 8], ecx
cmp edi, eax
jne 0x1001a210
add ebx, 0x18
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov ebx, dword [ebp - 0x120]
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolyline
mov dword [esp], ebx
mov edi, eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x1001996d
mov edi, dword [ebx + 0x18]
lea eax, [edi*8]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x120], eax
test eax, eax
je 0x10019d20
test edi, edi
je 0x1001a2a8
mov edx, dword [ebp - 0x120]
lea eax, [ebx + 0x1e]
lea edi, [eax + edi*4]
add edx, 4
movsx ecx, word [eax - 2]
add eax, 4
add edx, 8
mov dword [edx - 0xc], ecx
movsx ecx, word [eax - 4]
mov dword [edx - 8], ecx
cmp edi, eax
jne 0x1001a290
add ebx, 0x18
mov dword [esp + 0xc], 1
mov dword [esp + 8], ebx
mov ebx, dword [ebp - 0x120]
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolygon
mov dword [esp], ebx
mov edi, eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x1001996d
lea eax, [ebx + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.gdi32.dll_ExtCreateRegion]
sub esp, 0xc
mov ebx, eax
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PaintRgn
mov dword [esp], ebx
mov edi, eax
call dword [sym.imp.gdi32.dll_DeleteObject]
sub esp, 4
jmp 0x1001996d
lea eax, [ebx + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.gdi32.dll_ExtCreateRegion]
mov ebx, dword [sym.imp.gdi32.dll_SetROP2]
sub esp, 0xc
mov edi, eax
mov dword [esp + 4], 6
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call ebx
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
mov dword [ebp - 0x130], edi
sub esp, 8
mov dword [ebp - 0x138], eax
mov eax, esi
mov dword [esp + 4], edi
mov dword [esp], 0x80000004
call sym._fill_rgn
mov edx, dword [ebp - 0x138]
mov edi, eax
mov dword [esp + 4], edx
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x130]
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_DeleteObject]
sub esp, 4
jmp 0x1001996d
lea eax, [ebx + 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.gdi32.dll_ExtCreateRegion]
sub esp, 0xc
mov edi, eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.gdi32.dll_CreateRectRgn]
mov dword [ebp - 0x138], edi
sub esp, 0x10
mov dword [ebp - 0x130], eax
mov dword [esp + 4], edi
mov edi, dword [sym.imp.gdi32.dll_CombineRgn]
mov dword [esp + 0xc], 5
mov dword [esp + 8], 0
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x130]
sub esp, 0x10
mov dword [esp + 8], 0
mov ecx, dword [ebx + 0x20]
mov dword [esp], eax
neg ecx
mov dword [esp + 4], ecx
mov ecx, dword [sym.imp.gdi32.dll_OffsetRgn]
mov dword [ebp - 0x140], ecx
call ecx
mov edx, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x140]
sub esp, 0xc
mov dword [esp + 8], 0
mov eax, dword [ebx + 0x20]
mov dword [esp], edx
mov dword [esp + 4], eax
call ecx
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x130]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 4], eax
mov dword [esp], eax
call edi
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebp - 0x140]
sub esp, 0x10
neg edx
mov dword [esp + 8], edx
mov edx, dword [ebx + 0x20]
neg edx
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x138]
mov dword [esp], edx
call ecx
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x130]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 4], eax
mov dword [esp], eax
call edi
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebp - 0x140]
sub esp, 0x10
lea eax, [edx + edx]
mov edx, dword [ebp - 0x138]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], edx
call ecx
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x130]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 4], eax
mov dword [esp], eax
call edi
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebp - 0x140]
sub esp, 0x10
neg edx
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x138]
mov dword [esp], edx
call ecx
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x138]
sub esp, 0xc
mov dword [esp + 4], edx
mov dword [esp + 0xc], 4
mov dword [esp + 8], eax
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x124]
sub esp, 0x10
mov edx, dword [ebp - 0x120]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
mov eax, esi
call sym._fill_rgn
mov edx, dword [ebp - 0x138]
mov ebx, dword [sym.imp.gdi32.dll_DeleteObject]
mov edi, eax
mov dword [esp], edx
call ebx
mov eax, dword [ebp - 0x130]
sub esp, 4
mov dword [esp], eax
call ebx
sub esp, 4
jmp 0x1001996d
lea eax, [ebx + 0x20]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.gdi32.dll_ExtCreateRegion]
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
sub esp, 0xc
mov dword [ebp - 0x130], eax
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
mov eax, esi
call sym._fill_rgn
mov edi, eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_DeleteObject]
sub esp, 4
jmp 0x1001996d
mov eax, dword [ebx + 0x18]
add ebx, 0x20
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
lea eax, [ebx + eax*4]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolygon
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x18]
add ebx, 0x20
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
lea eax, [ebx + eax*4]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolyline
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_LineTo
test eax, eax
je 0x10019d20
mov dword [esp + 0xc], 0
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_MoveToEx]
sub esp, 0x10
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_EndPage
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_Arc
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_RoundRect
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_Rectangle
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_Ellipse
mov edi, eax
jmp 0x1001996d
movss xmm0, dword [ebx + 0x18]
xor eax, eax
ucomiss xmm0, dword [0x1002cef4]
setb al
inc eax
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [sym.imp.gdi32.dll_SetArcDirection]
mov dword [ebp - 0x150], eax
call eax
mov edx, dword [ebx + 8]
pxor xmm4, xmm4
movss xmm6, dword [ebx + 0x14]
mov dword [ebp - 0x128], eax
mov eax, dword [ebx + 0x10]
pxor xmm1, xmm1
sub esp, 8
mov ecx, edx
cvtsi2sd xmm4, edx
cvtss2sd xmm1, xmm6
mov dword [ebp - 0x7c], 0x37
sub ecx, eax
mov dword [ebp - 0x130], eax
mulsd xmm1, qword [0x1002cef8]
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebx + 0xc]
movss dword [ebp - 0x148], xmm6
divsd xmm1, qword [0x1002cf00]
movsd qword [ebp - 0x140], xmm4
mov dword [ebp - 0x138], ecx
sub ecx, eax
mov dword [ebp - 0x70], ecx
lea ecx, [edx + eax]
mov dword [ebp - 0x6c], ecx
mov ecx, dword [ebp - 0x138]
movsd qword [esp], xmm1
add ecx, eax
mov eax, dword [sym.imp.ucrtbase.dll_cos]
movsd qword [ebp - 0x160], xmm1
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x14c], eax
call eax
mov eax, dword [ebp - 0x130]
pxor xmm0, xmm0
movsd xmm7, qword [0x1002cf08]
fstp qword [ebp - 0x158]
movsd xmm1, qword [ebp - 0x160]
movsd xmm3, qword [0x1002ced0]
add eax, 0x80000000
cvtsi2sd xmm0, eax
addsd xmm7, xmm0
movsd xmm0, qword [ebp - 0x158]
mulsd xmm0, xmm7
movsd qword [ebp - 0x130], xmm7
movsd xmm7, qword [0x1002cec0]
addsd xmm0, qword [ebp - 0x140]
addsd xmm0, qword [0x1002ceb8]
movapd xmm2, xmm0
andpd xmm2, xmm3
ucomisd xmm7, xmm2
jbe 0x1001a913
addsd xmm2, xmm7
andnpd xmm3, xmm0
movsd xmm6, qword [0x1002cee0]
subsd xmm2, xmm7
orpd xmm2, xmm3
movapd xmm4, xmm2
cmpnlesd xmm4, xmm0
andpd xmm4, xmm6
subsd xmm2, xmm4
movapd xmm0, xmm2
orpd xmm0, xmm3
cvttsd2si eax, xmm0
pxor xmm4, xmm4
movsd qword [esp], xmm1
cvtsi2sd xmm4, dword [ebp - 0x138]
mov dword [ebp - 0x64], eax
mov eax, dword [sym.imp.ucrtbase.dll_sin]
movsd qword [ebp - 0x138], xmm4
mov dword [ebp - 0x158], eax
call eax
movsd xmm0, qword [ebp - 0x138]
movsd xmm2, qword [0x1002ced0]
movsd xmm4, qword [0x1002cec0]
fstp qword [ebp - 0x160]
movsd xmm1, qword [ebp - 0x160]
mulsd xmm1, qword [ebp - 0x130]
subsd xmm0, xmm1
movsd xmm1, qword [0x1002ceb8]
addsd xmm1, xmm0
movapd xmm0, xmm1
andpd xmm0, xmm2
ucomisd xmm4, xmm0
jbe 0x1001a9bd
addsd xmm0, xmm4
andnpd xmm2, xmm1
movsd xmm6, qword [0x1002cee0]
subsd xmm0, xmm4
orpd xmm0, xmm2
movapd xmm3, xmm0
cmpnlesd xmm3, xmm1
andpd xmm3, xmm6
subsd xmm0, xmm3
movapd xmm1, xmm0
orpd xmm1, xmm2
cvttsd2si eax, xmm1
movss xmm0, dword [ebp - 0x148]
addss xmm0, dword [ebx + 0x18]
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x1002cef8]
divsd xmm0, qword [0x1002cf00]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x14c]
movsd qword [esp], xmm0
movsd qword [ebp - 0x160], xmm0
call eax
movsd xmm0, qword [ebp - 0x160]
movsd xmm3, qword [0x1002ced0]
movsd xmm7, qword [0x1002cec0]
fstp qword [ebp - 0x148]
movsd xmm1, qword [ebp - 0x148]
mulsd xmm1, qword [ebp - 0x130]
addsd xmm1, qword [ebp - 0x140]
addsd xmm1, qword [0x1002ceb8]
movapd xmm2, xmm1
andpd xmm2, xmm3
ucomisd xmm7, xmm2
jbe 0x1001aa77
addsd xmm2, xmm7
andnpd xmm3, xmm1
subsd xmm2, xmm7
movsd xmm7, qword [0x1002cee0]
orpd xmm2, xmm3
movapd xmm4, xmm2
cmpnlesd xmm4, xmm1
andpd xmm4, xmm7
subsd xmm2, xmm4
movapd xmm1, xmm2
orpd xmm1, xmm3
cvttsd2si eax, xmm1
movsd qword [esp], xmm0
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x158]
call eax
movsd xmm1, qword [ebp - 0x130]
movsd xmm0, qword [ebp - 0x138]
movsd xmm4, qword [0x1002cec0]
fstp qword [ebp - 0x140]
mulsd xmm1, qword [ebp - 0x140]
subsd xmm0, xmm1
addsd xmm0, qword [0x1002ceb8]
movsd xmm1, qword [0x1002ced0]
movapd xmm2, xmm0
andpd xmm2, xmm1
ucomisd xmm4, xmm2
jbe 0x1001ab04
addsd xmm2, xmm4
andnpd xmm1, xmm0
movsd xmm6, qword [0x1002cee0]
subsd xmm2, xmm4
orpd xmm2, xmm1
movapd xmm3, xmm2
cmpnlesd xmm3, xmm0
andpd xmm3, xmm6
subsd xmm2, xmm3
movapd xmm0, xmm2
orpd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [esp], edi
mov dword [esp + 0x10], esi
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x124]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x7c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], eax
call sym._hmf_proc_20
mov edi, eax
mov eax, dword [ebp - 0x128]
sub esp, 0x14
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [ebp - 0x150]
call eax
sub esp, 8
jmp 0x1001996d
mov eax, dword [ebx + 8]
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x18]
lea eax, [eax + edx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
jmp case.0x10019921.9
mov eax, dword [ebx + 8]
test eax, eax
js 0x1001c59f
mov ebx, dword [ebp - 0x120]
mov edx, dword [esi + 0x18]
lea ecx, [eax + eax*4]
mov ebx, dword [ebx + eax*4]
lea edi, [edx + ecx*4]
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_SelectObject]
mov edx, dword [sym.imp.gdi32.dll_GetObjectType]
sub esp, 8
mov dword [esp], ebx
mov dword [ebp - 0x120], edx
call edx
sub esp, 4
cmp eax, 6
je 0x1001bc88
mov edx, dword [ebp - 0x120]
ja 0x1001b591
cmp eax, 1
je 0x1001b59a
cmp eax, 2
jne 0x1001bc41
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectBrush
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edi, dword [ebp - 0x124]
mov eax, dword [eax]
mov dword [esp + 0xc], edi
mov edi, dword [ebp - 0x120]
mov dword [esp + 8], ebx
mov dword [ebp - 0x130], eax
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_PlayEnhMetaFileRecord]
sub esp, 0x10
mov edi, eax
test eax, eax
je 0x10019d20
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], 2
mov dword [esp], eax
mov eax, dword [sym.imp.gdi32.dll_GetCurrentObject]
mov dword [ebp - 0x148], eax
call eax
mov ecx, dword [ebp - 0x124]
xor edx, edx
sub esp, 8
test ecx, ecx
jle 0x1001acb5
mov dword [ebp - 0x138], edi
mov ecx, dword [ebp - 0x120]
mov edi, dword [ebp - 0x124]
jmp 0x1001aca1
inc edx
cmp edi, edx
je 0x1001c592
cmp eax, dword [ecx + edx*4]
jne 0x1001ac98
mov ecx, dword [esi + 0x18]
lea edx, [edx + edx*4]
mov edi, dword [ebp - 0x138]
lea edx, [ecx + edx*4]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectBrush
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x148]
mov dword [esp + 4], 6
mov dword [esp], eax
call edx
lea edx, [ebp - 0x7c]
sub esp, 8
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectFont
mov eax, dword [ebp - 0x130]
mov edx, dword [ebp - 0x148]
mov dword [esp + 4], 1
mov dword [esp], eax
call edx
sub esp, 8
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectPen
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetBkColor]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SetBkColor
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetTextColor]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SetTextColor
mov eax, dword [ebx + 8]
test eax, eax
jns 0x10019d20
add eax, dword [esi + 0x2c]
js 0x10019d20
mov edx, dword [esi + 0x30]
mov dword [esi + 0x2c], eax
lea eax, [edx + eax*8]
mov edx, dword [eax]
mov dword [esi + 0x20], edx
mov eax, dword [eax + 4]
mov dword [esi + 0x24], eax
jmp 0x1001996d
movzx eax, word [ebx + 0x38]
mov dword [esp], 0x14
mov dword [esp + 4], eax
call dword [sym.imp.ucrtbase.dll_calloc]
mov dword [esi + 0x18], eax
test eax, eax
je 0x10019d20
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_StartPage
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x18]
mov dword [esp + 8], eax
lea eax, [ebx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyBezierTo
test eax, eax
je 0x10019d20
mov eax, dword [ebx + 0x18]
mov dword [esp + 0xc], 0
inc eax
mov edx, dword [ebx + eax*8 + 0x10]
mov dword [esp + 8], edx
mov eax, dword [ebx + eax*8 + 0xc]
jmp 0x1001a69f
lea eax, [ebx + 0x18]
add ebx, 0x1c
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolyline
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebx + 0x18]
inc eax
mov dword [ebp - 0x7c], eax
shl eax, 3
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x120], eax
mov edi, eax
test eax, eax
je 0x10019d20
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
add ebx, 0x1c
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetCurrentPositionEx]
mov eax, dword [ebx - 4]
lea edx, [edi + 8]
sub esp, 8
shl eax, 3
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp], edx
call sym._memcpy
lea eax, [ebp - 0x7c]
mov dword [esp + 4], edi
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
jmp 0x1001a0f9
lea eax, [ebx + 0x18]
add ebx, 0x1c
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolygon
mov edi, eax
jmp 0x1001996d
mov eax, dword [ebp - 0x124]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x120]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_PlayEnhMetaFileRecord]
mov ebx, dword [esi + 0x28]
sub esp, 0x10
mov edi, eax
test ebx, ebx
je 0x1001b993
mov eax, dword [esi + 0x2c]
cmp ebx, eax
je 0x1001c5b9
mov ebx, dword [esi + 0x20]
mov edx, dword [esi + 0x30]
mov dword [edx + eax*8], ebx
mov edx, dword [esi + 0x2c]
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0x30]
mov dword [eax + edx*8 + 4], ebx
inc dword [esi + 0x2c]
jmp 0x1001996d
mov eax, dword [ebx + 8]
mov edi, 1
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_SetBkColor]
mov eax, dword [ebx + 8]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SetBkColor
jmp 0x1001996d
mov eax, dword [ebx + 8]
mov edi, 1
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_SetTextColor]
mov eax, dword [ebx + 8]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SetTextColor
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edi, dword [eax]
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x180], eax
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x19c], eax
mov eax, dword [ebx + 0x40]
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebx + 0x44]
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebx + 0x18]
mov dword [esp], edi
mov dword [esp + 4], eax
mov eax, dword [sym.imp.gdi32.dll_SetGraphicsMode]
mov dword [ebp - 0x198], eax
call eax
mov dword [ebp - 0x194], eax
mov eax, dword [sym.imp.gdi32.dll_GetCurrentObject]
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 6
mov dword [ebp - 0x148], eax
call eax
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [sym.imp.gdi32.dll_SelectObject]
mov dword [esp], edi
mov dword [ebp - 0x1a8], eax
call eax
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x2c]
sub esp, 8
lea edx, [ebx + eax]
test eax, eax
mov eax, 0
mov dword [ebp - 0x138], ecx
cmovne eax, edx
mov edx, dword [ebx + 0x34]
mov edi, eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x158], edx
add eax, ebx
mov dword [ebp - 0x18c], eax
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x178], eax
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x174], eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x130], eax
mov eax, edx
and eax, 0x80
and edx, 0x1010
mov dword [ebp - 0x164], eax
mov dword [ebp - 0x168], edx
jne 0x1001b087
test ecx, ecx
jne 0x1001bcd0
mov dword [ebp - 0x188], 0
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x160], eax
mov eax, dword [sym.imp.gdi32.dll_GetTextAlign]
mov dword [ebp - 0x150], eax
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x184], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x130]
mov ebx, dword [ebp - 0x150]
mov dword [esp], eax
call ebx
mov edx, dword [ebp - 0x130]
mov ebx, dword [esi + 0x24]
sub esp, 4
mov dword [ebp - 0x150], eax
mov dword [esp], edx
call dword [sym.imp.gdi32.dll_GetLayout]
mov ecx, dword [ebp - 0x150]
sub esp, 4
mov edx, ecx
or dh, 1
cmp dword [ebp - 0x164], 0
cmove edx, ecx
mov dword [ebp - 0x150], edx
mov ecx, edx
test al, 1
je 0x1001b12f
and edx, 6
mov eax, ecx
xor eax, 2
cmp edx, 6
cmove eax, ecx
xor ah, 1
mov dword [ebp - 0x150], eax
test byte [0x10025898], 8
jne 0x1001bae7
mov eax, dword [ebp - 0x150]
and eax, 1
mov dword [ebp - 0x1b0], eax
jne 0x1001baae
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetTextMetricsW]
mov eax, dword [ebp - 0x130]
sub esp, 8
mov dword [esp], eax
mov eax, dword [ebp - 0x148]
mov dword [esp + 4], 6
call eax
mov edx, dword [ebp - 0x160]
sub esp, 8
mov dword [esp + 8], edx
mov dword [esp + 4], 0x5c
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetObjectW]
sub esp, 0xc
test byte [ebp - 0x81], 2
jne 0x1001b1b7
mov dword [ebp - 0x74], 0
mov eax, dword [ebp - 0x140]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetWorldTransform]
mov eax, dword [ebp - 0x130]
sub esp, 8
mov dword [esp], eax
mov eax, dword [sym.imp.gdi32.dll_GetGraphicsMode]
mov dword [ebp - 0x168], eax
call eax
sub esp, 4
cmp eax, 1
mov eax, dword [ebp - 0x74]
je 0x1001b96c
test eax, eax
je 0x1001b635
pxor xmm0, xmm0
cvtsi2sd xmm0, eax
mulsd xmm0, qword [0x1002cef8]
divsd xmm0, qword [0x1002cf20]
movsd qword [esp], xmm0
movsd qword [ebp - 0x140], xmm0
call dword [sym.imp.ucrtbase.dll_cos]
movsd xmm0, qword [ebp - 0x140]
fstp qword [ebp - 0x170]
movsd qword [esp], xmm0
call dword [sym.imp.ucrtbase.dll_sin]
fstp qword [ebp - 0x160]
test byte [ebp - 0x158], 6
jne 0x1001b9c5
and dword [ebp - 0x158], 0xfffffffb
mov ecx, dword [ebp - 0x138]
test ecx, ecx
je 0x1001b5c0
mov eax, dword [ebp - 0x174]
mov edx, dword [sym.imp.gdi32.dll_LPtoDP]
mov dword [esp + 8], 1
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x164], edx
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x118]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call edx
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x130]
sub esp, 0xc
mov dword [ebp - 0x174], edx
mov edx, dword [ebp - 0x114]
mov dword [esp], eax
mov dword [ebp - 0x178], edx
call dword [sym.imp.gdi32.dll_GetTextCharacterExtra]
sub esp, 4
test eax, eax
je 0x1001c7f7
test edi, edi
je 0x1001c6df
mov eax, dword [ebp - 0x138]
shl eax, 3
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov ecx, eax
mov eax, dword [ebp - 0x158]
and eax, 0x2000
je 0x1001bcad
mov ebx, dword [ebp - 0x138]
xor eax, eax
lea esi, cs:[esi]
nop
mov edx, dword [edi + eax*8]
mov dword [ecx + eax*8], edx
mov edx, dword [edi + eax*8 + 4]
neg edx
mov dword [ecx + eax*8 + 4], edx
inc eax
cmp ebx, eax
jne 0x1001b320
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x19c], eax
movsd xmm7, qword [ebp - 0x160]
xor edx, edx
xor edi, edi
xor ebx, ebx
xorpd xmm7, xmmword [0x1002cf30]
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x1a0], esi
mov esi, ecx
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x140], edx
movsd qword [ebp - 0x180], xmm7
jmp 0x1001b3c6
mov eax, dword [ebp - 0xd4]
mov ecx, edx
sub ecx, dword [ebp - 0x148]
mov dword [esi + ebx*8], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x128]
mov dword [esi + ebx*8 + 4], ecx
inc ebx
cmp dword [ebp - 0x138], ebx
je 0x1001b669
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x148], edx
mov edx, dword [esi + ebx*8 + 4]
add edi, dword [esi + ebx*8]
pxor xmm0, xmm0
pxor xmm1, xmm1
add dword [ebp - 0x140], edx
cvtsi2sd xmm0, edi
movsd xmm5, qword [ebp - 0x170]
movsd xmm3, qword [ebp - 0x160]
mov edx, dword [ebp - 0x164]
mov dword [ebp - 0xdc], 0
movapd xmm2, xmm5
mov dword [esp + 8], 2
mov dword [ebp - 0xe0], 0
cvtsi2sd xmm1, dword [ebp - 0x140]
mulsd xmm2, xmm0
mulsd xmm0, qword [ebp - 0x180]
mulsd xmm3, xmm1
mulsd xmm1, xmm5
addsd xmm2, xmm3
addsd xmm0, xmm1
cvttsd2si eax, xmm2
mov dword [ebp - 0xd8], eax
cvttsd2si eax, xmm0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x14c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call edx
mov eax, dword [ebp - 0xe0]
sub dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xdc]
sub dword [ebp - 0xd4], eax
sub esp, 0xc
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
mov eax, dword [ebp - 0x168]
call eax
mov edx, dword [ebp - 0xd8]
sub esp, 4
cmp eax, 1
jne 0x1001b390
pxor xmm7, xmm7
comiss xmm7, dword [ebp - 0xf8]
jbe 0x1001b4af
neg edx
pxor xmm4, xmm4
comiss xmm4, dword [ebp - 0xec]
mov eax, dword [ebp - 0xd4]
jbe 0x1001b396
neg eax
jmp 0x1001b396
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SetPixel
mov edi, eax
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edx, ebx
call sym._stretch_di_bits
mov edi, eax
jmp 0x1001996d
lea eax, [ebx + 0x10]
mov dword [esp + 0x14], 0
mov edi, 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_ExtEscape
jmp 0x1001996d
mov eax, dword [ebx + 0x18]
add ebx, 0x1c
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyBezier
mov edi, eax
jmp 0x1001996d
mov eax, dword [esi + 0x14]
mov edi, 1
mov dword [esp], eax
call sym._PSDRV_StrokePath
jmp 0x1001996d
mov eax, dword [ebx + 0x18]
mov dword [esp + 0xc], 0
lea eax, [edi + eax*8 - 8]
mov edx, dword [eax + 4]
mov dword [esp + 8], edx
mov eax, dword [eax]
jmp 0x1001a69f
cmp eax, 0xb
jne 0x1001bc41
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectPen
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x1001996d
mov dword [ebp - 0x148], 0
mov edi, 1
mov dword [ebp - 0x140], 0
test dword [ebp - 0x68], 0xffff00
jne 0x1001c350
mov esi, dword [ebp - 0x188]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], esi
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov eax, dword [ebp - 0x194]
sub esp, 0xc
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x190]
mov dword [esp], eax
mov eax, dword [ebp - 0x198]
call eax
sub esp, 8
jmp 0x1001996d
movsd xmm5, qword [0x1002cee0]
pxor xmm7, xmm7
movsd qword [ebp - 0x160], xmm7
movsd qword [ebp - 0x170], xmm5
jmp 0x1001b24a
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
jmp case.0x10019921.9
or dword [ebp - 0x158], 0x2000
mov ecx, esi
mov esi, dword [ebp - 0x1a0]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x140], edx
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp - 0x14c]
mov dword [ebp - 0x128], ecx
mov ebx, dword [ebp - 0x130]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xd8], 0
mov dword [esp + 8], 2
mov dword [esp + 4], edi
mov dword [esp], ebx
call eax
mov eax, dword [ebp - 0xd4]
sub eax, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
cdq
sub esp, 0xc
xor eax, edx
mov dword [esp + 8], 2
sub eax, edx
mov dword [esp + 4], edi
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x164]
mov dword [esp], ebx
call eax
mov eax, dword [ebp - 0xd4]
sub eax, dword [ebp - 0xdc]
cdq
sub esp, 0xc
mov ecx, dword [ebp - 0x128]
xor eax, edx
sub eax, edx
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0x150]
and eax, 6
cmp eax, 2
je 0x1001c5e4
cmp eax, 6
je 0x1001c6b0
test eax, eax
je 0x1001c67f
mov eax, dword [ebp - 0x150]
and eax, 0x18
je 0x1001c539
cmp eax, 8
jne 0x1001b7e0
pxor xmm0, xmm0
movsd xmm2, qword [ebp - 0x170]
pxor xmm1, xmm1
cvtsi2sd xmm0, dword [ebp - 0xb0]
cvtsi2sd xmm1, dword [ebp - 0x178]
mulsd xmm2, xmm0
mulsd xmm0, qword [ebp - 0x160]
subsd xmm1, xmm2
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x174]
mov dword [ebp - 0x178], eax
subsd xmm1, xmm0
cvttsd2si eax, xmm1
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0x128], ecx
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetBkMode]
mov ecx, dword [ebp - 0x128]
sub esp, 4
cmp eax, 1
je 0x1001b8f8
mov edx, dword [ebp - 0x158]
mov eax, edx
and eax, 6
cmp eax, 6
je 0x1001b8f8
mov ebx, dword [ebp - 0x178]
mov edi, dword [ebp - 0x140]
add edi, dword [ebp - 0x174]
mov eax, ebx
add ebx, dword [ebp - 0xb0]
sub eax, dword [ebp - 0xb4]
and edx, 2
je 0x1001b86a
mov edx, dword [ebp - 0x174]
cmp dword [ebp - 0x108], edx
jg 0x1001b86a
cmp dword [ebp - 0x100], edi
jle 0x1001b86a
cmp dword [ebp - 0x104], eax
jg 0x1001b86a
cmp dword [ebp - 0xfc], ebx
jg 0x1001b8f8
mov edx, dword [ebp - 0x174]
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xd4], ebx
test byte [ebp - 0x158], 4
jne 0x1001c961
cmp edi, edx
jle 0x1001b8f8
mov eax, dword [ebp - 0xd4]
cmp dword [ebp - 0xdc], eax
jge 0x1001b8f8
mov eax, dword [ebp - 0x14c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x128], ecx
mov dword [esp], eax
call sym._PSDRV_ExtTextOut
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x138]
mov dword [esp + 0x1c], ecx
mov dword [ebp - 0x128], ecx
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x18c]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x108]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x158]
and eax, 0xfffffffd
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x174]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_ExtTextOut
mov ecx, dword [ebp - 0x128]
mov edi, eax
mov eax, dword [ebp - 0x19c]
mov dword [esp], ecx
call eax
test edi, edi
je 0x1001b5e6
jmp 0x1001b5d9
movss xmm0, dword [ebp - 0xf8]
mulss xmm0, dword [ebp - 0xec]
pxor xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001b1f8
neg eax
mov dword [ebp - 0x74], eax
jmp 0x1001b1f8
mov dword [esp], 0x40
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [esi + 0x30], eax
test eax, eax
je 0x1001b9b3
mov dword [esi + 0x28], 8
mov ebx, 8
mov eax, dword [esi + 0x2c]
cmp eax, ebx
jne 0x1001af11
xor edi, edi
jmp 0x1001996d
mov eax, dword [ebp - 0x180]
mov dword [esp + 8], 2
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x19c]
mov dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x108]
mov dword [ebp - 0x1ac], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_LPtoDP]
mov eax, dword [ebp - 0x108]
mov edx, dword [ebp - 0x100]
sub esp, 0xc
cmp eax, edx
jle 0x1001ba3b
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x104]
mov edx, dword [ebp - 0xfc]
cmp eax, edx
jle 0x1001ba57
mov dword [ebp - 0x104], edx
mov dword [ebp - 0xfc], eax
test byte [ebp - 0x158], 2
je 0x1001b25e
mov eax, dword [ebp - 0x1ac]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 2
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_ExtTextOut
jmp 0x1001b25e
lea eax, [ebp - 0x118]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetCurrentPositionEx]
mov eax, dword [ebp - 0x118]
sub esp, 8
mov dword [ebp - 0x174], eax
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x178], eax
jmp 0x1001b151
mov eax, dword [ebp - 0x18c]
shr eax, 0x10
je 0x1001c938
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x18c]
mov dword [esp + 4], eax
mov dword [esp], ecx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov dword [ebp - 0x14c], 0x1002c924
sub esp, 8
test eax, eax
jne 0x1001bb37
mov edx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x18c]
call sym._wine_dbgstr_wn.part.0
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esp], str.__d__d____d__d_
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x19c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x180]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
mov edx, dword [ebp - 0x138]
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x158]
mov dword [esp + 0x24], edx
mov edx, dword [ebp - 0x14c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x178]
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x174]
mov dword [esp + 0xc], str._d___d___08x___s___s___d___p__n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.ext_text_out
mov dword [esp + 4], 0x10025898
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_15
test byte [0x10025898], 8
je 0x1001b13c
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetMapMode]
mov edx, dword [ebp - 0x130]
sub esp, 4
mov dword [ebp - 0x14c], eax
mov dword [esp], edx
call dword [sym.imp.gdi32.dll_GetBkMode]
mov edx, dword [ebp - 0x14c]
sub esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x150]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.align___x_bkmode___x_mapmode___x_n
mov dword [esp + 8], str.ext_text_out
mov dword [esp + 4], 0x10025898
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001b13c
mov edi, 1
test byte [0x10025898], 1
je 0x1001996d
mov dword [esp], ebx
call edx
sub esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.unhandled_object_type__ld_n
mov dword [esp + 8], str.hmf_proc
mov dword [esp + 4], 0x10025898
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001996d
lea eax, [ebp - 0x7c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectFont
test eax, eax
setne al
movzx eax, al
mov edi, eax
jmp 0x1001996d
mov ebx, dword [ebp - 0x138]
lea esi, cs:[esi]
mov edx, dword [edi + eax*4]
mov dword [ecx + eax*8 + 4], 0
mov dword [ecx + eax*8], edx
inc eax
cmp ebx, eax
jne 0x1001bcb8
jmp 0x1001b335
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
mov eax, dword [sym.imp.gdi32.dll_GetTextAlign]
mov dword [ebp - 0x150], eax
call eax
mov dword [ebp - 0xb8], 0
and eax, 0x100
or eax, dword [ebp - 0x164]
sub esp, 4
mov dword [ebp - 0x140], eax
test byte [0x10025898], 8
jne 0x1001cf68
mov eax, dword [ebp - 0x138]
xor edx, edx
mov dword [ebp - 0xe0], 0
mov word [ebp - 0x108], dx
mov edx, dword [sym.imp.kernel32.dll_HeapAlloc]
lea ebx, [eax + eax]
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1c4], edx
mov dword [ebp - 0x128], ebx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edx
mov edx, dword [ebp - 0x158]
mov dword [ebp - 0x1c0], eax
sub esp, 0xc
or dh, 0x10
mov dword [ebp - 0x1d8], edx
test eax, eax
je 0x1001d8f7
mov ecx, dword [ebp - 0x18c]
mov eax, dword [ebp - 0x138]
mov edx, ecx
add ebx, ecx
test eax, eax
jle 0x1001d01f
movzx eax, word [edx]
lea ecx, [eax - 0x900]
cmp cx, 0x6ff
jbe 0x1001bdbe
lea ecx, [eax - 0x1cd0]
cmp cx, 0x2f
jbe 0x1001bdbe
add ax, 0x57c0
cmp ax, 0xbf
ja 0x1001c259
cmp dword [ebp - 0x140], 0
jne 0x1001d007
mov eax, dword [ebp - 0x138]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x1c4]
call eax
mov dword [ebp - 0x1f0], eax
sub esp, 0xc
test eax, eax
je 0x1001d810
mov dword [esp + 8], 0x28
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x1c4]
call eax
mov dword [ebp - 0x170], eax
sub esp, 0xc
test eax, eax
je 0x1001d810
pxor xmm0, xmm0
mov dword [esp + 4], 0
cvtsi2sd xmm0, dword [ebp - 0x138]
mulsd xmm0, qword [0x1002cf10]
addsd xmm0, qword [0x1002cf18]
movsd qword [ebp - 0x140], xmm0
fld qword [ebp - 0x140]
fisttp qword [ebp - 0x140]
mov eax, dword [ebp - 0x140]
mov dword [ebp - 0x1d4], eax
add eax, eax
mov dword [esp + 8], eax
mov dword [ebp - 0x140], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x1c4]
call eax
mov dword [ebp - 0x1bc], eax
sub esp, 0xc
test eax, eax
je 0x1001d7e4
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x1c4]
call eax
mov dword [ebp - 0x1c8], eax
sub esp, 0xc
test eax, eax
je 0x1001d75f
mov eax, dword [ebp - 0x140]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x1c4]
call eax
mov dword [ebp - 0x1b0], eax
sub esp, 0xc
test eax, eax
je 0x1001d719
cmp dword [ebp - 0x138], 0
jle 0x1001d4fe
lea ebx, [ebp - 0x7c]
mov eax, dword [ebp - 0x170]
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x160], ebx
mov ebx, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x1f4], 1
mov dword [ebp - 0x184], ebx
lea ebx, [ebp - 0xf8]
mov dword [ebp - 0x140], ebx
lea ebx, [ebp - 0x108]
mov dword [ebp - 0x1ac], ebx
lea ebx, [ebp - 0xe0]
mov dword [ebp - 0x14c], ebx
lea ebx, [ebp - 0xb8]
mov dword [ebp - 0x1d0], 5
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x1dc], edi
mov dword [ebp - 0x1e0], esi
mov esi, eax
mov eax, dword [ebp - 0x1cc]
mov edi, dword [ebp - 0x18c]
mov ebx, dword [ebp - 0x138]
sub ebx, eax
lea eax, [edi + eax*2]
mov edi, dword [ebp - 0x1c0]
mov ecx, ebx
mov dword [ebp - 0x1b4], eax
mov edx, edi
call sym._classify
test ebx, ebx
jle 0x1001d4f7
mov eax, edi
xor edi, edi
jmp 0x1001bfe7
add eax, 2
cmp ebx, edi
je 0x1001bff3
inc edi
cmp word [eax], 0xd
jne 0x1001bfe0
mov word [eax], 0xa
xor eax, eax
mov ebx, dword [ebp - 0x1c0]
movzx edx, word [ebx + eax*2]
test dx, dx
je 0x1001c00d
sub edx, 0xb
cmp dx, 2
ja 0x1001c019
mov ebx, dword [ebp - 0x1c0]
mov word [ebx + eax*2], 0
inc eax
cmp eax, edi
jl 0x1001bff5
mov eax, dword [ebp - 0x140]
mov ebx, dword [ebp - 0x1b4]
mov dword [esp + 0x14], esi
mov dword [esp + 4], edi
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp], ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x14c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], eax
call sym._ScriptItemize_28
sub esp, 0x1c
cmp eax, 0x8007000e
jne 0x1001cf24
mov ebx, dword fs:[0x18]
mov eax, ebx
mov dword [ebp - 0x1b8], edi
mov ebx, esi
mov edi, dword [ebp - 0x1d0]
mov esi, eax
jmp 0x1001c0d6
mov eax, dword [ebp - 0x140]
add edi, edi
mov dword [esp + 0x14], ebx
mov dword [esp + 8], edi
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x1ac]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x14c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1b8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1b4]
mov dword [esp], eax
call sym._ScriptItemize_28
sub esp, 0x1c
cmp eax, 0x8007000e
jne 0x1001cf16
mov eax, edi
mov dword [esp + 8], ebx
shl eax, 4
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x170], ebx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
mov ebx, eax
test eax, eax
jne 0x1001c088
mov edi, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0x1e0]
xor edx, edx
test byte [0x10025898], 4
jne 0x1001d06a
mov eax, dword [ebp - 0x1c0]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x14c], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1f0]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x170]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1bc]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1c8]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1b0]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov eax, dword [ebp - 0x128]
sub esp, 0xc
mov dword [esp], eax
call sym._ScriptFreeCache_4
mov eax, dword [ebp - 0x188]
sub esp, 4
test eax, eax
je 0x1001cff6
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x18c], eax
or dword [ebp - 0x158], 0x1010
mov dword [ebp - 0x138], edx
jmp 0x1001b0c8
add edx, 2
cmp ebx, edx
jne 0x1001bd94
cmp dword [ebp - 0x140], 0
jne 0x1001d007
mov ebx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x138]
mov edx, ebx
call sym._classify
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x14c], esi
mov eax, ebx
add edx, ebx
mov ebx, 1
mov dword [ebp - 0x140], edx
mov edx, 1
movzx ecx, word [eax]
cmp cx, 0xf
ja 0x1001c2c7
mov esi, ebx
shl esi, cl
mov ecx, esi
mov esi, 0
and ecx, 0xc024
cmovne edx, esi
add eax, 2
cmp dword [ebp - 0x140], eax
jne 0x1001c2aa
mov esi, dword [ebp - 0x14c]
test edx, edx
je 0x1001bdcb
mov ebx, dword [ebp - 0x1c0]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], ebx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x184], eax
call eax
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x188], 0
sub esp, 0xc
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x160], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x128], eax
jmp 0x1001b0c8
mov ebx, dword [ebp - 0x130]
mov eax, dword [sym.imp.win32u.dll_NtGdiGetOutlineTextMetricsInternalW]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], 0
mov dword [ebp - 0x14c], eax
call eax
mov dword [ebp - 0x130], ebx
sub esp, 0x10
mov dword [ebp - 0x138], eax
mov dword [esp], ebx
call dword [sym.imp.gdi32.dll_GetTextColor]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_CreateSolidBrush]
sub esp, 4
mov dword [ebp - 0x128], eax
mov dword [esp], 8
call dword [sym.imp.gdi32.dll_GetStockObject]
sub esp, 4
mov ebx, eax
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectPen
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x1a8]
mov dword [esp], ebx
call edx
mov ecx, dword [ebp - 0x128]
sub esp, 8
mov dword [ebp - 0x150], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectBrush
mov ecx, dword [ebp - 0x128]
mov dword [esp], ebx
mov edx, dword [ebp - 0x1a8]
mov dword [esp + 4], ecx
call edx
mov ecx, dword [ebp - 0x138]
mov dword [ebp - 0x128], eax
sub esp, 8
test ecx, ecx
jne 0x1001ccc2
mov ecx, dword [ebp - 0xb4]
mov edx, 0x66666667
mov dword [ebp - 0x168], 0
mov eax, ecx
mov ebx, ecx
imul edx
sar ebx, 0x1f
mov eax, edx
sar eax, 3
sub eax, ebx
lea ebx, [eax + 1]
mov eax, ecx
shr eax, 0x1f
mov dword [ebp - 0x138], ebx
add eax, ecx
mov ecx, ebx
sar eax, 1
mov dword [ebp - 0x158], eax
cmp byte [ebp - 0x67], 0
jne 0x1001cb36
cmp byte [ebp - 0x66], 0
jne 0x1001c9b2
mov ebx, dword [ebp - 0x150]
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectPen
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x1a8]
call eax
mov ebx, dword [ebp - 0x124]
xor eax, eax
sub esp, 8
test ebx, ebx
jle 0x1001c4f7
mov edx, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x120]
jmp 0x1001c4e9
inc eax
cmp ebx, eax
je 0x1001c95a
cmp edx, dword [ecx + eax*4]
jne 0x1001c4e0
lea edx, [eax + eax*4]
mov eax, dword [esi + 0x18]
lea eax, [eax + edx*4]
mov ebx, dword [ebp - 0x128]
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_SelectBrush
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x1a8]
call eax
sub esp, 8
mov dword [esp], ebx
call dword [sym.imp.gdi32.dll_DeleteObject]
sub esp, 4
jmp 0x1001b5e6
pxor xmm0, xmm0
movsd xmm2, qword [ebp - 0x170]
pxor xmm1, xmm1
cvtsi2sd xmm0, dword [ebp - 0xb4]
cvtsi2sd xmm1, dword [ebp - 0x178]
mulsd xmm2, xmm0
mulsd xmm0, qword [ebp - 0x160]
addsd xmm1, xmm2
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x174]
mov dword [ebp - 0x178], eax
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0x174], eax
jmp 0x1001b7e0
mov edi, dword [ebp - 0x138]
xor edx, edx
jmp 0x1001acb5
and eax, 0x7fffffff
xor edi, edi
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_GetStockObject]
sub esp, 4
mov ebx, eax
jmp 0x1001aba9
add ebx, ebx
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_realloc]
test eax, eax
je 0x1001d8c6
mov dword [esi + 0x30], eax
mov eax, dword [esi + 0x28]
lea ebx, [eax + eax]
mov dword [esi + 0x28], ebx
jmp 0x1001b9b3
mov ebx, dword [ebp - 0x1b0]
mov edi, dword [ebp - 0x140]
sub dword [ebp - 0x174], edi
mov edi, dword [ebp - 0x148]
sub dword [ebp - 0x178], edi
test ebx, ebx
je 0x1001b778
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x178]
mov edi, dword [ebp - 0x130]
mov dword [ebp - 0x114], eax
lea eax, [ebp - 0x118]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_DPtoLP]
mov eax, dword [ebp - 0x114]
sub esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x118]
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_MoveToEx]
mov ecx, dword [ebp - 0x128]
sub esp, 0x10
jmp 0x1001b778
mov edi, dword [ebp - 0x1b0]
test edi, edi
je 0x1001b778
mov eax, dword [ebp - 0x174]
add eax, dword [ebp - 0x140]
mov dword [ebp - 0x118], eax
mov eax, dword [ebp - 0x178]
add eax, dword [ebp - 0x148]
jmp 0x1001c622
mov edi, dword [ebp - 0x140]
mov eax, edi
shr eax, 0x1f
add eax, edi
mov edi, dword [ebp - 0x148]
sar eax, 1
sub dword [ebp - 0x174], eax
mov eax, edi
shr eax, 0x1f
add eax, edi
sar eax, 1
sub dword [ebp - 0x178], eax
jmp 0x1001b778
test eax, eax
je 0x1001c7f7
mov eax, dword [ebp - 0x138]
mov ebx, dword [sym.imp.ucrtbase.dll_malloc]
shl eax, 3
mov dword [esp], eax
call ebx
mov ecx, eax
mov edi, dword [ebp - 0x138]
mov dword [ebp - 0x128], ecx
mov eax, edi
shl eax, 2
mov dword [esp], eax
mov dword [ebp - 0x140], eax
call ebx
mov ecx, dword [ebp - 0x158]
mov dword [esp + 0x10], 0
mov ebx, eax
mov dword [ebp - 0x148], eax
shr ecx, 4
mov dword [esp + 0x14], ebx
mov eax, ecx
mov ecx, dword [ebp - 0x18c]
mov dword [esp + 0xc], 0xffffffff
and eax, 1
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x130]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x110]
mov dword [esp], ecx
mov dword [esp + 0x18], eax
call dword [sym.imp.win32u.dll_NtGdiGetTextExtentExW]
mov ecx, dword [ebp - 0x128]
mov eax, ebx
mov ebx, dword [ebx]
sub esp, 0x20
mov dword [ecx], ebx
mov dword [ecx + 4], 0
cmp edi, 1
je 0x1001c7d0
mov edi, dword [ebp - 0x140]
mov dword [ebp - 0x128], esi
lea edx, [eax + 4]
mov dword [ebp - 0x140], ecx
lea edi, [eax + edi - 4]
lea eax, [ecx + 0xc]
mov esi, edi
jmp 0x1001c7ae
add edx, 4
mov ebx, ecx
mov ecx, dword [edx]
mov dword [eax], 0
add eax, 8
mov edi, ecx
sub edi, ebx
mov dword [eax - 0xc], edi
cmp esi, edx
jne 0x1001c7a9
mov ecx, dword [ebp - 0x140]
mov esi, dword [ebp - 0x128]
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x140], ecx
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x19c], eax
call eax
mov ecx, dword [ebp - 0x140]
jmp 0x1001b340
or ebx, dword [esi + 0x20]
jne 0x1001c90f
test edi, edi
jne 0x1001b2ea
cmp dword [ebp - 0x74], 0
jne 0x1001c6e7
mov eax, dword [ebp - 0x158]
mov edi, dword [ebp - 0x130]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
shr eax, 4
mov dword [esp + 0xc], 0
and eax, 1
mov dword [esp], edi
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x110]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x138]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x18c]
mov dword [esp + 4], eax
call dword [sym.imp.win32u.dll_NtGdiGetTextExtentExW]
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], 0
sub esp, 0x20
mov dword [ebp - 0xd8], eax
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x14c], eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0xd4], 0
mov dword [esp + 8], 2
mov dword [esp], edi
call eax
mov eax, dword [ebp - 0xe0]
sub dword [ebp - 0xd8], eax
sub esp, 0xc
mov eax, dword [ebp - 0xdc]
sub dword [ebp - 0xd4], eax
mov dword [esp], edi
mov eax, dword [ebp - 0x168]
call eax
dec eax
push edx
je 0x1001d4cc
mov eax, dword [ebp - 0xd8]
xor ecx, ecx
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0x148], eax
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x19c], eax
jmp 0x1001b687
mov eax, dword [ebp - 0x138]
mov ebx, dword [sym.imp.ucrtbase.dll_malloc]
shl eax, 3
mov dword [esp], eax
call ebx
mov ecx, eax
test edi, edi
jne 0x1001b2fe
jmp 0x1001c6fd
movzx eax, word [ebp - 0x18c]
mov dword [esp], 0x1002c949
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
mov dword [ebp - 0x14c], eax
jmp 0x1001bb37
xor eax, eax
jmp 0x1001c4f7
cmp dword [ebp - 0x108], edx
cmovge edx, dword [ebp - 0x108]
cmp dword [ebp - 0x104], eax
cmovge eax, dword [ebp - 0x104]
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp - 0x100]
cmp edi, eax
cmovg edi, eax
cmp dword [ebp - 0xfc], ebx
mov eax, ebx
cmovle eax, dword [ebp - 0xfc]
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xd4], eax
jmp 0x1001b895
mov eax, ecx
pxor xmm0, xmm0
pxor xmm1, xmm1
mov ebx, 2
cdq
movsd xmm7, qword [ebp - 0x160]
movsd xmm6, qword [ebp - 0x170]
mov dword [ebp - 0x11c], 5
idiv ebx
mov dword [esp + 8], 5
movapd xmm2, xmm7
add eax, dword [ebp - 0x158]
cvtsi2sd xmm0, eax
mov eax, dword [ebp - 0x174]
cvtsi2sd xmm1, eax
add eax, dword [ebp - 0x140]
mulsd xmm2, xmm0
mulsd xmm0, xmm6
subsd xmm1, xmm2
cvttsd2si edx, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x178]
mov dword [ebp - 0xe0], edx
subsd xmm1, xmm0
mov dword [ebp - 0xc0], edx
cvttsd2si ebx, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, eax
mov dword [ebp - 0xdc], ebx
subsd xmm1, xmm2
mov dword [ebp - 0xbc], ebx
cvttsd2si eax, xmm1
pxor xmm1, xmm1
mov dword [ebp - 0x138], eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x148]
add eax, dword [ebp - 0x178]
cvtsi2sd xmm1, eax
subsd xmm1, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, ecx
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x138]
mulsd xmm7, xmm0
mulsd xmm0, xmm6
mov dword [ebp - 0x140], eax
mov dword [ebp - 0xd4], eax
addsd xmm1, xmm7
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x140]
mov dword [ebp - 0xd0], eax
addsd xmm1, xmm0
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, edx
mov dword [ebp - 0xcc], eax
addsd xmm1, xmm7
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, ebx
lea ebx, [ebp - 0xe0]
mov dword [esp + 4], ebx
mov dword [ebp - 0xc8], eax
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_DPtoLP]
lea eax, [ebp - 0x11c]
sub esp, 0xc
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolygon
jmp 0x1001c48e
mov eax, dword [ebp - 0x138]
pxor xmm0, xmm0
pxor xmm1, xmm1
mov ebx, 2
movsd xmm6, qword [ebp - 0x160]
mov dword [ebp - 0x164], ecx
cdq
mov ecx, dword [ebp - 0x178]
movsd xmm7, qword [ebp - 0x170]
mov dword [ebp - 0x11c], 5
idiv ebx
mov dword [esp + 8], 5
movapd xmm2, xmm6
add eax, dword [ebp - 0x168]
cvtsi2sd xmm0, eax
mov eax, dword [ebp - 0x174]
cvtsi2sd xmm1, eax
add eax, dword [ebp - 0x140]
mulsd xmm2, xmm0
mulsd xmm0, xmm7
subsd xmm1, xmm2
cvttsd2si edx, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, ecx
mov dword [ebp - 0xe0], edx
subsd xmm1, xmm0
mov dword [ebp - 0xc0], edx
cvttsd2si ebx, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, eax
mov dword [ebp - 0xdc], ebx
subsd xmm1, xmm2
mov dword [ebp - 0xbc], ebx
cvttsd2si eax, xmm1
pxor xmm1, xmm1
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x148]
add eax, ecx
cvtsi2sd xmm1, eax
subsd xmm1, xmm0
pxor xmm0, xmm0
cvtsi2sd xmm0, dword [ebp - 0x138]
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, dword [ebp - 0x14c]
mulsd xmm6, xmm0
mulsd xmm0, xmm7
mov dword [ebp - 0xd4], eax
addsd xmm1, xmm6
cvttsd2si ecx, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, eax
mov dword [ebp - 0xd0], ecx
addsd xmm1, xmm0
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, edx
mov dword [ebp - 0xcc], eax
addsd xmm1, xmm6
cvttsd2si eax, xmm1
pxor xmm1, xmm1
cvtsi2sd xmm1, ebx
lea ebx, [ebp - 0xe0]
mov dword [esp + 4], ebx
mov dword [ebp - 0xc8], eax
addsd xmm0, xmm1
cvttsd2si eax, xmm0
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call dword [sym.imp.gdi32.dll_DPtoLP]
lea eax, [ebp - 0x11c]
sub esp, 0xc
mov dword [esp + 0xc], 1
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call sym._PSDRV_PolyPolygon
mov ecx, dword [ebp - 0x164]
jmp 0x1001c484
mov eax, dword [ebp - 0x138]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov edx, dword [ebp - 0x14c]
mov dword [esp + 0xc], 0
mov ebx, eax
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x138]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call edx
mov eax, dword [ebx + 0xc4]
lea edx, [ebp - 0xe0]
mov dword [ebp - 0xdc], 0
sub esp, 0x10
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [sym.imp.gdi32.dll_LPtoDP]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xd8], 0
mov dword [esp + 8], 2
mov dword [ebp - 0x164], eax
call eax
mov eax, dword [ebp - 0xd4]
sub eax, dword [ebp - 0xdc]
cdq
sub esp, 0xc
xor eax, edx
sub eax, edx
cmp dword [ebx + 0xc4], 0
mov dword [ebp - 0x168], eax
jns 0x1001cd80
neg eax
mov dword [ebp - 0x168], eax
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebx + 0xc0]
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xe0], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0x158], ecx
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0xd8], 0
mov dword [esp + 8], 2
call eax
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x138], 1
sub esp, 0xc
sub eax, dword [ebp - 0xdc]
je 0x1001cdff
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x138], eax
test ecx, ecx
jns 0x1001ce09
neg dword [ebp - 0x138]
mov dword [ebp - 0xdc], 0
mov eax, dword [ebx + 0xbc]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0xd8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp + 8], 2
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov eax, dword [ebp - 0xd4]
sub eax, dword [ebp - 0xdc]
cdq
sub esp, 0xc
xor eax, edx
sub eax, edx
cmp dword [ebx + 0xbc], 0
mov dword [ebp - 0x158], eax
jns 0x1001ce81
neg eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0xdc], 0
mov eax, dword [ebx + 0xb8]
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0x180], eax
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0xd8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp + 8], 2
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
mov eax, dword [ebp - 0xd4]
mov ecx, 1
sub esp, 0xc
sub eax, dword [ebp - 0xdc]
je 0x1001cef1
cdq
xor eax, edx
mov ecx, eax
sub ecx, edx
cmp dword [ebp - 0x180], 0
jns 0x1001cefc
neg ecx
mov dword [ebp - 0x14c], ecx
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_free]
mov ecx, dword [ebp - 0x14c]
jmp 0x1001c47a
mov dword [ebp - 0x1d0], edi
mov edi, dword [ebp - 0x1b8]
mov esi, ebx
cmp dword [ebp - 0x1f4], 0
jne 0x1001d09f
add dword [ebp - 0x1cc], edi
mov eax, dword [ebp - 0x1cc]
cmp eax, dword [ebp - 0x138]
jl 0x1001bfa0
mov eax, esi
mov edi, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0x1e0]
mov dword [ebp - 0x170], eax
mov edx, dword [ebp - 0x168]
jmp 0x1001c128
mov eax, dword [ebp - 0x18c]
shr eax, 0x10
je 0x1001d04e
mov ebx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x18c]
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
push ecx
push ecx
test eax, eax
jne 0x1001d044
mov eax, dword [ebp - 0x18c]
mov edx, ebx
call sym._wine_dbgstr_wn.part.0
mov ebx, dword [ebp - 0x138]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 2
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str._s___d__0x_08lx_lpOutString_p__lpOrder_p_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001bd11
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x158], eax
jmp 0x1001b0c8
movzx eax, byte [ebp - 0x108]
and eax, 0xffffffe0
or eax, 1
mov byte [ebp - 0x108], al
jmp 0x1001bdcb
cmp dword [ebp - 0x140], 0
jne 0x1001d007
mov ecx, dword [ebp - 0x138]
mov edx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x18c]
call sym._classify
jmp 0x1001c2e0
mov eax, 0x1002c924
jmp 0x1001cfa7
movzx eax, word [ebp - 0x18c]
mov dword [esp], 0x1002c949
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf
jmp 0x1001cfa7
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
mov dword [ebp - 0x14c], edx
call sym._wine_dbg_log.constprop.0_15
mov edx, dword [ebp - 0x14c]
jmp 0x1001c128
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edx
mov edx, dword [ebp - 0x1c4]
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x1d0]
sub esp, 0xc
mov dword [esp + 4], 0
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call edx
sub esp, 0xc
cmp dword [ebp - 0x170], 0
mov dword [ebp - 0x1b4], eax
je 0x1001d674
test eax, eax
je 0x1001d674
mov ecx, dword [ebp - 0xf8]
xor eax, eax
jmp 0x1001d132
movzx edx, byte [esi + eax*8 + 6]
mov ebx, dword [ebp - 0x170]
and edx, 0x1f
mov byte [ebx + eax], dl
inc eax
cmp eax, ecx
jl 0x1001d120
mov eax, dword [ebp - 0x1b4]
mov dword [esp + 0xc], 0
mov dword [esp], ecx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x170]
mov dword [esp + 4], eax
call sym._ScriptLayout_16
mov dword [ebp - 0x1ec], esi
mov eax, dword fs:[0x18]
mov dword [ebp - 0x1e4], 0
sub esp, 0x10
mov dword [ebp - 0x1f8], eax
mov dword [ebp - 0x200], edi
mov edi, dword [ebp - 0x1bc]
mov eax, dword [ebp - 0x1e4]
cmp eax, dword [ebp - 0xf8]
jge 0x1001d539
mov esi, dword [ebp - 0x1e4]
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x160]
mov eax, dword [eax + esi*4]
mov esi, dword [ebp - 0x1ec]
lea edx, [eax*8]
mov dword [ebp - 0x1b8], eax
lea ebx, [esi + edx]
mov edx, dword [esi + edx + 8]
mov eax, dword [ebx]
mov dword [esp + 0x24], ecx
mov esi, edx
lea edx, [ebx + 4]
mov ecx, dword [ebp - 0x1b0]
mov dword [esp + 0x18], edi
sub esi, eax
add eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1fc], edx
add eax, eax
add eax, dword [ebp - 0x18c]
mov dword [esp + 0x14], edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x128]
mov edx, dword [ebp - 0x1d4]
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp + 0x10], edx
mov dword [esp], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp - 0x1c8]
mov dword [ebp - 0x1bc], esi
mov dword [esp + 0x1c], ecx
call sym._ScriptShape_40
sub esp, 0x28
mov esi, eax
cmp eax, 0x8007000e
jne 0x1001d351
xchg ebx, edi
mov eax, dword [ebp - 0x1d4]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
lea esi, [eax*4]
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x1e8], ebx
mov dword [esp + 0xc], esi
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
mov edx, dword [ebp - 0x1b0]
mov ebx, eax
mov eax, dword [ebp - 0x1f8]
sub esp, 0x10
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x1b8], edx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
mov dword [ebp - 0x1b0], eax
sub esp, 0x10
test ebx, ebx
je 0x1001d3c9
test eax, eax
je 0x1001d3c9
mov esi, dword [ebp - 0x160]
shl dword [ebp - 0x1d4], 1
mov eax, dword [ebp - 0x1d4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], esi
mov esi, dword [ebp - 0x1b0]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1bc]
mov dword [esp + 0x20], esi
mov esi, dword [ebp - 0x1c8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1cc]
mov dword [esp + 0x1c], esi
mov esi, dword [ebp - 0x1fc]
mov dword [esp + 0x14], esi
mov esi, dword [ebp - 0x18c]
add eax, dword [edi]
lea eax, [esi + eax*2]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x128]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x130]
mov dword [esp], eax
call sym._ScriptShape_40
sub esp, 0x28
cmp eax, 0x8007000e
je 0x1001d245
mov esi, eax
mov edi, ebx
test esi, esi
je 0x1001d601
movzx eax, byte [0x10025898]
cmp esi, 0x80040200
je 0x1001d5d0
test al, 1
jne 0x1001d5a3
mov eax, dword [ebp - 0xf8]
mov esi, dword [ebp - 0x188]
mov dword [esp + 4], 0
mov dword [esp + 8], esi
mov dword [ebp - 0x1e4], eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
xor eax, eax
mov dword [ebp - 0x1f4], 0
sub esp, 0xc
inc dword [ebp - 0x1e4]
mov dword [ebp - 0x188], eax
jmp 0x1001d185
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x1bc], ebx
mov edi, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0x1e0]
mov dword [ebp - 0x14c], eax
test byte [0x10025898], 4
jne 0x1001d8ce
mov eax, dword [ebp - 0x170]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1b4]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x188]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov eax, dword [ebp - 0x1bc]
sub esp, 0xc
test eax, eax
cmove eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x1e8], eax
mov eax, dword [ebp - 0x1b0]
test eax, eax
cmove eax, dword [ebp - 0x1b8]
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1b8]
xor edx, edx
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x1b0], eax
mov eax, dword [ebp - 0x1e8]
mov dword [ebp - 0x1bc], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x170], eax
jmp 0x1001c128
pxor xmm0, xmm0
comiss xmm0, dword [ebp - 0xf8]
jbe 0x1001d4df
neg dword [ebp - 0xd8]
comiss xmm0, dword [ebp - 0xec]
jbe 0x1001c8e5
neg dword [ebp - 0xd4]
jmp 0x1001c8e5
xor edi, edi
jmp 0x1001c01e
mov dword [ebp - 0x188], 0
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x160], eax
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x184], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x128], eax
jmp 0x1001cf5d
mov eax, dword [ebp - 0x170]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x1bc], edi
mov esi, dword [ebp - 0x1ec]
mov eax, dword [eax + 0x18]
mov edi, dword [ebp - 0x200]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1b4]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
sub esp, 0xc
jmp 0x1001cf31
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Unable_to_shape_string___lx__n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001d374
test al, 8
je 0x1001d374
mov dword [esp + 0xc], str.Unable_to_shape_with_currently_selected_font_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001d374
mov ebx, dword [ebp - 0x188]
mov eax, dword [ebp - 0x168]
add eax, dword [ebp - 0x7c]
add eax, eax
mov ecx, dword fs:[0x18]
test ebx, ebx
je 0x1001da0b
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapReAlloc]
sub esp, 0x10
test eax, eax
je 0x1001d94a
mov ebx, dword [ebp - 0x168]
mov ecx, ebx
add ecx, ebx
add ecx, eax
jmp 0x1001d662
movzx edx, word [edi + esi*2]
mov word [ecx + esi*2], dx
inc esi
mov ebx, dword [ebp - 0x7c]
cmp esi, ebx
jl 0x1001d659
add dword [ebp - 0x168], ebx
jmp 0x1001d3b8
mov dword [ebp - 0x14c], esi
mov edi, dword [ebp - 0x1dc]
mov esi, dword [ebp - 0x1e0]
test byte [0x10025898], 4
je 0x1001d6b3
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
mov eax, dword [ebp - 0x170]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1b4]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov eax, dword [ebp - 0x14c]
xor edx, edx
sub esp, 0xc
mov dword [ebp - 0x170], eax
jmp 0x1001c128
test byte [0x10025898], 4
jne 0x1001d77e
mov dword [ebp - 0x188], 0
xor edx, edx
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x160], eax
mov eax, dword [sym.imp.kernel32.dll_HeapFree]
mov dword [ebp - 0x184], eax
lea eax, [ebp - 0xf8]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x128], eax
jmp 0x1001c128
test byte [0x10025898], 4
jne 0x1001d7a7
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x1b0], 0
jmp 0x1001d72c
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001d722
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x1b0], 0
jmp 0x1001d72c
test byte [0x10025898], 4
jne 0x1001d856
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1c8], 0
jmp 0x1001d72c
test byte [0x10025898], 4
jne 0x1001d89d
mov dword [ebp - 0x188], 0
xor edx, edx
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1c8], 0
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x170], 0
jmp 0x1001d72e
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1c8], 0
jmp 0x1001d72c
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001d81d
mov ebx, dword [esi + 0x28]
jmp 0x1001b9b3
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001d3f4
test byte [0x10025898], 4
jne 0x1001d924
mov dword [ebp - 0x188], 0
mov eax, dword [ebp - 0x1d8]
mov dword [ebp - 0x158], eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x160], eax
jmp 0x1001b0a5
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001d900
mov eax, dword [ebp - 0x1ec]
mov dword [ebp - 0x1bc], edi
mov esi, dword [ebp - 0x1e0]
mov edi, dword [ebp - 0x1dc]
mov dword [ebp - 0x14c], eax
test byte [0x10025898], 4
jne 0x1001da30
mov eax, dword [ebp - 0x170]
mov dword [esp + 4], 0
mov ebx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x1b4]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov edx, dword [ebp - 0x188]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x184]
call eax
mov eax, dword [ebp - 0x1b0]
sub esp, 0xc
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1bc]
mov dword [ebp - 0x1e8], eax
jmp 0x1001d497
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
mov eax, dword [ebp - 0x1c4]
call eax
sub esp, 0xc
jmp 0x1001d643
mov dword [esp + 0xc], str.Out_of_memory_n
mov dword [esp + 8], str.BIDI_Reorder
mov dword [esp + 4], 0x10025898
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_15
jmp 0x1001d975