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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [0x102cf440]
xor eax, esp
mov dword [esp + 0xa0], eax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [edx + 0xc]
push esi
mov esi, dword [edx + 8]
movsd xmm0, qword [0x102bc1b8]
mov dword [esp + 0x38], ecx
mov ecx, dword [edx]
push edi
mov edi, dword [edx + 4]
mov dword [esp + 0x24], edx
cdq
mov dword [esp + 0x10], ecx
and edx, 3
mov ecx, dword [esp + 0x24]
add eax, edx
movd xmm1, esi
cvtdq2pd xmm1, xmm1
sar eax, 2
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
imul ecx, eax
addsd xmm1, qword [0x102bc178]
movsd qword [esp + 0x40], xmm0
xorps xmm0, xmm0
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x28], xmm1
movd xmm1, ebx
lea eax, [edi + ecx*4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
cvtdq2pd xmm1, xmm1
push dword [eax + 0x34]
addsd xmm1, qword [0x102bc178]
push eax
lea eax, [esp + 0x60]
push eax
movsd qword [esp + 0x3c], xmm1
call fcn.1017c080
mov edx, dword [esp + 0x1c]
add esp, 0xc
movsd xmm4, qword [0x1022ac08]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x10199d3f
lea ecx, [esp + 0x98]
shl esi, 0x10
shl ebx, 0x10
add esi, 0x8000
push ecx
add ebx, 0x8000
mov dword [esp + 0x9c], esi
push eax
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xa8], 0x10000
call sym.project.dll_pixman_transform_point_3d
add esp, 8
test eax, eax
jne 0x10199b36
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.101eafcd
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
movsd xmm4, qword [0x1022ac08]
mov ecx, dword [esp + 0xa0]
movd xmm1, dword [esp + 0x98]
mov eax, dword [edx + 0x30]
movd xmm2, dword [esp + 0x9c]
movd xmm3, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, dword [eax]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm2, xmm2
mulsd xmm0, xmm4
cvtdq2pd xmm3, xmm3
movsd qword [esp + 0x40], xmm0
movd xmm0, dword [eax + 0xc]
mov eax, dword [eax + 0x18]
mulsd xmm1, xmm4
mulsd xmm2, xmm4
mulsd xmm3, xmm4
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x30], xmm2
cvtdq2pd xmm0, xmm0
movsd qword [esp + 0x98], xmm3
mulsd xmm0, xmm4
movsd qword [esp + 0x48], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm4
movsd qword [esp + 0x50], xmm0
test eax, eax
jne 0x10199bd9
cmp ecx, 0x10000
je 0x10199d4b
cmp edi, dword [esp + 0x14]
jae 0x10199e91
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 0xc]
movsd xmm5, qword [esp + 0x40]
movsd xmm6, qword [esp + 0x48]
lea ebx, [eax*4]
nop dword [eax]
test esi, esi
je 0x10199c11
mov eax, dword [esi]
add esi, 4
test eax, eax
je 0x10199d0d
xorps xmm0, xmm0
ucomisd xmm3, xmm0
lahf
test ah, 0x44
jnp 0x10199c28
divsd xmm1, xmm3
divsd xmm2, xmm3
jmp 0x10199c2e
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [edx + 0x74]
mulsd xmm0, xmm4
subsd xmm2, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [edx + 0x70]
movsd qword [esp + 0x18], xmm2
fld qword [esp + 0x18]
mulsd xmm0, xmm4
subsd xmm1, xmm0
movsd qword [esp + 0x18], xmm1
fld qword [esp + 0x18]
call fcn.10202c90
mov eax, dword [esp + 0x10]
xorps xmm2, xmm2
movsd xmm0, qword [0x102289a0]
fstp qword [esp + 0x18]
movsd xmm1, qword [esp + 0x18]
addsd xmm1, qword [eax + 0x78]
comisd xmm2, xmm1
jbe 0x10199c9a
nop dword [eax + eax]
addsd xmm1, xmm0
comisd xmm2, xmm1
ja 0x10199c90
comisd xmm1, xmm0
jb 0x10199caa
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x10199ca0
mulsd xmm1, qword [0x10281550]
push edi
movsd xmm0, qword [0x102bc1b8]
subsd xmm0, xmm1
mulsd xmm0, qword [0x1022bc48]
cvttsd2si eax, xmm0
cdq
push edx
push eax
lea eax, [esp + 0x64]
push eax
call dword [esp + 0x4c]
movsd xmm1, qword [esp + 0x38]
add esp, 0x10
movsd xmm2, qword [esp + 0x30]
movsd xmm3, qword [esp + 0x98]
movsd xmm4, qword [0x1022ac08]
movsd xmm0, qword [esp + 0x50]
movsd xmm5, qword [esp + 0x40]
movsd xmm6, qword [esp + 0x48]
mov edx, dword [esp + 0x10]
addsd xmm1, xmm5
add edi, ebx
addsd xmm2, xmm6
addsd xmm3, xmm0
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x30], xmm2
movsd qword [esp + 0x98], xmm3
cmp edi, dword [esp + 0x14]
jb 0x10199c00
jmp 0x10199e91
movsd xmm1, qword [esp + 0x28]
movsd xmm2, qword [esp + 0x30]
movd xmm0, dword [edx + 0x70]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm4
subsd xmm1, xmm0
movd xmm0, dword [edx + 0x74]
cvtdq2pd xmm0, xmm0
movsd qword [esp + 0x28], xmm1
mulsd xmm0, xmm4
movsd qword [esp + 0x98], xmm1
subsd xmm2, xmm0
movsd qword [esp + 0x30], xmm2
movsd qword [esp + 0x50], xmm2
cmp edi, dword [esp + 0x14]
jae 0x10199e91
mov eax, dword [esp + 0x18]
mov esi, dword [ebp + 0xc]
movsd xmm0, qword [esp + 0x40]
movsd xmm3, qword [esp + 0x48]
lea ebx, [eax*4]
nop dword [eax]
test esi, esi
je 0x10199dc1
mov eax, dword [esi]
add esi, 4
test eax, eax
je 0x10199e62
fld qword [esp + 0x50]
fld qword [esp + 0x98]
call fcn.10202c90
mov eax, dword [esp + 0x10]
xorps xmm2, xmm2
movsd xmm0, qword [0x102289a0]
fstp qword [esp + 0x98]
movsd xmm1, qword [esp + 0x98]
addsd xmm1, qword [eax + 0x78]
comisd xmm2, xmm1
jbe 0x10199e0a
nop dword [eax + eax]
addsd xmm1, xmm0
comisd xmm2, xmm1
ja 0x10199e00
comisd xmm1, xmm0
jb 0x10199e1a
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x10199e10
mulsd xmm1, qword [0x10281550]
push edi
movsd xmm0, qword [0x102bc1b8]
subsd xmm0, xmm1
mulsd xmm0, qword [0x1022bc48]
cvttsd2si eax, xmm0
cdq
push edx
push eax
lea eax, [esp + 0x64]
push eax
call dword [esp + 0x4c]
movsd xmm1, qword [esp + 0x38]
add esp, 0x10
movsd xmm2, qword [esp + 0x30]
movsd xmm0, qword [esp + 0x40]
movsd xmm3, qword [esp + 0x48]
addsd xmm1, xmm0
add edi, ebx
addsd xmm2, xmm3
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x98], xmm1
movsd qword [esp + 0x30], xmm2
movsd qword [esp + 0x50], xmm2
cmp edi, dword [esp + 0x14]
jb 0x10199db0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xac]
pop edi
pop esi
inc dword [eax + 0xc]
mov eax, dword [eax + 4]
pop ebx
xor ecx, esp
call fcn.101eafcd
mov esp, ebp
pop ebp
ret