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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x1035ae91
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x105be7d0]
xor eax, esp
mov dword [esp + 0x114], eax
push esi
push edi
mov eax, dword [0x105be7d0]
xor eax, esp
push eax
lea eax, [esp + 0x128]
mov dword fs:[0], eax
mov esi, edx
mov dword [esp + 0x24], ecx
movss xmm1, dword [esi + 0xc]
movss xmm0, dword [esi + 0x10]
mulss xmm0, dword [esi + 4]
mov eax, dword [ebp + 8]
mulss xmm1, dword [esi + 8]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], edi
subss xmm0, xmm1
call fcn.10102db0
call fcn.101c2e50
mov edx, dword [esi]
lea eax, [esp + 0x64]
mov ecx, dword [esp + 0x24]
movaps xmm2, xmm0
push eax
movss dword [esp + 0x64], xmm0
mov dword [esp + 0x68], 0
call fcn.1021a650
add esp, 4
mov dword [esp + 0x50], eax
test eax, eax
jne 0x1021b75a
push eax
push edi
push dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, esi
call fcn.1021b190
add esp, 0xc
jmp 0x1021bea7
xor edi, edi
cmp dword [esi + 0x20], edi
jle 0x1021b78c
xor eax, eax
mov dword [esp + 0x18], eax
mov edx, dword [esi + 0x28]
mov ecx, dword [esi]
add edx, eax
call fcn.1021af90
movzx eax, ax
test ax, ax
je 0x1021b7bd
mov eax, dword [esp + 0x18]
inc edi
add eax, 0x10
mov dword [esp + 0x18], eax
cmp edi, dword [esi + 0x20]
jl 0x1021b767
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
mov edi, dword [eax + 8]
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x18], eax
movzx edx, word [eax + 0x44]
cmp edx, 0x3e8
jle 0x1021b7c8
xor ecx, ecx
mov eax, edx
cmp edx, 0x10000
cmovl ecx, eax
movzx eax, cx
jmp 0x1021b7cd
push 0
push dword [esp + 0x4c]
jmp 0x1021b743
mov eax, 0x3e8
movzx eax, ax
mov ecx, eax
test ecx, ecx
jne 0x1021b7d8
jmp 0x1021b7dd
test eax, eax
cmove eax, ecx
mov edx, 0x40
mov dword [esp + 0xf4], 0
cmp ecx, edx
mov dword [esp + 0x100], 0x48
mov dword [esp + 0x104], 0x48
cmovl ecx, edx
cmp eax, edx
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x18]
cmovl eax, edx
lea edx, [esp + 0xf4]
mov dword [esp + 0xfc], eax
call fcn.10236110
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x80]
mov dword [ecx + 0x18], 0
mov dword [ecx], 0x10000
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0x10000
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov eax, dword [ecx + 0x14]
or eax, dword [ecx + 0x10]
je 0x1021b874
mov dword [ecx + 0x18], 2
push 0x105e238c
call dword [sym.imp.gdiplus.dll_GdipStringFormatGetGenericTypographic]
movss xmm0, dword [esp + 0x60]
xorps xmm3, xmm3
movsd xmm1, qword [0x10588dc0]
mov ecx, edi
cvtps2pd xmm0, xmm0
mov dword [0x105e2390], eax
lea eax, [esp + 0xac]
push eax
movss xmm4, dword [esi + 8]
divsd xmm1, xmm0
movaps xmm0, xmm4
cvtpd2ps xmm2, xmm1
movss xmm1, dword [esi + 4]
mulss xmm4, xmm2
movaps xmm5, xmm1
mulss xmm5, xmm2
mulss xmm1, xmm3
mulss xmm0, xmm3
addss xmm4, xmm1
movss xmm1, dword [esi + 0xc]
addss xmm5, xmm0
movss dword [esp + 0x60], xmm4
movss xmm4, dword [esi + 0x10]
movss dword [esp + 0x58], xmm5
movaps xmm0, xmm4
movaps xmm5, xmm1
mulss xmm4, xmm2
mulss xmm5, xmm2
mulss xmm1, xmm3
mulss xmm0, xmm3
addss xmm4, xmm1
movss xmm1, dword [esi + 0x14]
addss xmm5, xmm0
movss dword [esp + 0x5c], xmm4
movss xmm4, dword [esi + 0x18]
movss dword [esp + 0x6c], xmm5
movaps xmm0, xmm4
movaps xmm5, xmm1
mulss xmm4, xmm2
mulss xmm5, xmm2
mulss xmm0, xmm3
mulss xmm1, xmm3
addss xmm5, xmm0
addss xmm4, xmm1
addss xmm5, xmm3
addss xmm4, xmm3
movss dword [esp + 0x84], xmm5
movss dword [esp + 0x80], xmm4
call fcn.10219ad0
add esp, 4
mov dword [esp + 0x28], 0
cmp dword [esi + 0x20], 0
movdqu xmm0, xmmword [eax]
movdqu xmmword [esp + 0x30], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x40], xmm0
jle 0x1021be24
xor eax, eax
mov dword [esp + 0x18], eax
lea esp, [esp]
mov edx, dword [esi + 0x28]
mov ecx, dword [esi]
add edx, eax
call fcn.1021af90
movzx eax, ax
mov dword [esp + 0x84], eax
cmp eax, 0x20
jne 0x1021ba97
movdqu xmm0, xmmword [esi]
mov eax, dword [esi + 0x28]
mov dword [esp + 0xf0], eax
add eax, dword [esp + 0x18]
movdqu xmmword [esp + 0xc8], xmm0
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x20]
movdqu xmm0, xmmword [esi + 0x10]
push eax
sub esp, 0x18
mov dword [esp + 0x3c], 0
movdqu xmmword [esp + 0xf4], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [esp + 0x104], xmm0
movups xmm0, xmmword [esp + 0x54]
mov dword [esp + 0x104], 1
movups xmmword [esp + 8], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp], xmm0
call dword [sym.imp.gdiplus.dll_GdipCreateMatrix2]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0x130], 0
push eax
push dword [edi]
call dword [sym.imp.gdiplus.dll_GdipSetWorldTransform]
test eax, eax
je 0x1021ba60
mov dword [edi + 4], eax
mov dword [esp + 0x130], 0xffffffff
push dword [esp + 0x1c]
call dword [sym.imp.gdiplus.dll_GdipDeleteMatrix]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xc8]
push 0
push dword [esp + 0x4c]
push dword [esp + 0x34]
call fcn.1021b190
add esp, 0xc
jmp 0x1021be07
mov eax, dword [esp + 0x2c]
mov edx, dword [esi + 0x28]
mov ecx, dword [esp + 0x18]
movdqu xmm7, xmmword [eax]
movq xmm0, qword [eax + 0x10]
movq qword [esp + 0x9c], xmm0
movaps xmm6, xmm7
mulss xmm6, dword [ecx + edx]
movaps xmm0, xmm7
shufps xmm0, xmm7, 0xaa
movaps xmm4, xmm7
movaps xmmword [esp + 0xf4], xmm0
movaps xmm5, xmm7
mulss xmm0, dword [ecx + edx + 4]
movaps xmm2, xmmword [esp + 0xf4]
shufps xmm5, xmm7, 0xff
movaps xmm1, xmm2
mulss xmm1, dword [esp + 0x5c]
addss xmm6, xmm0
shufps xmm4, xmm7, 0x55
movaps xmm0, xmm5
mulss xmm0, dword [ecx + edx + 4]
movaps xmm3, xmm4
mulss xmm3, dword [ecx + edx]
addss xmm6, dword [esp + 0x9c]
addss xmm3, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esp + 0x54]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0x54]
addss xmm3, dword [esp + 0xa0]
movss dword [esp + 0x20], xmm1
movss dword [esp + 0xac], xmm1
movaps xmm1, xmm5
mulss xmm1, dword [esp + 0x5c]
addss xmm1, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esp + 0x68]
mulss xmm7, dword [esp + 0x80]
movss dword [esp + 0xb0], xmm1
movaps xmm1, xmm2
mulss xmm1, dword [esp + 0x58]
mulss xmm2, dword [esp + 0x7c]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0x68]
mulss xmm4, dword [esp + 0x80]
addss xmm2, xmm7
movss dword [esp + 0xb4], xmm1
movaps xmm1, xmm5
mulss xmm1, dword [esp + 0x58]
mulss xmm5, dword [esp + 0x7c]
addss xmm2, xmm6
addss xmm1, xmm0
addss xmm5, xmm4
xorps xmm4, xmm4
movss dword [esp + 0xb8], xmm1
movdqu xmm0, xmmword [esp + 0xac]
movss xmm1, dword [esp + 0x64]
addss xmm5, xmm3
mulss xmm1, dword [esp + 0x60]
movdqu xmmword [esp + 0x8c], xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, dword [0x10588d94]
movss xmm3, dword [esp + 0x94]
xorps xmm1, xmmword [0x105890e0]
movss dword [esp + 0x78], xmm3
mulss xmm3, xmm1
movss dword [esp + 0x20], xmm0
mulss xmm0, xmm4
unpcklps xmm2, xmm5
movq qword [esp + 0x9c], xmm2
movss xmm2, dword [esp + 0x90]
addss xmm3, xmm0
mulss xmm2, dword [0x10588d94]
addss xmm3, dword [esp + 0x9c]
movss dword [esp + 0x1c], xmm2
movss dword [esp + 0x4c], xmm3
movss xmm3, dword [esp + 0x98]
movss dword [esp + 0x88], xmm3
mov edx, dword [ecx + edx + 8]
movaps xmm0, xmm2
mov ecx, dword [esi]
mulss xmm3, xmm1
mulss xmm0, xmm4
addss xmm3, xmm0
addss xmm3, dword [esp + 0xa0]
movss dword [esp + 0x6c], xmm3
call fcn.1021aef0
ucomiss xmm0, dword [0x10588970]
movss xmm1, dword [esp + 0x20]
movss xmm4, dword [esp + 0x1c]
lahf
test ah, 0x44
jnp 0x1021bca7
mulss xmm1, xmm0
mulss xmm4, xmm0
movss xmm7, dword [esp + 0x38]
lea eax, [esp + 0x1c]
movss xmm6, dword [esp + 0x88]
movaps xmm0, xmm1
mulss xmm1, dword [esp + 0x34]
movaps xmm3, xmm4
push eax
mulss xmm0, dword [esp + 0x34]
movaps xmm2, xmm6
sub esp, 0x18
mov dword [esp + 0x38], 0
mulss xmm4, dword [esp + 0x58]
mulss xmm6, dword [esp + 0x58]
movss xmm5, dword [esp + 0x88]
addss xmm4, xmm1
movss xmm1, dword [esp + 0x94]
mulss xmm3, xmm7
mulss xmm2, xmm7
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm1, dword [esp + 0x50]
mulss xmm0, dword [esp + 0x4c]
addss xmm6, xmm1
movaps xmm1, xmm5
mulss xmm5, dword [esp + 0x58]
mulss xmm1, xmm7
addss xmm2, xmm0
movss xmm7, dword [esp + 0x68]
movaps xmm0, xmm7
mulss xmm7, dword [esp + 0x50]
mulss xmm0, dword [esp + 0x4c]
addss xmm5, xmm7
addss xmm1, xmm0
addss xmm5, dword [esp + 0x60]
addss xmm1, dword [esp + 0x5c]
movss dword [esp + 0x14], xmm5
movss dword [esp + 0x10], xmm1
movss dword [esp + 0xc], xmm6
movss dword [esp + 8], xmm2
movss dword [esp + 4], xmm4
movss dword [esp], xmm3
call dword [sym.imp.gdiplus.dll_GdipCreateMatrix2]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x130], 1
push eax
push dword [edi]
call dword [sym.imp.gdiplus.dll_GdipSetWorldTransform]
test eax, eax
je 0x1021bdaa
mov dword [edi + 4], eax
mov dword [esp + 0x130], 0xffffffff
push dword [esp + 0x4c]
call dword [sym.imp.gdiplus.dll_GdipDeleteMatrix]
mov eax, dword [esp + 0x48]
xorps xmm0, xmm0
movups xmmword [esp + 0xf4], xmm0
test eax, eax
je 0x1021bdd7
mov eax, dword [eax + 4]
jmp 0x1021bdd9
xor eax, eax
push eax
push dword [0x105e238c]
lea eax, [esp + 0xfc]
push eax
mov eax, dword [esp + 0x5c]
push dword [eax]
lea eax, [esp + 0x94]
push 1
push eax
push dword [edi]
call dword [sym.imp.gdiplus.dll_GdipDrawString]
test eax, eax
je 0x1021be07
mov dword [edi + 4], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
inc ecx
add eax, 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0x18], eax
cmp ecx, dword [esi + 0x20]
jl 0x1021b990
movups xmm0, xmmword [esp + 0x38]
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
sub esp, 0x18
movups xmmword [esp + 8], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [esp], xmm0
call dword [sym.imp.gdiplus.dll_GdipCreateMatrix2]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], esi
mov dword [esp + 0x130], 2
push esi
push dword [edi]
call dword [sym.imp.gdiplus.dll_GdipSetWorldTransform]
test eax, eax
je 0x1021be82
mov dword [edi + 4], eax
mov dword [esp + 0x130], 0xffffffff
push esi
call dword [sym.imp.gdiplus.dll_GdipDeleteMatrix]
mov esi, dword [esp + 0x50]
push dword [esi]
call dword [sym.imp.gdiplus.dll_GdipDeleteFont]
push esi
call dword [sym.imp.gdiplus.dll_GdipFree]
mov ecx, dword [esp + 0x128]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x114]
xor ecx, esp
call fcn.1033d458
mov esp, ebp
pop ebp
ret