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

Disassembly:
sub esp, 0xa0
mov eax, dword [0x102cf440]
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 0x1007e63f
mov eax, 0x64
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.101eafcd
add esp, 0xa0
ret
push ebx
push edi
call fcn.1007f9e0
mov ebx, eax
mov dword [esp + 0x20], ebx
call fcn.1005d5b0
mov edi, eax
mov dword [esp + 0xc], edi
test edi, edi
jne 0x1007e67d
push 1
call fcn.10052e90
add esp, 4
pop edi
pop ebx
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.101eafcd
add esp, 0xa0
ret
cmp dword [esi + 0x94], 1
push ebp
push ebx
push esi
jne 0x1007e6ee
call fcn.1007ee50
movups xmm0, xmmword [esi + 0xb8]
mov ebp, eax
lea eax, [esp + 0x70]
movsd xmm1, qword [0x102bc1b8]
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 0x1007e702
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 0x1007eb6d
push 0x1022c174
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 0x1007e74d
push str._cairo_win32_scaled_font_glyph_path
call fcn.1009e4e0
mov esi, dword [esp + 0x18]
mov ebp, eax
jmp 0x1007eb47
test esi, esi
je 0x1007e776
push esi
call fcn.101fe13d
mov ebx, eax
mov dword [esp + 0x30], eax
add esp, 4
test ebx, ebx
jne 0x1007e77e
push 1
call fcn.10052e90
mov esi, dword [esp + 0x18]
mov ebp, eax
jmp 0x1007eb47
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x2c], eax
push 0x1022c174
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 0x1007e7c1
push str._cairo_win32_scaled_font_glyph_path
call fcn.1009e4e0
add esp, 4
mov ebp, eax
jmp 0x1007eb3a
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + esi]
mov dword [esp + 0x64], eax
cmp ecx, eax
jae 0x1007eb18
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.1007f1e0
push dword [esp + 0x30]
push dword [esp + 0x38]
push edi
call fcn.1005e530
mov ebp, eax
add esp, 0x20
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x1007eb3a
cmp ebx, esi
jae 0x1007eaff
movzx eax, word [ebx]
lea esi, [ebx + 4]
sub eax, 1
je 0x1007ea90
sub eax, 1
je 0x1007e907
sub eax, 1
jne 0x1007eae7
movzx eax, word [ebx + 2]
xor edi, edi
sub eax, 2
test eax, eax
jle 0x1007eae3
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.1007f1e0
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.1007f1e0
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.1007f1e0
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.1005d650
mov ecx, eax
add esp, 0x58
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x1007eb32
movzx eax, word [ebx + 2]
add edi, 2
sub eax, 2
add esi, 0x10
cmp edi, eax
jl 0x1007e860
mov edi, ebp
jmp 0x1007eae7
movzx eax, word [ebx + 2]
xor edi, edi
dec eax
test eax, eax
jle 0x1007eae3
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.1005db20
add esp, 0xc
test eax, eax
je 0x1007eb32
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.1007f1e0
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 0x1007e9a2
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.1007f1e0
mov eax, dword [esp + 0x48]
add esp, 0x14
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jmp 0x1007e9e6
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.1007f1e0
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.1005d650
mov ecx, eax
add esp, 0x1c
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x1007eb2c
mov ebx, dword [esp + 0x24]
add ebp, 8
mov edi, dword [esp + 0x5c]
movzx eax, word [ebx + 2]
dec eax
cmp edi, eax
jl 0x1007e920
jmp 0x1007eae3
xor eax, eax
xor edi, edi
cmp ax, word [ebx + 2]
jae 0x1007eae3
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.1007f1e0
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.1005e360
mov ebp, eax
add esp, 0x20
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x1007eb36
movzx eax, word [ebx + 2]
inc edi
add esi, 8
cmp edi, eax
jl 0x1007eaa0
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 0x1007e826
push edi
call fcn.1005d560
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x1007eb3a
cmp ebx, dword [esp + 0x64]
jb 0x1007e7d4
mov esi, dword [esp + 0x14]
push edi
push esi
push dword [esp + 0x30]
call fcn.1004aac0
add esp, 0xc
jmp 0x1007eb3e
mov ebp, dword [esp + 0x18]
jmp 0x1007eb3a
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push dword [esp + 0x2c]
call fcn.101fd0fd
add esp, 4
cmp dword [esi + 0x94], 1
je 0x1007eb69
cmp dword [esi + 0x1b4], 0x1022c138
je 0x1007eb69
push 0x19
call fcn.10052e90
add esp, 4
test ebp, ebp
je 0x1007eb76
push edi
call fcn.1005d7a0
add esp, 4
mov ecx, dword [esp + 0xac]
mov eax, ebp
pop ebp
pop edi
pop ebx
pop esi
xor ecx, esp
call fcn.101eafcd
add esp, 0xa0
ret