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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x30
push ebx
mov ebx, ecx
mov ecx, dword [ebp + 0x1c]
push esi
push edi
mov word [ebx], ax
movzx eax, al
mov dword [ebx + 4], eax
mov eax, dword [ecx]
movzx eax, word [eax + 0x18]
movzx eax, al
mov dword [ebx + 8], eax
mov eax, dword [ecx]
movzx eax, word [eax + 0x18]
shr eax, 9
and eax, 1
mov dword [ebx + 0xc], eax
mov eax, dword [ecx]
mov dword [ebx + 0x10], eax
test eax, eax
je 0x10098bf3
inc dword [eax + 4]
mov eax, dword [ecx]
lea edi, [ebx + 0x2c]
mov esi, dword [ebp + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [ebx + 0x14], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0x18], eax
mov eax, dword [ecx]
xor ecx, ecx
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp + 8]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x24], eax
mov eax, dword [ebp + 0x14]
mov dword [ebx + 0x28], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebx + 0x3c]
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov dword [ebx + 0x48], ecx
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x50], ecx
mov dword [ebx + 0x54], ecx
mov dword [ebx + 0x58], ecx
mov dword [ebx + 0x5c], ecx
mov dword [ebx + 0x60], ecx
mov dword [ebx + 0x64], ecx
mov dword [ebx + 0x68], ecx
mov dword [ebx + 0x6c], ecx
mov dword [ebx + 0x70], ecx
mov dword [ebx + 0x74], ecx
mov dword [ebx + 0x78], ecx
lea ecx, [ebx + 0x84]
call fcn.10033f27
xor eax, eax
mov byte [ebx + 0x89], al
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x94], eax
mov dword [ebx + 0x98], eax
mov dword [ebx + 0x9c], eax
mov dword [ebx + 0xa0], eax
mov dword [ebx + 0xa4], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 8]
sub ecx, dword [eax]
je 0x10098cae
xor edx, edx
mov eax, 0x7fffffff
div ecx
cmp dword [ebx + 4], eax
jg 0x10098f15
mov eax, dword [ebx + 4]
imul eax, ecx
cmp eax, 0x7fffffe0
ja 0x10098f15
push esi
add eax, 0x1f
mov ecx, esi
cdq
push 0x1f
pop edi
and edx, edi
add eax, edx
sar eax, 5
shl eax, 2
push eax
call fcn.10035c42
cmp word [ebp + 0xc], 0x20
jne 0x10098cff
mov byte [ebp + 0xc], 0
lea eax, [ebp + 0x1c]
push dword [ebp + 0xc]
mov dword [ebp + 0x1c], 0xff
push eax
push dword [ebx + 0x40]
push dword [esi]
call fcn.10058900
add esp, 0x10
mov eax, dword [ebx + 0x34]
sub eax, dword [ebx + 0x2c]
imul eax, dword [ebx + 4]
mov ecx, dword [ebp + 0x20]
add eax, edi
cdq
and edx, edi
add eax, edx
sar eax, 5
shl eax, 2
mov dword [ebx + 0x7c], eax
mov eax, dword [ebx + 0x34]
sub eax, dword [ebx + 0x2c]
lea eax, [eax*8 + 0x1f]
cdq
and edx, edi
add eax, edx
sar eax, 5
shl eax, 2
mov dword [ebx + 0x80], eax
cmp byte [ecx + 2], 0
je 0x10098d49
mov byte [ebx + 0x86], 1
jmp 0x10098da8
cmp byte [ecx], 0
jne 0x10098da0
mov eax, dword [ebp + 0x10]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp + 0xc], eax
je 0x10098da0
mov eax, dword [ebp + 0x14]
cdq
xor eax, edx
sub eax, edx
cdq
and edx, 7
add eax, edx
sar eax, 3
cdq
mov dword [ebp + 0x10], eax
mov edi, edx
mov eax, dword [ebx + 0x18]
imul dword [ebx + 0x1c]
mov esi, eax
mov ecx, edx
mov eax, dword [ebp + 0xc]
cdq
push edx
push eax
push ecx
push esi
call fcn.10145700
cmp edi, edx
jg 0x10098d9d
jl 0x10098d94
cmp dword [ebp + 0x10], eax
jae 0x10098d9d
mov byte [ebx + 0x84], 1
jmp 0x10098da8
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx]
mov dword [ebx + 0x84], eax
cmp dword [ebx + 0x24], 0
mov esi, dword [ebx + 0x18]
movd xmm1, dword [ebx + 0x24]
cvtdq2ps xmm1, xmm1
mov edi, dword [ebx + 0x1c]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movd xmm2, dword [ebx + 0x28]
divss xmm0, xmm1
cvtdq2ps xmm2, xmm2
cvtps2pd xmm5, xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
divss xmm0, xmm2
cvtps2pd xmm6, xmm0
xorps xmm0, xmm0
jle 0x10098de6
xorps xmm1, xmm1
cmp dword [ebx + 0x28], 0
cvtps2pd xmm1, xmm1
jg 0x10098df2
movaps xmm0, xmm2
mov eax, dword [ebp + 0x18]
xorps xmm4, xmm4
xorps xmm3, xmm3
xorps xmm2, xmm2
cvtps2pd xmm0, xmm0
cvtsi2sd xmm4, dword [eax]
cvtsi2sd xmm3, dword [eax + 8]
cvtsi2sd xmm2, dword [eax + 4]
addsd xmm4, xmm1
addsd xmm3, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [eax + 0xc]
addsd xmm2, xmm0
mulsd xmm4, xmm5
addsd xmm1, xmm0
mulsd xmm3, xmm5
mulsd xmm2, xmm6
comisd xmm4, xmm3
mulsd xmm1, xmm6
movsd qword [ebp - 8], xmm4
movsd qword [ebp - 0x10], xmm3
movsd qword [ebp - 0x18], xmm2
movsd qword [ebp - 0x20], xmm1
jbe 0x10098e5b
movsd qword [ebp - 8], xmm3
movsd qword [ebp - 0x10], xmm4
comisd xmm2, xmm1
jbe 0x10098e6b
movsd qword [ebp - 0x18], xmm1
movsd qword [ebp - 0x20], xmm2
fld qword [ebp - 8]
push ecx
push ecx
fstp qword [esp]
call fcn.101503d0
call fcn.10146270
fld qword [ebp - 0x10]
fstp qword [esp]
mov dword [ebx + 0x6c], eax
call fcn.101502b0
call fcn.10146270
fld qword [ebp - 0x18]
fstp qword [esp]
mov dword [ebx + 0x74], eax
call fcn.101503d0
call fcn.10146270
fld qword [ebp - 0x20]
fstp qword [esp]
mov dword [ebx + 0x70], eax
call fcn.101502b0
pop ecx
pop ecx
call fcn.10146270
and dword [ebp - 0x30], 0
lea ecx, [ebx + 0x6c]
and dword [ebp - 0x2c], 0
mov dword [ebx + 0x78], eax
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x24], edi
call fcn.10029d7f
mov eax, dword [ebx + 8]
sub eax, 1
je 0x10098f08
sub eax, 7
je 0x10098eed
cmp dword [ebx + 0xc], 0
setne al
add al, 6
jmp 0x10098f0f
cmp dword [ebx + 4], 8
mov eax, dword [ebx + 0xc]
jne 0x10098eff
test eax, eax
setne al
add al, 2
jmp 0x10098f0f
test eax, eax
setne al
add al, 4
jmp 0x10098f0f
cmp dword [ebx + 4], 8
setne al
mov byte [ebx + 0x88], al
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret 0x1c