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

Disassembly:
push 0xffffffffffffffff
push 0x1035ae38
mov eax, dword fs:[0]
push eax
sub esp, 0x78
mov eax, dword [0x105be7d0]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x105be7d0]
xor eax, esp
push eax
lea eax, [esp + 0x8c]
mov dword fs:[0], eax
mov edi, edx
mov dword [esp + 0x48], ecx
mov ebp, dword [ecx + 8]
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x44], eax
cmp dword [ebp + 0xc], 0
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], eax
jne 0x1021b213
mov ecx, dword [ecx + 0x10]
mov edx, 0x1fd
push 0xffffffffffffffff
push 8
call fcn.10245920
add esp, 8
mov dword [ebp + 0xc], eax
mov eax, dword [edi]
mov esi, dword [eax + 0x24]
movzx edx, word [esi + 0x44]
cmp edx, 0x3e8
jle 0x1021b236
xor ecx, ecx
mov eax, edx
cmp edx, 0x10000
cmovl ecx, eax
movzx eax, cx
jmp 0x1021b23b
mov eax, 0x3e8
movzx ecx, ax
mov dword [esp + 0x40], ecx
mov eax, ecx
test ecx, ecx
jne 0x1021b24a
jmp 0x1021b24f
test eax, eax
cmove eax, ecx
mov edx, 0x40
mov dword [esp + 0x6c], 0
cmp ecx, edx
mov dword [esp + 0x78], 0x48
mov dword [esp + 0x7c], 0x48
cmovl ecx, edx
cmp eax, edx
mov dword [esp + 0x70], ecx
mov ecx, esi
cmovl eax, edx
lea edx, [esp + 0x6c]
mov dword [esp + 0x74], eax
call fcn.10236110
mov ecx, dword [esi + 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 0x1021b2ce
mov dword [ecx + 0x18], 2
xor esi, esi
mov dword [esp + 0x2c], esi
cmp dword [edi + 0x20], esi
jle 0x1021b675
xor ebp, ebp
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 0x34]
mov edx, dword [edi]
push dword [eax + 0xc]
mov eax, dword [edi + 0x28]
push dword [eax + ebp + 8]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x10]
call fcn.1021b060
mov edx, eax
add esp, 8
test edx, edx
je 0x1021b660
movd xmm0, dword [esp + 0x40]
movsd xmm1, qword [0x10588b18]
cvtdq2pd xmm0, xmm0
mov ecx, dword [edi + 0x28]
mov eax, dword [edi]
cmp dword [eax + 0x30], 0
divsd xmm1, xmm0
movss xmm2, dword [edi + 4]
xorps xmm0, xmm0
cvtpd2ps xmm6, xmm1
movss xmm1, dword [edi + 8]
movaps xmm7, xmm2
movaps xmm5, xmm6
mulss xmm7, xmm6
mulss xmm5, xmm0
movaps xmm4, xmm6
mulss xmm4, xmm0
movaps xmm0, xmm1
mulss xmm2, xmm5
mulss xmm1, xmm6
mulss xmm0, xmm4
addss xmm2, xmm1
movss xmm1, dword [edi + 0xc]
movaps xmm3, xmm1
mulss xmm1, xmm5
addss xmm7, xmm0
mulss xmm3, xmm6
movss dword [esp + 0x50], xmm2
movss dword [esp + 0x18], xmm2
movss xmm2, dword [edi + 0x10]
movaps xmm0, xmm2
movss dword [esp + 0x4c], xmm7
mulss xmm2, xmm6
mulss xmm0, xmm4
addss xmm1, xmm2
movss xmm2, dword [edi + 0x14]
addss xmm3, xmm0
movss dword [esp + 0x58], xmm1
movss xmm1, dword [edi + 0x18]
movss dword [esp + 0x54], xmm3
movaps xmm0, xmm1
movss dword [esp + 0x1c], xmm3
movaps xmm3, xmm2
mulss xmm3, xmm6
mulss xmm0, xmm4
mulss xmm2, xmm5
mulss xmm1, xmm6
addss xmm3, xmm0
movdqu xmm0, xmmword [esp + 0x4c]
addss xmm2, xmm1
addss xmm3, dword [ecx + ebp]
movdqu xmmword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x78]
addss xmm2, dword [ecx + ebp + 4]
unpcklps xmm3, xmm2
movq qword [esp + 0x7c], xmm3
je 0x1021b44a
movss xmm2, dword [esp + 0x1c]
xorps xmm1, xmm1
movss xmm3, dword [0x105888e8]
movaps xmm6, xmm0
mulss xmm2, xmm1
mulss xmm6, xmm1
movss xmm1, dword [esp + 0x18]
addss xmm2, xmm7
mulss xmm1, xmm3
addss xmm6, dword [esp + 0x70]
mulss xmm7, xmm3
addss xmm1, xmm0
addss xmm7, dword [esp + 0x74]
movss dword [esp + 0x18], xmm1
jmp 0x1021b462
movss xmm7, dword [esp + 0x74]
movss xmm6, dword [esp + 0x70]
movss xmm2, dword [esp + 0x6c]
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm2
movss dword [esp + 0x20], xmm6
movss dword [esp + 0x24], xmm7
test ebx, ebx
jne 0x1021b56e
mov eax, dword [esp + 0x44]
movss xmm5, dword [eax]
movss xmm3, dword [eax + 8]
movaps xmm1, xmm5
movss xmm4, dword [eax + 4]
movaps xmm0, xmm3
mulss xmm1, xmm2
movss xmm2, dword [eax + 0xc]
mulss xmm0, xmm6
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm6
movss dword [esp + 0x4c], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x1c]
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esp + 0x18]
mulss xmm3, dword [esp + 0x80]
movss dword [esp + 0x50], xmm1
movaps xmm1, xmm5
mulss xmm5, dword [esp + 0x7c]
mulss xmm1, xmm7
addss xmm5, xmm3
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [esp + 0x18]
mulss xmm2, dword [esp + 0x80]
addss xmm5, dword [eax + 0x10]
movss dword [esp + 0x54], xmm1
movaps xmm1, xmm4
mulss xmm4, dword [esp + 0x7c]
mulss xmm1, xmm7
addss xmm4, xmm2
addss xmm1, xmm0
addss xmm4, dword [eax + 0x14]
movss dword [esp + 0x58], xmm1
movdqu xmm0, xmmword [esp + 0x4c]
unpcklps xmm5, xmm4
movdqu xmmword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x78]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x74]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x70]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x6c]
movq qword [esp + 0x7c], xmm5
movss dword [esp + 0x1c], xmm0
mov ecx, edx
call fcn.102157c0
movss xmm0, dword [esp + 0x80]
mov esi, eax
movss xmm6, dword [esp + 0x18]
lea eax, [esp + 0x28]
push eax
sub esp, 0x18
mov dword [esp + 0x44], 0
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x98]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x40]
movss dword [esp + 0xc], xmm6
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x3c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp], xmm0
call dword [sym.imp.gdiplus.dll_GdipCreateMatrix2]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebp
mov dword [esp + 0x94], 0
push ebp
push dword [esi]
call dword [sym.imp.gdiplus.dll_GdipTransformPath]
test eax, eax
je 0x1021b601
mov dword [esi + 4], eax
mov dword [esp + 0x94], 0xffffffff
push ebp
call dword [sym.imp.gdiplus.dll_GdipDeleteMatrix]
test ebx, ebx
jne 0x1021b636
mov eax, dword [esp + 0x38]
push dword [esi]
mov ebp, dword [esp + 0x40]
push dword [eax + 4]
push dword [ebp]
call dword [sym.imp.gdiplus.dll_GdipFillPath]
test eax, eax
je 0x1021b649
mov dword [ebp + 4], eax
jmp 0x1021b649
push 0
push dword [esi]
push dword [ebx]
call dword [sym.imp.gdiplus.dll_GdipAddPathPath]
test eax, eax
je 0x1021b649
mov dword [ebx + 4], eax
push dword [esi]
call dword [sym.imp.gdiplus.dll_GdipDeletePath]
push esi
call dword [sym.imp.gdiplus.dll_GdipFree]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
inc esi
add ebp, 0x10
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebp
cmp esi, dword [edi + 0x20]
jl 0x1021b2e3
mov ecx, dword [esp + 0x8c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.1033d458
add esp, 0x84
ret