Function at 0x10083040
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xfc
mov eax, dword [0x102d94c0]
xor eax, esp
mov dword [esp + 0xf8], eax
push ebx
mov ebx, dword [esp + 0x10c]
push ebp
mov ebp, dword [esp + 0x10c]
push esi
push edi
mov edi, dword [esp + 0x110]
push ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x34], ebx
call sym.project.dll_cairo_dwrite_font_face_get_rendering_params
movups xmm0, xmmword [ebp + 0x38]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0xdc]
push eax
movups xmmword [esp + 0xe0], xmm0
movups xmm0, xmmword [ebp + 0x48]
movups xmmword [esp + 0xf0], xmm0
movups xmm0, xmmword [ebp + 0x58]
movups xmmword [esp + 0x100], xmm0
call sym.project.dll_cairo_matrix_invert
movups xmm0, xmmword [edi + 0x160]
mov eax, dword [edi + 0x15c]
lea esi, [edi + 0x160]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0xe0]
movups xmmword [esp + 0x50], xmm0
push esi
movups xmm0, xmmword [esi + 0x10]
push eax
push eax
movups xmmword [esp + 0x6c], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmmword [esp + 0x7c], xmm0
call sym.project.dll_cairo_matrix_multiply
movups xmm0, xmmword [esp + 0xec]
add esp, 0x14
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0xe8]
push dword [edi + 0x124]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [esp + 0xfc]
movups xmmword [esi + 0x20], xmm0
call dword [sym.imp.GDI32.dll_SaveDC]
mov eax, dword [ebx]
cmp dword [eax], 0x17
jne 0x1008313e
movups xmm0, xmmword [ebx + 0x120]
mov eax, dword [ebx + 0x130]
mov dword [esp + 0x30], eax
movups xmmword [esp + 0x78], xmm0
jmp 0x1008316e
push 0
lea eax, [esp + 0xbc]
push eax
push ebx
call fcn.10065bf0
add esp, 0xc
test eax, eax
jne 0x10083835
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.10056f10
add esp, 8
movsd xmm0, qword [esi]
lea eax, [esp + 0x88]
cvtpd2ps xmm0, xmm0
push 2
push eax
push dword [edi + 0x124]
movss dword [esp + 0x94], xmm0
movsd xmm0, qword [esi + 0x10]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x9c], xmm0
movsd xmm0, qword [esi + 8]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x98], xmm0
movsd xmm0, qword [esi + 0x18]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0xa0], xmm0
movsd xmm0, qword [esi + 0x20]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0xa4], xmm0
movsd xmm0, qword [esi + 0x28]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0xa8], xmm0
call dword [sym.imp.GDI32.dll_ModifyWorldTransform]
test eax, eax
jne 0x100831fd
mov eax, str._cairo_win32_printing_surface_get_clip_box:ModifyWorldTransform
jmp 0x100832ac
lea eax, [esp + 0xc8]
push eax
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_GetClipBox]
movsd xmm0, qword [edi + 0x198]
lea eax, [esp + 0x88]
cvtpd2ps xmm0, xmm0
push eax
push dword [edi + 0x124]
movss dword [esp + 0x90], xmm0
movsd xmm0, qword [edi + 0x1a8]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x98], xmm0
movsd xmm0, qword [edi + 0x1a0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x94], xmm0
movsd xmm0, qword [edi + 0x1b0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x9c], xmm0
movsd xmm0, qword [edi + 0x1b8]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0xa0], xmm0
movsd xmm0, qword [edi + 0x1c0]
cvtpd2ps xmm0, xmm0
movss dword [esp + 0xa4], xmm0
call dword [sym.imp.GDI32.dll_SetWorldTransform]
test eax, eax
jne 0x100832c4
mov eax, str._cairo_win32_printing_surface_get_clip_box:SetWorldTransform
push eax
call fcn.1009eb30
mov ebp, eax
mov dword [esp + 0x28], eax
add esp, 4
test ebp, ebp
je 0x100832ca
jmp 0x10083833
xor ebp, ebp
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x38]
cmp eax, 1
je 0x100832f7
cmp eax, 2
je 0x100832f7
xor ebx, ebx
mov dword [esp + 0x28], 1
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], 1
jmp 0x10083407
mov eax, dword [esp + 0xc0]
xorps xmm1, xmm1
sub eax, dword [esp + 0xb8]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0xc8]
sub esp, 8
cvtsi2sd xmm1, eax
mulsd xmm1, qword [0x10234c10]
divsd xmm0, xmm1
movsd qword [esp + 0x24], xmm1
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
call fcn.102079d0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0xd8]
fstp qword [esp + 0x18]
divsd xmm0, qword [esp + 0x24]
cvttsd2si ebx, qword [esp + 0x18]
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
mov dword [esp + 0x3c], ebx
call fcn.102089d0
fstp qword [esp + 0x18]
cvttsd2si eax, qword [esp + 0x18]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0xd4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xcc]
sub eax, dword [esp + 0xc4]
cvtsi2sd xmm1, eax
mulsd xmm1, qword [0x10234c10]
divsd xmm0, xmm1
movsd qword [esp + 0x24], xmm1
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
call fcn.102079d0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0xdc]
fstp qword [esp + 0x18]
divsd xmm0, qword [esp + 0x24]
cvttsd2si eax, qword [esp + 0x18]
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fstp qword [esp]
mov dword [esp + 0x20], eax
call fcn.102089d0
fstp qword [esp + 0x18]
cvttsd2si eax, qword [esp + 0x18]
add esp, 8
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x154]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x30]
cmp dword [eax + 0xc], 0x1000
jne 0x10083444
push 0x10234840
push edi
mov dword [edi + 0x154], 0x1000
call fcn.10083850
mov ebp, eax
add esp, 8
mov dword [esp + 0x24], ebp
test ebp, ebp
jne 0x10083833
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x2c]
jge 0x100837f7
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
nop word [eax + eax]
cmp dword [esp + 0x34], ecx
jge 0x100837e1
mov ebp, dword [esp + 0x18]
nop
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_SaveDC]
movups xmm0, xmmword [esp + 0xd8]
mov eax, dword [esp + 0x84]
sub esp, 0x10
imul eax, ebp
movups xmmword [esp + 0x98], xmm0
movups xmm0, xmmword [esp + 0xf8]
movups xmmword [esp + 0xa8], xmm0
movups xmm0, xmmword [esp + 0x108]
movups xmmword [esp + 0xb8], xmm0
movd xmm0, eax
mov eax, dword [esp + 0x90]
cvtdq2pd xmm0, xmm0
imul eax, ebx
movsd qword [esp + 8], xmm0
movd xmm0, eax
lea eax, [esp + 0x98]
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
call sym.project.dll_cairo_matrix_translate
add esp, 0x14
cmp dword [esp + 0x38], 2
jne 0x1008359b
test bl, 1
je 0x10083547
sub esp, 0x10
lea eax, [esp + 0x98]
xorps xmm0, xmm0
movsd qword [esp + 8], xmm0
movd xmm0, dword [esp + 0x90]
cvtdq2pd xmm0, xmm0
movsd qword [esp], xmm0
push eax
call sym.project.dll_cairo_matrix_translate
movaps xmm0, xmmword [0x10236890]
lea eax, [esp + 0x9c]
add esp, 4
movups xmmword [esp], xmm0
push eax
call sym.project.dll_cairo_matrix_scale
add esp, 0x14
test byte [esp + 0x18], 1
je 0x10083597
movd xmm0, dword [esp + 0x84]
lea eax, [esp + 0x88]
cvtdq2pd xmm0, xmm0
sub esp, 0x10
movsd qword [esp + 8], xmm0
xorps xmm0, xmm0
movsd qword [esp], xmm0
push eax
call sym.project.dll_cairo_matrix_translate
movaps xmm0, xmmword [0x102368a0]
lea eax, [esp + 0x9c]
add esp, 4
movups xmmword [esp], xmm0
push eax
call sym.project.dll_cairo_matrix_scale
add esp, 0x14
mov ebp, dword [esp + 0x18]
movups xmm0, xmmword [esp + 0x88]
movsd xmm2, qword [0x102c6248]
movups xmmword [esi], xmm0
movups xmm0, xmmword [esp + 0x98]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [esp + 0xa8]
movups xmmword [esi + 0x20], xmm0
movsd xmm0, qword [esi]
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jp 0x10083626
movsd xmm0, qword [esi + 8]
xorps xmm1, xmm1
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10083626
movsd xmm0, qword [esi + 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10083626
movsd xmm0, qword [esi + 0x18]
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jp 0x10083626
movsd xmm0, qword [esi + 0x20]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10083626
movsd xmm0, qword [esi + 0x28]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10083626
xor eax, eax
jmp 0x1008362b
mov eax, 1
push dword [edi + 0x124]
mov dword [edi + 0x15c], eax
call dword [sym.imp.GDI32.dll_BeginPath]
lea eax, [esp + 0x1c]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x14]
movsd qword [esp + 0x14], xmm0
push eax
push esi
movsd qword [esp + 0x28], xmm0
call sym.project.dll_cairo_matrix_transform_point
cvttsd2si eax, qword [esp + 0x28]
add esp, 0xc
push 0
push eax
cvttsd2si eax, qword [esp + 0x18]
push eax
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_MoveToEx]
movd xmm0, dword [esp + 0x80]
lea eax, [esp + 0x1c]
cvtdq2pd xmm0, xmm0
push eax
lea eax, [esp + 0x14]
push eax
push esi
movsd qword [esp + 0x1c], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x28], xmm0
call sym.project.dll_cairo_matrix_transform_point
cvttsd2si eax, qword [esp + 0x28]
add esp, 0xc
push eax
cvttsd2si eax, qword [esp + 0x14]
push eax
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_LineTo]
movd xmm0, dword [esp + 0x80]
lea eax, [esp + 0x1c]
cvtdq2pd xmm0, xmm0
push eax
lea eax, [esp + 0x14]
push eax
push esi
movsd qword [esp + 0x1c], xmm0
movd xmm0, dword [esp + 0x90]
cvtdq2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm0
call sym.project.dll_cairo_matrix_transform_point
cvttsd2si eax, qword [esp + 0x28]
add esp, 0xc
push eax
cvttsd2si eax, qword [esp + 0x14]
push eax
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_LineTo]
xorps xmm0, xmm0
lea eax, [esp + 0x1c]
movsd qword [esp + 0x10], xmm0
movd xmm0, dword [esp + 0x84]
cvtdq2pd xmm0, xmm0
push eax
lea eax, [esp + 0x14]
push eax
push esi
movsd qword [esp + 0x28], xmm0
call sym.project.dll_cairo_matrix_transform_point
cvttsd2si eax, qword [esp + 0x28]
add esp, 0xc
push eax
cvttsd2si eax, qword [esp + 0x14]
push eax
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_LineTo]
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_CloseFigure]
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_EndPath]
push 1
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_SelectClipPath]
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_SaveDC]
push 1
push edi
lea eax, [esp + 0x80]
push eax
mov eax, dword [esp + 0x48]
push dword [eax + 0x74]
push dword [esp + 0x40]
call fcn.10066b90
add esp, 0x14
mov dword [esp + 0x24], eax
push 0xfffffffffffffffe
push dword [edi + 0x124]
call dword [sym.imp.GDI32.dll_RestoreDC]
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x10083835
inc ebx
cmp ebx, dword [esp + 0x28]
jl 0x10083470
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
inc eax
mov dword [esp + 0x18], eax
cmp eax, edx
jge 0x100837f3
mov ebx, dword [esp + 0x34]
jmp 0x10083460
mov ebp, dword [esp + 0x24]
movups xmm0, xmmword [esp + 0x48]
mov eax, dword [esp + 0x40]
push 0xffffffffffffffff
push dword [edi + 0x124]
movups xmmword [esi], xmm0
mov dword [edi + 0x154], eax
movups xmm0, xmmword [esp + 0x60]
mov eax, dword [esp + 0x4c]
mov dword [edi + 0x15c], eax
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [esp + 0x70]
movups xmmword [esi + 0x20], xmm0
call dword [sym.imp.GDI32.dll_RestoreDC]
mov eax, ebp
mov ecx, dword [esp + 0x108]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.101f469d
add esp, 0xfc
ret