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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
push ebx
push esi
push edi
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
movss xmm0, dword [0x1006b54c]
movss xmm2, dword [0x1006b544]
mov eax, dword [ecx + 8]
movss xmm3, dword [0x1006b548]
movss xmm4, dword [0x1006b55c]
movss xmm5, dword [0x1006b564]
movss xmm6, dword [0x1006b568]
movss dword [esp + 0x94], xmm0
movss xmm0, dword [0x1006b550]
mov dword [esp + 0x18], eax
mov eax, dword [edx]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x14]
movss dword [esp + 0x98], xmm0
movss xmm0, dword [0x1006b554]
mov dword [esp + 0xc], eax
mov ebx, 0x80000000
mov eax, dword [ecx + 0x10]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [0x1006b558]
mov dword [esp + 0x5c], eax
mov eax, dword [edx + 0x34]
movss dword [esp + 0x9c], xmm0
xor edi, edi
cmp byte [ebp + 0x24], 0
movss xmm0, dword [0x1006b560]
mov dword [esp + 0x8c], eax
mov eax, 0x7fffffff
movss dword [esp + 0x70], xmm2
movss dword [esp + 0x74], xmm3
movss dword [esp + 0x40], xmm4
movss dword [esp + 0x50], xmm0
movss dword [esp + 0x54], xmm5
movss dword [esp + 0x58], xmm6
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x4c], edi
je 0x1001bc25
mov eax, dword [edx + 0x60]
movzx ecx, byte [eax + 0x34]
mov eax, dword [eax]
sub eax, 2
mov dword [esp + 0x38], ecx
xor ecx, ecx
cmp eax, 3
cmovg eax, ecx
mov ecx, dword [ebp + 0xc]
mov eax, dword [edx + eax*4 + 0x4c]
mov dword [esp + 0x78], eax
jmp 0x1001bc2d
mov dword [esp + 0x38], edi
mov dword [esp + 0x78], edi
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], edi
test eax, eax
je 0x1001bc40
mov edx, dword [eax + 4]
mov eax, dword [eax + 0xc]
jmp 0x1001bc51
mov eax, dword [ecx + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
movzx edx, word [ecx + 2]
movzx eax, word [ecx + eax*8 - 6]
mov esi, dword [ebp + 0x14]
cmp esi, eax
jge 0x1001c59f
mov ecx, dword [ebp + 0x18]
cmp esi, edx
cmovl esi, edx
cmp ecx, eax
mov dword [ebp + 0x14], esi
cmovg ecx, eax
mov dword [ebp + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x48], ecx
cmp dword [ebp + 0x10], ecx
je 0x1001bc96
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov ebx, dword [ecx + 8]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0xc]
add eax, 4
mov dword [esp + 0x24], ebx
mov dword [esp + 0x44], eax
jmp 0x1001bccb
mov edx, dword [ebp + 0xc]
add edx, 4
mov dword [esp + 0x44], edx
mov eax, dword [edx]
mov edi, dword [eax]
mov dword [esp + 0x4c], edi
movzx eax, word [edi + 2]
cmp eax, esi
jge 0x1001bcc8
movzx eax, word [edi + 0xa]
add edi, 8
inc ecx
cmp eax, esi
jl 0x1001bcb0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x44], edx
mov ecx, dword [ebp + 0x10]
cmp esi, dword [ebp + 0x18]
jge 0x1001c57f
mov eax, dword [esp + 0x8c]
movss xmm1, dword [esp + 0x30]
imul eax, esi
mov dword [esp + 0x6c], eax
nop dword [eax + eax]
cvttss2si edx, xmm4
cvttss2si eax, xmm0
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
test ecx, ecx
jne 0x1001bd8e
movzx eax, word [edi + 2]
mov ecx, 0x7fffffff
mov dword [esp + 0x14], ecx
mov ebx, 0x80000000
mov dword [esp + 0x24], ebx
cmp eax, esi
jne 0x1001bd92
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov eax, dword [eax]
mov esi, dword [eax + 8]
nop
mov ecx, ebx
cmp edx, esi
jae 0x1001bd75
movzx eax, word [edi]
movzx ebx, word [edi + 4]
add ebx, eax
cmp ecx, ebx
cmovge ebx, ecx
add edi, 8
inc edx
cmp dword [esp + 0x14], eax
cmovle eax, dword [esp + 0x14]
mov ecx, eax
movzx eax, word [edi + 2]
mov dword [esp + 0x14], ecx
cmp eax, dword [ebp + 0x14]
je 0x1001bd30
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x24], ebx
jmp 0x1001bd92
mov ecx, dword [esp + 0x14]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x24], ebx
jmp 0x1001bd92
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
cmp edx, ecx
mov eax, esi
mov esi, dword [ebp + 0x1c]
cmovl edx, ecx
cmp edi, ebx
cmovg edi, ebx
sub eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [esp + 0x2c], edi
lea eax, [eax + eax*2]
cmp dword [ecx + eax*8], edx
jle 0x1001bdb9
mov dword [ecx + eax*8], edx
mov ecx, dword [esi]
cmp dword [ecx + eax*8 + 4], edi
jge 0x1001bdc5
mov dword [ecx + eax*8 + 4], edi
mov eax, edi
sub eax, edx
cmp eax, 1
jl 0x1001c4cc
cmp edx, ebx
jge 0x1001c4cc
cmp edi, dword [esp + 0x14]
jle 0x1001c4cc
mov eax, dword [esp + 0x6c]
movaps xmm1, xmm4
mov ecx, dword [esp + 0x90]
add eax, edx
cmp byte [ebp + 0x24], 0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
lea eax, [ecx + eax*4]
mov dword [esp + 0x3c], eax
subss xmm1, xmm0
movss xmm0, dword [0x10055634]
subss xmm0, xmm1
movaps xmm1, xmm0
mulss xmm0, xmm3
mulss xmm1, xmm2
addss xmm0, xmm6
addss xmm1, xmm5
movss dword [esp + 0x10], xmm0
movss dword [esp + 0x20], xmm1
je 0x1001be52
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x60]
mov esi, dword [eax + 0x24]
imul esi, dword [ebp + 0x14]
add esi, edx
imul esi, dword [esp + 0x38]
add esi, dword [eax + 0x18]
mov dword [esp + 0x1c], esi
cmp edx, edi
jge 0x1001c4c6
cmp byte [ebp + 0x20], 0xff
jne 0x1001c190
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
nop dword [eax]
cvttss2si edi, xmm1
inc edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x60], edi
cmp edi, eax
jge 0x1001c181
cvttss2si esi, xmm0
cmp esi, dword [esp + 0x5c]
jge 0x1001c181
lea eax, [esp + 0xa0]
xorps xmm0, xmm0
push eax
cvtss2sd xmm0, xmm1
sub esp, 8
movsd qword [esp], xmm0
call fcn.1003a8e0
movss xmm1, dword [0x10055634]
lea eax, [esp + 0xb4]
fstp qword [esp + 0x8c]
movsd xmm0, qword [esp + 0x8c]
add esp, 0xc
cvtpd2ps xmm0, xmm0
push eax
sub esp, 8
subss xmm1, xmm0
movss xmm0, dword [esp + 0x1c]
cvtps2pd xmm0, xmm0
mulss xmm1, dword [0x10055698]
movsd qword [esp], xmm0
cvttss2si ebx, xmm1
mov dword [esp + 0x40], ebx
call fcn.1003a8e0
movss xmm1, dword [0x10055634]
lea ecx, [esi + 1]
imul esi, dword [esp + 0x18]
lea edx, [edi + 1]
fstp qword [esp + 0x8c]
movsd xmm0, qword [esp + 0x8c]
add esp, 0xc
cvtpd2ps xmm0, xmm0
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ecx
lea eax, [esi + edi]
mov edi, dword [esp + 0x18]
subss xmm1, xmm0
mov edi, dword [edi + eax*4]
mov eax, dword [esp + 0xc]
mulss xmm1, dword [0x10055698]
cmp edx, eax
jge 0x1001bfbf
mov ecx, dword [esp + 0x18]
lea eax, [esi + edx]
mov edx, edi
and edi, 0xff00ff
shr edx, 8
and edx, 0xff00ff
mov esi, dword [ecx + eax*4]
mov eax, esi
shr eax, 8
and eax, 0xff00ff
movzx ecx, bl
sub edx, eax
mov eax, esi
imul edx, ecx
and eax, 0xff00ff00
add edx, eax
mov eax, esi
and eax, 0xff00ff
and esi, 0xffff00ff
sub edi, eax
and edx, 0xff00ff00
mov eax, dword [esp + 0xc]
imul edi, ecx
mov ecx, dword [esp + 0x7c]
shr edi, 8
add edi, esi
and edi, 0xff00ff
add edi, edx
mov edx, dword [esp + 0x80]
jmp 0x1001bfc3
mov dword [esp + 0x34], ebx
cmp ecx, dword [esp + 0x5c]
jge 0x1001c093
mov esi, dword [esp + 0x18]
imul ecx, eax
mov eax, dword [esp + 0x60]
add eax, ecx
mov ebx, dword [esi + eax*4]
cmp edx, dword [esp + 0xc]
jge 0x1001c03e
lea eax, [ecx + edx]
mov edx, ebx
mov esi, dword [esi + eax*4]
and ebx, 0xff00ff
mov eax, dword [esp + 0x34]
movzx ecx, al
mov eax, esi
shr eax, 8
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
sub edx, eax
mov eax, esi
imul edx, ecx
and eax, 0xff00ff00
add edx, eax
mov eax, esi
and eax, 0xff00ff
and esi, 0xffff00ff
sub ebx, eax
and edx, 0xff00ff00
imul ebx, ecx
shr ebx, 8
add ebx, esi
and ebx, 0xff00ff
add ebx, edx
cvttss2si eax, xmm1
mov edx, edi
and edi, 0xff00ff
shr edx, 8
and edx, 0xff00ff
movzx ecx, al
mov eax, ebx
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, ebx
imul edx, ecx
and eax, 0xff00ff00
add edx, eax
mov eax, ebx
and eax, 0xff00ff
and ebx, 0xffff00ff
sub edi, eax
and edx, 0xff00ff00
imul edi, ecx
shr edi, 8
add edi, ebx
and edi, 0xff00ff
add edi, edx
cmp byte [ebp + 0x24], 0
je 0x1001c0e6
mov ebx, dword [esp + 0x1c]
push ebx
call dword [esp + 0x7c]
mov esi, edi
movzx eax, al
shr esi, 8
and edi, 0xff00ff
and esi, 0xff00ff
imul edi, eax
imul esi, eax
add esp, 4
add edi, 0xff00ff
add esi, 0xff00ff
shr edi, 8
and esi, 0xff00ff00
and edi, 0xff00ff
add esi, edi
add ebx, dword [esp + 0x38]
mov dword [esp + 0x1c], ebx
jmp 0x1001c0e8
mov esi, edi
mov ebx, dword [esp + 0x3c]
mov eax, esi
movss xmm0, dword [esp + 0x20]
not eax
addss xmm0, dword [esp + 0x70]
shr eax, 0x18
mov edx, dword [ebx]
mov ecx, edx
shr ecx, 8
and edx, 0xff00ff
and ecx, 0xff00ff
imul edx, eax
imul ecx, eax
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [esp + 0x74]
add edx, 0xff00ff
add ecx, 0xff00ff
shr edx, 8
and ecx, 0xff00ff00
and edx, 0xff00ff
add ecx, esi
add edx, ecx
movss dword [esp + 0x10], xmm0
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x3c], ebx
call fcn.100324d0
mov ecx, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x10]
jae 0x1001c4bc
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
jl 0x1001be70
jmp 0x1001c4bc
cvttss2si edi, xmm1
lea eax, [esp + 0xb0]
inc edx
push eax
sub esp, 8
mov dword [esp + 0x34], edx
cvttss2si esi, xmm0
mov dword [esp + 0x88], edi
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
call fcn.1003a8e0
movss xmm1, dword [0x10055634]
lea eax, [esp + 0xc4]
fstp qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x6c]
add esp, 0xc
cvtpd2ps xmm0, xmm0
push eax
sub esp, 8
subss xmm1, xmm0
movss xmm0, dword [esp + 0x1c]
cvtps2pd xmm0, xmm0
mulss xmm1, dword [0x10055698]
movsd qword [esp], xmm0
cvttss2si ebx, xmm1
mov dword [esp + 0x40], ebx
call fcn.1003a8e0
movss xmm1, dword [0x10055634]
lea edx, [edi + 1]
fstp qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x6c]
lea ecx, [esi + 1]
cvtpd2ps xmm0, xmm0
add esp, 0xc
mov dword [esp + 0x80], edx
mov dword [esp + 0x60], ecx
subss xmm1, xmm0
mulss xmm1, dword [0x10055698]
cmp esi, dword [esp + 0x5c]
jge 0x1001c4a2
imul esi, dword [esp + 0xc]
lea eax, [esi + edi]
mov edi, dword [esp + 0x18]
mov edi, dword [edi + eax*4]
mov eax, dword [esp + 0xc]
cmp edx, eax
jge 0x1001c2ca
mov ecx, dword [esp + 0x18]
lea eax, [esi + edx]
mov edx, edi
and edi, 0xff00ff
shr edx, 8
and edx, 0xff00ff
mov esi, dword [ecx + eax*4]
mov eax, esi
shr eax, 8
and eax, 0xff00ff
movzx ecx, bl
sub edx, eax
mov eax, esi
imul edx, ecx
and eax, 0xff00ff00
add edx, eax
mov eax, esi
and eax, 0xff00ff
and esi, 0xffff00ff
sub edi, eax
and edx, 0xff00ff00
mov eax, dword [esp + 0xc]
imul edi, ecx
mov ecx, dword [esp + 0x60]
shr edi, 8
add edi, esi
and edi, 0xff00ff
add edi, edx
mov edx, dword [esp + 0x80]
jmp 0x1001c2ce
mov dword [esp + 0x34], ebx
cmp ecx, dword [esp + 0x5c]
jge 0x1001c39e
mov esi, dword [esp + 0x18]
imul ecx, eax
mov eax, dword [esp + 0x7c]
add eax, ecx
mov ebx, dword [esi + eax*4]
cmp edx, dword [esp + 0xc]
jge 0x1001c349
lea eax, [ecx + edx]
mov edx, ebx
mov esi, dword [esi + eax*4]
and ebx, 0xff00ff
mov eax, dword [esp + 0x34]
movzx ecx, al
mov eax, esi
shr eax, 8
shr edx, 8
and eax, 0xff00ff
and edx, 0xff00ff
sub edx, eax
mov eax, esi
imul edx, ecx
and eax, 0xff00ff00
add edx, eax
mov eax, esi
and eax, 0xff00ff
and esi, 0xffff00ff
sub ebx, eax
and edx, 0xff00ff00
imul ebx, ecx
shr ebx, 8
add ebx, esi
and ebx, 0xff00ff
add ebx, edx
cvttss2si eax, xmm1
mov edx, edi
and edi, 0xff00ff
shr edx, 8
and edx, 0xff00ff
movzx ecx, al
mov eax, ebx
shr eax, 8
and eax, 0xff00ff
sub edx, eax
mov eax, ebx
imul edx, ecx
and eax, 0xff00ff00
add edx, eax
mov eax, ebx
and eax, 0xff00ff
and ebx, 0xffff00ff
sub edi, eax
and edx, 0xff00ff00
imul edi, ecx
shr edi, 8
add edi, ebx
and edi, 0xff00ff
add edi, edx
movzx ebx, byte [ebp + 0x20]
mov esi, edi
shr esi, 8
and edi, 0xff00ff
and esi, 0xff00ff
cmp byte [ebp + 0x24], 0
je 0x1001c402
push dword [esp + 0x1c]
call dword [esp + 0x7c]
movzx eax, al
add esp, 4
imul eax, ebx
add eax, 0xff
shr eax, 8
movzx eax, al
imul edi, eax
imul esi, eax
mov eax, dword [esp + 0x38]
add edi, 0xff00ff
shr edi, 8
add esi, 0xff00ff
and edi, 0xff00ff
and esi, 0xff00ff00
add edi, esi
add dword [esp + 0x1c], eax
jmp 0x1001c425
imul edi, ebx
imul esi, ebx
add edi, 0xff00ff
shr edi, 8
add esi, 0xff00ff
and edi, 0xff00ff
and esi, 0xff00ff00
add edi, esi
mov ebx, dword [esp + 0x3c]
mov eax, edi
movss xmm0, dword [esp + 0x20]
not eax
addss xmm0, dword [esp + 0x70]
shr eax, 0x18
mov edx, dword [ebx]
mov ecx, edx
shr ecx, 8
and edx, 0xff00ff
and ecx, 0xff00ff
imul edx, eax
imul ecx, eax
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [esp + 0x74]
add edx, 0xff00ff
add ecx, 0xff00ff
shr edx, 8
and ecx, 0xff00ff00
and edx, 0xff00ff
add ecx, edi
add edx, ecx
movss dword [esp + 0x10], xmm0
mov dword [ebx], edx
add ebx, 4
mov dword [esp + 0x3c], ebx
call fcn.100324d0
mov ecx, dword [ebp + 0xc]
cmp eax, dword [ecx + 0x10]
jae 0x1001c4bc
mov edx, dword [esp + 0x28]
movss xmm0, dword [esp + 0x10]
movss xmm1, dword [esp + 0x20]
cmp edx, dword [esp + 0x2c]
jl 0x1001c190
movss xmm4, dword [esp + 0x40]
mov ebx, dword [esp + 0x24]
movss xmm1, dword [esp + 0x30]
movss xmm0, dword [esp + 0x54]
movss xmm2, dword [esp + 0x50]
addss xmm0, xmm1
addss xmm4, dword [esp + 0x94]
addss xmm2, dword [esp + 0x98]
mov ecx, dword [ebp + 0x10]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x58]
movss dword [esp + 0x40], xmm4
movss dword [esp + 0x50], xmm2
addss xmm0, dword [esp + 0x9c]
movss dword [esp + 0x58], xmm0
test ecx, ecx
jne 0x1001c52e
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
cmp ecx, dword [eax + 8]
jae 0x1001c56d
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x8c]
inc esi
add dword [esp + 0x6c], eax
movss xmm2, dword [esp + 0x70]
movss xmm3, dword [esp + 0x74]
movss xmm0, dword [esp + 0x50]
movss xmm5, dword [esp + 0x54]
movss xmm6, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
mov dword [ebp + 0x14], esi
cmp esi, dword [ebp + 0x18]
jl 0x1001bcf0
jmp 0x1001c57f
movss xmm0, dword [esp + 0x50]
movss xmm5, dword [esp + 0x54]
movss xmm6, dword [esp + 0x58]
movss dword [0x1006b55c], xmm4
movss dword [0x1006b560], xmm0
movss dword [0x1006b564], xmm5
movss dword [0x1006b568], xmm6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret