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

Disassembly:
sub esp, 0xa0
mov eax, dword [0x102d94c0]
xor eax, esp
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa8]
push esi
mov esi, dword [esp + 0xa8]
mov dword [esp + 8], esi
mov dword [esp + 0x1c], eax
cmp dword [esi + 0x2bc], 0
je 0x1007ec9f
mov eax, 0x64
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.101f469d
add esp, 0xa0
ret
push ebx
push edi
call fcn.10080040
mov ebx, eax
mov dword [esp + 0x20], ebx
call fcn.1005dc30
mov edi, eax
mov dword [esp + 0xc], edi
test edi, edi
jne 0x1007ecdd
push 1
call fcn.10053510
add esp, 4
pop edi
pop ebx
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.101f469d
add esp, 0xa0
ret
cmp dword [esi + 0x94], 1
push ebp
push ebx
push esi
jne 0x1007ed4e
call fcn.1007f4b0
movups xmm0, xmmword [esi + 0xb8]
mov ebp, eax
lea eax, [esp + 0x70]
movsd xmm1, qword [0x102c6248]
movups xmmword [esp + 0x70], xmm0
movups xmm0, xmmword [esi + 0xc8]
movups xmmword [esp + 0x80], xmm0
movups xmm0, xmmword [esi + 0xd8]
movups xmmword [esp + 0x90], xmm0
movd xmm0, dword [esi + 0x2b0]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
movsd qword [esp], xmm1
sub esp, 8
movsd qword [esp], xmm1
push eax
call sym.project.dll_cairo_matrix_scale
add esp, 0x14
jmp 0x1007ed62
call sym.project.dll_cairo_win32_scaled_font_select_font
mov ebp, eax
lea eax, [esp + 0x70]
push eax
call sym.project.dll_cairo_matrix_init_identity
add esp, 0xc
test ebp, ebp
jne 0x1007f1cd
push 0x10236174
push ebp
push ebp
lea eax, [esp + 0xa4]
push eax
mov eax, dword [esp + 0x38]
push 0x82
mov eax, dword [eax]
and eax, 0xffffff
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x1007edad
push str._cairo_win32_scaled_font_glyph_path
call fcn.1009eb30
mov esi, dword [esp + 0x18]
mov ebp, eax
jmp 0x1007f1a7
test esi, esi
je 0x1007edd6
push esi
call fcn.1020782d
mov ebx, eax
mov dword [esp + 0x30], eax
add esp, 4
test ebx, ebx
jne 0x1007edde
push 1
call fcn.10053510
mov esi, dword [esp + 0x18]
mov ebp, eax
jmp 0x1007f1a7
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x2c], eax
push 0x10236174
push eax
push esi
lea eax, [esp + 0xa4]
push eax
mov eax, dword [esp + 0x38]
push 0x82
mov eax, dword [eax]
and eax, 0xffffff
push eax
push dword [esp + 0x3c]
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
cmp eax, 0xffffffff
jne 0x1007ee21
push str._cairo_win32_scaled_font_glyph_path
call fcn.1009eb30
add esp, 4
mov ebp, eax
jmp 0x1007f19a
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + esi]
mov dword [esp + 0x64], eax
cmp ecx, eax
jae 0x1007f178
mov esi, dword [ebx]
lea ecx, [esp + 0x1c]
push ecx
mov eax, ebx
lea ecx, [esp + 0x24]
push ecx
add esi, ebx
add ebx, 0x10
mov dword [esp + 0x68], esi
push dword [eax + 0xc]
mov dword [esp + 0x30], ebx
push dword [eax + 8]
lea eax, [esp + 0x78]
push eax
call fcn.1007f840
push dword [esp + 0x30]
push dword [esp + 0x38]
push edi
call fcn.1005ebb0
mov ebp, eax
add esp, 0x20
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x1007f19a
cmp ebx, esi
jae 0x1007f15f
movzx eax, word [ebx]
lea esi, [ebx + 4]
sub eax, 1
je 0x1007f0f0
sub eax, 1
je 0x1007ef67
sub eax, 1
jne 0x1007f147
movzx eax, word [ebx + 2]
xor edi, edi
sub eax, 2
test eax, eax
jle 0x1007f143
mov ebp, dword [esp + 0x10]
add esi, 0xc
nop
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
push dword [esi - 8]
lea eax, [esp + 0x74]
push dword [esi - 0xc]
push eax
call fcn.1007f840
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x60]
push eax
push dword [esi]
lea eax, [esp + 0x88]
push dword [esi - 4]
push eax
call fcn.1007f840
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x6c]
push eax
push dword [esi + 8]
lea eax, [esp + 0x9c]
push dword [esi + 4]
push eax
call fcn.1007f840
push dword [esp + 0x78]
push dword [esp + 0x80]
push dword [esp + 0x88]
push dword [esp + 0x90]
push dword [esp + 0x68]
push dword [esp + 0x70]
push ebp
call fcn.1005dcd0
mov ecx, eax
add esp, 0x58
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x1007f192
movzx eax, word [ebx + 2]
add edi, 2
sub eax, 2
add esi, 0x10
cmp edi, eax
jl 0x1007eec0
mov edi, ebp
jmp 0x1007f147
movzx eax, word [ebx + 2]
xor edi, edi
dec eax
test eax, eax
jle 0x1007f143
lea ebp, [esi + 0xc]
nop dword [eax]
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x18]
call fcn.1005e1a0
add esp, 0xc
test eax, eax
je 0x1007f192
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x54]
push eax
push dword [ebp - 8]
lea eax, [esp + 0x74]
push dword [ebp - 0xc]
push eax
call fcn.1007f840
movzx eax, word [ebx + 2]
lea ecx, [edi + 1]
mov esi, dword [esp + 0x60]
dec eax
mov edi, dword [esp + 0x64]
add esp, 0x14
mov dword [esp + 0x5c], ecx
cmp ecx, eax
jne 0x1007f002
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x34]
push eax
push dword [ebp]
lea eax, [esp + 0x74]
push dword [ebp - 4]
push eax
call fcn.1007f840
mov eax, dword [esp + 0x48]
add esp, 0x14
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jmp 0x1007f046
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
push dword [ebp]
lea eax, [esp + 0x74]
push dword [ebp - 4]
push eax
call fcn.1007f840
mov eax, dword [esp + 0x34]
add esp, 0x14
add eax, edi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x18], eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
lea eax, [esi + eax]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
lea ecx, [edi + edi]
mov eax, 0x55555556
imul ecx
mov eax, 0x55555556
lea ecx, [esi + esi]
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
imul dword [esp + 0x54]
mov eax, 0x55555556
mov edi, edx
shr edi, 0x1f
add edi, edx
imul ecx
mov eax, 0x55555556
add edi, ebx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul dword [esp + 0x58]
mov eax, 0x55555556
mov esi, edx
shr esi, 0x1f
add esi, edx
mov edx, dword [esp + 0x38]
push edx
push dword [esp + 0x1c]
imul edx
add esi, ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
push eax
mov eax, 0x55555556
imul dword [esp + 0x24]
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ebx
push eax
push esi
push edi
mov edi, dword [esp + 0x28]
push edi
call fcn.1005dcd0
mov ecx, eax
add esp, 0x1c
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x1007f18c
mov ebx, dword [esp + 0x24]
add ebp, 8
mov edi, dword [esp + 0x5c]
movzx eax, word [ebx + 2]
dec eax
cmp edi, eax
jl 0x1007ef80
jmp 0x1007f143
xor eax, eax
xor edi, edi
cmp ax, word [ebx + 2]
jae 0x1007f143
nop word [eax + eax]
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x24]
push eax
push dword [esi + 4]
lea eax, [esp + 0x74]
push dword [esi]
push eax
call fcn.1007f840
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.1005e9e0
mov ebp, eax
add esp, 0x20
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x1007f196
movzx eax, word [ebx + 2]
inc edi
add esi, 8
cmp edi, eax
jl 0x1007f100
mov edi, dword [esp + 0x10]
movzx eax, word [ebx + 2]
lea ebx, [ebx + eax*8]
add ebx, 4
mov dword [esp + 0x24], ebx
cmp ebx, dword [esp + 0x60]
jb 0x1007ee86
push edi
call fcn.1005dbe0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x1007f19a
cmp ebx, dword [esp + 0x64]
jb 0x1007ee34
mov esi, dword [esp + 0x14]
push edi
push esi
push dword [esp + 0x30]
call fcn.1004b140
add esp, 0xc
jmp 0x1007f19e
mov ebp, dword [esp + 0x18]
jmp 0x1007f19a
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push dword [esp + 0x2c]
call fcn.102067ed
add esp, 4
cmp dword [esi + 0x94], 1
je 0x1007f1c9
cmp dword [esi + 0x1b4], 0x10236138
je 0x1007f1c9
push 0x19
call fcn.10053510
add esp, 4
test ebp, ebp
je 0x1007f1d6
push edi
call fcn.1005de20
add esp, 4
mov ecx, dword [esp + 0xac]
mov eax, ebp
pop ebp
pop edi
pop ebx
pop esi
xor ecx, esp
call fcn.101f469d
add esp, 0xa0
ret