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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov ecx, dword [0x10281360]
sub esp, 0xd4
push ebx
push esi
push edi
mov edi, ecx
test edi, edi
je 0x1001eae9
mov eax, dword [0x1028135c]
test eax, eax
jne 0x1001e04c
mov edx, 0xe80c2f78
mov ecx, 0x10219689
call fcn.10004f10
mov edx, 0xc10bf213
mov ecx, 0x102195b1
mov esi, eax
call fcn.10004f10
mov edx, esi
mov ecx, eax
call fcn.10127750
mov ecx, dword [0x10281360]
mov dword [0x1028135c], eax
cmp dword [edi + eax], 0
jle 0x1001eae9
test ecx, ecx
je 0x1001eae9
mov ecx, dword [0x1024b32c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1001ead7
mov ecx, dword [0x1024b32c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x1001ead7
cmp byte [0x102815bc], 0
je 0x1001eae9
mov ecx, dword [0x1024b32c]
lea edx, [esp + 0x28]
push edx
lea edx, [esp + 0x30]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x14]
call eax
mov ebx, dword [0x10249554]
mov eax, ebx
mov edx, dword [0x10249550]
sub eax, edx
and eax, 0xfffffff8
cmp eax, 0x5c8
jne 0x1001eae9
xor edi, edi
mov dword [esp + 0x64], 0xff
mov dword [esp + 0x60], edi
mov dword [esp + 0x70], 0x43e10000
mov dword [esp + 0x68], edi
mov dword [esp + 0x74], 0x43e10000
mov dword [esp + 0x6c], edi
cmp byte [edx + edi*8 + 4], 0
xorps xmm2, xmm2
movss xmm1, dword [edx + edi*8 + 8]
movss xmm7, dword [edx + edi*8]
movss xmm3, dword [0x10240750]
movss xmm4, dword [0x10240744]
movss dword [esp + 0x18], xmm7
movss dword [esp + 0x50], xmm1
movss dword [esp + 0x24], xmm1
jne 0x1001e133
cmp byte [edx + edi*8 + 0xc], 0
mov byte [esp + 0x12], 1
jne 0x1001e138
mov byte [esp + 0x12], 0
mov al, byte [edx + edi*8 + 5]
mov esi, 0xff
mov byte [esp + 0x13], al
mov al, byte [edx + edi*8 + 6]
mov byte [esp + 0x1e], al
mov al, byte [edx + edi*8 + 7]
mov byte [esp + 0x1f], al
mov eax, dword [0x10247284]
dec eax
mov dword [esp + 0x14], 0xff
cmp eax, 3
ja case.default.0x1001e16c
jmp dword [eax*4 + 0x1001eaf0]
cmp edi, 0x46
jge 0x1001e18b
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x1001e25f
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x47]
cmp edi, eax
jbe case.default.0x1001e16c
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x1001e25f
cmp edi, 0x41
jge 0x1001e1bd
lea eax, [edi + 1]
movd xmm0, eax
jmp 0x1001e1d1
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe 0x1001e1dc
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
movaps xmm0, xmm1
movss xmm3, dword [0x10240668]
addss xmm0, xmm7
mov dword [esp + 0x5c], 0x3f800000
lea eax, [esp + 0x58]
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x54]
mulss xmm0, dword [0x10240604]
divss xmm0, dword [0x1024725c]
comiss xmm0, xmm2
movss dword [esp + 0x58], xmm0
cmovae ecx, eax
lea eax, [esp + 0x5c]
comiss xmm3, xmm0
movd xmm0, esi
cvtdq2ps xmm0, xmm0
cmovae eax, ecx
mulss xmm0, dword [eax]
jmp 0x1001e25f
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe case.default.0x1001e16c
sub ecx, edi
movd xmm0, ecx
jmp 0x1001e258
cmp edi, 0x41
jge case.default.0x1001e16c
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
mov dword [esp + 0x14], esi
movss xmm0, dword [0x1024731c]
lea eax, [esp + 0x14]
movss dword [esp + 0x78], xmm0
lea ecx, [esp + 0x60]
movss xmm0, dword [0x10247320]
test esi, esi
movss dword [esp + 0x7c], xmm0
cmovns ecx, eax
movss xmm0, dword [0x10247324]
movss dword [esp + 0x80], xmm0
lea eax, [esp + 0x64]
cmp esi, 0xff
movss xmm5, dword [0x102472f8]
lea esi, [esp + 0x6c]
cmovle eax, ecx
lea ecx, [esp + 0x68]
comiss xmm1, xmm2
movd xmm0, dword [eax]
lea eax, [esp + 0x24]
cvtdq2ps xmm0, xmm0
cmovae ecx, eax
lea eax, [esp + 0x18]
push ecx
comiss xmm7, xmm2
mulss xmm0, dword [0x1024053c]
cmovae esi, eax
movd xmm2, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
sub ebx, edx
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x88], xmm0
sar ebx, 3
shr ebx, 1
cdq
sub eax, edx
sar eax, 1
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
shr ebx, 0x1f
cvtdq2ps xmm2, xmm2
addsd xmm0, qword [ebx*8 + 0x10240be0]
mulss xmm2, dword [0x10247280]
lea ebx, [edi + 1]
mov dword [esp], 0
cvtpd2ps xmm6, xmm0
movd xmm0, eax
lea eax, [esp + 0x7c]
cvtdq2ps xmm0, xmm0
push eax
lea eax, [esp + 0x78]
push ecx
subss xmm2, dword [0x102407a8]
mulss xmm6, xmm5
addss xmm6, xmm0
movss xmm0, dword [0x102408b0]
comiss xmm0, xmm1
movaps xmm0, xmm2
movaps xmm3, xmm6
cmovae eax, ecx
movss xmm1, dword [eax]
lea eax, [esp + 0x80]
mulss xmm1, dword [0x102405bc]
mulss xmm1, dword [0x1024727c]
subss xmm0, xmm1
movss dword [esp], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm3, xmm0
movss xmm0, dword [0x102408b0]
comiss xmm0, xmm7
cmovae eax, esi
movss xmm0, dword [eax]
lea eax, [ebx - 2]
mulss xmm0, dword [0x102405bc]
mulss xmm0, dword [0x1024727c]
subss xmm2, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm6, xmm0
movaps xmm1, xmm6
call fcn.1012b6c0
cmp byte [esp + 0x12], 0
je 0x1001e610
cmp byte [0x10281626], 0
je 0x1001e610
cmp byte [esp + 0x13], 0
jne 0x1001e61b
movss xmm0, dword [esp + 0x14]
fld dword [esp + 0x24]
push ecx
fstp dword [esp]
mov dword [esp + 0x8c], 0x3f800000
mov dword [esp + 0x90], 0x3f800000
mov dword [esp + 0x94], 0x3f800000
movss dword [esp + 0x98], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
add esp, 4
call fcn.1018c900
mov edx, eax
lea ecx, [esp + 0xc8]
call fcn.100148b0
mov edx, eax
cmp dword [edx + 0x14], 0xf
jbe 0x1001e45c
mov edx, dword [edx]
mov ecx, edx
mov dword [esp + 0x40], 0
xorps xmm0, xmm0
mov dword [esp + 0x44], 0
movaps xmmword [esp + 0x30], xmm0
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1001e480
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.10003bc0
movss xmm0, dword [esp + 0x50]
lea eax, [esp + 0x24]
movd xmm2, dword [esp + 0x28]
lea ecx, [esp + 0x18]
xorps xmm1, xmm1
mov dword [esp + 0x20], 0x43e10000
comiss xmm0, xmm1
push 0
push 1
mov dword [esp + 0x20], 0
movss xmm1, dword [0x102408b0]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x3c]
push 1
movss xmm3, dword [0x1024079c]
mulss xmm2, dword [0x10247280]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x34]
subss xmm2, dword [0x102407d0]
push dword [0x102816cc]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x102405bc]
mov eax, dword [0x10249554]
sub eax, dword [0x10249550]
sar eax, 3
mulss xmm0, dword [0x1024727c]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10240be0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102472f8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102472f8]
subss xmm1, xmm0
call fcn.1012b7e0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001e5b1
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001e5a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001ead1
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [esp + 0xdc]
cmp ecx, 0xf
jbe 0x1001e5ed
mov edx, dword [esp + 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001e5e3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001ead1
push ecx
push edx
call fcn.1018b662
add esp, 8
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
mov byte [esp + 0xc8], 0
jmp 0x1001e79c
cmp byte [esp + 0x13], 0
je 0x1001e79c
cmp byte [0x102815e4], 0
je 0x1001e79c
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x20]
movss dword [esp + 0xa4], xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
movd xmm2, dword [esp + 0x28]
movaps xmmword [esp + 0x30], xmm0
mov eax, 0x6265
movss xmm0, dword [esp + 0x50]
comiss xmm0, xmm1
mov word [esp + 0x30], ax
lea eax, [esp + 0x24]
push 0
push 1
mov dword [esp + 0x20], 0x43e10000
mov dword [esp + 0x28], 0
mov dword [esp + 0xa0], 0x3f800000
mov dword [esp + 0xa4], 0x3f800000
movss xmm1, dword [0x102408b0]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0xac], 0x3f800000
push 1
movss xmm3, dword [0x1024079c]
mulss xmm2, dword [0x10247280]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x2c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], 0xf
mov byte [esp + 0x46], 0
subss xmm2, dword [0x10240794]
push dword [0x102816cc]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x102405bc]
mov eax, dword [0x10249554]
sub eax, dword [0x10249550]
sar eax, 3
mulss xmm0, dword [0x1024727c]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10240be0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102472f8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102472f8]
subss xmm1, xmm0
call fcn.1012b7e0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001e79c
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001e792
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001ead1
push ecx
push edx
call fcn.1018b662
add esp, 8
cmp byte [esp + 0x1e], 0
je 0x1001e928
cmp byte [0x102815c5], 0
je 0x1001e928
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x20]
movss dword [esp + 0xb4], xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
movd xmm2, dword [esp + 0x28]
movaps xmmword [esp + 0x30], xmm0
mov eax, 0x626a
movss xmm0, dword [esp + 0x50]
comiss xmm0, xmm1
mov word [esp + 0x30], ax
lea eax, [esp + 0x24]
push 0
push 1
mov dword [esp + 0x20], 0x43e10000
mov dword [esp + 0x28], 0
mov dword [esp + 0xb0], 0x3f800000
mov dword [esp + 0xb4], 0x3f800000
movss xmm1, dword [0x102408b0]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0xbc], 0x3f800000
push 1
movss xmm3, dword [0x1024079c]
mulss xmm2, dword [0x10247280]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x2c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], 0xf
mov byte [esp + 0x46], 0
subss xmm2, dword [0x10240794]
push dword [0x102816cc]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x102405bc]
mov eax, dword [0x10249554]
sub eax, dword [0x10249550]
sar eax, 3
mulss xmm0, dword [0x1024727c]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10240be0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102472f8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102472f8]
subss xmm1, xmm0
call fcn.1012b7e0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001e928
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001e91e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001ead1
push ecx
push edx
call fcn.1018b662
add esp, 8
cmp byte [esp + 0x1f], 0
je 0x1001eab0
cmp byte [0x10281637], 0
je 0x1001eab0
movss xmm0, dword [esp + 0x14]
lea ecx, [esp + 0x20]
movss dword [esp + 0xc4], xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
movd xmm2, dword [esp + 0x28]
movaps xmmword [esp + 0x30], xmm0
mov eax, 0x7370
movss xmm0, dword [esp + 0x50]
comiss xmm0, xmm1
mov word [esp + 0x30], ax
lea eax, [esp + 0x24]
push 0
push 1
mov dword [esp + 0x20], 0x43e10000
mov dword [esp + 0x28], 0
mov dword [esp + 0xc0], 0x3f800000
mov dword [esp + 0xc4], 0x3f800000
movss xmm1, dword [0x102408b0]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0xc0]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0xcc], 0x3f800000
push 1
movss xmm3, dword [0x1024079c]
mulss xmm2, dword [0x10247280]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x2c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x58], 0xf
mov byte [esp + 0x46], 0
subss xmm2, dword [0x10240794]
push dword [0x102816cc]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x102405bc]
mov eax, dword [0x10249554]
sub eax, dword [0x10249550]
sar eax, 3
mulss xmm0, dword [0x1024727c]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x10240be0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102472f8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102472f8]
subss xmm1, xmm0
call fcn.1012b7e0
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001eab0
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001eaa6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001ead1
push ecx
push edx
call fcn.1018b662
add esp, 8
mov edx, dword [0x10249550]
mov edi, ebx
mov ebx, dword [0x10249554]
mov eax, ebx
sub eax, edx
sar eax, 3
sub eax, 2
cmp edi, eax
jae 0x1001eae9
jmp 0x1001e0f0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [0x10249550]
cmp eax, dword [0x10249554]
je 0x1001eae9
mov dword [0x10249554], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret