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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
push esi
mov esi, dword [0x100b7fac]
push edi
mov dword [esp + 0x10], ecx
mov eax, dword [esi + 0x1928]
mov byte [eax + 0x78], 1
mov edi, dword [esi + 0x1928]
mov dword [esp + 0x14], edi
cmp byte [edi + 0x7b], 0
jne 0x100244ce
mov ecx, dword [edi + 0x1c8]
xor edx, edx
mov eax, dword [edi + 0x1d0]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x14]
call fcn.1000b150
add esp, 4
mov dword [esp + 0xc], eax
cmp dword [esi + 0x1944], eax
jne 0x10023a94
mov byte [esi + 0x1950], 1
cmp dword [esi + 0x1948], eax
jne 0x10023aa3
mov byte [esi + 0x1954], 1
mov eax, dword [esp + 0x10]
mov ecx, eax
cmp eax, 0xffffffff
jae 0x10023ac6
nop
mov dl, byte [ecx]
test dl, dl
je 0x10023ac6
cmp dl, 0x23
jne 0x10023ac0
cmp byte [ecx + 1], dl
je 0x10023ac6
inc ecx
cmp ecx, 0xffffffff
jb 0x10023ab0
movss xmm0, dword [esi + 0x1854]
mov edx, dword [esi + 0x1850]
mov dword [esp + 0x24], edx
movss dword [esp + 0x28], xmm0
cmp eax, ecx
jne 0x10023aea
xorps xmm1, xmm1
xorps xmm4, xmm4
jmp 0x10023b4b
movss xmm3, dword [0x1003fc58]
movaps xmm2, xmm0
push ecx
push ecx
push eax
push ecx
lea eax, [esp + 0x54]
mov dword [esp], 0xbf800000
push eax
mov ecx, edx
call fcn.100359e0
movss xmm0, dword [esp + 0x44]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x10023b2c
mov eax, dword [esp + 0x24]
movss xmm2, dword [esp + 0x28]
divss xmm2, dword [eax]
subss xmm0, xmm2
addss xmm0, dword [0x1003fb30]
cvttss2si eax, xmm0
movss xmm0, dword [esp + 0x48]
movss dword [esp + 0x48], xmm0
movd xmm4, eax
cvtdq2ps xmm4, xmm4
mov eax, dword [esi + 0x19ac]
movss dword [esp + 0x18], xmm4
lea ecx, [eax + eax*8]
shl ecx, 2
mov dword [esp + 0x1c], ecx
cmp dword [esi + 0x19a0], eax
jle 0x10023b7f
mov eax, dword [esi + 0x19a8]
mov edx, dword [esp + 0xc]
cmp dword [ecx + eax], edx
jne 0x10023b7f
mov byte [esp + 9], 1
jmp 0x10023b88
mov byte [esp + 9], 0
mov dword [esp + 0x1c], ecx
test dword [edi + 8], 0x4000000
jne 0x10023bd6
mov eax, dword [esi + 0x19a0]
cmp eax, dword [esi + 0x19ac]
jle 0x10023bd6
mov edx, dword [edi + 0x1c8]
mov ecx, dword [edi + 0x1d0]
mov edi, dword [esp + 0x1c]
mov eax, dword [esi + 0x19a8]
mov eax, dword [eax + edi + 0x10]
mov edi, dword [esp + 0x14]
cmp eax, dword [ecx + edx*4 - 4]
jne 0x10023bd6
mov eax, dword [esi + 0x1a24]
mov byte [esp + 0xb], 1
mov dword [esi + 0x1a24], edi
jmp 0x10023be2
xor al, al
mov byte [esp + 0xb], al
mov eax, dword [esi + 0x1a24]
cmp dword [edi + 0x15c], 1
movss xmm3, dword [edi + 0xc8]
movss xmm2, dword [edi + 0xcc]
mov dword [esp + 0x20], eax
movss dword [esp + 0x2c], xmm3
movss dword [esp + 0x34], xmm2
jne 0x10023d6b
test dword [edi + 8], 0x400
je 0x10023c40
movss xmm1, dword [esi + 0x1858]
mulss xmm1, dword [edi + 0x274]
movss xmm0, dword [esi + 0x1540]
addss xmm0, xmm0
addss xmm1, dword [edi + 0x148]
addss xmm1, xmm0
movaps xmm0, xmm3
mov dword [esp + 0x44], 0xd
subss xmm0, dword [edi + 0x3c]
subss xmm2, dword [esi + 0x1540]
lea ecx, [esi + 0x1988]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esi + 0x154c]
addss xmm2, xmm1
mulss xmm0, dword [0x1003fb14]
cvttss2si eax, xmm0
movss dword [esp + 0x28], xmm2
movd xmm0, eax
lea eax, [esp + 0x44]
cvtdq2ps xmm0, xmm0
push eax
addss xmm0, xmm3
movss dword [edi + 0xc8], xmm0
movss xmm0, dword [esi + 0x154c]
movss xmm1, dword [esi + 0x154c]
addss xmm0, xmm0
movss dword [esp + 0x4c], xmm1
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esi + 0x1550]
addss xmm0, xmm0
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esi + 0x1550]
movss dword [esp + 0x50], xmm0
call fcn.10025760
movss xmm0, dword [esp + 0x1c]
lea eax, [esp + 0x44]
mov dl, byte [esp + 9]
mov ecx, dword [esp + 0x10]
movss dword [esi + 0x154c], xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esi + 0x1550], xmm0
movss xmm0, dword [esp + 0x18]
push eax
push 0xc01
movss dword [esp + 0x4c], xmm0
mov dword [esp + 0x50], 0
call fcn.10022b70
add esp, 8
mov byte [esp + 0xa], al
mov ecx, 1
call fcn.10019f20
movss xmm0, dword [esi + 0x154c]
mulss xmm0, dword [0x1003fb14]
movss xmm1, dword [edi + 0xc8]
cvttss2si ecx, xmm0
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [edi + 0xc8], xmm1
jmp 0x100240c3
movaps xmm0, xmm2
movss xmm5, dword [edi + 0x250]
subss xmm0, dword [esi + 0x1510]
movss dword [esp + 0x24], xmm3
maxss xmm5, xmm1
movss xmm3, dword [edi + 0x24c]
maxss xmm3, xmm4
movss xmm4, dword [edi + 0x254]
movss dword [esp + 0x28], xmm0
comiss xmm5, xmm1
movss xmm0, dword [esi + 0x1854]
mulss xmm0, dword [0x1003fb38]
movss dword [edi + 0x24c], xmm3
addss xmm3, xmm1
movss dword [edi + 0x250], xmm5
cvttss2si eax, xmm0
addss xmm3, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
maxss xmm4, xmm0
movss dword [edi + 0x254], xmm4
jbe 0x10023df0
movss xmm2, dword [edi + 0x230]
jmp 0x10023df3
xorps xmm2, xmm2
comiss xmm4, xmm1
addss xmm2, xmm5
addss xmm2, xmm3
jbe 0x10023e0a
movss xmm0, dword [edi + 0x230]
jmp 0x10023e0d
xorps xmm0, xmm0
addss xmm0, xmm4
addss xmm0, xmm2
movss dword [edi + 0x238], xmm0
mov eax, dword [esi + 0x1928]
movss xmm3, dword [edi + 0x234]
maxss xmm3, xmm0
movss xmm4, dword [eax + 0xc8]
movss xmm2, dword [eax + 0x21c]
mov ecx, dword [eax + 0x1c4]
subss xmm4, dword [eax + 0xc]
subss xmm2, dword [eax + 0xc]
test ecx, ecx
je 0x10023e98
mov edx, dword [ecx + 0xc]
movss xmm0, dword [ecx + 0x14]
lea eax, [edx + 1]
test eax, eax
cmovns edx, eax
mov eax, dword [esi + 0x1928]
lea ecx, [edx*8]
sub ecx, edx
mov edx, dword [eax + 0x1c4]
movss xmm2, dword [edx + 0x18]
mov eax, dword [edx + 0x34]
subss xmm2, xmm0
mulss xmm2, dword [eax + ecx*4]
mov eax, dword [esi + 0x1928]
addss xmm2, xmm0
subss xmm2, dword [eax + 0x3c]
mov dl, byte [esp + 9]
subss xmm2, xmm4
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x44]
xorps xmm6, xmm6
movss dword [esp + 0x44], xmm3
push eax
push 0x4c01
subss xmm2, xmm3
mov dword [esp + 0x50], 0
maxss xmm6, xmm2
movss dword [esp + 0x24], xmm6
call fcn.10022b70
movss xmm4, dword [esp + 0x24]
xorps xmm1, xmm1
addss xmm4, dword [edi + 0x244]
movss xmm0, dword [esi + 0x1854]
add esp, 8
mulss xmm0, dword [0x1003fb04]
mov ecx, dword [0x100b7fac]
movss xmm5, dword [esp + 0x34]
movss xmm3, dword [0x1003fb14]
addss xmm5, xmm1
addss xmm4, xmm0
mov byte [esp + 0xa], al
movss xmm0, dword [ecx + 0x1854]
movaps xmm2, xmm0
mov eax, dword [ecx + 0x1928]
mulss xmm2, dword [0x1003fb0c]
addss xmm4, dword [esp + 0x2c]
mulss xmm0, xmm3
mov edx, dword [eax + 0x27c]
addss xmm4, xmm0
addss xmm5, xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x1003fb24]
movss dword [esp + 0x1c], xmm4
movups xmm4, xmmword [ecx + 0x15a0]
movss dword [esp + 0x3c], xmm0
movaps xmm0, xmm2
comiss xmm1, xmm4
mulss xmm0, xmm1
movaps xmm7, xmm4
shufps xmm7, xmm4, 0xff
mulss xmm7, dword [ecx + 0x1508]
movss dword [esp + 0x44], xmm0
movaps xmm0, xmm2
mulss xmm0, dword [0x1003fb2c]
movaps xmmword [esp + 0x50], xmm4
movss dword [esp + 0x18], xmm0
movaps xmm0, xmm2
mulss xmm2, dword [0x1003fc64]
mulss xmm0, dword [0x1003fc60]
movss dword [esp + 0x2c], xmm2
movss xmm2, dword [0x1003fb34]
movss dword [esp + 0x34], xmm0
jbe 0x10023fc8
xorps xmm0, xmm0
jmp 0x10023fcf
movaps xmm0, xmm2
minss xmm0, xmm4
movss xmm4, dword [0x1003fc10]
movss xmm6, dword [esp + 0x54]
comiss xmm1, xmm6
mulss xmm0, xmm4
addss xmm0, xmm3
cvttss2si ecx, xmm0
jbe 0x10023ff3
xorps xmm0, xmm0
jmp 0x10023ffa
movaps xmm0, xmm2
minss xmm0, xmm6
movss xmm6, dword [esp + 0x58]
mulss xmm0, xmm4
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm1, xmm6
jbe 0x1002401b
xorps xmm0, xmm0
jmp 0x10024022
movaps xmm0, xmm2
minss xmm0, xmm6
mulss xmm0, xmm4
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm1, xmm7
jbe 0x1002403d
xorps xmm2, xmm2
jmp 0x10024041
minss xmm2, xmm7
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [esp + 0x1c]
movss xmm1, dword [esp + 0x2c]
mulss xmm2, xmm4
addss xmm1, xmm5
movss dword [esp + 0x34], xmm0
movss dword [esp + 0x2c], xmm0
addss xmm2, xmm3
movss xmm0, dword [esp + 0x18]
addss xmm0, xmm5
movss dword [esp + 0x38], xmm1
cvttss2si eax, xmm2
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x3c]
addss xmm0, dword [esp + 0x1c]
shl eax, 0x18
or eax, ecx
mov ecx, edx
push eax
lea eax, [esp + 0x38]
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x48]
push eax
addss xmm0, xmm5
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x48]
push eax
movss dword [esp + 0x50], xmm0
call fcn.10033670
mov edx, dword [esp + 0xc]
lea ecx, [edi + 0x10c]
call fcn.1000cf10
mov ch, al
mov al, byte [esp + 0xb]
test al, al
je 0x100240e6
mov edx, dword [esp + 0x20]
mov dword [esi + 0x1a24], edx
xor cl, cl
cmp dword [edi + 0x15c], 0
mov edi, dword [0x100b7fac]
mov dword [esp + 0x1c], edi
jne 0x100243a7
mov eax, dword [esp + 0x14]
cmp dword [esi + 0x192c], eax
jne 0x100242e3
mov edx, dword [esi + 0x19ac]
cmp dword [esi + 0x19a0], edx
jle 0x100242e3
mov edi, dword [esi + 0x19a8]
lea edx, [edx + edx*8]
cmp dword [edi + edx*4 + 8], eax
jne 0x100242e3
test dword [eax + 8], 0x400
jne 0x100242e3
mov edx, dword [edi + edx*4 + 4]
test edx, edx
je 0x100242e3
movss xmm3, dword [edx + 0xc]
comiss xmm3, dword [eax + 0xc]
movss xmm5, dword [edx + 0x10]
movaps xmm6, xmm3
movss xmm1, dword [esi + 0xd8]
movaps xmm4, xmm5
movss xmm7, dword [esi + 0xdc]
addss xmm6, dword [edx + 0x14]
addss xmm4, dword [edx + 0x18]
subss xmm1, dword [esi + 0x384]
subss xmm7, dword [esi + 0x388]
jbe 0x10024198
movaps xmm2, xmm3
movss dword [esp + 0x18], xmm2
jmp 0x100241a1
movaps xmm2, xmm6
movss dword [esp + 0x18], xmm6
jbe 0x100241a6
movaps xmm6, xmm3
movaps xmm0, xmm1
subss xmm0, xmm2
movss xmm2, dword [0x1003fba4]
andps xmm0, xmmword [0x1003fda0]
mulss xmm0, dword [0x1003fb04]
comiss xmm2, xmm0
ja 0x100241d5
movss xmm2, dword [0x1003fbe0]
minss xmm2, xmm0
comiss xmm3, dword [eax + 0xc]
jbe 0x100241e5
movss xmm0, dword [0x1003fc5c]
jmp 0x100241ed
movss xmm0, dword [0x1003fb14]
subss xmm5, xmm2
xorps xmm3, xmm3
addss xmm4, xmm2
movss xmm2, dword [esi + 0xd8]
addss xmm1, xmm0
subss xmm2, xmm6
subss xmm5, xmm7
subss xmm4, xmm7
movss dword [esp + 0x44], xmm1
movss xmm1, dword [esi + 0xdc]
maxss xmm5, dword [0x1003fc78]
minss xmm4, dword [0x1003fbfc]
addss xmm5, xmm7
addss xmm4, xmm7
movaps xmm0, xmm5
subss xmm0, xmm4
subss xmm1, xmm4
mulss xmm2, xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, xmm6
mulss xmm1, xmm0
movaps xmm0, xmm7
subss xmm0, xmm5
subss xmm2, xmm1
movss xmm1, dword [esi + 0xdc]
subss xmm1, xmm5
movss xmm5, dword [esp + 0x44]
comiss xmm3, xmm2
movss xmm2, dword [esi + 0xd8]
subss xmm2, dword [esp + 0x18]
seta cl
mulss xmm2, xmm0
movaps xmm0, xmm5
subss xmm0, dword [esp + 0x18]
mulss xmm1, xmm0
subss xmm2, xmm1
comiss xmm3, xmm2
seta al
cmp al, cl
jne 0x100242dd
movss xmm0, dword [esi + 0xd8]
subss xmm4, xmm7
subss xmm0, xmm5
subss xmm6, xmm5
mulss xmm4, xmm0
movss xmm0, dword [esi + 0xdc]
subss xmm0, xmm7
mulss xmm6, xmm0
subss xmm4, xmm6
comiss xmm3, xmm4
seta al
cmp cl, al
jne 0x100242dd
mov cl, 1
jmp 0x100242df
xor cl, cl
mov eax, dword [esp + 0x14]
mov dl, byte [esp + 9]
test dl, dl
je 0x10024377
test ch, ch
jne 0x10024377
cmp dword [esi + 0x192c], eax
jne 0x10024377
mov eax, dword [esi + 0x193c]
test eax, eax
je 0x10024377
cmp eax, dword [esp + 0xc]
je 0x10024377
test cl, cl
jne 0x10024377
mov al, 1
xor cl, cl
mov edi, dword [esp + 0xc]
cmp dword [esi + 0x1a2c], edi
mov edi, dword [esp + 0x1c]
mov byte [esp + 0xa], cl
jne 0x10024336
mov cl, dl
mov al, dl
xor cl, 1
mov byte [esp + 0xa], cl
mov edx, dword [esp + 0xc]
cmp dword [esi + 0x1a28], edx
jne 0x10024399
cmp byte [esi + 0x1a9d], 0
je 0x10024399
cmp dword [esi + 0x1aa8], 1
jne 0x10024399
mov cl, 1
mov byte [edi + 0x1a9d], 0
cmp byte [edi + 0x1a9d], 0
mov byte [esp + 0xa], cl
jne 0x10024391
cmp byte [edi + 0x1a85], 0
jne 0x10024391
xor dl, dl
jmp 0x10024393
xor al, al
test dl, dl
jne 0x10024315
test ch, ch
je 0x10024315
test cl, cl
je 0x1002438b
cmp byte [esp + 0xa], dl
je 0x10024315
mov cl, 1
xor al, al
jmp 0x10024317
mov dl, cl
mov byte [edi + 0x1a84], dl
mov dl, byte [esp + 9]
test al, al
je 0x10024463
jmp 0x100243d2
mov dl, byte [esp + 9]
test dl, dl
je 0x100244d6
cmp byte [esp + 0xa], 0
je 0x100244dd
test al, al
je 0x1002453f
xor dl, dl
xor cl, cl
mov byte [esp + 9], dl
mov byte [esp + 0xa], cl
mov eax, dword [edi + 0x19ac]
cmp dword [edi + 0x19a0], eax
jle 0x10024463
lea ecx, [eax + eax*8]
mov eax, dword [edi + 0x19a8]
mov edi, dword [esp + 0xc]
cmp dword [eax + ecx*4], edi
mov edi, dword [esp + 0x1c]
jne 0x1002445f
mov eax, dword [esi + 0x19ac]
mov ecx, dword [edi + 0x19a8]
mov dword [esp + 0x44], eax
test eax, eax
jle 0x10024417
lea eax, [eax + eax*8]
mov ecx, dword [ecx + eax*4 - 0x20]
jmp 0x1002441a
mov ecx, dword [ecx + 8]
cmp dword [edi + 0x1a78], 0
mov dword [esp + 0x1c], ecx
jne 0x10024436
mov eax, dword [ecx + 0x304]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x1c], ecx
call fcn.10019b80
mov eax, dword [esp + 0x1c]
lea ecx, [edi + 0x19a0]
push dword [esp + 0x44]
mov byte [eax + 0x12c], 1
call fcn.100256c0
mov edi, dword [0x100b7fac]
mov dl, byte [esp + 9]
mov cl, byte [esp + 0xa]
test dl, dl
jne 0x1002454c
test cl, cl
je 0x1002454c
mov eax, dword [esi + 0x19a0]
cmp eax, dword [esi + 0x19ac]
jle 0x1002454c
mov eax, dword [edi + 0x1928]
xor edx, edx
mov ecx, dword [eax + 0x1c8]
mov eax, dword [eax + 0x1d0]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x14]
call fcn.1000b150
add esp, 4
cmp dword [edi + 0x1944], eax
jne 0x100244b8
mov byte [edi + 0x1950], 1
cmp dword [edi + 0x1948], eax
jne 0x100244c7
mov byte [edi + 0x1954], 1
mov ecx, eax
call fcn.100137d0
xor al, al
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0xa], 0
jne 0x1002453f
test ch, ch
je 0x100244e9
test al, al
je 0x100244e9
test dl, dl
je 0x1002453f
mov eax, dword [esp + 0xc]
cmp dword [esi + 0x1a28], eax
jne 0x10024541
cmp byte [esi + 0x1a9d], 0
je 0x10024541
cmp dword [esi + 0x1aa8], 3
jne 0x10024541
mov edi, dword [0x100b7fac]
mov cl, 1
mov byte [edi + 0x1a9d], 0
cmp byte [edi + 0x1a9d], 0
jne 0x10024534
cmp byte [edi + 0x1a85], 0
jne 0x10024534
mov byte [edi + 0x1a84], 0
jmp 0x10024463
mov byte [edi + 0x1a84], cl
jmp 0x10024463
mov cl, 1
mov edi, dword [0x100b7fac]
jmp 0x10024463
or dl, cl
mov byte [esp + 9], dl
test cl, cl
je 0x100245a9
mov eax, dword [edi + 0x1928]
xor edx, edx
mov ecx, dword [eax + 0x1c8]
mov eax, dword [eax + 0x1d0]
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x14]
call fcn.1000b150
add esp, 4
cmp dword [edi + 0x1944], eax
jne 0x10024589
mov byte [edi + 0x1950], 1
cmp dword [edi + 0x1948], eax
jne 0x10024598
mov byte [edi + 0x1954], 1
mov ecx, eax
call fcn.100137d0
mov edi, dword [0x100b7fac]
mov dl, byte [esp + 9]
test dl, dl
je 0x1002460f
movss xmm0, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
movss dword [edi + 0x19d4], xmm0
movss xmm0, dword [esp + 0x28]
movss dword [edi + 0x19d8], xmm0
mov dword [edi + 0x19dc], 0
mov dword [edi + 0x19e0], 0
mov dword [edi + 0x19b8], 1
mov edx, dword [edx + 8]
and edx, 0x14000000
neg edx
sbb edx, edx
and edx, 0x1000000
add edx, 0x10000145
call fcn.10013a20
mov dl, al
pop edi
mov al, dl
pop esi
mov esp, ebp
pop ebp
ret