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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x10c0
call fcn.1015e8d0
mov esi, esp
mov eax, dword [0x101db764]
xor eax, ebp
mov dword [esi + 0x10b8], eax
mov eax, edx
mov dword [esi + 8], edx
mov dword [esi + 0x38], ecx
mov edi, dword [ecx]
neg eax
mov dword [esi + 0x84], eax
lea eax, [edx*4]
neg eax
mov dword [esi], eax
mov eax, dword [ecx + 8]
lea ecx, [ecx + 0x205c]
mov edx, dword [edi + 4]
mov ebx, dword [edi + 8]
mov dword [esi + 0x10], edi
mov edi, dword [edi + 0x20]
mov dword [esi + 0x50], edi
lea edi, [edx + 0x800]
mov dword [esi + 0x34], ebx
xor ebx, ebx
mov dword [esi + 4], edx
mov dword [esi + 0x20], edi
lea edi, [edx*4 + 0x2000]
lea edx, [ecx - 0x2000]
mov dword [esi + ebx*4 + 0xa8], edx
mov edx, dword [esi]
lea edx, [ecx + edx]
add ecx, edi
mov dword [esi + ebx*4 + 0xa0], edx
inc ebx
cmp ebx, eax
jl 0x10150f01
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x38]
mov ebx, eax
mov dword [esi + 0x2c], ebx
imul ecx, eax
mov eax, dword [edx + 0x34]
mov edi, dword [edx + 0x14]
cmp eax, 4
mov dword [esi + 0x44], eax
jg 0x10150f4b
test edi, edi
jne 0x10150f4b
cmp dword [edx + 0x38], 0
je 0x10151168
lea eax, [edx + ecx*4]
lea ecx, [ebx + ebx*2]
shl ecx, 5
lea eax, [ecx + eax + 0x5c]
mov ecx, dword [edx + 0x18]
mov dword [esi + 0x40], eax
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
cmp ecx, eax
cmovle eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 8]
imul eax, ebx
shl eax, 2
call fcn.1015e8d0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x3c], eax
mov esp, eax
xor eax, eax
cmp dword [esi + 0x44], 0
mov dword [esi], ecx
mov dword [esi + 0x14], edi
sete al
sub ecx, edi
movss xmm0, dword [eax*4 + 0x101c1f68]
mov eax, dword [esi + 4]
mov dword [esi + 0xc], ecx
lea eax, [eax*4 + 0x2060]
imul eax, ebx
lea eax, [eax + edi*4]
lea ecx, [edx + eax + 0x5c]
mov eax, dword [esi + 0x34]
lea edx, [eax*4]
shl eax, 3
mov dword [esi + 0x20], edx
lea edx, [eax + eax*2]
xor eax, eax
mov edi, dword [esi]
cmp dword [esi + 0x14], edi
jge 0x10150ff0
mov ebx, dword [esi + 0xc]
mov edi, ecx
movss xmm2, dword [edi]
movss xmm1, dword [edi + edx]
subss xmm2, xmm0
maxss xmm1, xmm2
movss dword [edi], xmm1
add edi, 4
dec ebx
jne 0x10150fd5
inc eax
add ecx, dword [esi + 0x20]
cmp eax, dword [esi + 0x2c]
jl 0x10150fc9
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x48]
mov ebx, dword [esi + 0x38]
cmp eax, ecx
cmovge ecx, eax
cmp dword [esi + 0x2c], 0
mov dword [esi + 0x1c], ecx
mov ecx, dword [ebx + 0x28]
mov dword [esi], ecx
jle 0x101510de
mov ecx, dword [esi + 8]
mov dword [esi + 0x30], 0
mov dword [esi + 0x18], 0
mov eax, dword [esi + 0x14]
cmp eax, dword [esi + 0x48]
jge 0x101510c6
mov edx, dword [esi + 0x18]
mov edi, eax
imul edx, ecx
mov dword [esi + 0x4c], edx
mov ecx, dword [esi + 0x50]
mov edx, dword [esi + 0x4c]
movsx eax, word [ecx + edi*2]
movsx ebx, word [ecx + edi*2 + 2]
mov ecx, dword [ebp + 8]
inc edi
mov dword [esi + 0x20], edi
sub ebx, eax
shl eax, cl
shl ebx, cl
lea edx, [eax + edx]
test ebx, ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x34], edx
jle 0x10151096
add eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x3c]
lea edi, [ecx + eax*4]
mov eax, dword [esi]
push eax
call fcn.10154420
add esp, 4
mov ecx, eax
sar ecx, 0x14
xorps xmm0, xmm0
cvtsi2ss xmm0, ecx
movss dword [edi], xmm0
add edi, 4
dec ebx
jne 0x10151075
jmp 0x10151098
mov eax, dword [esi]
mov dword [esi], eax
mov ebx, dword [esi + 0x38]
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x34]
lea eax, [eax + ecx*4]
push dword [ebx + 0x24]
push 0x3f800000
push dword [esi + 0xc]
push eax
call fcn.101577cf
add esp, 0x10
mov edi, dword [esi + 0x20]
cmp edi, dword [esi + 0x1c]
jl 0x10151041
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 8]
inc eax
add dword [esi + 0x30], ecx
cmp eax, dword [esi + 0x2c]
mov dword [esi + 0x18], eax
jne 0x1015102a
jmp 0x101510e1
mov ecx, dword [esi + 8]
mov eax, dword [esi]
mov edx, dword [esi + 4]
xor edi, edi
mov dword [ebx + 0x28], eax
mov eax, 0x800
shr edx, 1
sub eax, ecx
add edx, eax
shl edx, 2
mov dword [esi + 4], edx
mov eax, dword [esi + edi*4 + 0xa8]
mov ecx, dword [esi + 8]
lea ecx, [eax + ecx*4]
push dword [esi + 4]
push ecx
push eax
call fcn.10161960
add esp, 0xc
inc edi
cmp edi, dword [esi + 0x2c]
jl 0x101510fc
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x3c]
xor eax, eax
lea edi, [esi + 0xa0]
push dword [ebx + 0x24]
push eax
push dword [ebx + 0x10]
push dword [ebp + 8]
push eax
mov eax, dword [esi + 0x2c]
push eax
push eax
push dword [esi + 0x1c]
push dword [esi + 0x14]
push dword [esi + 0x40]
push edi
call fcn.10151907
add esp, 0x2c
mov eax, dword [esi + 0x44]
inc eax
mov dword [ebx + 0x34], eax
mov ecx, dword [esi + 0x10b8]
xor ecx, ebp
call fcn.1015e65c
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esi + 0x44], 0
je 0x10151181
mov edi, dword [edx + 0x30]
movd xmm0, dword [0x101c1f24]
lea eax, [edx + 0x24]
mov dword [esi + 0x14], eax
jmp 0x101511ee
mov edi, dword [edx + 0x24]
lea eax, [edx + 0x24]
lea edx, [esi + 0xb0]
mov dword [esi + 0x14], eax
lea eax, [esi + 0xa8]
push edi
push ebx
push 0x800
push edx
push eax
mov ebx, ecx
call fcn.10157aa4
add esp, 0x14
lea ecx, [esi + 0x9c]
lea eax, [esi + 0x650]
push edi
push ecx
push 0x26c
push 0x530
lea ecx, [esi + 0xb0]
push ecx
push eax
call fcn.10157f07
mov ecx, ebx
add esp, 0x18
mov edi, 0x2d0
lea eax, [esi + 0x9c]
mov edx, dword [esi + 0x38]
movd xmm0, dword [0x10187150]
sub edi, dword [eax]
mov dword [edx + 0x30], edi
lea eax, [edx + ecx*4 + 0x5c]
movd dword [esi + 0x54], xmm0
mov dword [esi + 0x40], eax
mov eax, dword [esi + 4]
lea eax, [eax*4]
call fcn.1015e8d0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x4c], eax
mov esp, eax
mov eax, 0x1060
call fcn.1015e8d0
mov ebx, esp
and ebx, 0xfffffff0
mov esp, ebx
mov eax, dword [esi + 0x10]
lea ecx, [edi + edi]
mov edx, 0x400
mov dword [esi + 0x80], ebx
mov dword [esi], edi
cmp ecx, 0x401
cmovge ecx, edx
sub edx, edi
mov dword [esi + 0x3c], edx
mov edx, dword [esi + 4]
mov dword [esi + 0x7c], ecx
mov eax, dword [eax + 0x3c]
mov dword [esi + 0x1c], eax
mov eax, 0x7e8
sub eax, ecx
mov dword [esi + 0x58], eax
lea eax, [ecx*4]
neg eax
lea eax, [ebx + eax + 0x1060]
mov dword [esi + 0x78], eax
mov eax, ecx
sar eax, 1
mov dword [esi + 0x74], eax
mov eax, 0x800
sub eax, dword [esi + 8]
mov dword [esi + 0x10], eax
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
mov dword [esi + 0x50], eax
lea eax, [ecx + ecx]
mov ecx, dword [esi + 8]
neg eax
lea eax, [ebx + eax + 0x1060]
mov dword [esi + 0x70], eax
mov eax, 0x7ff
sub eax, ecx
mov dword [esi + 0x6c], eax
lea eax, [ebx + 0x60]
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x10]
lea eax, [eax*4]
mov dword [esi + 0x68], eax
lea eax, [edx + ecx]
mov dword [esi + 0x18], eax
lea eax, [eax*4]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x58]
lea eax, [ebx + eax*4 - 0xfa0]
mov dword [esi + 0x64], eax
lea eax, [edx - 1]
mov dword [esi + 0x60], eax
xor eax, eax
mov ebx, dword [esi + eax*4 + 0xa8]
mov edx, dword [esi + 0x80]
mov dword [esi + 0x30], eax
mov eax, 0xfffffc00
mov ecx, dword [ebx + eax*4 + 0x2000]
mov dword [edx + eax*4 + 0x1060], ecx
inc eax
jne 0x101512f5
mov dword [esi + 0xc], ebx
cmp dword [esi + 0x44], 0
mov ebx, dword [esi + 0x64]
jne 0x101513b6
mov eax, dword [esi + 0x14]
push dword [eax]
push 0x400
push 0x18
push dword [esi + 4]
push dword [esi + 0x1c]
lea eax, [esi + 0xb0]
push eax
push dword [esi + 0x34]
call fcn.101587ee
movdqa xmm5, xmmword [0x101a41a0]
movaps xmm4, xmmword [0x101c1f40]
add esp, 0x1c
movss xmm0, dword [esi + 0xb0]
mov eax, 0xffffffe8
mulss xmm0, dword [0x101c1f28]
movss dword [esi + 0xb0], xmm0
movaps xmm0, xmmword [0x101c1f30]
movups xmm1, xmmword [esi + eax*4 + 0x114]
cvtdq2ps xmm3, xmm0
paddd xmm0, xmm5
movaps xmm2, xmm1
mulps xmm2, xmm4
mulps xmm2, xmm3
mulps xmm2, xmm3
subps xmm1, xmm2
movups xmmword [esi + eax*4 + 0x114], xmm1
add eax, 4
jne 0x1015136d
mov eax, dword [esi + 0x30]
lea eax, [eax + eax*2]
shl eax, 5
add eax, dword [esi + 0x40]
push 0x18
lea ecx, [esi + 0xb0]
push ecx
push eax
call fcn.10158210
add esp, 0xc
mov eax, dword [esi + 0x58]
mov ecx, dword [esi + 0xc]
lea eax, [ecx + eax*4]
mov ecx, 0xffffffe8
mov edx, dword [eax + ecx*4 + 0x60]
mov dword [ebx + ecx*4 + 0x60], edx
inc ecx
jne 0x101513c4
mov eax, dword [esi + 0x30]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x14]
shl ecx, 5
add ecx, dword [esi + 0x40]
push dword [eax]
push 0x18
push dword [esi + 0x7c]
mov eax, dword [esi + 0x78]
push eax
mov dword [esi + 0x48], ecx
push ecx
push eax
call fcn.1015831a
add esp, 0x18
movaps xmm0, xmmword [0x101c1f50]
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x70]
test edi, edi
jle 0x10151429
movaps xmm0, xmmword [0x101c1f50]
xor eax, eax
movss xmm1, dword [edx + eax*4]
movss xmm2, dword [ebx + eax*4 + 0x60]
inc eax
cmp eax, ecx
unpcklps xmm1, xmm2
mulps xmm1, xmm1
addps xmm0, xmm1
jl 0x10151410
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xe5
minss xmm0, xmm1
divss xmm0, xmm1
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x1019b0c8]
jb 0x1015144c
sqrtsd xmm0, xmm0
jmp 0x1015146a
sub esp, 8
movsd qword [esp], xmm0
call fcn.1016bee0
add esp, 8
fstp qword [esi + 0x90]
movsd xmm0, qword [esi + 0x90]
mov ebx, dword [esi + 0xc]
mov eax, dword [esi + 8]
movsd qword [esi + 0x20], xmm0
lea eax, [ebx + eax*4]
push dword [esi + 0x68]
push eax
push ebx
call fcn.10161960
add esp, 0xc
mov edx, dword [esi + 0x18]
test edx, edx
jle 0x101514fd
mov eax, dword [esi + 0x10]
xorps xmm0, xmm0
cvtsd2ss xmm0, qword [esi + 0x20]
movss xmm1, dword [esi + 0x54]
xorps xmm3, xmm3
xor ecx, ecx
mulss xmm1, xmm0
lea eax, [ebx + eax*4]
cmp ecx, edi
mov dword [esi + 0x20], edx
jl 0x101514b3
mulss xmm1, xmm0
mov edi, dword [esi]
mov edx, 0
mov ebx, dword [esi + 0x3c]
cmovl edi, edx
mov edx, dword [esi + 0x34]
sub ecx, edi
lea edi, [ecx + ebx]
movss xmm2, dword [edx + edi*4]
lea edi, [ecx + ebx + 0x400]
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x20]
inc ecx
sub edi, dword [esi + 8]
mulss xmm2, xmm1
movss dword [eax], xmm2
add eax, 4
dec edx
movss xmm2, dword [ebx + edi*4]
mov edi, dword [esi]
mulss xmm2, xmm2
addss xmm3, xmm2
jne 0x101514a8
jmp 0x10151500
xorps xmm3, xmm3
mov eax, dword [esi + 0x6c]
mov ecx, 0xffffffa0
movss dword [esi + 0xc], xmm3
lea eax, [ebx + eax*4]
mov edx, dword [eax]
add eax, 0xfffffffc
mov dword [esi + ecx + 0x110], edx
add ecx, 4
jne 0x10151510
mov eax, dword [esi + 0x84]
mov ecx, dword [esi + 0x14]
lea eax, [ebx + eax*4 + 0x2000]
push dword [ecx]
lea ecx, [esi + 0xb0]
push ecx
push 0x18
mov edi, dword [esi + 0x18]
push edi
push eax
push dword [esi + 0x48]
push eax
call fcn.10158585
add esp, 0x1c
test edi, edi
jle 0x10151575
mov eax, dword [esi + 0x10]
movss xmm2, dword [esi + 0xc]
xorps xmm0, xmm0
mov ecx, edi
lea eax, [ebx + eax*4]
movss xmm1, dword [eax]
add eax, 4
dec ecx
mulss xmm1, xmm1
addss xmm0, xmm1
jne 0x10151561
jmp 0x1015157d
movss xmm2, dword [esi + 0xc]
xorps xmm0, xmm0
movaps xmm1, xmm0
lea eax, [ebx + 0x2000]
mulss xmm1, dword [0x101c1f60]
mov dword [esi + 0x20], eax
ucomiss xmm2, xmm1
jbe 0x101515ca
ucomiss xmm0, xmm2
jbe 0x10151674
movss xmm4, dword [0x10187150]
addss xmm2, xmm4
addss xmm0, xmm4
divss xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
ucomisd xmm0, qword [0x1019b0c8]
jb 0x101515eb
sqrtsd xmm0, xmm0
jmp 0x10151611
test edi, edi
jle 0x10151674
mov eax, dword [esi + 0x10]
lea eax, [ebx + eax*4]
push dword [esi + 0x5c]
push 0
push eax
call fcn.10161ee0
add esp, 0xc
jmp 0x10151674
sub esp, 8
movsd qword [esp], xmm0
call fcn.1016bee0
movss xmm4, dword [0x10187150]
add esp, 8
fstp qword [esi + 0x88]
movsd xmm0, qword [esi + 0x88]
mov eax, dword [esi + 4]
mov edi, dword [esi + 0x1c]
cvtsd2ss xmm0, xmm0
test eax, eax
jle 0x1015164f
mov edx, eax
mov eax, dword [esi + 0x10]
movaps xmm1, xmm4
xor ecx, ecx
subss xmm1, xmm0
lea eax, [ebx + eax*4]
movss xmm2, dword [edi + ecx*4]
movaps xmm3, xmm4
mulss xmm2, xmm1
subss xmm3, xmm2
mulss xmm3, dword [eax + ecx*4]
movss dword [eax + ecx*4], xmm3
inc ecx
cmp edx, ecx
jne 0x10151630
cmp dword [esi + 8], 0
mov edx, dword [esi + 0x18]
jle 0x10151674
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 4]
lea eax, [ebx + eax*4]
movss xmm1, dword [eax + ecx*4]
mulss xmm1, xmm0
movss dword [eax + ecx*4], xmm1
inc ecx
cmp ecx, edx
jl 0x10151661
mov ebx, dword [esi + 0x38]
movss xmm0, dword [ebx + 0x44]
mov eax, dword [ebx + 0x4c]
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x3c]
xorps xmm0, xmmword [0x10187140]
sub esp, 0x30
mov dword [esp + 0x2c], ecx
mov ecx, dword [esi + 4]
mov dword [esp + 0xc], edx
mov dword [esp + 8], edx
mov edx, 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x14], xmm0
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], edx
mov edx, dword [esi + 0x20]
mov edi, ecx
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x4c]
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.10153339
add esp, 0x30
cmp edi, 2
jl 0x10151713
mov ecx, dword [esi + 0x60]
xor eax, eax
mov edi, dword [esi + 0x1c]
mov edx, dword [esi + 0x4c]
movss xmm0, dword [edi + eax*4]
movss xmm1, dword [edi + ecx*4]
mov edi, dword [esi + 0x50]
mulss xmm0, dword [edx + ecx*4]
mulss xmm1, dword [edx + eax*4]
mov edx, dword [esi + 0x20]
dec ecx
addss xmm1, xmm0
movss dword [edx + eax*4], xmm1
inc eax
cmp edi, eax
jne 0x101516e4
mov eax, dword [esi + 0x30]
mov edi, dword [esi]
inc eax
cmp eax, dword [esi + 0x2c]
jl 0x101512e0
jmp 0x1015114c