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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov eax, dword [0x100e9b6c]
test al, 1
je 0x1001950d
test al, 2
je 0x10019560
mov ebx, dword [0x100e9750]
mov eax, dword [ebx + 0x1924]
mov byte [eax + 0x92], 1
mov ecx, dword [ebx + 0x1924]
cmp byte [ecx + 0x95], 0
jne 0x10018f80
mov edi, dword [esp + 0x68]
mov eax, dword [ecx + 0x1e0]
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx + 0x1e8]
push dword [ecx + eax*4 - 4]
push 0
push edi
call fcn.10008a50
add esp, 0xc
mov esi, eax
mov eax, dword [0x100e9750]
cmp dword [eax + 0x1940], esi
jne 0x10018b8b
mov byte [eax + 0x194c], 1
mov ebp, dword [esp + 0x6c]
cmp edi, 0xffffffff
je 0x10018bba
mov ecx, edi
jmp 0x10018bac
cmp byte [ecx + 1], 0x23
je 0x10018bcc
inc ecx
cmp ecx, 0xffffffff
je 0x10018bc7
movzx edx, byte [ecx]
cmp edx, 0x23
je 0x10018ba0
test edx, edx
jne 0x10018ba6
jmp 0x10018bcc
movss xmm6, dword [eax + 0x1854]
jmp 0x10018c5f
mov ecx, 0xffffffff
movss xmm6, dword [eax + 0x1854]
cmp ecx, edi
je 0x10018c5f
mov edx, edi
mov edi, dword [eax + 0x1850]
sub esp, 0x1c
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
movss dword [esp + 4], xmm6
lea eax, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0xbf800000
mov dword [esp + 8], 0x7f7fffff
mov ecx, edi
movss dword [esp + 0x20], xmm6
call fcn.1002d360
movss xmm0, dword [esp + 0x20]
xorps xmm1, xmm1
ucomiss xmm1, xmm0
jae 0x10018c3d
movss xmm1, dword [esp + 4]
divss xmm1, dword [edi]
subss xmm0, xmm1
addss xmm0, dword [str.33s_]
cvttps2dq xmm0, xmm0
cvtdq2ps xmm2, xmm0
movss dword [esp + 0x20], xmm2
movss xmm6, dword [esp + 0x24]
mov eax, dword [0x100e9750]
jmp 0x10018c70
mov dword [esp + 0x20], 0
movss dword [esp + 0x24], xmm6
xorps xmm2, xmm2
movss xmm0, dword [ebp]
movss xmm1, dword [ebp + 4]
xorps xmm4, xmm4
ucomiss xmm4, xmm0
mov ebp, dword [esp + 0xc]
ja 0x10018c8e
xorps xmm3, xmm3
ucomiss xmm1, xmm4
jae 0x10018cfa
mov ecx, dword [eax + 0x1924]
movss xmm3, dword [ecx + 0x50]
mov edx, dword [ecx + 0x1dc]
test edx, edx
je 0x10018cea
mov edi, dword [edx + 0xc]
mov dword [esp + 4], ebx
xor ebx, ebx
cmp edi, 0xffffffff
setge bl
add ebx, edi
mov edi, dword [edx + 0x34]
lea ebp, [ebx + ebx*8]
lea ebp, [ebp + ebp*2]
add ebp, ebx
mov ebx, dword [esp + 4]
movsd xmm5, qword [edx + 0x14]
movss xmm4, dword [ecx + 0x54]
unpcklps xmm4, xmm5
subps xmm5, xmm4
movaps xmm4, xmm5
shufps xmm4, xmm5, 0x55
mulss xmm4, dword [edi + ebp]
mov ebp, dword [esp + 0xc]
addss xmm4, xmm5
jmp 0x10018cef
movss xmm4, dword [ecx + 0x4c]
unpcklps xmm4, xmm3
movsd xmm3, qword [ecx + 0x14]
addps xmm3, xmm4
xorps xmm5, xmm5
ucomiss xmm0, xmm5
ja 0x10018d37
jne 0x10018d16
movss xmm0, dword [ebx + 0x151c]
addss xmm0, xmm0
addss xmm0, xmm2
jmp 0x10018d37
mov ecx, dword [eax + 0x1924]
movss xmm2, dword [ecx + 0xdc]
movaps xmm4, xmm3
subss xmm4, xmm2
maxss xmm4, dword [0x10034b14]
addss xmm0, xmm4
movss xmm2, dword [ebx + 0x1520]
movsd xmm4, qword [ebp + 0xdc]
ucomiss xmm1, xmm5
ja 0x10018d7c
ucomiss xmm1, xmm5
jne 0x10018d5e
movaps xmm1, xmm2
addss xmm1, xmm2
addss xmm1, xmm6
jmp 0x10018d7c
mov eax, dword [eax + 0x1924]
shufps xmm3, xmm3, 0x55
subss xmm3, dword [eax + 0xe0]
maxss xmm3, dword [0x10034b14]
addss xmm1, xmm3
movss dword [esp + 0x3c], xmm0
movss dword [esp + 0x40], xmm1
unpcklps xmm0, xmm1
addps xmm0, xmm4
movlhps xmm4, xmm0
movups xmmword [esp + 0x10], xmm4
sub esp, 8
movss dword [esp + 4], xmm2
lea eax, [esp + 0x44]
mov dword [esp], eax
call fcn.10009e80
add esp, 8
lea edi, [esp + 0x10]
push 0
push esi
push edi
call fcn.10009fd0
add esp, 0xc
test al, al
je 0x10018f80
lea eax, [esp + 2]
lea ecx, [esp + 3]
push 0
push eax
push ecx
push esi
push edi
call fcn.10017430
add esp, 0x14
mov ecx, dword [0x100e9750]
movss xmm0, dword [ecx + 0x14e8]
mulss xmm0, dword [ecx + 0x16dc]
movss xmm3, dword [0x10034020]
movss xmm1, dword [ecx + 0x16d0]
minss xmm1, xmm3
xorps xmm5, xmm5
maxss xmm1, xmm5
movss xmm4, dword [0x10034a00]
mulss xmm1, xmm4
movss xmm2, dword [0x100340c4]
addss xmm1, xmm2
cvttss2si edx, xmm1
movss xmm1, dword [ecx + 0x16d4]
minss xmm1, xmm3
maxss xmm1, xmm5
mulss xmm1, xmm4
addss xmm1, xmm2
cvttss2si edi, xmm1
mov dword [esp + 0x28], eax
shl edi, 8
movss xmm1, dword [ecx + 0x16d8]
unpcklps xmm1, xmm0
minps xmm1, xmmword [0x10034a10]
xorps xmm0, xmm0
maxps xmm0, xmm1
mulps xmm0, xmmword [0x10034a20]
addps xmm0, xmmword [0x100340d0]
or edi, edx
cvttps2dq xmm0, xmm0
movdqa xmm1, xmm0
pslld xmm1, 0x18
pslld xmm0, 0x10
movd eax, xmm0
or eax, edi
pshufd xmm0, xmm1, 0x55
movd ecx, xmm0
or ecx, eax
mov dword [esp + 4], ebx
movss xmm0, dword [ebx + 0x1524]
movups xmm1, xmmword [esp + 0x10]
sub esp, 0x1c
movss dword [esp + 0x18], xmm0
movups xmmword [esp], xmm1
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 1
call fcn.10014ce0
add esp, 0x1c
cmp byte [esp + 2], 0
jne 0x10018f27
mov ecx, dword [ebp + 0x270]
mov eax, dword [0x100e9750]
movss xmm0, dword [eax + 0x14e8]
addss xmm0, xmm0
minss xmm0, dword [0x10034020]
maxss xmm0, dword [0x10034978]
mulss xmm0, dword [0x10034a00]
addss xmm0, dword [0x100340c4]
cvttss2si eax, xmm0
shl eax, 0x18
lea edx, [eax + 0xff00ff]
push edx
push edx
push eax
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.10024a10
mov edi, dword [0x100e9b64]
mov eax, dword [edi + 4]
movzx ecx, byte [eax + 0xd]
mov dword [esp + 0x2c], edi
test cl, cl
jne 0x10018f64
mov edi, dword [esp + 0x2c]
mov edx, eax
nop word cs:[eax + eax]
lea ebx, [edx + 8]
cmp dword [edx + 0x10], esi
cmovae edi, edx
cmovae ebx, edx
mov edx, dword [ebx]
cmp byte [edx + 0xd], 0
je 0x10018f50
cmp byte [edi + 0xd], 0
mov ebx, dword [esp + 0x2c]
je 0x10018f8a
xor edi, edi
mov ebp, eax
mov edx, ebx
test cl, cl
je 0x10018f99
cmp byte [edx + 0xd], 0
jne 0x10018fe5
jmp 0x10018fe0
xor eax, eax
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret
cmp esi, dword [edi + 0x10]
jb 0x10018f6e
cmp edi, ebx
jne 0x10019071
jmp 0x10018f6e
mov byte [esp + 8], cl
mov edx, ebx
mov edi, eax
nop word cs:[eax + eax]
mov ebp, edi
mov ebx, dword [edi + 0x10]
add edi, 8
cmp ebx, esi
cmovae edx, ebp
cmovae edi, ebp
mov edi, dword [edi]
cmp byte [edi + 0xd], 0
je 0x10018fb0
xor ecx, ecx
cmp ebx, esi
setae cl
mov edi, ecx
mov ebx, dword [esp + 0x2c]
movzx ecx, byte [esp + 8]
cmp byte [edx + 0xd], 0
jne 0x10018fe5
cmp esi, dword [edx + 0x10]
jae 0x10019037
cmp dword [0x100e9b68], 0x6666666
je 0x100195ab
push 0x28
call fcn.10032b66
add esp, 4
mov dword [eax + 0x10], esi
mov word [eax + 0x14], 0
xorps xmm0, xmm0
movups xmmword [eax + 0x18], xmm0
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov word [eax + 0xc], 0
mov ecx, 0x100e9b64
push eax
push edi
push ebp
call fcn.10021db0
mov ebx, dword [0x100e9b64]
mov eax, dword [ebx + 4]
movzx ecx, byte [eax + 0xd]
mov edi, ebx
test cl, cl
mov ebp, dword [esp + 0xc]
jne 0x10019064
mov edi, ebx
nop word cs:[eax + eax]
lea ecx, [eax + 8]
cmp dword [eax + 0x10], esi
cmovae edi, eax
cmovae ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
je 0x10019050
cmp byte [edi + 0xd], 0
jne 0x1001906f
cmp esi, dword [edi + 0x10]
jae 0x10019071
mov edi, ebx
mov ecx, dword [ebp + 0x270]
mov eax, dword [0x100e9750]
movss xmm0, dword [eax + 0x14e8]
movss xmm2, dword [0x10034a00]
mulss xmm0, xmm2
minss xmm0, dword [0x10034020]
xorps xmm1, xmm1
maxss xmm1, xmm0
mulss xmm1, xmm2
addss xmm1, dword [0x100340c4]
cvttss2si eax, xmm1
shl eax, 0x18
or eax, 0xffffff
push 0x3f800000
push 0xf
push 0
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.10024760
movzx eax, byte [edi + 0x14]
cmp byte [esp + 0x28], 0
je 0x10019102
test al, al
je 0x100190ea
xorps xmm0, xmm0
movlps qword [edi + 0x18], xmm0
mov byte [edi + 0x15], 0
mov byte [edi + 0x14], 1
mov eax, dword [0x100e9750]
movsd xmm0, qword [eax + 0xd0]
movsd qword [edi + 0x20], xmm0
jmp 0x1001910a
test al, al
je 0x100191a0
cmp byte [edi + 0x15], 0
mov eax, dword [0x100e9750]
movss xmm1, dword [eax + 0xc]
mulss xmm1, dword [0x10034de0]
addss xmm1, dword [edi + 0x18]
minss xmm1, dword [0x10034020]
xorps xmm0, xmm0
maxss xmm1, xmm0
movss dword [edi + 0x18], xmm1
movss xmm1, dword [edi + 0x1c]
movss xmm2, dword [eax + 0xc]
addss xmm2, xmm2
je 0x1001917c
subss xmm1, xmm2
minss xmm1, dword [0x10034020]
maxss xmm1, xmm0
movss dword [edi + 0x1c], xmm1
ucomiss xmm1, dword [0x10034170]
movaps xmm2, xmm1
ja 0x100191a5
xorps xmm0, xmm0
movlps qword [edi + 0x18], xmm0
mov word [edi + 0x14], 0
xorps xmm2, xmm2
jmp 0x100191a5
addss xmm2, xmm1
minss xmm2, dword [0x10034020]
maxss xmm2, xmm0
movss dword [edi + 0x1c], xmm2
ucomiss xmm2, dword [0x10034de4]
jb 0x100191a5
mov byte [edi + 0x15], 1
jmp 0x100191a5
movss xmm2, dword [edi + 0x1c]
mulss xmm2, dword [0x10034de8]
movss dword [esp + 8], xmm2
lea ebp, [edi + 0x20]
movss xmm0, dword [esp + 0x18]
movss xmm2, dword [edi + 0x20]
shufps xmm2, xmm2, 0
movss xmm1, dword [esp + 0x10]
movss xmm3, dword [esp + 0x14]
movaps xmm4, xmm0
unpcklps xmm4, xmm1
subps xmm2, xmm4
andps xmm2, xmmword [0x10034090]
pshufd xmm4, xmm2, 0x55
maxss xmm4, xmm2
movups xmmword [esp + 0x2c], xmm4
mov ebx, dword [esp + 0xc]
mov ecx, dword [ebx + 0x270]
movss xmm2, dword [esp + 0x1c]
sub esp, 0x14
movss dword [esp + 0xc], xmm2
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm3
movss dword [esp], xmm1
mov dword [esp + 0x10], 0
call fcn.10022730
mov eax, dword [0x100e9750]
movss xmm0, dword [esp + 8]
mulss xmm0, dword [eax + 0x14e8]
minss xmm0, dword [0x10034020]
movaps xmm1, xmm0
xorps xmm0, xmm0
maxss xmm0, xmm1
mulss xmm0, dword [0x10034a00]
addss xmm0, dword [0x100340c4]
mov ecx, dword [ebx + 0x270]
cvttss2si eax, xmm0
shl eax, 0x18
or eax, 0xfafafa
movss xmm0, dword [edi + 0x18]
addss xmm0, xmm0
mulss xmm0, dword [esp + 0x2c]
sub esp, 0x10
movss dword [esp + 4], xmm0
mov dword [esp], ebp
mov ebp, ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x1e
call fcn.10024d80
mov ecx, dword [ebx + 0x270]
call fcn.10022940
mov edx, dword [0x100e9b70]
mov eax, dword [edx + 4]
movzx ecx, byte [eax + 0xd]
mov dword [esp + 0x2c], edx
test cl, cl
jne 0x100192e4
mov edx, dword [esp + 0x2c]
mov ebx, eax
nop word cs:[eax + eax]
lea edi, [ebx + 8]
cmp dword [ebx + 0x10], esi
cmovae edx, ebx
cmovae edi, ebx
mov ebx, dword [edi]
cmp byte [ebx + 0xd], 0
je 0x100192d0
cmp byte [edx + 0xd], 0
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x2c]
je 0x10019304
xor ebp, ebp
mov edx, edi
mov edi, eax
test cl, cl
je 0x10019313
cmp byte [edx + 0xd], 0
jne 0x1001935a
jmp 0x10019351
cmp esi, dword [edx + 0x10]
jb 0x100192f2
cmp edx, edi
jne 0x100193e1
jmp 0x100192f2
mov byte [esp + 8], cl
mov edx, dword [esp + 0x2c]
mov ebp, eax
nop dword [eax]
mov edi, ebp
mov ebx, dword [ebp + 0x10]
add ebp, 8
cmp ebx, esi
cmovae edx, edi
cmovae ebp, edi
mov ebp, dword [ebp]
cmp byte [ebp + 0xd], 0
je 0x10019320
xor ecx, ecx
cmp ebx, esi
setae cl
mov ebp, ecx
mov ebx, dword [esp + 4]
movzx ecx, byte [esp + 8]
cmp byte [edx + 0xd], 0
jne 0x1001935a
cmp esi, dword [edx + 0x10]
jae 0x10019504
cmp dword [0x100e9b74], 0xaaaaaaa
je 0x100195ab
push 0x18
call fcn.10032b66
add esp, 4
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], 0
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov word [eax + 0xc], 0
mov ecx, 0x100e9b70
push eax
push ebp
push edi
call fcn.10021db0
mov edi, dword [0x100e9b70]
mov eax, dword [edi + 4]
movzx ecx, byte [eax + 0xd]
mov edx, edi
test cl, cl
mov ebp, dword [esp + 0xc]
jne 0x100193d4
mov edx, edi
nop word cs:[eax + eax]
lea ecx, [eax + 8]
cmp dword [eax + 0x10], esi
cmovae edx, eax
cmovae ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0xd], 0
je 0x100193c0
cmp byte [edx + 0xd], 0
jne 0x100193df
cmp esi, dword [edx + 0x10]
jae 0x100193e1
mov edx, edi
mov eax, dword [0x100e9750]
movss xmm0, dword [eax + 0xc]
mulss xmm0, dword [0x10034be4]
cmp byte [esp + 3], 0
jne 0x10019401
xorps xmm0, xmmword [0x10034040]
addss xmm0, dword [edx + 0x14]
movss xmm4, dword [0x10034020]
minss xmm0, xmm4
xorps xmm1, xmm1
maxss xmm0, xmm1
movss dword [edx + 0x14], xmm0
mov ecx, dword [ebp + 0x270]
movss xmm2, dword [eax + 0x14e8]
movss xmm3, dword [eax + 0x1524]
cvttss2si edx, xmm3
mov esi, edx
sar esi, 0x1f
subss xmm3, dword [0x10034d20]
cvttss2si eax, xmm3
mulss xmm2, dword [0x10034d24]
and eax, esi
mulss xmm2, xmm0
minss xmm2, xmm4
maxss xmm2, xmm1
mulss xmm2, dword [0x10034a00]
addss xmm2, dword [0x100340c4]
or eax, edx
cvttss2si edx, xmm2
shl edx, 0x18
push eax
push edx
or edx, 0xffffff
push edx
push edx
lea edi, [esp + 0x28]
push edi
lea esi, [esp + 0x24]
push esi
call fcn.10024a10
mov ecx, dword [ebp + 0x270]
sub esp, 0x18
movaps xmm0, xmmword [0x10034160]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.10024a10
movsd xmm0, qword [esp + 0x10]
movsd xmm1, qword [esp + 0x18]
movsd xmm2, qword [ebx + 0x151c]
add ebx, 0x155c
subps xmm1, xmm2
movlps qword [esp + 0x4c], xmm1
addps xmm0, xmm2
movlps qword [esp + 0x44], xmm0
lea eax, [esp + 0x20]
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x44]
push esi
push ebx
push eax
push 0
push dword [esp + 0x78]
push ecx
push edx
call fcn.100148b0
add esp, 0x1c
mov eax, dword [esp + 0x28]
jmp 0x10018f82
mov edi, dword [esp + 0x2c]
jmp 0x100193aa
or eax, 1
mov dword [0x100e9b6c], eax
mov dword [0x100e9b64], 0
mov dword [0x100e9b68], 0
push 0x28
call fcn.10032b66
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [0x100e9b64], eax
push 0x100195b0
call fcn.10032c0b
add esp, 4
mov eax, dword [0x100e9b6c]
test al, 2
jne 0x10018b2c
or eax, 2
mov dword [0x100e9b6c], eax
mov dword [0x100e9b70], 0
mov dword [0x100e9b74], 0
push 0x18
call fcn.10032b66
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [0x100e9b70], eax
push 0x100195e0
call fcn.10032c0b
add esp, 4
jmp 0x10018b2c
call fcn.10021fa0
mov eax, dword [0x100e9b64]
mov ecx, 0x100e9b64
push dword [eax + 4]
push 0x100e9b64
call fcn.100211c0
push 0x28
push dword [0x100e9b64]
call fcn.10032b9b
add esp, 8
ret