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

Disassembly:
sub esp, 0xa0
mov eax, dword [0x1032e6c0]
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 0x1004316f
mov eax, 0x64
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.1026465b
add esp, 0xa0
ret
push ebx
push edi
call fcn.100444e0
mov ebx, eax
mov dword [esp + 0x20], ebx
call fcn.1001c540
mov edi, eax
mov dword [esp + 0xc], edi
test edi, edi
jne 0x100431ad
push 1
call fcn.100135f0
add esp, 4
pop edi
pop ebx
pop esi
mov ecx, dword [esp + 0x9c]
xor ecx, esp
call fcn.1026465b
add esp, 0xa0
ret
cmp dword [esi + 0x94], 1
push ebp
push ebx
push esi
jne 0x1004321e
call fcn.10043950
movups xmm0, xmmword [esi + 0xb8]
mov ebp, eax
lea eax, [esp + 0x70]
movsd xmm1, qword [0x102a2928]
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 fcn.10013420
add esp, 0x14
jmp 0x10043232
call fcn.10044b60
mov ebp, eax
lea eax, [esp + 0x70]
push eax
call fcn.10012f60
add esp, 0xc
test ebp, ebp
jne 0x10043697
push 0x102a5aa0
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 0x1004327d
push str._cairo_win32_scaled_font_glyph_path
call fcn.1005bc00
mov esi, dword [esp + 0x18]
mov ebp, eax
jmp 0x10043671
test esi, esi
je 0x100432a6
push esi
call fcn.1026cf9e
mov ebx, eax
mov dword [esp + 0x30], eax
add esp, 4
test ebx, ebx
jne 0x100432ae
push 1
call fcn.100135f0
mov esi, dword [esp + 0x18]
mov ebp, eax
jmp 0x10043671
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x2c], eax
push 0x102a5aa0
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 0x100432f1
push str._cairo_win32_scaled_font_glyph_path
call fcn.1005bc00
add esp, 4
mov ebp, eax
jmp 0x10043664
mov ecx, dword [esp + 0x2c]
lea eax, [ecx + esi]
mov dword [esp + 0x64], eax
cmp ecx, eax
jae 0x10043648
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.10043cf0
push dword [esp + 0x30]
push dword [esp + 0x38]
push edi
call fcn.1001d510
mov ebp, eax
add esp, 0x20
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x10043664
cmp ebx, esi
jae 0x1004362f
movzx eax, word [ebx]
lea esi, [ebx + 4]
sub eax, 1
je 0x100435c0
sub eax, 1
je 0x10043437
sub eax, 1
jne 0x10043617
movzx eax, word [ebx + 2]
xor edi, edi
sub eax, 2
test eax, eax
jle 0x10043613
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.10043cf0
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.10043cf0
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.10043cf0
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.1001c5e0
mov ecx, eax
add esp, 0x58
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x1004365c
movzx eax, word [ebx + 2]
add edi, 2
sub eax, 2
add esi, 0x10
cmp edi, eax
jl 0x10043390
mov edi, ebp
jmp 0x10043617
movzx eax, word [ebx + 2]
xor edi, edi
dec eax
test eax, eax
jle 0x10043613
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.1001cab0
add esp, 0xc
test eax, eax
je 0x1004365c
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.10043cf0
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 0x100434d2
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.10043cf0
mov eax, dword [esp + 0x48]
add esp, 0x14
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
jmp 0x10043516
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.10043cf0
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.1001c5e0
mov ecx, eax
add esp, 0x1c
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x100436bb
mov ebx, dword [esp + 0x24]
add ebp, 8
mov edi, dword [esp + 0x5c]
movzx eax, word [ebx + 2]
dec eax
cmp edi, eax
jl 0x10043450
jmp 0x10043613
xor eax, eax
xor edi, edi
cmp ax, word [ebx + 2]
jae 0x10043613
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.10043cf0
push dword [esp + 0x30]
push dword [esp + 0x38]
push dword [esp + 0x2c]
call fcn.1001d330
mov ebp, eax
add esp, 0x20
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x10043660
movzx eax, word [ebx + 2]
inc edi
add esi, 8
cmp edi, eax
jl 0x100435d0
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 0x10043356
push edi
call fcn.1001c4f0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x10043664
cmp ebx, dword [esp + 0x64]
jb 0x10043304
mov esi, dword [esp + 0x14]
push edi
push esi
push dword [esp + 0x30]
call fcn.100107a0
add esp, 0xc
jmp 0x10043668
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push dword [esp + 0x2c]
call fcn.1026cbe4
add esp, 4
cmp dword [esi + 0x94], 1
je 0x10043693
cmp dword [esi + 0x1b4], 0x102a5a64
je 0x10043693
push 0x19
call fcn.100135f0
add esp, 4
test ebp, ebp
je 0x100436a0
push edi
call fcn.1001c730
add esp, 4
mov ecx, dword [esp + 0xac]
mov eax, ebp
pop ebp
pop edi
pop ebx
pop esi
xor ecx, esp
call fcn.1026465b
add esp, 0xa0
ret
mov ebp, dword [esp + 0x18]
jmp 0x10043664