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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [0x102d94c0]
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 [0x102c6248]
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 [0x102c6208]
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 [0x102c6208]
push eax
lea eax, [esp + 0x60]
push eax
movsd qword [esp + 0x3c], xmm1
call fcn.10185790
mov edx, dword [esp + 0x1c]
add esp, 0xc
movsd xmm4, qword [0x10234c08]
mov eax, dword [edx + 0x30]
test eax, eax
je 0x101a344f
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 0x101a3246
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.101f469d
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
movsd xmm4, qword [0x10234c08]
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 0x101a32e9
cmp ecx, 0x10000
je 0x101a345b
cmp edi, dword [esp + 0x14]
jae 0x101a35a1
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 0x101a3321
mov eax, dword [esi]
add esi, 4
test eax, eax
je 0x101a341d
xorps xmm0, xmm0
ucomisd xmm3, xmm0
lahf
test ah, 0x44
jnp 0x101a3338
divsd xmm1, xmm3
divsd xmm2, xmm3
jmp 0x101a333e
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.1020c3d0
mov eax, dword [esp + 0x10]
xorps xmm2, xmm2
movsd xmm0, qword [0x102329a0]
fstp qword [esp + 0x18]
movsd xmm1, qword [esp + 0x18]
addsd xmm1, qword [eax + 0x78]
comisd xmm2, xmm1
jbe 0x101a33aa
nop dword [eax + eax]
addsd xmm1, xmm0
comisd xmm2, xmm1
ja 0x101a33a0
comisd xmm1, xmm0
jb 0x101a33ba
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x101a33b0
mulsd xmm1, qword [0x1028b590]
push edi
movsd xmm0, qword [0x102c6248]
subsd xmm0, xmm1
mulsd xmm0, qword [0x10235c48]
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 [0x10234c08]
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 0x101a3310
jmp 0x101a35a1
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 0x101a35a1
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 0x101a34d1
mov eax, dword [esi]
add esi, 4
test eax, eax
je 0x101a3572
fld qword [esp + 0x50]
fld qword [esp + 0x98]
call fcn.1020c3d0
mov eax, dword [esp + 0x10]
xorps xmm2, xmm2
movsd xmm0, qword [0x102329a0]
fstp qword [esp + 0x98]
movsd xmm1, qword [esp + 0x98]
addsd xmm1, qword [eax + 0x78]
comisd xmm2, xmm1
jbe 0x101a351a
nop dword [eax + eax]
addsd xmm1, xmm0
comisd xmm2, xmm1
ja 0x101a3510
comisd xmm1, xmm0
jb 0x101a352a
subsd xmm1, xmm0
comisd xmm1, xmm0
jae 0x101a3520
mulsd xmm1, qword [0x1028b590]
push edi
movsd xmm0, qword [0x102c6248]
subsd xmm0, xmm1
mulsd xmm0, qword [0x10235c48]
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 0x101a34c0
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.101f469d
mov esp, ebp
pop ebp
ret