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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov ecx, dword [0x101f764c]
sub esp, 0xd4
push ebx
push esi
push edi
mov edi, ecx
test edi, edi
je 0x10019189
mov eax, dword [0x101f7648]
test eax, eax
jne 0x100186ec
mov edx, 0xe80c2f78
mov ecx, 0x1014c9ed
call fcn.10003ad0
mov edx, 0xc10bf213
mov ecx, 0x1014c915
mov esi, eax
call fcn.10003ad0
mov edx, esi
mov ecx, eax
call fcn.100abe50
mov ecx, dword [0x101f764c]
mov dword [0x101f7648], eax
cmp dword [edi + eax], 0
jle 0x10019189
test ecx, ecx
je 0x10019189
mov ecx, dword [0x101c176c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10019177
mov ecx, dword [0x101c176c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x10019177
cmp byte [0x101f78a8], 0
je 0x10019189
mov ecx, dword [0x101c176c]
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 [0x101c0480]
mov eax, ebx
mov edx, dword [0x101c047c]
sub eax, edx
and eax, 0xfffffff8
cmp eax, 0x5c8
jne 0x10019189
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 [0x101b8410]
movss xmm4, dword [0x101b840c]
movss dword [esp + 0x18], xmm7
movss dword [esp + 0x50], xmm1
movss dword [esp + 0x24], xmm1
jne 0x100187d3
cmp byte [edx + edi*8 + 0xc], 0
mov byte [esp + 0x12], 1
jne 0x100187d8
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 [0x101be26c]
dec eax
mov dword [esp + 0x14], 0xff
cmp eax, 3
ja case.default.0x1001880c
jmp dword [eax*4 + 0x10019190]
cmp edi, 0x46
jge 0x1001882b
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x100188ff
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x47]
cmp edi, eax
jbe case.default.0x1001880c
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x100188ff
cmp edi, 0x41
jge 0x1001885d
lea eax, [edi + 1]
movd xmm0, eax
jmp 0x10018871
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe 0x1001887c
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
movaps xmm0, xmm1
movss xmm3, dword [0x101b8358]
addss xmm0, xmm7
mov dword [esp + 0x5c], 0x3f800000
lea eax, [esp + 0x58]
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x54]
mulss xmm0, dword [0x101b8310]
divss xmm0, dword [0x101be234]
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 0x100188ff
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe case.default.0x1001880c
sub ecx, edi
movd xmm0, ecx
jmp 0x100188f8
cmp edi, 0x41
jge case.default.0x1001880c
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
mov dword [esp + 0x14], esi
movss xmm0, dword [0x101be300]
lea eax, [esp + 0x14]
movss dword [esp + 0x78], xmm0
lea ecx, [esp + 0x60]
movss xmm0, dword [0x101be304]
test esi, esi
movss dword [esp + 0x7c], xmm0
cmovns ecx, eax
movss xmm0, dword [0x101be308]
movss dword [esp + 0x80], xmm0
lea eax, [esp + 0x64]
cmp esi, 0xff
movss xmm5, dword [0x101be2dc]
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 [0x101b8244]
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 + 0x101b8860]
mulss xmm2, dword [0x101be268]
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 [0x101b845c]
mulss xmm6, xmm5
addss xmm6, xmm0
movss xmm0, dword [0x101b8550]
comiss xmm0, xmm1
movaps xmm0, xmm2
movaps xmm3, xmm6
cmovae eax, ecx
movss xmm1, dword [eax]
lea eax, [esp + 0x80]
mulss xmm1, dword [0x101b82c4]
mulss xmm1, dword [0x101be264]
subss xmm0, xmm1
movss dword [esp], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm3, xmm0
movss xmm0, dword [0x101b8550]
comiss xmm0, xmm7
cmovae eax, esi
movss xmm0, dword [eax]
lea eax, [ebx - 2]
mulss xmm0, dword [0x101b82c4]
mulss xmm0, dword [0x101be264]
subss xmm2, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm6, xmm0
movaps xmm1, xmm6
call fcn.100afde0
cmp byte [esp + 0x12], 0
je 0x10018cb0
cmp byte [0x101f7919], 0
je 0x10018cb0
cmp byte [esp + 0x13], 0
jne 0x10018cbb
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.10110f10
mov edx, eax
lea ecx, [esp + 0xc8]
call fcn.100128a0
mov edx, eax
cmp dword [edx + 0x14], 0xf
jbe 0x10018afc
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 0x10018b20
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.10002a40
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 [0x101b8550]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x3c]
push 1
movss xmm3, dword [0x101b8450]
mulss xmm2, dword [0x101be268]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x34]
subss xmm2, dword [0x101b8480]
push dword [0x101f79a0]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b82c4]
mov eax, dword [0x101c0480]
sub eax, dword [0x101c047c]
sar eax, 3
mulss xmm0, dword [0x101be264]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b8860]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101be2dc]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101be2dc]
subss xmm1, xmm0
call fcn.100aff10
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10018c51
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018c47
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019171
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov ecx, dword [esp + 0xdc]
cmp ecx, 0xf
jbe 0x10018c8d
mov edx, dword [esp + 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018c83
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019171
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
mov byte [esp + 0xc8], 0
jmp 0x10018e3c
cmp byte [esp + 0x13], 0
je 0x10018e3c
cmp byte [0x101f78d1], 0
je 0x10018e3c
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 [0x101b8550]
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 [0x101b8450]
mulss xmm2, dword [0x101be268]
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 [0x101b8448]
push dword [0x101f79a0]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b82c4]
mov eax, dword [0x101c0480]
sub eax, dword [0x101c047c]
sar eax, 3
mulss xmm0, dword [0x101be264]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b8860]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101be2dc]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101be2dc]
subss xmm1, xmm0
call fcn.100aff10
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10018e3c
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018e32
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019171
push ecx
push edx
call fcn.1010fd52
add esp, 8
cmp byte [esp + 0x1e], 0
je 0x10018fc8
cmp byte [0x101f78b8], 0
je 0x10018fc8
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 [0x101b8550]
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 [0x101b8450]
mulss xmm2, dword [0x101be268]
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 [0x101b8448]
push dword [0x101f79a0]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b82c4]
mov eax, dword [0x101c0480]
sub eax, dword [0x101c047c]
sar eax, 3
mulss xmm0, dword [0x101be264]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b8860]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101be2dc]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101be2dc]
subss xmm1, xmm0
call fcn.100aff10
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10018fc8
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10018fbe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019171
push ecx
push edx
call fcn.1010fd52
add esp, 8
cmp byte [esp + 0x1f], 0
je 0x10019150
cmp byte [0x101f7920], 0
je 0x10019150
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 [0x101b8550]
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 [0x101b8450]
mulss xmm2, dword [0x101be268]
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 [0x101b8448]
push dword [0x101f79a0]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x101b82c4]
mov eax, dword [0x101c0480]
sub eax, dword [0x101c047c]
sar eax, 3
mulss xmm0, dword [0x101be264]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b8860]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x101be2dc]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x101be2dc]
subss xmm1, xmm0
call fcn.100aff10
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x10019150
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10019146
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10019171
push ecx
push edx
call fcn.1010fd52
add esp, 8
mov edx, dword [0x101c047c]
mov edi, ebx
mov ebx, dword [0x101c0480]
mov eax, ebx
sub eax, edx
sar eax, 3
sub eax, 2
cmp edi, eax
jae 0x10019189
jmp 0x10018790
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [0x101c047c]
cmp eax, dword [0x101c0480]
je 0x10019189
mov dword [0x101c0480], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret